// MODULE: separate // FILE: KotlinInternalSeparate.kt open class KotlinInternalSeparate { constructor() /* primary */ { super/*Any*/() /* () */ } @PublishedApi internal open fun foo() { } @PublishedApi internal open val a: Int internal open get(): Int { return 1 } } // MODULE: main // FILE: test.kt class A : Java1 { constructor() /* primary */ { super/*Java1*/() /* () */ } } class B : Java1 { constructor() /* primary */ { super/*Java1*/() /* () */ } internal override fun foo() { } } class C : Java2 { constructor() /* primary */ { super/*Java2*/() /* () */ } } class D : Java2 { constructor() /* primary */ { super/*Java2*/() /* () */ } override fun foo() { } internal override val a: Int internal override get(): Int { return 10 } } class E : Java3 { constructor() /* primary */ { super/*Java3*/() /* () */ } } class F : Java4 { constructor() /* primary */ { super/*Java4*/() /* () */ } } class G : Java4 { constructor() /* primary */ { super/*Java4*/() /* () */ } override fun foo() { } } open class InternalVisibility { @PublishedApi internal open val a: Int field = 4 internal open get constructor() /* primary */ { super/*Any*/() /* () */ } @PublishedApi internal open fun foo() { } } fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G) { a.foo() a.() /*~> Unit */ b.foo() b.() /*~> Unit */ c.foo() c.#a /*~> Unit */ d.foo() d.() /*~> Unit */ f.foo() f.#a /*~> Unit */ g.foo() g.#a /*~> Unit */ }