[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