summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-01-05 00:24:59 -0800
committerPaul Phillips <paulp@improving.org>2012-01-05 23:31:04 -0800
commit3192048a4bfb59966f93bb87a3c4f6b7ccfc80b2 (patch)
treef79412a9af378ae8eb9e2d6dbeaf3bfc6ab3d7c2 /src
parent2e92de4cd66532404081eec6b9e82c6f85b51434 (diff)
downloadscala-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.scala13
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