summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
Diffstat (limited to 'sources')
-rw-r--r--sources/scala/tools/scalac/transformer/TransMatch.scala2
-rw-r--r--sources/scalac/transformer/matching/PatternMatcher.java12
2 files changed, 10 insertions, 4 deletions
diff --git a/sources/scala/tools/scalac/transformer/TransMatch.scala b/sources/scala/tools/scalac/transformer/TransMatch.scala
index 7826907748..9b90de9642 100644
--- a/sources/scala/tools/scalac/transformer/TransMatch.scala
+++ b/sources/scala/tools/scalac/transformer/TransMatch.scala
@@ -60,7 +60,7 @@ class TransMatch( global:scalac_Global )
( trees.length == 0 ) || isRegular( trees );
case Tree$Apply( fn, trees ) =>
isRegular( trees ) &&
- !((trees.length == 1) && TreeInfo.isEmptySequence( trees( 0 )))
+ !((trees.length == 1) && TreeInfo.isEmptySequence( trees( 0 )))
case Tree$Literal(_) => false;
case Tree$Select(_,_) => false;
case Tree$Typed(_,_) => false;
diff --git a/sources/scalac/transformer/matching/PatternMatcher.java b/sources/scalac/transformer/matching/PatternMatcher.java
index 557c9c8a67..f5a0eda18f 100644
--- a/sources/scalac/transformer/matching/PatternMatcher.java
+++ b/sources/scalac/transformer/matching/PatternMatcher.java
@@ -242,11 +242,17 @@ public class PatternMatcher extends PatternTool {
}
protected boolean isSeqApply( Tree.Apply tree ) {
- return (tree.args.length == 1 &&
- (tree.type.symbol().flags & Modifiers.CASE) == 0);
+ if(( tree.args.length == 1 ) && (tree.type.symbol().flags & Modifiers.CASE) == 0)
+ switch (tree.args[0]) {
+ case Sequence( _ ):
+ return true;
+ default:
+ return false;
+ }
+ return false;
}
- protected PatternNode patternNode(Tree tree, Header header, CaseEnv env) {
+ protected PatternNode patternNode(Tree tree, Header header, CaseEnv env) {
//System.out.println("patternNode("+tree+","+header+")");
switch (tree) {
case Bind(Name name,