Resolve qualifier nicknames to default annotations without JSR305 jar
#KT-19419 In Progress
This commit is contained in:
+2
-2
@@ -56,7 +56,7 @@ class TypeQualifierAnnotationResolverTest : KtUsefulTestCase() {
|
|||||||
assertMethodHasUnwrappedAnnotation(
|
assertMethodHasUnwrappedAnnotation(
|
||||||
aClass, typeQualifierResolver,
|
aClass, typeQualifierResolver,
|
||||||
"checkForNull",
|
"checkForNull",
|
||||||
"@javax.annotation.Nonnull(when = When.MAYBE)"
|
"@javax.annotation.CheckForNull()"
|
||||||
)
|
)
|
||||||
|
|
||||||
assertMethodHasUnwrappedAnnotation(
|
assertMethodHasUnwrappedAnnotation(
|
||||||
@@ -78,7 +78,7 @@ class TypeQualifierAnnotationResolverTest : KtUsefulTestCase() {
|
|||||||
assertMethodHasUnwrappedAnnotation(
|
assertMethodHasUnwrappedAnnotation(
|
||||||
aClass, typeQualifierResolver,
|
aClass, typeQualifierResolver,
|
||||||
"myNullable",
|
"myNullable",
|
||||||
"@javax.annotation.Nonnull(when = When.MAYBE)"
|
"@javax.annotation.CheckForNull()"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-1
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.resolve.constants.ArrayValue
|
|||||||
import org.jetbrains.kotlin.resolve.constants.ConstantValue
|
import org.jetbrains.kotlin.resolve.constants.ConstantValue
|
||||||
import org.jetbrains.kotlin.resolve.constants.EnumValue
|
import org.jetbrains.kotlin.resolve.constants.EnumValue
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.annotationClass
|
import org.jetbrains.kotlin.resolve.descriptorUtil.annotationClass
|
||||||
|
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult
|
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
|
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)
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ val NULLABLE_ANNOTATIONS = listOf(
|
|||||||
)
|
)
|
||||||
|
|
||||||
val JAVAX_NONNULL_ANNOTATION = FqName("javax.annotation.Nonnull")
|
val JAVAX_NONNULL_ANNOTATION = FqName("javax.annotation.Nonnull")
|
||||||
|
val JAVAX_CHECKFORNULL_ANNOTATION = FqName("javax.annotation.CheckForNull")
|
||||||
|
|
||||||
val NOT_NULL_ANNOTATIONS = listOf(
|
val NOT_NULL_ANNOTATIONS = listOf(
|
||||||
JvmAnnotationNames.JETBRAINS_NOT_NULL_ANNOTATION,
|
JvmAnnotationNames.JETBRAINS_NOT_NULL_ANNOTATION,
|
||||||
|
|||||||
Reference in New Issue
Block a user