Don't forget jspecify annotation during extracting nullability from known annotations
This commit is contained in:
@@ -46,8 +46,11 @@ private fun FirAnnotationCall.extractNullabilityFromKnownAnnotations(javaTypeEnh
|
|||||||
if (reportLevel == ReportLevel.IGNORE) return null
|
if (reportLevel == ReportLevel.IGNORE) return null
|
||||||
|
|
||||||
return when (annotationClassId) {
|
return when (annotationClassId) {
|
||||||
in NULLABLE_ANNOTATION_IDS -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NULLABLE)
|
in NULLABLE_ANNOTATION_IDS -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NULLABLE, reportLevel.isWarning)
|
||||||
in NOT_NULL_ANNOTATION_IDS -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NOT_NULL)
|
in NOT_NULL_ANNOTATION_IDS -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NOT_NULL, reportLevel.isWarning)
|
||||||
|
JSPECIFY_NULLABLE_ANNOTATION_ID -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NULLABLE, reportLevel.isWarning)
|
||||||
|
JSPECIFY_NULLNESS_UNKNOWN_ANNOTATION_ID ->
|
||||||
|
NullabilityQualifierWithMigrationStatus(NullabilityQualifier.FORCE_FLEXIBILITY, reportLevel.isWarning)
|
||||||
JAVAX_NONNULL_ANNOTATION_ID -> extractNullabilityTypeFromArgument()
|
JAVAX_NONNULL_ANNOTATION_ID -> extractNullabilityTypeFromArgument()
|
||||||
COMPATQUAL_NULLABLE_ANNOTATION_ID -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NULLABLE)
|
COMPATQUAL_NULLABLE_ANNOTATION_ID -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NULLABLE)
|
||||||
COMPATQUAL_NONNULL_ANNOTATION_ID -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NOT_NULL)
|
COMPATQUAL_NONNULL_ANNOTATION_ID -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NOT_NULL)
|
||||||
@@ -84,3 +87,5 @@ private val COMPATQUAL_NULLABLE_ANNOTATION_ID = ClassId.topLevel(COMPATQUAL_NULL
|
|||||||
val COMPATQUAL_NONNULL_ANNOTATION_ID = ClassId.topLevel(COMPATQUAL_NONNULL_ANNOTATION)
|
val COMPATQUAL_NONNULL_ANNOTATION_ID = ClassId.topLevel(COMPATQUAL_NONNULL_ANNOTATION)
|
||||||
val ANDROIDX_RECENTLY_NON_NULL_ANNOTATION_ID = ClassId.topLevel(ANDROIDX_RECENTLY_NON_NULL_ANNOTATION)
|
val ANDROIDX_RECENTLY_NON_NULL_ANNOTATION_ID = ClassId.topLevel(ANDROIDX_RECENTLY_NON_NULL_ANNOTATION)
|
||||||
private val ANDROIDX_RECENTLY_NULLABLE_ANNOTATION_ID = ClassId.topLevel(ANDROIDX_RECENTLY_NULLABLE_ANNOTATION)
|
private val ANDROIDX_RECENTLY_NULLABLE_ANNOTATION_ID = ClassId.topLevel(ANDROIDX_RECENTLY_NULLABLE_ANNOTATION)
|
||||||
|
private val JSPECIFY_NULLABLE_ANNOTATION_ID = ClassId.topLevel(JSPECIFY_NULLABLE)
|
||||||
|
private val JSPECIFY_NULLNESS_UNKNOWN_ANNOTATION_ID = ClassId.topLevel(JSPECIFY_NULLNESS_UNKNOWN)
|
||||||
+3
-3
@@ -97,14 +97,12 @@ class SignatureEnhancement(
|
|||||||
} else migrationStatus
|
} else migrationStatus
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getReportLevel(annotationFqName: FqName) = javaTypeEnhancementState.getReportLevelForAnnotation(annotationFqName)
|
|
||||||
|
|
||||||
private fun commonMigrationStatus(
|
private fun commonMigrationStatus(
|
||||||
annotationFqName: FqName,
|
annotationFqName: FqName,
|
||||||
annotationDescriptor: AnnotationDescriptor,
|
annotationDescriptor: AnnotationDescriptor,
|
||||||
isForWarningOnly: Boolean = false
|
isForWarningOnly: Boolean = false
|
||||||
): NullabilityQualifierWithMigrationStatus? {
|
): NullabilityQualifierWithMigrationStatus? {
|
||||||
val reportLevel = getReportLevel(annotationFqName)
|
val reportLevel = javaTypeEnhancementState.getReportLevelForAnnotation(annotationFqName)
|
||||||
|
|
||||||
if (reportLevel.isIgnore) return null
|
if (reportLevel.isIgnore) return null
|
||||||
|
|
||||||
@@ -113,6 +111,8 @@ class SignatureEnhancement(
|
|||||||
return when (annotationFqName) {
|
return when (annotationFqName) {
|
||||||
in NULLABLE_ANNOTATIONS -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NULLABLE, isForWarning)
|
in NULLABLE_ANNOTATIONS -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NULLABLE, isForWarning)
|
||||||
in NOT_NULL_ANNOTATIONS -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NOT_NULL, isForWarning)
|
in NOT_NULL_ANNOTATIONS -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NOT_NULL, isForWarning)
|
||||||
|
JSPECIFY_NULLABLE -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NULLABLE, isForWarning)
|
||||||
|
JSPECIFY_NULLNESS_UNKNOWN -> NullabilityQualifierWithMigrationStatus(NullabilityQualifier.FORCE_FLEXIBILITY, isForWarning)
|
||||||
JAVAX_NONNULL_ANNOTATION -> annotationDescriptor.extractNullabilityTypeFromArgument(isForWarning)
|
JAVAX_NONNULL_ANNOTATION -> annotationDescriptor.extractNullabilityTypeFromArgument(isForWarning)
|
||||||
COMPATQUAL_NULLABLE_ANNOTATION ->
|
COMPATQUAL_NULLABLE_ANNOTATION ->
|
||||||
NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NULLABLE, isForWarning)
|
NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NULLABLE, isForWarning)
|
||||||
|
|||||||
Reference in New Issue
Block a user