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
This commit is contained in:
Denis Zharkov
2015-06-18 10:16:14 +03:00
parent 1469a0aa6f
commit 0375e45936
@@ -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
}