diff options
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scalac/transformer/ExpandMixins.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/sources/scalac/transformer/ExpandMixins.java b/sources/scalac/transformer/ExpandMixins.java index 9c589cf4f8..7b9439ce0f 100644 --- a/sources/scalac/transformer/ExpandMixins.java +++ b/sources/scalac/transformer/ExpandMixins.java @@ -247,11 +247,8 @@ public class ExpandMixins extends Transformer { if (memSymT != memSymM) { if ((memSym.flags & Modifiers.DEFERRED) != 0) leftOutMembers.add(member); - else { - Symbol newMemSym = renameSymbol(symbolMap, memSym, owner); - newMembers.enterOrOverload(newMemSym); - mixedInSymbols.put(memSym, newMemSym); - } + else + renameSymbol(symbolMap, memSym, owner); } } @@ -269,6 +266,15 @@ public class ExpandMixins extends Transformer { treeCopier.popSymbolSubst(); newBody.add(newMember); + + if (newMember.definesSymbol()) { + Symbol sym = newMember.symbol(); + + sym.setOwner(owner); + newMembers.enterOrOverload(sym); + + mixedInSymbols.put(member.symbol(), newMember.symbol()); + } } } |