diff options
author | Martin Odersky <odersky@gmail.com> | 2003-10-09 14:21:18 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-10-09 14:21:18 +0000 |
commit | 10ce3e7c800484ebc74f0dfdacbbb1a258555489 (patch) | |
tree | 75f62bcf6ed3b82c2b6e525689173379d25b9d02 /sources/scalac/ast | |
parent | c17ef940fd97cf548e0540e4e92d3b07a902a142 (diff) | |
download | scala-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.java | 17 |
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(); |