summaryrefslogtreecommitdiff
path: root/sources/scalac/ast/parser/Parser.java
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2003-09-12 13:28:33 +0000
committerburaq <buraq@epfl.ch>2003-09-12 13:28:33 +0000
commit9fae25787544009f3fb912b62b23167031432ca1 (patch)
tree9656e53ba9dc3848324fe7f8d5e8c15d8d82339a /sources/scalac/ast/parser/Parser.java
parented300578cc4cb55d737372f6e925f940130426fa (diff)
downloadscala-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.java8
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):