Add getExtensionOrNull utility for protobuf messages

This commit is contained in:
Alexander Udalov
2018-02-07 15:31:21 +01:00
parent 65a6171782
commit 7123202670
11 changed files with 51 additions and 55 deletions
@@ -38,6 +38,7 @@ import org.jetbrains.kotlin.resolve.jvm.JvmClassName
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOriginKind
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPropertyDescriptor
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedSimpleFunctionDescriptor
import org.jetbrains.kotlin.serialization.deserialization.getExtensionOrNull
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBufUtil
@@ -164,8 +165,8 @@ private object ByJvmSignatureIndexer : DecompiledTextIndexer<ClassNameAndSignatu
if (descriptor is DeserializedPropertyDescriptor) {
val proto = descriptor.proto
val className = (descriptor.containingDeclaration as? ClassDescriptor)?.relativeClassName().orEmpty()
if (proto.hasExtension(JvmProtoBuf.propertySignature)) {
val signature = proto.getExtension(JvmProtoBuf.propertySignature)
val signature = proto.getExtensionOrNull(JvmProtoBuf.propertySignature)
if (signature != null) {
val fieldSignature = JvmProtoBufUtil.getJvmFieldSignature(proto, descriptor.nameResolver, descriptor.typeTable)
if (fieldSignature != null) {
save(className, MemberSignature.fromFieldNameAndDesc(fieldSignature.name, fieldSignature.desc))