diff options
author | Burak Emir <emir@epfl.ch> | 2007-08-08 11:06:04 +0000 |
---|---|---|
committer | Burak Emir <emir@epfl.ch> | 2007-08-08 11:06:04 +0000 |
commit | c9fa2fb215fa07b74659272ef9497ef2491a547e (patch) | |
tree | f22e13206c3d7ce6b18336f09701874be6c13390 /src | |
parent | d725f4a6d25fb85584e29e5dc43049a8f70f6a92 (diff) | |
download | scala-c9fa2fb215fa07b74659272ef9497ef2491a547e.tar.gz scala-c9fa2fb215fa07b74659272ef9497ef2491a547e.tar.bz2 scala-c9fa2fb215fa07b74659272ef9497ef2491a547e.zip |
fix #1257,#1258
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/matching/ParallelMatching.scala | 70 |
1 files changed, 40 insertions, 30 deletions
diff --git a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala index 29a575fb04..5af7ca3391 100644 --- a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala +++ b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala @@ -809,7 +809,7 @@ trait ParallelMatching { typed{ Ident(uacall.symbol) } else emptynessCheck(uacall.symbol) - typed { squeezedBlock(List(uacall), makeIf(cond,squeezedBlock(vdefs,succ),fail)) } + typed { squeezedBlock(List(handleOuter(uacall)), makeIf(cond,squeezedBlock(vdefs,succ),fail)) } } } @@ -860,37 +860,47 @@ object Rep { case typat @ Typed(p:UnApply,tpt) => pats = (if (tpt.tpe <:< temp(j).tpe) p else typat)::pats - 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("/'''''''''''' 6"+(o.symbol.tpe.typeSymbol hasFlag (Flags.CASE))) - Console.println("/'''''''''''' 7"+(o.symbol.tpe.termSymbol.hasFlag (Flags.CASE))) - */ - val stpe = - if (o.tpe.termSymbol.isModule) { - singleType(o.tpe.prefix, o.symbol) - } else { - singleType(NoPrefix, o.symbol) // equals-check - } - val p = Ident(nme.WILDCARD) setType stpe - val q = Typed(p, TypeTree(stpe)) setType stpe - pats = q::pats - } else - pats = o::pats + 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("/'''''''''''' 6"+(o.symbol.tpe.typeSymbol hasFlag (Flags.CASE))) + Console.println("/'''''''''''' 7"+(o.symbol.tpe.termSymbol.hasFlag (Flags.CASE))) + */ + val stpe = + if (!o.symbol.isValue) { + singleType(o.tpe.prefix, o.symbol) + } else { + singleType(NoPrefix, o.symbol) // equals-check + } + val p = Ident(nme.WILDCARD) setType stpe + val q = Typed(p, TypeTree(stpe)) setType stpe + pats = q::pats + + case o @ Ident(nme.WILDCARD) => + pats = o::pats case o @ Select(_,_) => - val stpe = - if (o.tpe.termSymbol.isModule) { - singleType(o.tpe.prefix, o.symbol) - } else { - singleType(NoPrefix, o.symbol) // equals-check - } + /* + 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.symbol.isValue) { + singleType(o.tpe.prefix, o.symbol) + } else { + singleType(NoPrefix, o.symbol) // equals-check + } val p = Ident(nme.WILDCARD) setType stpe val q = Typed(p, TypeTree(stpe)) setType stpe pats = q::pats |