[svn] r6130: nemerle/trunk/ncc: testsuite/positive/enumerable-arrays.n typing/MType.n

malekith svnadmin at nemerle.org
Sun Feb 19 12:19:07 CET 2006


Log:
Fix a problem with arrays not being subtypes of IEnumerable.

Author: malekith
Date: Sun Feb 19 12:19:06 2006
New Revision: 6130

Added:
   nemerle/trunk/ncc/testsuite/positive/enumerable-arrays.n
Modified:
   nemerle/trunk/ncc/typing/MType.n

Added: nemerle/trunk/ncc/testsuite/positive/enumerable-arrays.n
==============================================================================
--- (empty file)
+++ nemerle/trunk/ncc/testsuite/positive/enumerable-arrays.n	Sun Feb 19 12:19:06 2006
@@ -0,0 +1,28 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+def dump[T](values : IEnumerable[T])
+{
+    foreach(val  in values)
+        Console.WriteLine(val.ToString());
+}
+def dump2(values : IEnumerable)
+{
+    foreach(val  in values)
+        Console.WriteLine(val.ToString());
+}
+def values = array[1, 2, 3];
+dump(values); 
+dump2(values); 
+
+/*
+BEGIN-OUTPUT
+1
+2
+3
+1
+2
+3
+END-OUTPUT
+*/

Modified: nemerle/trunk/ncc/typing/MType.n
==============================================================================
--- nemerle/trunk/ncc/typing/MType.n	(original)
+++ nemerle/trunk/ncc/typing/MType.n	Sun Feb 19 12:19:06 2006
@@ -300,6 +300,13 @@
         | (Array, Class (tc, _)) 
           when tc.Equals (InternalType.Array_tc) => true
 
+        | (Array (t, _), Class (tc, [t'])) 
+          when tc.Equals (InternalType.Generic_IEnumerable_tc) =>
+          t.Unify (t')
+
+        | (Array, Class (tc, [])) 
+          when tc.Equals (InternalType.IEnumerable_tc) => true
+
         | (TyVarRef (tv1), TyVarRef (tv2))
           when tv1.Equals (tv2) => true
 



More information about the svn mailing list