diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/TypeQualifierAnnotationResolverTest.kt b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/TypeQualifierAnnotationResolverTest.kt index e3d5e1e693d..49cd772e540 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/TypeQualifierAnnotationResolverTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/TypeQualifierAnnotationResolverTest.kt @@ -56,7 +56,7 @@ class TypeQualifierAnnotationResolverTest : KtUsefulTestCase() { assertMethodHasUnwrappedAnnotation( aClass, typeQualifierResolver, "checkForNull", - "@javax.annotation.Nonnull(when = When.MAYBE)" + "@javax.annotation.CheckForNull()" ) assertMethodHasUnwrappedAnnotation( @@ -78,7 +78,7 @@ class TypeQualifierAnnotationResolverTest : KtUsefulTestCase() { assertMethodHasUnwrappedAnnotation( aClass, typeQualifierResolver, "myNullable", - "@javax.annotation.Nonnull(when = When.MAYBE)" + "@javax.annotation.CheckForNull()" ) } diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/AnnotationTypeQualifierResolver.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/AnnotationTypeQualifierResolver.kt index 61380b84d84..23d133ccb68 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/AnnotationTypeQualifierResolver.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/AnnotationTypeQualifierResolver.kt @@ -26,6 +26,7 @@ import org.jetbrains.kotlin.resolve.constants.ArrayValue import org.jetbrains.kotlin.resolve.constants.ConstantValue import org.jetbrains.kotlin.resolve.constants.EnumValue import org.jetbrains.kotlin.resolve.descriptorUtil.annotationClass +import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.storage.StorageManager import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult @@ -121,5 +122,7 @@ class AnnotationTypeQualifierResolverImpl(storageManager: StorageManager) : Anno } } +val BUILT_IN_TYPE_QUALIFIER_FQ_NAMES = setOf(JAVAX_NONNULL_ANNOTATION, JAVAX_CHECKFORNULL_ANNOTATION) + private val ClassDescriptor.isAnnotatedWithTypeQualifier: Boolean - get() = annotations.hasAnnotation(TYPE_QUALIFIER_FQNAME) + get() = fqNameSafe in BUILT_IN_TYPE_QUALIFIER_FQ_NAMES || annotations.hasAnnotation(TYPE_QUALIFIER_FQNAME) diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAnnotationNames.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAnnotationNames.kt index 30c18d35c6a..998a0acf94f 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAnnotationNames.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAnnotationNames.kt @@ -33,6 +33,7 @@ val NULLABLE_ANNOTATIONS = listOf( ) val JAVAX_NONNULL_ANNOTATION = FqName("javax.annotation.Nonnull") +val JAVAX_CHECKFORNULL_ANNOTATION = FqName("javax.annotation.CheckForNull") val NOT_NULL_ANNOTATIONS = listOf( JvmAnnotationNames.JETBRAINS_NOT_NULL_ANNOTATION,