Files
kotlin-fork/compiler/testData/codegen/boxAgainstJava/varargs/varargsOverride3.kt
T
2021-02-02 17:54:49 +03:00

41 lines
835 B
Kotlin
Vendored

// DONT_TARGET_EXACT_BACKEND: JS JS_IR JS_IR_ES6 WASM NATIVE
// MODULE: lib
// FILE: A.java
public abstract class A<T> {
protected abstract String doIt(T... args);
class B<S extends T, U extends S> {
public String test(T... args) {
return doIt(args);
}
public String test2(S... args) {
return doIt(args);
}
public String test3(U... args) {
return doIt(args);
}
}
}
// MODULE: main(lib)
// FILE: 1.kt
open class Super
open class Sub: Super()
class Sub2: Sub()
val a: A<Super> =
object : A<Super>() {
override fun doIt(vararg parameters: Super): String = "OK"
}
fun box(): String {
val b = a.B<Sub, Sub2>()
if (b.test() != "OK") return "FAIL1"
if (b.test2() != "OK") return "FAIL2"
return b.test3()
}