File tree Expand file tree Collapse file tree 1 file changed +4
-4
lines changed
compiler/src/dotty/tools/dotc/transform Expand file tree Collapse file tree 1 file changed +4
-4
lines changed Original file line number Diff line number Diff line change @@ -96,8 +96,8 @@ abstract class AccessProxies {
96
96
/** Rewire reference to refer to `accessor` symbol */
97
97
private def rewire (reference : RefTree , accessor : Symbol )(implicit ctx : Context ): Tree = {
98
98
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)
101
101
}
102
102
}.withPos(reference.pos)
103
103
@@ -161,8 +161,8 @@ object AccessProxies {
161
161
def hostForAccessorOf (accessed : Symbol )(implicit ctx : Context ): Symbol = {
162
162
def recur (cls : Symbol ): Symbol =
163
163
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
166
166
else recur(cls.owner)
167
167
recur(ctx.owner)
168
168
}
You can’t perform that action at this time.
0 commit comments