[svn] r6243: nemerle/trunk/ncc: hierarchy/TypeBuilder.n testsuite/negative/void-parm2.n

malekith svnadmin at nemerle.org
Sun May 7 20:35:16 CEST 2006


Log:
Print proper error message, when a void type parameter is used. Resolves #628.

Author: malekith
Date: Sun May  7 20:35:13 2006
New Revision: 6243

Modified:
   nemerle/trunk/ncc/hierarchy/TypeBuilder.n
   nemerle/trunk/ncc/testsuite/negative/void-parm2.n

Modified: nemerle/trunk/ncc/hierarchy/TypeBuilder.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/TypeBuilder.n	(original)
+++ nemerle/trunk/ncc/hierarchy/TypeBuilder.n	Sun May  7 20:35:13 2006
@@ -882,6 +882,10 @@
         when (check_parms)
           List.Iter2 (typarms, args, fun (tp : StaticTyVar, val : TyVar) {
             unless (val.Require (res.Apply (tp.LowerBound))) {
+              if (val.Fix () is MType.Void)
+                ReportError (messenger,
+                             $ "cannot use `void' as a generic parameter of $tc");
+              else
               ReportError (messenger,
                            $ "typing constraint on $(tp.Name) not satisfied, "
                              "upon instantiation of $tc");

Modified: nemerle/trunk/ncc/testsuite/negative/void-parm2.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/negative/void-parm2.n	(original)
+++ nemerle/trunk/ncc/testsuite/negative/void-parm2.n	Sun May  7 20:35:13 2006
@@ -1,9 +1,16 @@
 module M {
   public Main () : void // OK
   {
-    [()].Iter ( // E: typing constraint on 'a not satisfied
+    [()].Iter ( // E: cannot use `void' as a generic parameter of Nemerle.Core.list
       fun (_) {
       }
-    )
+    );
+
+    // bug 628
+    def f (_)
+      {}
+
+    [1,2].Map (f).ToString (" ") // E: cannot use `void' as a generic parameter of Nemerle.Core.list
+
   }
 }



More information about the svn mailing list