mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 08:31:26 +00:00
Drop KFunctionFromReferenceImpl, make FunctionImpl an interface
23 invokes in KFunctionFromReferenceImpl (and consequently, in FunctionImpl) were needed before1576160390: a wrapped function reference must have had the necessary invoke to be called as an instance of a specific function type. After1576160390, this is not needed anymore because KFunctionFromReferenceImpl is now an internal implementation detail of reflection, and no invoke is ever called on it.
This commit is contained in:
23
compiler/testData/codegen/box/javaInterop/lambdaInstanceOf.kt
vendored
Normal file
23
compiler/testData/codegen/box/javaInterop/lambdaInstanceOf.kt
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
// WITH_RUNTIME
|
||||
// FILE: J.java
|
||||
|
||||
import kotlin.Function;
|
||||
import kotlin.jvm.functions.Function0;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import kotlin.jvm.functions.Function2;
|
||||
|
||||
public class J {
|
||||
public static String test(Function<String> x) {
|
||||
if (x instanceof Function1) return "Fail 1";
|
||||
if (x instanceof Function2) return "Fail 2";
|
||||
if (!(x instanceof Function0)) return "Fail 3";
|
||||
|
||||
return ((Function0<String>) x).invoke();
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: K.kt
|
||||
|
||||
fun box(): String {
|
||||
return J.test({ "OK" })
|
||||
}
|
||||
Reference in New Issue
Block a user