summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2011-03-14 14:35:38 +0000
committerMartin Odersky <odersky@gmail.com>2011-03-14 14:35:38 +0000
commite64b94fcc972f8da390450e39140257bb91126fd (patch)
treea60db52dc980cb3a0576b1f445144d6147f735aa
parent13c59adf9fbff0e99ffa9f8e30f5dc05e0c1ee4d (diff)
downloadscala-e64b94fcc972f8da390450e39140257bb91126fd.tar.gz
scala-e64b94fcc972f8da390450e39140257bb91126fd.tar.bz2
scala-e64b94fcc972f8da390450e39140257bb91126fd.zip
Closes #4300. No review.
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index c0158a09c1..897e6bd81b 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -3380,7 +3380,7 @@ trait Typers extends Modes {
def typedSuper(qual: Tree, mix: TypeName) = {
val qual1 = typed(qual)
- val clazz = qual1.symbol
+ val clazz = qual1.tpe.typeSymbol
def findMixinSuper(site: Type): Type = {
var ps = site.parents filter (_.typeSymbol.name == mix)
@@ -3390,6 +3390,11 @@ trait Typers extends Modes {
if (settings.debug.value)
Console.println(site.parents map (_.typeSymbol.name))//debug
if (phase.erasedTypes && context.enclClass.owner.isImplClass) {
+ // println(qual1)
+ // println(clazz)
+ // println(site)
+ // println(site.parents)
+ // println(mix)
// the reference to super class got lost during erasure
restrictionError(tree.pos, unit, "traits may not select fields or methods from super[C] where C is a class")
} else {