[Test] Properly merge box against java testdata into codegen/box

Previous commit about it was 3199ce03 and it was completely wrong
This commit is contained in:
Dmitriy Novozhilov
2021-02-04 10:43:33 +03:00
parent 21c493a854
commit 29b96aa15d
173 changed files with 120524 additions and 115185 deletions
@@ -0,0 +1,21 @@
// 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);
public String test(T... args) {
return doIt(args);
}
}
// MODULE: main(lib)
// FILE: 1.kt
val a: A<Void> =
object : A<Void>() {
override fun doIt(vararg parameters: Void): String = "OK"
}
fun box(): String = a.test()
@@ -0,0 +1,24 @@
// 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);
public <S extends T> String test(S... args) {
return doIt(args);
}
}
// MODULE: main(lib)
// FILE: 1.kt
open class Super
class Sub: Super()
val a: A<Super> =
object : A<Super>() {
override fun doIt(vararg parameters: Super): String = "OK"
}
fun box(): String = a.test<Sub>()
@@ -0,0 +1,41 @@
// IGNORE_BACKEND_FIR: JVM_IR
// 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()
}