summaryrefslogtreecommitdiff
path: root/sources/scalac/ast
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2003-10-09 14:21:18 +0000
committerMartin Odersky <odersky@gmail.com>2003-10-09 14:21:18 +0000
commit10ce3e7c800484ebc74f0dfdacbbb1a258555489 (patch)
tree75f62bcf6ed3b82c2b6e525689173379d25b9d02 /sources/scalac/ast
parentc17ef940fd97cf548e0540e4e92d3b07a902a142 (diff)
downloadscala-10ce3e7c800484ebc74f0dfdacbbb1a258555489.tar.gz
scala-10ce3e7c800484ebc74f0dfdacbbb1a258555489.tar.bz2
scala-10ce3e7c800484ebc74f0dfdacbbb1a258555489.zip
*** empty log message ***
Diffstat (limited to 'sources/scalac/ast')
-rw-r--r--sources/scalac/ast/parser/Parser.java17
1 files changed, 6 insertions, 11 deletions
diff --git a/sources/scalac/ast/parser/Parser.java b/sources/scalac/ast/parser/Parser.java
index 73ca7fc747..eea0637f47 100644
--- a/sources/scalac/ast/parser/Parser.java
+++ b/sources/scalac/ast/parser/Parser.java
@@ -1209,24 +1209,19 @@ public class Parser implements Tokens {
* | Pattern2
*/
Tree pattern1() {
- int base = sp;
- Tree top = simplePattern();
- if (s.token == COLON) {
- if (TreeInfo.isVarPattern(top)) {
- return make.Typed(s.skipToken(), top, type1());
- }
+ Tree p = pattern2();
+ if (s.token == COLON && TreeInfo.isVarPattern(p)) {
+ return make.Typed(s.skipToken(), p, type1());
}
- return pattern1rest(base, top);
+ return p;
}
/* Pattern2 ::= SimplePattern [ '*' | '?' | '+' ]
* | SimplePattern {Id SimplePattern} // op2 must not be empty
*/
Tree pattern2() {
- return pattern1rest(sp, simplePattern());
- }
-
- Tree pattern1rest(int base, Tree top) {
+ int base = sp;
+ Tree top = simplePattern();
if (s.token == IDENTIFIER) {
if (s.name == STAR) { /* p* becomes z@( |(p,z)) */
s.nextToken();