summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorschinz <schinz@epfl.ch>2003-07-16 08:15:16 +0000
committerschinz <schinz@epfl.ch>2003-07-16 08:15:16 +0000
commit280d025c7ee678e85d3945256e39441ef445a420 (patch)
treea8cdad14918a9cb66df805384ad4471ad3c021f5 /sources
parent81dbbfa8d6d6a6b1925045e066e2b276fbc914b2 (diff)
downloadscala-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
Diffstat (limited to 'sources')
-rw-r--r--sources/scalac/transformer/ExpandMixins.java16
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());
+ }
}
}