[svn] r5935: nemerle/trunk/ncc: hierarchy/TypeBuilder.n
testsuite/negative/partial.n testsuite/positive/pa...
malekith
svnadmin at nemerle.org
Mon Nov 14 23:30:45 CET 2005
Log:
Flag different type parameters in partial types as an error.
Author: malekith
Date: Mon Nov 14 23:30:43 2005
New Revision: 5935
Added:
nemerle/trunk/ncc/testsuite/negative/partial.n
Modified:
nemerle/trunk/ncc/hierarchy/TypeBuilder.n
nemerle/trunk/ncc/testsuite/positive/partial.n
Modified: nemerle/trunk/ncc/hierarchy/TypeBuilder.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/TypeBuilder.n (original)
+++ nemerle/trunk/ncc/hierarchy/TypeBuilder.n Mon Nov 14 23:30:43 2005
@@ -959,6 +959,11 @@
| _ => Util.ice ("non class / variant")
}
+ when (! tparms.tyvars.Equals (pt_tydecl.typarms.tyvars))
+ Message.Error ($ "partial declarations of `$this' must have "
+ "the same type parameter names in the same "
+ "order");
+
foreach (constr in tparms.constraints) {
mutable should_add = true;
foreach (con in ps.constraints)
Added: nemerle/trunk/ncc/testsuite/negative/partial.n
==============================================================================
--- (empty file)
+++ nemerle/trunk/ncc/testsuite/negative/partial.n Mon Nov 14 23:30:43 2005
@@ -0,0 +1,4 @@
+namespace Tyvars {
+ partial class C [X] { }
+ partial class C [Y] { } // E: partial declarations of `Tyvars.C' must have the same type parameter names in the same order
+}
Modified: nemerle/trunk/ncc/testsuite/positive/partial.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/partial.n (original)
+++ nemerle/trunk/ncc/testsuite/positive/partial.n Mon Nov 14 23:30:43 2005
@@ -166,6 +166,11 @@
}
}
+namespace Tv {
+ partial class C[T] { }
+ partial class C[T] { }
+}
+
class U {
static TestParts () : void
@@ -197,6 +202,8 @@
TestParts ();
MergingInfaceAndTyparms.X.Run ();
OtherTypes.Test.Run ();
+
+ System.Console.WriteLine (Tv.C.[N.A]().GetType());
}
}
@@ -214,5 +221,6 @@
hello
add1
hello
+Tv.C`1[N.A]
END-OUTPUT
*/
More information about the svn
mailing list