From 0a88276f68c650be7246051a2329c090fab9e3e0 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Thu, 18 Apr 2019 14:45:11 +0300 Subject: [PATCH] Make mustNotBeNull function from JavaNullabilityChecker available for J2K --- .../jvm/checkers/JavaNullabilityChecker.kt | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) 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 +}