diff options
author | Burak Emir <emir@epfl.ch> | 2007-08-13 00:40:50 +0000 |
---|---|---|
committer | Burak Emir <emir@epfl.ch> | 2007-08-13 00:40:50 +0000 |
commit | d0655ebe76c71987f742733a11e54a1440f2bfe7 (patch) | |
tree | a8120560bed7a81f4232ec705376b4fb3da3fbf7 | |
parent | af7db4f3c59c5d23d16f277f061e51d8041484f8 (diff) | |
download | scala-d0655ebe76c71987f742733a11e54a1440f2bfe7.tar.gz scala-d0655ebe76c71987f742733a11e54a1440f2bfe7.tar.bz2 scala-d0655ebe76c71987f742733a11e54a1440f2bfe7.zip |
Par..: normalizes sym for case class test, if n...
Par..: normalizes sym for case class test, if needed Pat..: removed
fallback mechanism for unexpected exceptions
-rw-r--r-- | src/compiler/scala/tools/nsc/matching/ParallelMatching.scala | 6 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/matching/PatternMatchers.scala | 12 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala index 55944c8c20..013db5fbf2 100644 --- a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala +++ b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala @@ -25,7 +25,10 @@ trait ParallelMatching { def isCaseClass(tpe: Type) = tpe match { case TypeRef(_, sym, _) => - sym.hasFlag(symtab.Flags.CASE) + if(!sym.isAliasType) + sym.hasFlag(symtab.Flags.CASE) + else + tpe.normalize.typeSymbol.hasFlag(symtab.Flags.CASE) case _ => false } @@ -442,6 +445,7 @@ trait ParallelMatching { case _: UnApply => dummies case pat => + //Console.println("[class="+pat.getClass()+"]") dummies } //Console.println(x) diff --git a/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala b/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala index 6436aef150..ed9e1c7b68 100644 --- a/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala +++ b/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala @@ -204,19 +204,19 @@ trait PatternMatchers { self: transform.ExplicitOuter with PatternNodes with Par nParallel += 1 return null } catch { - case e => + //case e => /* Console.println("!!!unit: "+cunit) Console.println("!!!selector.pos: "+selector.pos) cunit.warning(selector.pos, "going gaga here") Console.println("!!!problem: "+e.getMessage) */ - Rep.cleanup() - return e // fallback + //Rep.cleanup() + // return e // fallback - // non-fallback: - //case e: CantHandle => return e - //case e => throw e + //non-fallback: + case e: CantHandle => Rep.cleanup(); return e + case e => throw e } } |