diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 27e358ed77..cd668cd201 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -2754,10 +2754,12 @@ trait Typers { self: Analyzer => if (tree.hasSymbol) tree.symbol = NoSymbol } //Console.println("typing "+tree+", "+context.undetparams);//DEBUG - def dropExistential(tp: Type) = tp match { + def dropExistential(tp: Type): Type = tp match { case ExistentialType(tparams, tpe) => if (settings.debug.value) println("drop ex "+tree+" "+tp) tpe.subst(tparams, tparams map (x => WildcardType)) + case TypeRef(_, sym, _)if sym.isAliasType => + dropExistential(tp.normalize) case _ => tp } var tree1 = if (tree.tpe ne null) tree else typed1(tree, mode, dropExistential(pt)) |