Make mustNotBeNull function from JavaNullabilityChecker available for J2K
This commit is contained in:
committed by
Ilya Kirillov
parent
98651f3484
commit
0a88276f68
+14
-14
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user