Files
kotlin/compiler/testData/codegen/java8/box/functionAssertion.kt
Denis Zharkov f2aacf774e Get rid of redundant not-null assertion for parameter
The problem was that in `Function<T>.apply(T)` T is now not-platform,
so when checking if not-null assertion is needed for parameter in SAM,
it's defined by the upper bounds of T that is a platform (Any..Any?),
and while it's definitely not marked as nullable it's still nullable
in a sense that it can contain null as a value.

So the solution is obvious

 #KT-16413 Fixed
2017-02-20 15:46:49 +03:00

22 lines
373 B
Kotlin
Vendored

// FILE: F.java
import java.util.function.Function;
public class F {
public static <T, U> U passNull(Function<? super T, ? extends U> f) {
return f.apply(null);
}
}
// FILE: test.kt
// WITH_RUNTIME
// FULL_JDK
fun test(f: (Int?) -> String): String {
return F.passNull(f)
}
fun box(): String {
return test {
it?.toString() ?: "OK"
}
}