diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaNullabilityChecker.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaNullabilityChecker.kt index 729e5a45313..fda7841ad04 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaNullabilityChecker.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaNullabilityChecker.kt @@ -167,20 +167,6 @@ class JavaNullabilityChecker : AdditionalTypeChecker { else null - private class EnhancedNullabilityInfo(val enhancedType: KotlinType, val isFromJava: Boolean) { - val isFromKotlin get() = !isFromJava - } - - private fun KotlinType.enhancementFromKotlin() = EnhancedNullabilityInfo(this, isFromJava = false) - private fun TypeWithEnhancement.enhancementFromJava() = EnhancedNullabilityInfo(enhancement, isFromJava = true) - - private fun KotlinType.mustNotBeNull(): EnhancedNullabilityInfo? = when { - !isError && !isFlexible() && !TypeUtils.acceptsNullable(this) -> enhancementFromKotlin() - isFlexible() && !TypeUtils.acceptsNullable(asFlexibleType().upperBound) -> enhancementFromKotlin() - this is TypeWithEnhancement && enhancement.mustNotBeNull() != null -> enhancementFromJava() - else -> null - } - private fun KotlinType.mayBeNull(): EnhancedNullabilityInfo? = when { !isError && !isFlexible() && TypeUtils.acceptsNullable(this) -> enhancementFromKotlin() isFlexible() && TypeUtils.acceptsNullable(asFlexibleType().lowerBound) -> enhancementFromKotlin() @@ -188,3 +174,17 @@ class JavaNullabilityChecker : AdditionalTypeChecker { else -> null } } + +class EnhancedNullabilityInfo(val enhancedType: KotlinType, val isFromJava: Boolean) { + val isFromKotlin get() = !isFromJava +} + +private fun KotlinType.enhancementFromKotlin() = EnhancedNullabilityInfo(this, isFromJava = false) +private fun TypeWithEnhancement.enhancementFromJava() = EnhancedNullabilityInfo(enhancement, isFromJava = true) + +fun KotlinType.mustNotBeNull(): EnhancedNullabilityInfo? = when { + !isError && !isFlexible() && !TypeUtils.acceptsNullable(this) -> enhancementFromKotlin() + isFlexible() && !TypeUtils.acceptsNullable(asFlexibleType().upperBound) -> enhancementFromKotlin() + this is TypeWithEnhancement && enhancement.mustNotBeNull() != null -> enhancementFromJava() + else -> null +}