diff options
author | paltherr <paltherr@epfl.ch> | 2003-11-12 15:01:43 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-11-12 15:01:43 +0000 |
commit | 54313dd4d0e3a291d4caf2b201171f561182b674 (patch) | |
tree | d1c09caa06116187e03d8cbc8606980f8fc5285b /sources/scalac/transformer | |
parent | 0f6629c829eed9c762149bda6f7497ad3655eec5 (diff) | |
download | scala-54313dd4d0e3a291d4caf2b201171f561182b674.tar.gz scala-54313dd4d0e3a291d4caf2b201171f561182b674.tar.bz2 scala-54313dd4d0e3a291d4caf2b201171f561182b674.zip |
- Fixed symbol of generated Super.
Diffstat (limited to 'sources/scalac/transformer')
-rw-r--r-- | sources/scalac/transformer/ExpandMixins.java | 13 |
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); } |