[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