summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Typers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2011-03-14 18:04:45 +0000
committerMartin Odersky <odersky@gmail.com>2011-03-14 18:04:45 +0000
commit5602ec602a0795f72f7a8c2e6d1c96644906ef1c (patch)
tree242c30b75a562cdda4b91e5c3a31214972b2dfe0 /src/compiler/scala/tools/nsc/typechecker/Typers.scala
parent546588a134ee011e0f16d69c98d7238c7b473325 (diff)
downloadscala-5602ec602a0795f72f7a8c2e6d1c96644906ef1c.tar.gz
scala-5602ec602a0795f72f7a8c2e6d1c96644906ef1c.tar.bz2
scala-5602ec602a0795f72f7a8c2e6d1c96644906ef1c.zip
Fixing the build.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index 897e6bd81b..d1fe796030 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -3380,7 +3380,12 @@ trait Typers extends Modes {
def typedSuper(qual: Tree, mix: TypeName) = {
val qual1 = typed(qual)
- val clazz = qual1.tpe.typeSymbol
+
+ val clazz = qual1 match {
+ case This(_) => qual1.symbol
+ case _ => qual1.tpe.typeSymbol
+ }
+ //println(clazz+"/"+qual1.tpe.typeSymbol+"/"+qual1)
def findMixinSuper(site: Type): Type = {
var ps = site.parents filter (_.typeSymbol.name == mix)
@@ -3416,7 +3421,7 @@ trait Typers extends Modes {
else clazz.info.parents.head
else intersectionType(clazz.info.parents)
} else {
- findMixinSuper(clazz.info)
+ findMixinSuper(clazz.tpe)
}
treeCopy.Super(tree, qual1, mix) setType SuperType(clazz.thisType, owntype)