summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-08-14 15:37:17 +0000
committerMartin Odersky <odersky@gmail.com>2006-08-14 15:37:17 +0000
commit9a73f4c8d4e3079b8dd31e74913687faf0ca2bc5 (patch)
tree8f5ab97601eabdc7cc935b30523fc474f6bd7be3 /src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
parent28113d4604f1a403aa7611028ab8fcc217c3449c (diff)
downloadscala-9a73f4c8d4e3079b8dd31e74913687faf0ca2bc5.tar.gz
scala-9a73f4c8d4e3079b8dd31e74913687faf0ca2bc5.tar.bz2
scala-9a73f4c8d4e3079b8dd31e74913687faf0ca2bc5.zip
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/RefChecks.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/RefChecks.scala30
1 files changed, 2 insertions, 28 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
index 3bc224cc98..8e798b31c1 100644
--- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
@@ -593,35 +593,9 @@ abstract class RefChecks extends InfoTransform {
result = toConstructor
else qual match {
case Super(qualifier, mix) =>
- val base = currentOwner.enclClass;
- if (sym hasFlag DEFERRED) {
- val member = sym.overridingSymbol(base);//???
- if (mix != nme.EMPTY.toTypeName || member == NoSymbol ||
- !((member hasFlag ABSOVERRIDE) && member.isIncompleteIn(base)))
- unit.error(tree.pos, "symbol accessed from super may not be abstract");
- }
+ val base = qual.symbol;
//System.out.println("super: " + tree + " in " + base);//DEBUG
- if (base.isTrait && sym.isTerm && mix == nme.EMPTY.toTypeName) {
- val superAccName = nme.superName(sym.name);
- val superAcc = base.info.decl(superAccName) suchThat (.alias.==(sym));
- val tree1 = Select(This(base), superAcc);
- if (settings.debug.value) log("super-replacement: " + tree + "=>" + tree1);
- result = atPos(tree.pos) {
- Select(gen.mkAttributedThis(base), superAcc) setType superAcc.tpe
- }
- }
-/*
- case This(_) =>
- if ((sym hasFlag PARAMACCESSOR) && (sym.alias != NoSymbol)) {
- result = typed {
- Select(
- Super(qual.symbol, qual.symbol.info.parents.head.symbol.name) setPos qual.pos,
- sym.alias) setPos tree.pos
- }
- if (settings.debug.value)
- System.out.println("alias replacement: " + tree + " ==> " + result);//debug
- }
-*/
+ assert(!(base.isTrait && sym.isTerm && mix == nme.EMPTY.toTypeName)) // term should have been eliminated by super accessors
case _ =>
}
case _ =>