Files
kotlin-fork/compiler/testData/codegen/box/defaultArguments/function/covariantOverrideGeneric.kt
T
2021-10-02 06:14:35 +00:00

16 lines
552 B
Kotlin
Vendored

// IGNORE_BACKEND: WASM
// WASM_MUTE_REASON: FAKE_OVERRIDE_ISSUES
// On wasm this will produce conflicting return types, foo will return Any but we will try to interpret it as String.
// Before wasm native strings this worked by chance because we added unbox intrinsic for strings.
open class Foo {
open fun foo(x: CharSequence = "O"): CharSequence = x
}
class Bar<T : String>: Foo() {
override fun foo(x: CharSequence): T { // Note the covariant return type
return (x.toString() + "K") as T
}
}
fun box() = Bar<String>().foo()