diff options
author | Paul Phillips <paulp@improving.org> | 2012-01-05 00:24:59 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-01-05 23:31:04 -0800 |
commit | 3192048a4bfb59966f93bb87a3c4f6b7ccfc80b2 (patch) | |
tree | f79412a9af378ae8eb9e2d6dbeaf3bfc6ab3d7c2 /src | |
parent | 2e92de4cd66532404081eec6b9e82c6f85b51434 (diff) | |
download | scala-3192048a4bfb59966f93bb87a3c4f6b7ccfc80b2.tar.gz scala-3192048a4bfb59966f93bb87a3c4f6b7ccfc80b2.tar.bz2 scala-3192048a4bfb59966f93bb87a3c4f6b7ccfc80b2.zip |
Error message improvement.
% scalac files/neg/t5357.scala
files/neg/t5357.scala:5: error: '=>' expected but ':' found.
case A: N => 1
^
one error found
That's uggo! Now it says:
% scalac files/neg/t5357.scala
files/neg/t5357.scala:5: error: Pattern variables must start with a lower-case letter. (SLS 8.1.1.)
case A: N => 1
^
one error found
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala index 5881821ab3..d7bfcfc314 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala @@ -1745,11 +1745,16 @@ self => * }}} */ def pattern1(): Tree = pattern2() match { - case p @ Ident(name) if treeInfo.isVarPattern(p) && in.token == COLON => - atPos(p.pos.startOrPoint, in.skipToken()) { Typed(p, compoundType()) } - case p => - p + case p @ Ident(name) if in.token == COLON => + if (treeInfo.isVarPattern(p)) + atPos(p.pos.startOrPoint, in.skipToken())(Typed(p, compoundType())) + else { + syntaxError(in.offset, "Pattern variables must start with a lower-case letter. (SLS 8.1.1.)") + p + } + case p => p } + /** {{{ * Pattern2 ::= varid [ @ Pattern3 ] * | Pattern3 |