diff options
author | buraq <buraq@epfl.ch> | 2003-09-12 13:28:33 +0000 |
---|---|---|
committer | buraq <buraq@epfl.ch> | 2003-09-12 13:28:33 +0000 |
commit | 9fae25787544009f3fb912b62b23167031432ca1 (patch) | |
tree | 9656e53ba9dc3848324fe7f8d5e8c15d8d82339a /sources/scalac/ast/parser/Parser.java | |
parent | ed300578cc4cb55d737372f6e925f940130426fa (diff) | |
download | scala-9fae25787544009f3fb912b62b23167031432ca1.tar.gz scala-9fae25787544009f3fb912b62b23167031432ca1.tar.bz2 scala-9fae25787544009f3fb912b62b23167031432ca1.zip |
better checking of patterns
Diffstat (limited to 'sources/scalac/ast/parser/Parser.java')
-rw-r--r-- | sources/scalac/ast/parser/Parser.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sources/scalac/ast/parser/Parser.java b/sources/scalac/ast/parser/Parser.java index 51d93a43cb..12eb76dd2c 100644 --- a/sources/scalac/ast/parser/Parser.java +++ b/sources/scalac/ast/parser/Parser.java @@ -1153,13 +1153,12 @@ public class Parser implements Tokens { int pos = s.pos; Tree pat = pattern(); - if( this.pN.check( pat ) ) { // reports syntax errors as side effect // normalize Tree res = pN.wrapAlternative( pN.elimSequence( pN.flattenSequence ( pat ))); return res; } - //syntaxError( pos, "invalid pattern", false ); + //syntaxError( pos, "invalid pattern", false ); done in pN.check... return make.Bad(pos); } @@ -1245,13 +1244,14 @@ public class Parser implements Tokens { } } while ((s.token == IDENTIFIER) && (s.name != BAR)) { + Name tokn = s.name; // for error message top = reduceStack( false, base, top, s.name.precedence(), s.name.isLeftAssoc()); push(top, s.pos, s.name); ident(); top = simplePattern(); if( TreeInfo.isEmptySequence( top ) ) { - syntaxError( top.pos, "empty sequence not allowed here", false); + syntaxError( top.pos, "2nd argument to binary op "+s.name+" may not be empty sequence pattern", false); } } return reduceStack(false, base, top, 0, true); @@ -1688,7 +1688,7 @@ public class Parser implements Tokens { */ Tree patDefOrDcl(int mods) { int pos = s.pos; - Tree pat = pattern(); + Tree pat = validPattern(); Tree tp; switch (pat) { case Typed(Tree pat1, Tree tp1): |