[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