summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2008-01-22 15:13:51 +0000
committerMartin Odersky <odersky@gmail.com>2008-01-22 15:13:51 +0000
commit687e21d1600a9b15b155d3700244756008d37760 (patch)
tree257ccd39cd17b672f8ed74bb73d8ee8c78024911 /src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
parenta478609e1b61fd8b3fd4032a7cf081f88fb3cf30 (diff)
downloadscala-687e21d1600a9b15b155d3700244756008d37760.tar.gz
scala-687e21d1600a9b15b155d3700244756008d37760.tar.bz2
scala-687e21d1600a9b15b155d3700244756008d37760.zip
fixed #351
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/parser/Parsers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Parsers.scala10
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)