summaryrefslogtreecommitdiff
path: root/sources/scalac/ast/SubstTransformer.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/scalac/ast/SubstTransformer.java')
-rw-r--r--sources/scalac/ast/SubstTransformer.java9
1 files changed, 4 insertions, 5 deletions
diff --git a/sources/scalac/ast/SubstTransformer.java b/sources/scalac/ast/SubstTransformer.java
index cb64187c2b..ee8541dbb0 100644
--- a/sources/scalac/ast/SubstTransformer.java
+++ b/sources/scalac/ast/SubstTransformer.java
@@ -279,11 +279,10 @@ public class AttributedTreeCopier extends SubstTransformer {
if (sym != Symbol.NONE
&& mustCopySymbol(tree)
&& !symbolMap.containsKey(sym)) {
- Symbol newSym = sym.cloneSymbol();
-
- if (symbolMap.containsKey(newSym.owner()))
- newSym.setOwner((Symbol)symbolMap.get(newSym.owner()));
-
+ Symbol oldOwner = sym.owner();
+ Symbol newOwner = (Symbol)symbolMap.get(oldOwner);
+ if (newOwner == null) newOwner = oldOwner;
+ Symbol newSym = sym.cloneSymbol(newOwner);
symbolMap.put(sym, newSym);
}
}