Skip to content

Commit ff6a9b6

Browse files
committed
Fix inline accessors for private members of companion objects
1 parent 17a0429 commit ff6a9b6

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

compiler/src/dotty/tools/dotc/transform/AccessProxies.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ abstract class AccessProxies {
9696
/** Rewire reference to refer to `accessor` symbol */
9797
private def rewire(reference: RefTree, accessor: Symbol)(implicit ctx: Context): Tree = {
9898
reference match {
99-
case Select(qual, _) => qual.select(accessor)
100-
case Ident(name) => ref(accessor)
99+
case Select(qual, _) if qual.tpe.derivesFrom(accessor.owner) => qual.select(accessor)
100+
case _ => ref(accessor)
101101
}
102102
}.withPos(reference.pos)
103103

@@ -161,8 +161,8 @@ object AccessProxies {
161161
def hostForAccessorOf(accessed: Symbol)(implicit ctx: Context): Symbol = {
162162
def recur(cls: Symbol): Symbol =
163163
if (!cls.exists) NoSymbol
164-
else if (cls.derivesFrom(accessed.owner)) cls
165-
else if (cls.companionModule.moduleClass == accessed.owner) accessed.owner
164+
else if (cls.derivesFrom(accessed.owner) ||
165+
cls.companionModule.moduleClass == accessed.owner) cls
166166
else recur(cls.owner)
167167
recur(ctx.owner)
168168
}

0 commit comments

Comments
 (0)