Files
kotlin-fork/compiler/testData/codegen/box/sam/kt11519.kt
T
2023-12-26 10:18:19 +00:00

49 lines
1005 B
Kotlin
Vendored

// TARGET_BACKEND: JVM
// SKIP_JDK6
// SAM_CONVERSIONS: CLASS
// ^ test checks reflection for synthetic classes
// JVM_ABI_K1_K2_DIFF: KT-62855
// MODULE: lib
// FILE: Custom.java
class Custom<K, V> {
static Class<?> lambdaClass;
private K k;
private V v;
public Custom(K k, V v) {
this.k = k;
this.v = v;
}
public interface MBiConsumer<T, U> {
void accept(T t, U u);
}
public void forEach(MBiConsumer<? super K, ? super V> action) {
action.accept(k, v);
lambdaClass = action.getClass();
}
}
// MODULE: main(lib)
// FILE: 1.kt
import java.util.Arrays
fun box(): String {
val instance = Custom<String, String>("O", "K")
var result = "fail"
instance.forEach { a, b ->
result = a + b
}
val superInterfaces = Arrays.toString(Custom.lambdaClass.genericInterfaces)
if (superInterfaces != "[interface Custom\$MBiConsumer]") {
return "fail: $superInterfaces"
}
return result
}