From c9fa2fb215fa07b74659272ef9497ef2491a547e Mon Sep 17 00:00:00 2001 From: Burak Emir Date: Wed, 8 Aug 2007 11:06:04 +0000 Subject: fix #1257,#1258 --- .../tools/nsc/matching/ParallelMatching.scala | 70 ++++++++++++---------- 1 file changed, 40 insertions(+), 30 deletions(-) (limited to 'src') 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 -- cgit v1.2.3