summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-11-12 15:01:43 +0000
committerpaltherr <paltherr@epfl.ch>2003-11-12 15:01:43 +0000
commit54313dd4d0e3a291d4caf2b201171f561182b674 (patch)
treed1c09caa06116187e03d8cbc8606980f8fc5285b /sources
parent0f6629c829eed9c762149bda6f7497ad3655eec5 (diff)
downloadscala-54313dd4d0e3a291d4caf2b201171f561182b674.tar.gz
scala-54313dd4d0e3a291d4caf2b201171f561182b674.tar.bz2
scala-54313dd4d0e3a291d4caf2b201171f561182b674.zip
- Fixed symbol of generated Super.
Diffstat (limited to 'sources')
-rw-r--r--sources/scalac/transformer/ExpandMixins.java13
1 files changed, 5 insertions, 8 deletions
diff --git a/sources/scalac/transformer/ExpandMixins.java b/sources/scalac/transformer/ExpandMixins.java
index 351664c03d..d4265ba9a6 100644
--- a/sources/scalac/transformer/ExpandMixins.java
+++ b/sources/scalac/transformer/ExpandMixins.java
@@ -248,14 +248,11 @@ public class ClassExpander {
throw Debug.abort("illegal case", tree);
}
case Select(Super(_, _), _):
- Symbol sym = tree.symbol();
- Symbol newSym = sym.overridingSymbol(parents[0]);
- if (newSym != Symbol.NONE)
- return gen.Select(tree.pos,
- gen.Super(tree.pos, newSym.owner()),
- newSym);
- else
- return super.transform(tree);
+ Tree qualifier = ((Tree.Select)tree).qualifier;
+ qualifier = gen.Super(qualifier.pos, clasz);
+ Symbol symbol = tree.symbol().overridingSymbol(parents[0]);
+ assert symbol != Symbol.NONE: Debug.show(tree.symbol());
+ return gen.Select(tree.pos, qualifier, symbol);
default:
return super.transform(tree);
}