summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2007-08-08 11:06:04 +0000
committerBurak Emir <emir@epfl.ch>2007-08-08 11:06:04 +0000
commitc9fa2fb215fa07b74659272ef9497ef2491a547e (patch)
treef22e13206c3d7ce6b18336f09701874be6c13390 /src
parentd725f4a6d25fb85584e29e5dc43049a8f70f6a92 (diff)
downloadscala-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.scala70
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