Files
kotlin-fork/compiler/testData/ir/irText/firProblems/SignatureComputationComplexJavaGeneric.kt
T
Kirill Rakhman 86836e69e9 [FIR2IR] Unwrap call-site substitution overrides
Generating IR declarations for use-site substitution overrides leads
to IR that is different from K1 as well as problems in signature
generation which relies on mangling. Use-site substitutions can contain
references to type parameters from the call-site which aren't handled
in mangling.

#KT-57022 Fixed
2023-06-09 08:22:21 +00:00

48 lines
911 B
Kotlin
Vendored

// FIR_IDENTICAL
// TARGET_BACKEND: JVM_IR
// ISSUE: KT-57022
// FILE: JavaClass1.java
import org.jetbrains.annotations.Nullable;
public class JavaClass1<T extends @Nullable Object> {
public class A {
public void output(T x) {}
}
public class B extends A {
}
}
// FILE: JavaClass2.java
import org.jetbrains.annotations.Nullable;
public abstract class JavaClass2<T extends @Nullable Object, R extends @Nullable Object> {
public abstract class A {
public abstract void output(R output);
}
public abstract class B extends A {
public abstract T element();
}
}
// FILE: test.kt
class Inv<T>(val x: T)
class Test_1<TT>(val x: TT) : JavaClass1<TT>() {
fun test(b: B) { b.output(x) }
}
class Test_2<TT> : JavaClass2<TT, Inv<TT>>() {
fun process(b: B) {
b.output(Inv(b.element()))
}
}
fun <R> test_3(jb: JavaClass1<R>.B, r: R) {
jb.output(r)
}