[svn] r7706: nemerle/trunk/ncc: generation/Typer4.n testsuite/negative/void-parm3.n

divan svnadmin at nemerle.org
Sun Jun 17 15:06:33 CEST 2007


Log:
Add check for void generic specifier of method.

Author: divan
Date: Sun Jun 17 15:06:30 2007
New Revision: 7706

Added:
   nemerle/trunk/ncc/testsuite/negative/void-parm3.n
Modified:
   nemerle/trunk/ncc/generation/Typer4.n

Modified: nemerle/trunk/ncc/generation/Typer4.n
==============================================================================
--- nemerle/trunk/ncc/generation/Typer4.n	(original)
+++ nemerle/trunk/ncc/generation/Typer4.n	Sun Jun 17 15:06:30 2007
@@ -706,6 +706,12 @@
             Util.cassert (Message.SeenError);
             null
           
+          | MethodRef (_expr, meth, tp, _) =>
+            foreach (t in tp)
+              when (t.Fix ().Equals (InternalType.Void))
+                Message.Error (expr.loc, $ "cannot use `void' in generic specifier $tp of $meth");
+            null
+            
           | _ => null
         }
       //Message.Debug ($"do walk: $expr -> $res");

Added: nemerle/trunk/ncc/testsuite/negative/void-parm3.n
==============================================================================
--- (empty file)
+++ nemerle/trunk/ncc/testsuite/negative/void-parm3.n	Sun Jun 17 15:06:30 2007
@@ -0,0 +1,10 @@
+class A {
+  public F[A, B] (_ : A -> B) : void {}
+  public G[A] (_ : A) : void {}
+  public Q () : void {
+    def f (_) {};
+    _ = F (f); //E: cannot use `void' in generic specifier 
+    _ = G (f (0)); //E: cannot use `void' in generic specifier 
+  }
+}
+()



More information about the svn mailing list