diff options
author | Martin Odersky <odersky@gmail.com> | 2006-08-21 19:08:04 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-08-21 19:08:04 +0000 |
commit | 3197c82a56dd43a3916511a41af5a4ddd1b2e1b3 (patch) | |
tree | 0b9e58ac0f0191891db1847658765f0b805225c3 /src | |
parent | 87494e132353ea49182c43b876810a9890cd2bad (diff) | |
download | scala-3197c82a56dd43a3916511a41af5a4ddd1b2e1b3.tar.gz scala-3197c82a56dd43a3916511a41af5a4ddd1b2e1b3.tar.bz2 scala-3197c82a56dd43a3916511a41af5a4ddd1b2e1b3.zip |
Changed super.T in asSeenFrom
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Types.scala | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala index cfc4fd7c75..f1540ff52f 100644 --- a/src/compiler/scala/tools/nsc/symtab/Types.scala +++ b/src/compiler/scala/tools/nsc/symtab/Types.scala @@ -1327,7 +1327,11 @@ trait Types requires SymbolTable { def toPrefix(pre: Type, clazz: Symbol): Type = if ((pre eq NoType) || (pre eq NoPrefix) || !clazz.isClass) tp else if ((sym isNonBottomSubClass clazz) && - (pre.widen.symbol isNonBottomSubClass sym)) pre + (pre.widen.symbol isNonBottomSubClass sym)) + pre match { + case SuperType(thistp, _) => thistp + case _ => pre + } else toPrefix(pre.baseType(clazz).prefix, clazz.owner); toPrefix(pre, clazz) case TypeRef(prefix, sym, args) if (sym.isTypeParameter) => |