summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-08-21 19:08:04 +0000
committerMartin Odersky <odersky@gmail.com>2006-08-21 19:08:04 +0000
commit3197c82a56dd43a3916511a41af5a4ddd1b2e1b3 (patch)
tree0b9e58ac0f0191891db1847658765f0b805225c3 /src
parent87494e132353ea49182c43b876810a9890cd2bad (diff)
downloadscala-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.scala6
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) =>