Support enhancement for type parameter based types
Load them as non-flexible when a relevant type parameter has non-flexible upper bound (Currently, it only works for case of codeanalysis annotations)
This commit is contained in:
committed by
Victor Petukhov
parent
fa2578c795
commit
e9e05c53e1
+7
-3
@@ -11,8 +11,11 @@ import org.jetbrains.kotlin.name.FqName
|
||||
|
||||
data class JavaDefaultQualifiers(
|
||||
val nullabilityQualifier: NullabilityQualifierWithMigrationStatus,
|
||||
val qualifierApplicabilityTypes: Collection<AnnotationQualifierApplicabilityType>
|
||||
)
|
||||
val qualifierApplicabilityTypes: Collection<AnnotationQualifierApplicabilityType>,
|
||||
val affectsTypeParameterBasedTypes: Boolean = nullabilityQualifier.qualifier == NullabilityQualifier.NOT_NULL
|
||||
) {
|
||||
val makesTypeParameterNotNull get() = nullabilityQualifier.qualifier == NullabilityQualifier.NOT_NULL && affectsTypeParameterBasedTypes
|
||||
}
|
||||
|
||||
val TYPE_QUALIFIER_NICKNAME_FQNAME = FqName("javax.annotation.meta.TypeQualifierNickname")
|
||||
val TYPE_QUALIFIER_FQNAME = FqName("javax.annotation.meta.TypeQualifier")
|
||||
@@ -45,7 +48,8 @@ val BUILT_IN_TYPE_QUALIFIER_DEFAULT_ANNOTATIONS = mapOf(
|
||||
),
|
||||
JSPECIFY_DEFAULT_NOT_NULL to JavaDefaultQualifiers(
|
||||
NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NOT_NULL),
|
||||
DEFAULT_JSPECIFY_APPLICABILITY
|
||||
DEFAULT_JSPECIFY_APPLICABILITY,
|
||||
affectsTypeParameterBasedTypes = false
|
||||
),
|
||||
JSPECIFY_DEFAULT_NULLNESS_UNKNOWN to JavaDefaultQualifiers(
|
||||
NullabilityQualifierWithMigrationStatus(NullabilityQualifier.FORCE_FLEXIBILITY),
|
||||
|
||||
+1
-1
@@ -16,4 +16,4 @@ class JavaTypeQualifiersByElementType(val defaultQualifiers: QualifierByApplicab
|
||||
): JavaDefaultQualifiers? {
|
||||
return defaultQualifiers[applicabilityType]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user