diff options
4 files changed, 26 insertions, 13 deletions
diff --git a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala index 57c389b25a..5df7b3736d 100644 --- a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala +++ b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala @@ -85,8 +85,10 @@ trait ParallelMatching { case Ident(nme.WILDCARD) => isFlatCases(col.tail) // treat col.tail specially? case i @ Ident(n) => // n ne nme.WILDCARD + assert(false) ( (i.symbol.flags & Flags.CASE) != 0) && directSubtype( i.tpe ) && isFlatCases(col.tail) case s @ Select(_,_) => // i.e. scala.Nil + assert(false) ( (s.symbol.flags & Flags.CASE) != 0) && directSubtype( s.tpe ) && isFlatCases(col.tail) case p => //Console.println(p.getClass) @@ -860,16 +862,20 @@ object Rep { case o @ Ident(n) => if (n != nme.WILDCARD) { - //Console.println("/'''''''''''' 1"+o.tpe) - //Console.println("/'''''''''''' 2"+o.symbol) - //Console.println("/'''''''''''' 3"+o.symbol.tpe) - //Console.println("/'''''''''''' 4"+o.symbol.tpe.prefix) - //Console.println("/'''''''''''' 5"+o.symbol.tpe.prefix.isStable) - + /* + Console.println("/'''''''''''' 1"+o.tpe) + Console.println("/'''''''''''' 2"+o.symbol) + Console.println("/'''''''''''' 3"+o.symbol.tpe) + Console.println("/'''''''''''' 4"+o.symbol.tpe.prefix) + Console.println("/'''''''''''' 5"+o.symbol.tpe.prefix.isStable) + + Console.println("/'''''''''''' 6"+(o.symbol.tpe.typeSymbol hasFlag (Flags.CASE))) + Console.println("/'''''''''''' 7"+(o.symbol.tpe.termSymbol.hasFlag (Flags.CASE))) + */ val stpe = - if (o.tpe./*term?*/symbol.isModule) - singleType(o.tpe.prefix, o.symbol) - else + if (o.tpe.termSymbol.isModule) { + singleType(o.tpe.prefix, o.symbol) + } else singleType(NoPrefix, o.symbol) val p = Ident(nme.WILDCARD) setType stpe diff --git a/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala b/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala index af294ce550..613880f004 100644 --- a/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala +++ b/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala @@ -202,7 +202,14 @@ trait PatternMatchers { self: transform.ExplicitOuter with PatternNodes with Par nParallel += 1 return null } catch { - case e => return e // fallback + case e => + /* + Console.println("!!!unit: "+cunit) + Console.println("!!!selector.pos: "+selector.pos) + cunit.warning(selector.pos, "going gaga here") + Console.println("!!!problem: "+e.getMessage) + */ + return e // fallback // non-fallback: //case e: CantHandle => return e diff --git a/src/library/scala/xml/dtd/ContentModel.scala b/src/library/scala/xml/dtd/ContentModel.scala index 8b0b6e7ae3..740c9df175 100644 --- a/src/library/scala/xml/dtd/ContentModel.scala +++ b/src/library/scala/xml/dtd/ContentModel.scala @@ -43,7 +43,7 @@ object ContentModel extends WordExp { while (it.hasNext) traverse(it.next) } def traverse(r: RegExp) { - r match { + r match { // !!! check for match translation problem case Letter(ElemName(name)) => s += name case Star( x @ _ ) => traverse( x ) // bug if x@_* case Sequ( xs @ _* ) => traverse1(xs) @@ -83,7 +83,7 @@ object ContentModel extends WordExp { c.toString(sb) } - def toString(r: RegExp, sb:StringBuilder): StringBuilder = r match { + def toString(r: RegExp, sb:StringBuilder): StringBuilder = r match { // !!! check for match translation problem case Eps => sb case Sequ(rs @ _*) => diff --git a/src/library/scala/xml/dtd/ElementValidator.scala b/src/library/scala/xml/dtd/ElementValidator.scala index a841e5e76a..08d5cb2e1e 100644 --- a/src/library/scala/xml/dtd/ElementValidator.scala +++ b/src/library/scala/xml/dtd/ElementValidator.scala @@ -133,7 +133,7 @@ class ElementValidator() extends Function1[Node,Boolean] { var res = false; val jt = branches.elements; while(jt.hasNext && !res) - jt.next match { + jt.next match { // !!! check for match translation problem case ContentModel.Letter(ElemName(Key)) => res = true; case _ => } |