summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2011-04-29 16:02:53 +0000
committerMartin Odersky <odersky@gmail.com>2011-04-29 16:02:53 +0000
commit7f6ebc97625536cfa2d86241349237a2e474ce74 (patch)
treeeb5ea8ed9605dd959de0dabd099e965c3f657a92 /src
parent8792dda476e33af1070b11f0af288897dff995ca (diff)
downloadscala-7f6ebc97625536cfa2d86241349237a2e474ce74.tar.gz
scala-7f6ebc97625536cfa2d86241349237a2e474ce74.tar.bz2
scala-7f6ebc97625536cfa2d86241349237a2e474ce74.zip
Second version of trying to avoid the lift cras...
Second version of trying to avoid the lift crasher bug.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index 233caaca32..788d95104c 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -930,10 +930,9 @@ trait Typers extends Modes {
} catch {
case ex: TypeError =>
if (phase.id > currentRun.typerPhase.id &&
- tree.tpe.isInstanceOf[ExistentialType] &&
- pt.isInstanceOf[ExistentialType])
- // ignore type errors raised in later phases that are due to mismatching existentials
- tree
+ pt.existentialSkolems.nonEmpty)
+ adapt(tree, mode, pt.subst(pt.existentialSkolems, pt.existentialSkolems map (_ => WildcardType)))
+ // ignore type errors raised in later phases that are due to mismatching types with existential skolems
else
throw ex
}