Minor, add utility to get class name from StringTable via ClassId
This commit is contained in:
+1
-1
@@ -81,7 +81,7 @@ class AnnotationSerializer(private val stringTable: DescriptorAwareStringTable)
|
||||
|
||||
override fun visitEnumValue(value: EnumValue, data: Unit) {
|
||||
type = Type.ENUM
|
||||
classId = stringTable.getQualifiedClassNameIndex(value.enumClassId.asString(), value.enumClassId.isLocal)
|
||||
classId = stringTable.getQualifiedClassNameIndex(value.enumClassId)
|
||||
enumValueId = stringTable.getStringIndex(value.enumEntryName.asString())
|
||||
}
|
||||
|
||||
|
||||
+6
-3
@@ -13,16 +13,19 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.classId
|
||||
import org.jetbrains.kotlin.types.ErrorUtils
|
||||
|
||||
interface DescriptorAwareStringTable : StringTable {
|
||||
fun getQualifiedClassNameIndex(classId: ClassId): Int =
|
||||
getQualifiedClassNameIndex(classId.asString(), classId.isLocal)
|
||||
|
||||
fun getFqNameIndex(descriptor: ClassifierDescriptorWithTypeParameters): Int {
|
||||
if (ErrorUtils.isError(descriptor)) {
|
||||
throw IllegalStateException("Cannot get FQ name of error class: ${renderDescriptor(descriptor)}")
|
||||
}
|
||||
|
||||
val classId = descriptor.classId
|
||||
?: getLocalClassIdReplacement(descriptor)
|
||||
?: throw IllegalStateException("Cannot get FQ name of local class: ${renderDescriptor(descriptor)}")
|
||||
?: getLocalClassIdReplacement(descriptor)
|
||||
?: throw IllegalStateException("Cannot get FQ name of local class: ${renderDescriptor(descriptor)}")
|
||||
|
||||
return getQualifiedClassNameIndex(classId.asString(), classId.isLocal)
|
||||
return getQualifiedClassNameIndex(classId)
|
||||
}
|
||||
|
||||
fun getLocalClassIdReplacement(descriptor: ClassifierDescriptorWithTypeParameters): ClassId? = null
|
||||
|
||||
@@ -50,7 +50,7 @@ open class StringTableImpl : DescriptorAwareStringTable {
|
||||
override fun getQualifiedClassNameIndex(className: String, isLocal: Boolean): Int =
|
||||
getQualifiedClassNameIndex(ClassId.fromString(className, isLocal))
|
||||
|
||||
private fun getQualifiedClassNameIndex(classId: ClassId): Int {
|
||||
override fun getQualifiedClassNameIndex(classId: ClassId): Int {
|
||||
val builder = QualifiedName.newBuilder()
|
||||
builder.kind = QualifiedName.Kind.CLASS
|
||||
|
||||
|
||||
Reference in New Issue
Block a user