[svn] r5954: nemerle/trunk/ncc: testsuite/positive/generics.n
typing/MType.n
malekith
svnadmin at nemerle.org
Mon Nov 21 15:18:59 CET 2005
Log:
Look for tyvar's member also in supertypes. Resolves #574.
Author: malekith
Date: Mon Nov 21 15:18:57 2005
New Revision: 5954
Modified:
nemerle/trunk/ncc/testsuite/positive/generics.n
nemerle/trunk/ncc/typing/MType.n
Modified: nemerle/trunk/ncc/testsuite/positive/generics.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/generics.n (original)
+++ nemerle/trunk/ncc/testsuite/positive/generics.n Mon Nov 21 15:18:57 2005
@@ -147,6 +147,14 @@
}
}
+public module Bug574 {
+ m [T] (l : array [T]) : void where T : System.Reflection.Emit.TypeBuilder
+ {
+ foreach (e in l)
+ _ = e.HasElementType;
+ }
+}
+
/*
BEGIN-OUTPUT
System.Collections.Generic.List`1[System.Int32]
Modified: nemerle/trunk/ncc/typing/MType.n
==============================================================================
--- nemerle/trunk/ncc/typing/MType.n (original)
+++ nemerle/trunk/ncc/typing/MType.n Mon Nov 21 15:18:57 2005
@@ -663,6 +663,9 @@
foreach (t is MType.Class in tyvar.Constraints) // FIXME: what to do with "where 'a : 'b"?
when (t.tycon.Equals (member.DeclaringType))
Nemerle.Imperative.Return (t.TypeOfMember (member));
+ foreach (t is MType.Class in tyvar.Constraints)
+ when (t.tycon.SuperType (member.DeclaringType).IsSome)
+ Nemerle.Imperative.Return (t.TypeOfMember (member));
Util.ice ($"not found for member $(member) with dt $(member.DeclaringType) -- am in $(this)")
| _ =>
More information about the svn
mailing list