Minor, additional constructor for JvmPackagePartSource

This commit is contained in:
Alexander Udalov
2015-12-23 14:45:19 +03:00
parent 12e921ab15
commit a7324ebad2
4 changed files with 6 additions and 8 deletions
@@ -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<Collection<Name>>() {
@@ -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)
@@ -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()
}
@@ -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