Refactor: extract AnnotationDescriptor.annotationClass utility
This commit is contained in:
+2
-2
@@ -20,14 +20,14 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationArgumentVisitor
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
|
||||
import org.jetbrains.kotlin.resolve.constants.*
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.annotationClass
|
||||
import org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.Argument.Value
|
||||
import org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.Argument.Value.Type
|
||||
import org.jetbrains.kotlin.types.ErrorUtils
|
||||
|
||||
class AnnotationSerializer(private val stringTable: StringTable) {
|
||||
fun serializeAnnotation(annotation: AnnotationDescriptor): ProtoBuf.Annotation = ProtoBuf.Annotation.newBuilder().apply {
|
||||
val annotationClass = annotation.type.constructor.declarationDescriptor as? ClassDescriptor
|
||||
?: error("Annotation type is not a class: ${annotation.type}")
|
||||
val annotationClass = annotation.annotationClass ?: error("Annotation type is not a class: ${annotation.type}")
|
||||
if (ErrorUtils.isError(annotationClass)) {
|
||||
error("Unresolved annotation type: ${annotation.type} at ${annotation.source.containingFile}")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user