From a7324ebad28f92fe6144b531860354b6ee68a86c Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 23 Dec 2015 14:45:19 +0300 Subject: [PATCH] Minor, additional constructor for JvmPackagePartSource --- .../kotlin/load/kotlin/DeserializedDescriptorResolver.java | 3 +-- .../org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt | 2 ++ .../classFile/DeserializerForClassfileDecompiler.kt | 4 +--- .../kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt | 5 ++--- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.java index 413424f4fe1..f36e43fd5b7 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.java @@ -23,7 +23,6 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor; import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor; import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader; import org.jetbrains.kotlin.name.Name; -import org.jetbrains.kotlin.resolve.jvm.JvmClassName; import org.jetbrains.kotlin.resolve.scopes.ChainedMemberScope; import org.jetbrains.kotlin.resolve.scopes.MemberScope; import org.jetbrains.kotlin.serialization.ClassData; @@ -80,7 +79,7 @@ public final class DeserializedDescriptorResolver { String[] strings = kotlinClass.getClassHeader().getStrings(); assert strings != null : "String table not found in " + kotlinClass; PackageData packageData = JvmProtoBufUtil.readPackageDataFrom(data, strings); - JvmPackagePartSource source = new JvmPackagePartSource(JvmClassName.byClassId(kotlinClass.getClassId())); + JvmPackagePartSource source = new JvmPackagePartSource(kotlinClass.getClassId()); return new DeserializedPackageMemberScope( descriptor, packageData.getPackageProto(), packageData.getNameResolver(), source, components, new Function0>() { diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt index 90e932118c0..9c2c757f9de 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt @@ -22,6 +22,8 @@ import org.jetbrains.kotlin.resolve.jvm.JvmClassName import org.jetbrains.kotlin.serialization.deserialization.descriptors.PackagePartSource class JvmPackagePartSource(val className: JvmClassName) : PackagePartSource { + constructor(classId: ClassId) : this(JvmClassName.byClassId(classId)) + val simpleName: Name get() = Name.identifier(className.internalName.substringAfterLast('/')) val classId: ClassId get() = ClassId(className.packageFqName, simpleName) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/classFile/DeserializerForClassfileDecompiler.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/classFile/DeserializerForClassfileDecompiler.kt index c42bceb48ff..f6881d51beb 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/classFile/DeserializerForClassfileDecompiler.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/classFile/DeserializerForClassfileDecompiler.kt @@ -28,7 +28,6 @@ import org.jetbrains.kotlin.load.kotlin.* import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.resolve.TargetPlatform -import org.jetbrains.kotlin.resolve.jvm.JvmClassName import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform import org.jetbrains.kotlin.serialization.ClassDataWithSource import org.jetbrains.kotlin.serialization.deserialization.ClassDataFinder @@ -81,8 +80,7 @@ public class DeserializerForClassfileDecompiler( val (nameResolver, packageProto) = JvmProtoBufUtil.readPackageDataFrom(annotationData, strings) val membersScope = DeserializedPackageMemberScope( createDummyPackageFragment(packageFqName), packageProto, nameResolver, - JvmPackagePartSource(JvmClassName.byClassId(binaryClassForPackageClass!!.classId)), - deserializationComponents + JvmPackagePartSource(binaryClassForPackageClass!!.classId), deserializationComponents ) { emptyList() } return membersScope.getContributedDescriptors().toList() } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt index b82aa8086e7..b5206eed937 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt @@ -33,7 +33,6 @@ import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.stubs.KotlinUserTypeStub import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes import org.jetbrains.kotlin.psi.stubs.impl.* -import org.jetbrains.kotlin.resolve.jvm.JvmClassName import org.jetbrains.kotlin.serialization.Flags import org.jetbrains.kotlin.serialization.ProtoBuf import org.jetbrains.kotlin.serialization.deserialization.AnnotatedCallableKind @@ -68,7 +67,7 @@ fun createFileFacadeStub( val fileStub = KotlinFileStubForIde.forFileFacadeStub(facadeFqName, packageFqName.isRoot) setupFileStub(fileStub, packageFqName) val container = ProtoContainer.Package( - packageFqName, c.nameResolver, c.typeTable, JvmPackagePartSource(JvmClassName.byFqNameWithoutInnerClasses(facadeFqName)) + packageFqName, c.nameResolver, c.typeTable, JvmPackagePartSource(ClassId.topLevel(facadeFqName)) ) createCallableStubs(fileStub, c, container, packageProto.functionList, packageProto.propertyList) return fileStub @@ -89,7 +88,7 @@ fun createMultifileClassStub( val (nameResolver, packageProto) = JvmProtoBufUtil.readPackageDataFrom(partHeader.annotationData!!, partHeader.strings!!) val partContext = components.createContext(nameResolver, packageFqName, TypeTable(packageProto.typeTable)) val container = ProtoContainer.Package(packageFqName, partContext.nameResolver, partContext.typeTable, - JvmPackagePartSource(JvmClassName.byClassId(partFile.classId))) + JvmPackagePartSource(partFile.classId)) createCallableStubs(fileStub, partContext, container, packageProto.functionList, packageProto.propertyList) } return fileStub