Files
kotlin-fork/compiler/testData/codegen/box/callableReference/serializability/referenceToCompanionFunction.kt
T
2023-02-07 09:49:20 +00:00

34 lines
860 B
Kotlin
Vendored

// IGNORE_BACKEND_K1: ANY
// FE 1.0 incorrectly resolves reference `Some::foo` (KT-45315)
// DONT_TARGET_EXACT_BACKEND: WASM
// WASM_MUTE_REASON: Wasm box test does not support disabling only K1 mode with IGNORE_BACKEND directive
// ISSUE: KT-55909
// DUMP_IR
abstract class Base {
fun foo(): String = "A"
abstract fun bar(): String
}
class Some {
companion object : Base() {
override fun bar(): String = "B"
}
}
// For sanity check
object Singleton : Base() {
override fun bar(): String = "C"
}
fun box(): String {
val ref1 = Some::foo
val ref2 = Some::bar
val ref3 = Some.Companion::foo
val ref4 = Some.Companion::bar
val ref5 = Singleton::foo
val ref6 = Singleton::bar
val result = ref1() + ref2() + ref3() + ref4() + ref5() + ref6()
return if (result == "ABABAC") "OK" else "Fail: $result"
}