diff options
author | buraq <buraq@epfl.ch> | 2003-10-29 15:43:38 +0000 |
---|---|---|
committer | buraq <buraq@epfl.ch> | 2003-10-29 15:43:38 +0000 |
commit | d8beafde508558cdf44131680acb57f66b265939 (patch) | |
tree | c99a9c311563068101d1f5fd7d23b34a78ba6d90 /sources/scalac/ast/parser/Parser.java | |
parent | 9aa73f7072fd6f37ed304994fa7fe6fbf7ec157e (diff) | |
download | scala-d8beafde508558cdf44131680acb57f66b265939.tar.gz scala-d8beafde508558cdf44131680acb57f66b265939.tar.bz2 scala-d8beafde508558cdf44131680acb57f66b265939.zip |
fixed bug in patterns()
Diffstat (limited to 'sources/scalac/ast/parser/Parser.java')
-rw-r--r-- | sources/scalac/ast/parser/Parser.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sources/scalac/ast/parser/Parser.java b/sources/scalac/ast/parser/Parser.java index a25b219d3b..ff36b2c4fc 100644 --- a/sources/scalac/ast/parser/Parser.java +++ b/sources/scalac/ast/parser/Parser.java @@ -1198,7 +1198,8 @@ public class Parser implements Tokens { s.nextToken(); choices.append( pattern1() ); } - TreeList ts = pN.flattenAlternativeChildren( choices.toArray() ); + Tree[] tarr = choices.toArray(); + TreeList ts = pN.flattenAlternativeChildren( tarr ); return pN.flattenAlternative( make.Alternative( pos, ts.toArray() ) ); } return first; @@ -1335,10 +1336,10 @@ public class Parser implements Tokens { Tree[] ts = Tree.EMPTY_ARRAY; if( s.token!= RPAREN ) ts = patterns(); - Tree t; - if (ts.length == 1) + Tree t = null; + if ((ts.length == 1)&&!( ts[0] instanceof Tree.Alternative )) { t = ts[0]; - else { + } else { t = pN.flattenSequence(make.Sequence(s.pos, ts)); t = pN.elimSequence(t); } |