Avoid retaining reference to ProtoBuf.Package in JvmPackagePartSource
Otherwise, 2e933a165a doesn't help
This commit is contained in:
@@ -28,11 +28,7 @@ fun getJvmModuleNameForDeserializedDescriptor(descriptor: DeclarationDescriptor)
|
|||||||
descriptor is DeserializedMemberDescriptor -> {
|
descriptor is DeserializedMemberDescriptor -> {
|
||||||
val source = descriptor.containerSource
|
val source = descriptor.containerSource
|
||||||
if (source is JvmPackagePartSource) {
|
if (source is JvmPackagePartSource) {
|
||||||
val packageProto = source.packageProto
|
return source.moduleName
|
||||||
val nameResolver = source.nameResolver
|
|
||||||
return packageProto.getExtensionOrNull(JvmProtoBuf.packageModuleName)
|
|
||||||
?.let(nameResolver::getString)
|
|
||||||
?: JvmAbi.DEFAULT_MODULE_NAME
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,8 +17,11 @@
|
|||||||
package org.jetbrains.kotlin.load.kotlin
|
package org.jetbrains.kotlin.load.kotlin
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.SourceFile
|
import org.jetbrains.kotlin.descriptors.SourceFile
|
||||||
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||||
import org.jetbrains.kotlin.metadata.deserialization.NameResolver
|
import org.jetbrains.kotlin.metadata.deserialization.NameResolver
|
||||||
|
import org.jetbrains.kotlin.metadata.deserialization.getExtensionOrNull
|
||||||
|
import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
||||||
@@ -28,8 +31,8 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
|
|||||||
class JvmPackagePartSource(
|
class JvmPackagePartSource(
|
||||||
val className: JvmClassName,
|
val className: JvmClassName,
|
||||||
val facadeClassName: JvmClassName?,
|
val facadeClassName: JvmClassName?,
|
||||||
val packageProto: ProtoBuf.Package,
|
packageProto: ProtoBuf.Package,
|
||||||
val nameResolver: NameResolver,
|
nameResolver: NameResolver,
|
||||||
override val incompatibility: IncompatibleVersionErrorData<JvmMetadataVersion>? = null,
|
override val incompatibility: IncompatibleVersionErrorData<JvmMetadataVersion>? = null,
|
||||||
override val isPreReleaseInvisible: Boolean = false,
|
override val isPreReleaseInvisible: Boolean = false,
|
||||||
val knownJvmBinaryClass: KotlinJvmBinaryClass? = null
|
val knownJvmBinaryClass: KotlinJvmBinaryClass? = null
|
||||||
@@ -52,6 +55,10 @@ class JvmPackagePartSource(
|
|||||||
kotlinClass
|
kotlinClass
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val moduleName =
|
||||||
|
packageProto.getExtensionOrNull(JvmProtoBuf.packageModuleName)?.let(nameResolver::getString)
|
||||||
|
?: JvmAbi.DEFAULT_MODULE_NAME
|
||||||
|
|
||||||
override val presentableString: String
|
override val presentableString: String
|
||||||
get() = "Class '${classId.asSingleFqName().asString()}'"
|
get() = "Class '${classId.asSingleFqName().asString()}'"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user