K2: don't count use-sites of Java type parameter with nullable bounds as not null

This commit is contained in:
Mikhail Glukhikh
2024-03-08 13:41:25 +01:00
committed by Space Team
parent d353fd400d
commit c4bcdc42c1
14 changed files with 413 additions and 70 deletions
@@ -47,6 +47,7 @@ import org.jetbrains.kotlin.fir.utils.exceptions.withFirEntry
import org.jetbrains.kotlin.load.java.AnnotationQualifierApplicabilityType
import org.jetbrains.kotlin.load.java.AnnotationQualifierApplicabilityType.VALUE_PARAMETER
import org.jetbrains.kotlin.load.java.FakePureImplementationsProvider
import org.jetbrains.kotlin.load.java.JavaDefaultQualifiers
import org.jetbrains.kotlin.load.java.JavaTypeQualifiersByElementType
import org.jetbrains.kotlin.load.java.JvmAnnotationNames
import org.jetbrains.kotlin.load.java.typeEnhancement.*
@@ -793,6 +794,14 @@ private class EnhancementSignatureParts(
override val TypeParameterMarker.isFromJava: Boolean
get() = (this as ConeTypeParameterLookupTag).symbol.fir.origin is FirDeclarationOrigin.Java
override fun getDefaultNullability(
referencedParameterBoundsNullability: NullabilityQualifierWithMigrationStatus?,
defaultTypeQualifiers: JavaDefaultQualifiers?
): NullabilityQualifierWithMigrationStatus? {
return referencedParameterBoundsNullability?.takeIf { it.qualifier == NullabilityQualifier.NOT_NULL }
?: defaultTypeQualifiers?.nullabilityQualifier
}
}
class FirEnhancedSymbolsStorage(private val cachesFactory: FirCachesFactory) : FirSessionComponent {