Don't add LHS type constraint for callable references too early, before the resolution
The constraint depends on a resolution candidate, because it can be Java static or companion object's member (don't need add constraint in this case) ^KT-41978 Fixed
This commit is contained in:
committed by
TeamCityServer
parent
fd2929d2c5
commit
43a83dd07a
+38
@@ -0,0 +1,38 @@
|
||||
// DONT_TARGET_EXACT_BACKEND: WASM
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
|
||||
// FILE: Sample.java
|
||||
public class Sample {
|
||||
public static int max(int x, int y) {
|
||||
if (x > y) {
|
||||
return x;
|
||||
} else {
|
||||
return y;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
import kotlin.reflect.KFunction2
|
||||
|
||||
abstract class Checker {
|
||||
fun check(): String {
|
||||
return run(
|
||||
Sample::max,
|
||||
{ x, y -> x > y }
|
||||
)
|
||||
}
|
||||
abstract fun <T1, T2, R> run(method: KFunction2<T1, T2, R>, fn: (T1, T2) -> Boolean): String
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var result = ( object : Checker() {
|
||||
override fun <T1, T2, R> run(method: KFunction2<T1, T2, R>, fn: (T1, T2) -> Boolean): String {
|
||||
return "OK"
|
||||
}
|
||||
} ).check()
|
||||
|
||||
return result
|
||||
}
|
||||
Reference in New Issue
Block a user