diff options
author | Martin Odersky <odersky@gmail.com> | 2008-01-22 15:13:51 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2008-01-22 15:13:51 +0000 |
commit | 687e21d1600a9b15b155d3700244756008d37760 (patch) | |
tree | 257ccd39cd17b672f8ed74bb73d8ee8c78024911 | |
parent | a478609e1b61fd8b3fd4032a7cf081f88fb3cf30 (diff) | |
download | scala-687e21d1600a9b15b155d3700244756008d37760.tar.gz scala-687e21d1600a9b15b155d3700244756008d37760.tar.bz2 scala-687e21d1600a9b15b155d3700244756008d37760.zip |
fixed #351
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala index 8412012c20..e264b9a9cc 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala @@ -705,7 +705,15 @@ trait Parsers extends NewScanners with MarkupParsers { val ts = types(false, false, true) accept(RPAREN) if (inToken == ARROW) atPos(inSkipToken) { makeFunctionTypeTree(ts, typ()) } - else infixTypeRest(pos, annotTypeRest(pos, false, makeTupleType(ts, true)), false, InfixMode.FirstOp) + else { + for (t <- ts) t match { + case AppliedTypeTree(Select(_, n), _) + if (n == nme.BYNAME_PARAM_CLASS_NAME.toTypeName) => + syntaxError(t.pos, "no by-name parameter type allowed here", false) + case _ => + } + infixTypeRest(pos, annotTypeRest(pos, false, makeTupleType(ts, true)), false, InfixMode.FirstOp) + } } } else { infixType(false, InfixMode.FirstOp) |