// TARGET_BACKEND: JVM // FILE: 1.kt // WITH_REFLECT package test public abstract class A inline fun foo1(): A { return object : A() { } } fun bar(x: T, block: (T) -> Boolean): Boolean = block(x) inline fun foo2(x: Any): Boolean { return bar(x) { it is T } } inline fun foo3(x: Any, y: Any): Boolean { return bar(x) { it is T && y is T } } // FILE: 2.kt //NO_CHECK_LAMBDA_INLINING import test.* fun box(): String { val x = foo1().javaClass.getGenericSuperclass()?.toString() if (x != "test.A") return "fail 1: " + x if (!foo2("abc")) return "fail 2" if (foo2("abc")) return "fail 3" if (!foo3("abc", "cde")) return "fail 4" if (foo3("abc", 1)) return "fail 5" return "OK" }