mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 08:31:29 +00:00
Don't insert implicit null check on a value of @EnhancedNullability type used where @EnhancedNullability type is expected. This uncovers a bunch of other problems in FE and BE. KT-36343 and KT-36347 are bugs in StrictJavaNullabilityAssertions implementation which should most likely be fixed in next major language version (with proper breaking change notice). KT-36344 is a design problem which should be addressed after 1.4 issues are resolved.
28 lines
955 B
Kotlin
Vendored
28 lines
955 B
Kotlin
Vendored
// FILE: test/CallableDescriptor.java
|
|
|
|
// JVM_IR:
|
|
// Here in 'original in emptySet<D>()' T = '@EnhancedNullability CallableDescriptor' is inferred for 'Iterable<T>.contains(T)'.
|
|
// Using value of '@EnhancedNullability CallableDescriptor' type where '@EnhancedNullability CallableDescriptor' is expected
|
|
// doesn't cause a null check.
|
|
|
|
package test;
|
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
public interface CallableDescriptor {
|
|
@NotNull
|
|
CallableDescriptor getOriginal();
|
|
}
|
|
|
|
// FILE: test/k.kt
|
|
package test
|
|
|
|
fun <D : CallableDescriptor> D.overriddenTreeUniqueAsSequenceA(): Boolean {
|
|
return original in emptySet<D>()
|
|
}
|
|
|
|
// TODO: in fact, there should be an assertion, but it's missing because of https://youtrack.jetbrains.com/issue/KT-24210.
|
|
// (This test's aim is not to check whether or not the assertion is generated, but to ensure that the behavior is deterministic.)
|
|
// 0 checkExpressionValueIsNotNull
|
|
// 0 checkNotNullExpressionValue
|