diff options
author | schinz <schinz@epfl.ch> | 2003-07-16 08:15:16 +0000 |
---|---|---|
committer | schinz <schinz@epfl.ch> | 2003-07-16 08:15:16 +0000 |
commit | 280d025c7ee678e85d3945256e39441ef445a420 (patch) | |
tree | a8cdad14918a9cb66df805384ad4471ad3c021f5 | |
parent | 81dbbfa8d6d6a6b1925045e066e2b276fbc914b2 (diff) | |
download | scala-280d025c7ee678e85d3945256e39441ef445a420.tar.gz scala-280d025c7ee678e85d3945256e39441ef445a420.tar.bz2 scala-280d025c7ee678e85d3945256e39441ef445a420.zip |
- bug fix: fixed a bug which was introduced by ...
- bug fix: fixed a bug which was introduced by the previous commmit and
which produced incorrect owners for mixed-in members
-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()); + } } } |