File tree 2 files changed +18
-2
lines changed
compiler/src/dotty/tools/dotc/transform
2 files changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -130,6 +130,8 @@ abstract class AccessProxies {
130
130
val accessed = reference.symbol.asTerm
131
131
var accessorClass = hostForAccessorOf(accessed : Symbol )
132
132
if (accessorClass.exists) {
133
+ if accessorClass.is(Package ) then
134
+ accessorClass = ctx.owner.topLevelClass
133
135
val accessorName = accessorNameKind(accessed.name)
134
136
val accessorInfo =
135
137
accessed.info.ensureMethodic.asSeenFrom(accessorClass.thisType, accessed.owner)
@@ -159,8 +161,9 @@ object AccessProxies {
159
161
def hostForAccessorOf (accessed : Symbol )(implicit ctx : Context ): Symbol = {
160
162
def recur (cls : Symbol ): Symbol =
161
163
if (! cls.exists) NoSymbol
162
- else if (cls.derivesFrom(accessed.owner) ||
163
- cls.companionModule.moduleClass == accessed.owner) cls
164
+ else if cls.derivesFrom(accessed.owner)
165
+ || cls.companionModule.moduleClass == accessed.owner
166
+ then cls
164
167
else recur(cls.owner)
165
168
recur(ctx.owner)
166
169
}
Original file line number Diff line number Diff line change
1
+ package foo {
2
+ object A {
3
+ inline def f (x : Int ) = B .f(x)
4
+ }
5
+
6
+ private [foo] object B {
7
+ def f (x : Int ) = x * 5
8
+ }
9
+ }
10
+
11
+ class Test {
12
+ val x = foo.A .f(4 )
13
+ }
You can’t perform that action at this time.
0 commit comments