Putting in a fix for #4713. Not sure this goes deep enough, though. Review and maybe deeper changes by plocinic.

git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25128 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
This commit is contained in:
odersky 2011-06-21 11:43:25 +00:00
parent d5cf962462
commit b6ff50b135
1 changed files with 8 additions and 2 deletions

View File

@ -3969,8 +3969,14 @@ A type's typeSymbol should never be inspected directly.
val args1 = args mapConserve (this)
try {
val sym1 = adaptToNewRun(pre1, sym)
if ((pre1 eq pre) && (sym1 eq sym) && (args1 eq args)/* && sym.isExternal*/) tp
else copyTypeRef(tp, pre1, sym1, args1)
if ((pre1 eq pre) && (sym1 eq sym) && (args1 eq args)/* && sym.isExternal*/) {
tp
} else if (sym1 == NoSymbol) {
if (settings.debug.value) println("adapt fail: "+pre+" "+pre1+" "+sym)
tp
} else {
copyTypeRef(tp, pre1, sym1, args1)
}
} catch {
case ex: MissingAliasControl =>
apply(tp.dealias)