diff options
author | buraq <buraq@epfl.ch> | 2004-06-04 08:47:43 +0000 |
---|---|---|
committer | buraq <buraq@epfl.ch> | 2004-06-04 08:47:43 +0000 |
commit | 7f8e3d286e031ed309d67adfa60ae5474a4a6a2f (patch) | |
tree | 169a9e063756e6955fa7a603ea91e9ef375d2953 /sources | |
parent | 41ccf7eea1c814bcb25d412558807c2969b968f0 (diff) | |
download | scala-7f8e3d286e031ed309d67adfa60ae5474a4a6a2f.tar.gz scala-7f8e3d286e031ed309d67adfa60ae5474a4a6a2f.tar.bz2 scala-7f8e3d286e031ed309d67adfa60ae5474a4a6a2f.zip |
premature commit
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scalac/transformer/matching/PatternMatcher.java | 2 | ||||
-rw-r--r-- | sources/scalac/transformer/matching/TestRegTraverser.java | 18 |
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; } |