[svn] r6023: nemerle/trunk/ncc: external/InternalTypes.n typing/Typer.n

nazgul svnadmin at nemerle.org
Mon Dec 19 18:33:04 CET 2005


Log:
Allow nongeneric enumerator/able as return type of yielding method

Author: nazgul
Date: Mon Dec 19 18:32:59 2005
New Revision: 6023

Modified:
   nemerle/trunk/ncc/external/InternalTypes.n
   nemerle/trunk/ncc/typing/Typer.n

Modified: nemerle/trunk/ncc/external/InternalTypes.n
==============================================================================
--- nemerle/trunk/ncc/external/InternalTypes.n	(original)
+++ nemerle/trunk/ncc/external/InternalTypes.n	Mon Dec 19 18:32:59 2005
@@ -382,6 +382,7 @@
   public mutable AssemblyCultureAttribute_tc : TypeInfo;  
   public mutable Nemerle_list_tc : TypeInfo;
   public mutable IEnumerable_tc : TypeInfo;
+  public mutable IEnumerator_tc : TypeInfo;
   public mutable Generic_IEnumerable_tc : TypeInfo;
   public mutable Generic_IEnumerator_tc : TypeInfo;
   public mutable DllImport_tc : TypeInfo;
@@ -527,6 +528,7 @@
     UInt64_tc = lookup ("System.UInt64"); UInt64 = MType.Class (UInt64_tc, []);
     ValueType_tc = lookup ("System.ValueType"); ValueType = MType.Class (ValueType_tc, []);
     IEnumerable_tc = lookup ("System.Collections.IEnumerable");
+    IEnumerator_tc = lookup ("System.Collections.IEnumerator");
     Generic_IEnumerable_tc = lookup ("System.Collections.Generic.IEnumerable");
     Generic_IEnumerator_tc = lookup ("System.Collections.Generic.IEnumerator");
     DllImport_tc = lookup ("System.Runtime.InteropServices.DllImportAttribute");

Modified: nemerle/trunk/ncc/typing/Typer.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer.n	(original)
+++ nemerle/trunk/ncc/typing/Typer.n	Mon Dec 19 18:32:59 2005
@@ -3088,6 +3088,9 @@
             | Class (tc, [t])
               when tc.Equals (InternalType.Generic_IEnumerator_tc) || 
                    tc.Equals (InternalType.Generic_IEnumerable_tc) => t
+            | Class (tc, [])
+              when tc.Equals (InternalType.IEnumerator_tc) || 
+                   tc.Equals (InternalType.IEnumerable_tc) => InternalType.Object
             | t =>
               ReportError (messenger,
                            $ "yield used in a function returning "



More information about the svn mailing list