53d6ac24e5
* Change 1.6 to 1.7 constants * Fix SAFE_CALL_WILL_CHANGE_NULLABILITY for testData * Change EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_WARNING to EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_ERROR * Change NON_EXHAUSTIVE_WHEN_STATEMENT to NO_ELSE_IN_WHEN * Fix testData for SafeCallsAreAlwaysNullable * Change T -> T & Any in test dumps * Change INVALID_CHARACTERS_NATIVE_WARNING -> INVALID_CHARACTERS_NATIVE_ERROR * TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_WARNING -> TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR
37 lines
837 B
Kotlin
Vendored
37 lines
837 B
Kotlin
Vendored
// !LANGUAGE: +StrictJavaNullabilityAssertions -ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
|
// TARGET_BACKEND: JVM
|
|
// IGNORE_BACKEND_FIR: JVM_IR
|
|
// FIR status: expected: <OK> but was: <Fail: SHOULD NOT throw>, issue related to T & Any
|
|
// See KT-8135
|
|
// We could generate runtime assertion on call site for 'generic<NOT_NULL_TYPE>()' below.
|
|
|
|
// FILE: box.kt
|
|
fun box(): String {
|
|
try {
|
|
J().test()
|
|
return "OK"
|
|
}
|
|
catch (e: Throwable) {
|
|
return "Fail: SHOULD NOT throw"
|
|
}
|
|
}
|
|
|
|
// FILE: test.kt
|
|
fun withAssertion(j: J) = generic<String?>(j)
|
|
|
|
fun <T> generic(j: J) = j.nullT<T>()
|
|
|
|
// FILE: J.java
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
public class J {
|
|
@NotNull
|
|
public <T> T nullT() {
|
|
return null;
|
|
}
|
|
|
|
public void test() {
|
|
TestKt.withAssertion(this);
|
|
}
|
|
}
|