Skip to content

Commit 9022b6d

Browse files
committed
Also mutate module *class*'s owner in ChangeOwnerTraverser
Keep owner for module (symbol of the tree) and module class (holds the members) in synch while moving trees between owners (e.g., while duplicating them in specialization)
1 parent 5d73371 commit 9022b6d

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/reflect/scala/reflect/internal/Trees.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1468,8 +1468,10 @@ trait Trees extends api.Trees {
14681468

14691469
class ChangeOwnerTraverser(val oldowner: Symbol, val newowner: Symbol) extends Traverser {
14701470
final def change(sym: Symbol) = {
1471-
if (sym != NoSymbol && sym.owner == oldowner)
1471+
if (sym != NoSymbol && sym.owner == oldowner) {
14721472
sym.owner = newowner
1473+
if (sym.isModule) sym.moduleClass.owner = newowner
1474+
}
14731475
}
14741476
override def traverse(tree: Tree) {
14751477
tree match {

0 commit comments

Comments
 (0)