4120d6a8aa
Before this commit, the expect-actual resolver could find expects in
regular dependencies
Note: The appeared `VIRTUAL_MEMBER_HIDDEN` in
compiler/fir/analysis-tests/testData/resolveWithStdlib/multiModule/FakeOverrides.kt
isn't caused by my change. It's caused by fixing the testData dependency
syntax notation.
The testData improperly used regular dependency syntax notation, while
it should have been using dependsOn
Before:
Regular dependency syntax notation
// MODULE: androidMain(commonMain)
After:
dependsOn dependency syntax notation
// MODULE: androidMain()()(commonMain)
117 lines
3.0 KiB
Plaintext
Vendored
117 lines
3.0 KiB
Plaintext
Vendored
Module: m1-common
|
|
FILE: common.kt
|
|
public open expect class A<T> : R|kotlin/Any| {
|
|
public expect constructor<T>(): R|A<T>|
|
|
|
|
public open expect fun foo(arg: R|T|): R|kotlin/Unit|
|
|
|
|
}
|
|
public open class B : R|A<kotlin/String>| {
|
|
public constructor(): R|B| {
|
|
super<R|A<kotlin/String>|>()
|
|
}
|
|
|
|
}
|
|
public open class C : R|B| {
|
|
public constructor(): R|C| {
|
|
super<R|B|>()
|
|
}
|
|
|
|
public open fun bar(arg: R|kotlin/String|): R|kotlin/String| {
|
|
^bar R|<local>/arg|
|
|
}
|
|
|
|
public open fun baz(arg: R|kotlin/CharSequence|): R|kotlin/String| {
|
|
^baz R|<local>/arg|.R|kotlin/Any.toString|()
|
|
}
|
|
|
|
}
|
|
FILE: jvm.kt
|
|
public open actual class A<T> : R|kotlin/Any| {
|
|
public constructor<T>(): R|A<T>| {
|
|
super<R|kotlin/Any|>()
|
|
}
|
|
|
|
public open actual fun foo(arg: R|T|): R|kotlin/Unit| {
|
|
}
|
|
|
|
public open fun bar(arg: R|T|): R|T| {
|
|
^bar R|<local>/arg|
|
|
}
|
|
|
|
public open fun baz(arg: R|T|): R|T| {
|
|
^baz R|<local>/arg|
|
|
}
|
|
|
|
}
|
|
public final class D : R|C| {
|
|
public constructor(): R|D| {
|
|
super<R|C|>()
|
|
}
|
|
|
|
public final fun test(): R|kotlin/Unit| {
|
|
this@R|/D|.R|SubstitutionOverride</B.foo: R|kotlin/Unit|>|(String())
|
|
this@R|/D|.R|/C.bar|(String())
|
|
this@R|/D|.R|SubstitutionOverride</B.baz: R|kotlin/String|>|(String())
|
|
}
|
|
|
|
}
|
|
Module: m1-jvm
|
|
FILE: common.kt
|
|
public open expect class A<T> : R|kotlin/Any| {
|
|
public expect constructor<T>(): R|A<T>|
|
|
|
|
public open expect fun foo(arg: R|T|): R|kotlin/Unit|
|
|
|
|
}
|
|
public open class B : R|A<kotlin/String>| {
|
|
public constructor(): R|B| {
|
|
super<R|A<kotlin/String>|>()
|
|
}
|
|
|
|
}
|
|
public open class C : R|B| {
|
|
public constructor(): R|C| {
|
|
super<R|B|>()
|
|
}
|
|
|
|
public open fun bar(arg: R|kotlin/String|): R|kotlin/String| {
|
|
^bar R|<local>/arg|
|
|
}
|
|
|
|
public open fun baz(arg: R|kotlin/CharSequence|): R|kotlin/String| {
|
|
^baz R|<local>/arg|.R|kotlin/Any.toString|()
|
|
}
|
|
|
|
}
|
|
FILE: jvm.kt
|
|
public open actual class A<T> : R|kotlin/Any| {
|
|
public constructor<T>(): R|A<T>| {
|
|
super<R|kotlin/Any|>()
|
|
}
|
|
|
|
public open actual fun foo(arg: R|T|): R|kotlin/Unit| {
|
|
}
|
|
|
|
public open fun bar(arg: R|T|): R|T| {
|
|
^bar R|<local>/arg|
|
|
}
|
|
|
|
public open fun baz(arg: R|T|): R|T| {
|
|
^baz R|<local>/arg|
|
|
}
|
|
|
|
}
|
|
public final class D : R|C| {
|
|
public constructor(): R|D| {
|
|
super<R|C|>()
|
|
}
|
|
|
|
public final fun test(): R|kotlin/Unit| {
|
|
this@R|/D|.R|SubstitutionOverride</B.foo: R|kotlin/Unit|>|(String())
|
|
this@R|/D|.R|/C.bar|(String())
|
|
this@R|/D|.R|SubstitutionOverride</B.baz: R|kotlin/String|>|(String())
|
|
}
|
|
|
|
}
|