From 0375e45936acde17d4648531eb247c65aa1cb229 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Thu, 18 Jun 2015 10:16:14 +0300 Subject: [PATCH] Change reporting policy for NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS If lower bound of flexible is nullable treat it like Kotlin nullable type Anyway appropriate errors are reported outside JavaNullabilityWarningsChecker --- .../kotlin/load/kotlin/KotlinJvmCheckerProvider.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/KotlinJvmCheckerProvider.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/KotlinJvmCheckerProvider.kt index a2088456c69..0853a822abc 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/KotlinJvmCheckerProvider.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/KotlinJvmCheckerProvider.kt @@ -217,12 +217,18 @@ private fun checkTypeParameterDescriptorsAreNotReified( public class JavaNullabilityWarningsChecker : AdditionalTypeChecker { private fun JetType.mayBeNull(): NullabilityInformationSource? { if (!isError() && !isFlexible() && TypeUtils.isNullableType(this)) return NullabilityInformationSource.KOTLIN + + if (isFlexible() && TypeUtils.isNullableType(flexibility().lowerBound)) return NullabilityInformationSource.KOTLIN + if (getAnnotations().isMarkedNullable()) return NullabilityInformationSource.JAVA return null } private fun JetType.mustNotBeNull(): NullabilityInformationSource? { if (!isError() && !isFlexible() && !TypeUtils.isNullableType(this)) return NullabilityInformationSource.KOTLIN + + if (isFlexible() && !TypeUtils.isNullableType(flexibility().upperBound)) return NullabilityInformationSource.KOTLIN + if (!isMarkedNullable() && getAnnotations().isMarkedNotNull()) return NullabilityInformationSource.JAVA return null }