[FIR] Recursively search dependsOn modules in visibility checks

#KT-59071 Fixed
This commit is contained in:
Brian Norman
2023-07-21 15:29:55 -05:00
committed by Space Team
parent 95bf63d6cb
commit 42ebbb937c
9 changed files with 138 additions and 5 deletions
@@ -0,0 +1,56 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_VARIABLE
// MODULE: m1
// FILE: a.kt
package p
public class A {
internal val a = A()
internal var v = A()
internal fun a() = A()
internal inner class B
}
internal val a = A()
internal var v = A()
internal fun a() = A()
internal class B
// MODULE: m2()()(m1)
// FILE: b.kt
import p.*
fun test2() {
val _a = a
val _v = v
a()
B()
val inst = A()
val ia = inst.a
val iv = inst.v
inst.a()
inst.B()
}
// MODULE: m3()()(m2)
// FILE: c.kt
import p.*
fun test3() {
val _a = a
val _v = v
a()
B()
val inst = A()
val ia = inst.a
val iv = inst.v
inst.a()
inst.B()
}
@@ -0,0 +1,44 @@
// -- Module: <m1> --
package
package p {
internal val a: p.A
internal var v: p.A
internal fun a(): p.A
public final class A {
public constructor A()
internal final val a: p.A
internal final var v: p.A
internal final fun a(): p.A
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
internal final inner class B {
public constructor B()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
internal final class B {
public constructor B()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
// -- Module: <m2> --
package
public fun test2(): kotlin.Unit
// -- Module: <m3> --
package
public fun test2(): kotlin.Unit
public fun test3(): kotlin.Unit