summaryrefslogtreecommitdiff
path: root/sources/scalac/ast/parser/Parser.java
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2003-10-29 15:43:38 +0000
committerburaq <buraq@epfl.ch>2003-10-29 15:43:38 +0000
commitd8beafde508558cdf44131680acb57f66b265939 (patch)
treec99a9c311563068101d1f5fd7d23b34a78ba6d90 /sources/scalac/ast/parser/Parser.java
parent9aa73f7072fd6f37ed304994fa7fe6fbf7ec157e (diff)
downloadscala-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.java9
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);
}