Load enum/array annotation arguments for not found classes
It's necessary to load type qualifier related annotations without JSR305 annotations being in the classpath #KT-19419 In Progress
This commit is contained in:
+3
@@ -72,6 +72,9 @@ class JavaEnumValueAnnotationArgumentImpl(
|
||||
else -> throw IllegalStateException("Reference argument should be an enum value, but was $element: ${element.text}")
|
||||
}
|
||||
}
|
||||
|
||||
override val entryName: Name?
|
||||
get() = psiReference.referenceName?.let(Name::identifier)
|
||||
}
|
||||
|
||||
class JavaClassObjectAnnotationArgumentImpl(
|
||||
|
||||
+4
-2
@@ -184,12 +184,14 @@ class PlainJavaAnnotationAsAnnotationArgument(
|
||||
class PlainJavaEnumValueAnnotationArgument(
|
||||
name: String?,
|
||||
private val desc: String,
|
||||
private val entryName: String,
|
||||
entryName: String,
|
||||
private val context: ClassifierResolutionContext
|
||||
) : PlainJavaAnnotationArgument(name), JavaEnumValueAnnotationArgument {
|
||||
override val entryName = Name.identifier(entryName)
|
||||
|
||||
override fun resolve(): JavaField? {
|
||||
val javaClass = context.resolveByInternalName(Type.getType(desc).internalName).classifier as? JavaClass ?: return null
|
||||
return javaClass.fields.singleOrNull { it.name.asString() == entryName }
|
||||
return javaClass.fields.singleOrNull { it.name == entryName }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user