[svn] r5931: nemerle/trunk/ncc: testsuite/frommcs/gtest-094.n
testsuite/positive/infer.n typing/TyVarEnv.n
malekith
svnadmin at nemerle.org
Sat Nov 12 22:47:16 CET 2005
Log:
Use proper type to subtype in nested type parameters lookup. Resolves #527.
Author: malekith
Date: Sat Nov 12 22:47:15 2005
New Revision: 5931
Modified:
nemerle/trunk/ncc/testsuite/frommcs/gtest-094.n
nemerle/trunk/ncc/testsuite/positive/infer.n
nemerle/trunk/ncc/typing/TyVarEnv.n
Modified: nemerle/trunk/ncc/testsuite/frommcs/gtest-094.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/frommcs/gtest-094.n (original)
+++ nemerle/trunk/ncc/testsuite/frommcs/gtest-094.n Sat Nov 12 22:47:15 2005
@@ -1,5 +1,3 @@
-// FIXME: #527
-// NO-TEST
public class LinkedList[T]
{
protected class Node
Modified: nemerle/trunk/ncc/testsuite/positive/infer.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/infer.n (original)
+++ nemerle/trunk/ncc/testsuite/positive/infer.n Sat Nov 12 22:47:15 2005
@@ -38,6 +38,30 @@
ignore (bb ([1], f2));
def _ = [ ([["foo"]], "foo") ] : list[_];
System.Console.WriteLine (Set[int].A.B.x.GetType ());
+ Bug527.Run ();
+ }
+}
+
+module Bug527 {
+ public class LinkedList[T]
+ {
+ public class Node
+ { }
+ }
+
+ public class HashedLinkedList[T] : LinkedList[T]
+ {
+ static public mutable node : Node = Node (); // error here
+ }
+
+ public class XHashedLinkedList[T] : LinkedList[LinkedList[T]]
+ {
+ static public mutable node : Node = Node (); // error here
+ }
+
+ public static Run () : void {
+ System.Console.WriteLine (HashedLinkedList[int].node.GetType());
+ System.Console.WriteLine (XHashedLinkedList[int].node.GetType());
}
}
@@ -154,5 +178,7 @@
/*
BEGIN-OUTPUT
M+Set`1+A[System.Int32]
+Bug527+LinkedList`1+Node[System.Int32]
+Bug527+LinkedList`1+Node[Bug527+LinkedList`1[System.Int32]]
END-OUTPUT
*/
Modified: nemerle/trunk/ncc/typing/TyVarEnv.n
==============================================================================
--- nemerle/trunk/ncc/typing/TyVarEnv.n (original)
+++ nemerle/trunk/ncc/typing/TyVarEnv.n Sat Nov 12 22:47:15 2005
@@ -136,7 +136,7 @@
else if (nesting.LookupMemberAvailable &&
nesting.LookupMember (ti.Name).Contains (ti))
curtc.NestingSubst (nesting)
- .Apply (nesting.SubtypingSubst (ti)
+ .Apply (nesting.SubtypingSubst (ti.DeclaringType)
.Apply (ti.DeclaringType.GetMemType ()).Fix ())
else find_nesting (nesting.DeclaringType)
}
More information about the svn
mailing list