summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2004-06-04 08:47:43 +0000
committerburaq <buraq@epfl.ch>2004-06-04 08:47:43 +0000
commit7f8e3d286e031ed309d67adfa60ae5474a4a6a2f (patch)
tree169a9e063756e6955fa7a603ea91e9ef375d2953 /sources
parent41ccf7eea1c814bcb25d412558807c2969b968f0 (diff)
downloadscala-7f8e3d286e031ed309d67adfa60ae5474a4a6a2f.tar.gz
scala-7f8e3d286e031ed309d67adfa60ae5474a4a6a2f.tar.bz2
scala-7f8e3d286e031ed309d67adfa60ae5474a4a6a2f.zip
premature commit
Diffstat (limited to 'sources')
-rw-r--r--sources/scalac/transformer/matching/PatternMatcher.java2
-rw-r--r--sources/scalac/transformer/matching/TestRegTraverser.java18
2 files changed, 13 insertions, 7 deletions
diff --git a/sources/scalac/transformer/matching/PatternMatcher.java b/sources/scalac/transformer/matching/PatternMatcher.java
index b33036abfc..557c9c8a67 100644
--- a/sources/scalac/transformer/matching/PatternMatcher.java
+++ b/sources/scalac/transformer/matching/PatternMatcher.java
@@ -317,7 +317,7 @@ public class PatternMatcher extends PatternTool {
assert false; // this may not happen ?? ----------------- Burak
return mk.ConstrPat(tree.pos, tree.type);
} else if (name.isVariable()) {// should be Bind ------------ Burak
- assert false;
+ assert false : "encountered ident:"+name;
if (env != null)
env.newBoundVar(tree.symbol(),
tree.type,
diff --git a/sources/scalac/transformer/matching/TestRegTraverser.java b/sources/scalac/transformer/matching/TestRegTraverser.java
index fec6b3c0b4..e6d606e8c9 100644
--- a/sources/scalac/transformer/matching/TestRegTraverser.java
+++ b/sources/scalac/transformer/matching/TestRegTraverser.java
@@ -21,6 +21,7 @@ public class TestRegTraverser extends Traverser {
static Set nilVariables = new HashSet();
public void traverse(Tree tree) {
+ //System.out.println("traverse:"+tree);
if (!result)
switch (tree) {
case Alternative(_):
@@ -57,21 +58,26 @@ public class TestRegTraverser extends Traverser {
// Matthias PatternMatcher cannot handle this case
case Apply( Tree fn, Tree[] trees ):
- if( trees.length == 1 ) {
+ if( trees.length == 1 )
switch (trees[ 0 ]) {
+
case Sequence( Tree[] trees2 ):
if( trees2.length == 1 ) {
switch (trees2[ 0 ]) {
- case Sequence( _ ):
+ case Sequence( Tree[] trees3 ):
result = true;
break;
+ default:
+ super.traverse( tree );
};
//System.out.println( fn );
//System.out.println( tree.type() );
- }
+ } else if( trees.length > 0 )
+ super.traverse( tree );
+ break;
+ default:
+ super.traverse( tree );
}
- }
- super.traverse( tree );
break;
default:
super.traverse( tree );
@@ -82,7 +88,7 @@ public class TestRegTraverser extends Traverser {
TestRegTraverser trt = new TestRegTraverser();
nilVariables.clear();
trt.traverse(t);
- //System.err.println("TestRegTraverser says "+t+" -> "+trt.result);
+ //System.out.println("TestRegTraverser says "+t+" -> "+trt.result);
return trt.result;
}