From 503e093af3f60385870d7a934c7f75d62fa30303 Mon Sep 17 00:00:00 2001 From: Kevin Bourrillion Date: Mon, 12 Dec 2022 19:08:14 -0800 Subject: [PATCH] Change the compiler to view both old and new JSpecify packages equal Compiler uses the single reporting level for both old/new JSpecify packages --- .../java/AbstractAnnotationTypeQualifierResolver.kt | 4 ++-- .../kotlin/load/java/AnnotationQualifiersFqNames.kt | 5 +++++ .../load/java/JavaNullabilityAnnotationSettings.kt | 8 +++++++- .../jetbrains/kotlin/load/java/JvmAnnotationNames.kt | 12 ++++++++---- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/AbstractAnnotationTypeQualifierResolver.kt b/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/AbstractAnnotationTypeQualifierResolver.kt index b1a3f84ad2c..56766be9a35 100644 --- a/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/AbstractAnnotationTypeQualifierResolver.kt +++ b/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/AbstractAnnotationTypeQualifierResolver.kt @@ -184,8 +184,8 @@ abstract class AbstractAnnotationTypeQualifierResolver( val nullability = when (fqName) { in NULLABLE_ANNOTATIONS -> NullabilityQualifier.NULLABLE in NOT_NULL_ANNOTATIONS -> NullabilityQualifier.NOT_NULL - JSPECIFY_NULLABLE -> NullabilityQualifier.NULLABLE - JSPECIFY_NULLNESS_UNKNOWN -> NullabilityQualifier.FORCE_FLEXIBILITY + JSPECIFY_OLD_NULLABLE, JSPECIFY_NULLABLE -> NullabilityQualifier.NULLABLE + JSPECIFY_OLD_NULLNESS_UNKNOWN, JSPECIFY_NULLNESS_UNKNOWN -> NullabilityQualifier.FORCE_FLEXIBILITY JAVAX_NONNULL_ANNOTATION -> when (annotation.enumArguments(onlyValue = false).firstOrNull()) { "ALWAYS", null -> NullabilityQualifier.NOT_NULL diff --git a/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/AnnotationQualifiersFqNames.kt b/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/AnnotationQualifiersFqNames.kt index 4acf719d0f0..031a4b65c0b 100644 --- a/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/AnnotationQualifiersFqNames.kt +++ b/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/AnnotationQualifiersFqNames.kt @@ -30,6 +30,11 @@ val DEFAULT_JSPECIFY_APPLICABILITY = listOf( ) val JSPECIFY_DEFAULT_ANNOTATIONS = mapOf( + JSPECIFY_OLD_NULL_MARKED to JavaDefaultQualifiers( + NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NOT_NULL), + DEFAULT_JSPECIFY_APPLICABILITY, + definitelyNotNull = false + ), JSPECIFY_NULL_MARKED to JavaDefaultQualifiers( NullabilityQualifierWithMigrationStatus(NullabilityQualifier.NOT_NULL), DEFAULT_JSPECIFY_APPLICABILITY, diff --git a/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/JavaNullabilityAnnotationSettings.kt b/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/JavaNullabilityAnnotationSettings.kt index 6de79bb4c04..832064f6476 100644 --- a/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/JavaNullabilityAnnotationSettings.kt +++ b/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/JavaNullabilityAnnotationSettings.kt @@ -9,7 +9,8 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.findValueForMostSpecificFqname import org.jetbrains.kotlin.storage.LockBasedStorageManager -val JSPECIFY_ANNOTATIONS_PACKAGE = FqName("org.jspecify.nullness") +val JSPECIFY_OLD_ANNOTATIONS_PACKAGE = FqName("org.jspecify.nullness") +val JSPECIFY_ANNOTATIONS_PACKAGE = FqName("org.jspecify.annotations") val RXJAVA3_ANNOTATIONS_PACKAGE = FqName("io.reactivex.rxjava3.annotations") val CHECKER_FRAMEWORK_COMPATQUAL_ANNOTATIONS_PACKAGE = FqName("org.checkerframework.checker.nullness.compatqual") @@ -42,6 +43,11 @@ val NULLABILITY_ANNOTATION_SETTINGS: NullabilityAnnotationStates() + COMPATQUAL_NONNULL_ANNOTATION + ANDROIDX_RECENTLY_NULLABLE_ANNOTATION + ANDROIDX_RECENTLY_NON_NULL_ANNOTATION + + JSPECIFY_OLD_NULLABLE + + JSPECIFY_OLD_NULL_MARKED + JSPECIFY_NULLABLE + - JSPECIFY_NULLNESS_UNKNOWN + JSPECIFY_NULL_MARKED val READ_ONLY_ANNOTATIONS = setOf(