Do not load built-ins in old format, drop class_name extension
This commit is contained in:
-11
@@ -17,10 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.serialization.builtins
|
package org.jetbrains.kotlin.serialization.builtins
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol
|
import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
|
||||||
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
|
||||||
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
|
||||||
import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase
|
import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
|
|
||||||
@@ -32,14 +29,6 @@ class BuiltInsSerializerExtension(
|
|||||||
override fun serializePackage(proto: ProtoBuf.Package.Builder) {
|
override fun serializePackage(proto: ProtoBuf.Package.Builder) {
|
||||||
if (packageFragments.isEmpty()) return
|
if (packageFragments.isEmpty()) return
|
||||||
|
|
||||||
val classes = packageFragments.flatMap {
|
|
||||||
it.getMemberScope().getContributedDescriptors(DescriptorKindFilter.CLASSIFIERS).filterIsInstance<ClassDescriptor>()
|
|
||||||
}
|
|
||||||
|
|
||||||
for (descriptor in DescriptorSerializer.sort(classes)) {
|
|
||||||
proto.addExtension(BuiltInsProtoBuf.className, stringTable.getSimpleNameIndex(descriptor.name))
|
|
||||||
}
|
|
||||||
|
|
||||||
proto.setExtension(BuiltInsProtoBuf.packageFqName, stringTable.getPackageFqNameIndex(packageFragments.first().fqName))
|
proto.setExtension(BuiltInsProtoBuf.packageFqName, stringTable.getPackageFqNameIndex(packageFragments.first().fqName))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+42
-57
@@ -7,7 +7,6 @@ public final class DebugBuiltInsProtoBuf {
|
|||||||
private DebugBuiltInsProtoBuf() {}
|
private DebugBuiltInsProtoBuf() {}
|
||||||
public static void registerAllExtensions(
|
public static void registerAllExtensions(
|
||||||
com.google.protobuf.ExtensionRegistry registry) {
|
com.google.protobuf.ExtensionRegistry registry) {
|
||||||
registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.className);
|
|
||||||
registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.packageFqName);
|
registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.packageFqName);
|
||||||
registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.classAnnotation);
|
registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.classAnnotation);
|
||||||
registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.constructorAnnotation);
|
registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.constructorAnnotation);
|
||||||
@@ -1308,17 +1307,6 @@ public final class DebugBuiltInsProtoBuf {
|
|||||||
// @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.builtins.BuiltIns)
|
// @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.builtins.BuiltIns)
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final int CLASS_NAME_FIELD_NUMBER = 150;
|
|
||||||
/**
|
|
||||||
* <code>extend .org.jetbrains.kotlin.serialization.Package { ... }</code>
|
|
||||||
*/
|
|
||||||
public static final
|
|
||||||
com.google.protobuf.GeneratedMessage.GeneratedExtension<
|
|
||||||
org.jetbrains.kotlin.serialization.DebugProtoBuf.Package,
|
|
||||||
java.util.List<java.lang.Integer>> className = com.google.protobuf.GeneratedMessage
|
|
||||||
.newFileScopedGeneratedExtension(
|
|
||||||
java.lang.Integer.class,
|
|
||||||
null);
|
|
||||||
public static final int PACKAGE_FQ_NAME_FIELD_NUMBER = 151;
|
public static final int PACKAGE_FQ_NAME_FIELD_NUMBER = 151;
|
||||||
/**
|
/**
|
||||||
* <code>extend .org.jetbrains.kotlin.serialization.Package { ... }</code>
|
* <code>extend .org.jetbrains.kotlin.serialization.Package { ... }</code>
|
||||||
@@ -1453,40 +1441,38 @@ public final class DebugBuiltInsProtoBuf {
|
|||||||
"ion.QualifiedNameTable\022<\n\007package\030\003 \001(\0132" +
|
"ion.QualifiedNameTable\022<\n\007package\030\003 \001(\0132" +
|
||||||
"+.org.jetbrains.kotlin.serialization.Pac" +
|
"+.org.jetbrains.kotlin.serialization.Pac" +
|
||||||
"kage\0228\n\005class\030\004 \003(\0132).org.jetbrains.kotl",
|
"kage\0228\n\005class\030\004 \003(\0132).org.jetbrains.kotl",
|
||||||
"in.serialization.Class:D\n\nclass_name\022+.o" +
|
"in.serialization.Class:E\n\017package_fq_nam" +
|
||||||
"rg.jetbrains.kotlin.serialization.Packag" +
|
"e\022+.org.jetbrains.kotlin.serialization.P" +
|
||||||
"e\030\226\001 \003(\005B\002\020\001:E\n\017package_fq_name\022+.org.je" +
|
"ackage\030\227\001 \001(\005:t\n\020class_annotation\022).org." +
|
||||||
"tbrains.kotlin.serialization.Package\030\227\001 " +
|
"jetbrains.kotlin.serialization.Class\030\226\001 " +
|
||||||
"\001(\005:t\n\020class_annotation\022).org.jetbrains." +
|
"\003(\0132..org.jetbrains.kotlin.serialization" +
|
||||||
"kotlin.serialization.Class\030\226\001 \003(\0132..org." +
|
".Annotation:\200\001\n\026constructor_annotation\022/" +
|
||||||
"jetbrains.kotlin.serialization.Annotatio" +
|
".org.jetbrains.kotlin.serialization.Cons" +
|
||||||
"n:\200\001\n\026constructor_annotation\022/.org.jetbr" +
|
"tructor\030\226\001 \003(\0132..org.jetbrains.kotlin.se" +
|
||||||
"ains.kotlin.serialization.Constructor\030\226\001" +
|
"rialization.Annotation:z\n\023function_annot" +
|
||||||
" \003(\0132..org.jetbrains.kotlin.serializatio",
|
"ation\022,.org.jetbrains.kotlin.serializati",
|
||||||
"n.Annotation:z\n\023function_annotation\022,.or" +
|
"on.Function\030\226\001 \003(\0132..org.jetbrains.kotli" +
|
||||||
"g.jetbrains.kotlin.serialization.Functio" +
|
"n.serialization.Annotation:z\n\023property_a" +
|
||||||
"n\030\226\001 \003(\0132..org.jetbrains.kotlin.serializ" +
|
"nnotation\022,.org.jetbrains.kotlin.seriali" +
|
||||||
"ation.Annotation:z\n\023property_annotation\022" +
|
"zation.Property\030\226\001 \003(\0132..org.jetbrains.k" +
|
||||||
",.org.jetbrains.kotlin.serialization.Pro" +
|
"otlin.serialization.Annotation:\210\001\n\022compi" +
|
||||||
"perty\030\226\001 \003(\0132..org.jetbrains.kotlin.seri" +
|
"le_time_value\022,.org.jetbrains.kotlin.ser" +
|
||||||
"alization.Annotation:\210\001\n\022compile_time_va" +
|
"ialization.Property\030\227\001 \001(\0132=.org.jetbrai" +
|
||||||
"lue\022,.org.jetbrains.kotlin.serialization" +
|
"ns.kotlin.serialization.Annotation.Argum" +
|
||||||
".Property\030\227\001 \001(\0132=.org.jetbrains.kotlin." +
|
"ent.Value:}\n\025enum_entry_annotation\022-.org" +
|
||||||
"serialization.Annotation.Argument.Value:",
|
".jetbrains.kotlin.serialization.EnumEntr",
|
||||||
"}\n\025enum_entry_annotation\022-.org.jetbrains" +
|
"y\030\226\001 \003(\0132..org.jetbrains.kotlin.serializ" +
|
||||||
".kotlin.serialization.EnumEntry\030\226\001 \003(\0132." +
|
"ation.Annotation:\201\001\n\024parameter_annotatio" +
|
||||||
".org.jetbrains.kotlin.serialization.Anno" +
|
"n\0222.org.jetbrains.kotlin.serialization.V" +
|
||||||
"tation:\201\001\n\024parameter_annotation\0222.org.je" +
|
"alueParameter\030\226\001 \003(\0132..org.jetbrains.kot" +
|
||||||
"tbrains.kotlin.serialization.ValueParame" +
|
"lin.serialization.Annotation:r\n\017type_ann" +
|
||||||
"ter\030\226\001 \003(\0132..org.jetbrains.kotlin.serial" +
|
"otation\022(.org.jetbrains.kotlin.serializa" +
|
||||||
"ization.Annotation:r\n\017type_annotation\022(." +
|
"tion.Type\030\226\001 \003(\0132..org.jetbrains.kotlin." +
|
||||||
"org.jetbrains.kotlin.serialization.Type\030" +
|
"serialization.Annotation:\205\001\n\031type_parame" +
|
||||||
"\226\001 \003(\0132..org.jetbrains.kotlin.serializat" +
|
"ter_annotation\0221.org.jetbrains.kotlin.se" +
|
||||||
"ion.Annotation:\205\001\n\031type_parameter_annota",
|
"rialization.TypeParameter\030\226\001 \003(\0132..org.j",
|
||||||
"tion\0221.org.jetbrains.kotlin.serializatio" +
|
"etbrains.kotlin.serialization.Annotation" +
|
||||||
"n.TypeParameter\030\226\001 \003(\0132..org.jetbrains.k" +
|
"B\027B\025DebugBuiltInsProtoBuf"
|
||||||
"otlin.serialization.AnnotationB\027B\025DebugB" +
|
|
||||||
"uiltInsProtoBuf"
|
|
||||||
};
|
};
|
||||||
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
|
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
|
||||||
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
|
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
|
||||||
@@ -1499,17 +1485,16 @@ public final class DebugBuiltInsProtoBuf {
|
|||||||
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
|
||||||
internal_static_org_jetbrains_kotlin_serialization_builtins_BuiltIns_descriptor,
|
internal_static_org_jetbrains_kotlin_serialization_builtins_BuiltIns_descriptor,
|
||||||
new java.lang.String[] { "Strings", "QualifiedNames", "Package", "Class", });
|
new java.lang.String[] { "Strings", "QualifiedNames", "Package", "Class", });
|
||||||
className.internalInit(descriptor.getExtensions().get(0));
|
packageFqName.internalInit(descriptor.getExtensions().get(0));
|
||||||
packageFqName.internalInit(descriptor.getExtensions().get(1));
|
classAnnotation.internalInit(descriptor.getExtensions().get(1));
|
||||||
classAnnotation.internalInit(descriptor.getExtensions().get(2));
|
constructorAnnotation.internalInit(descriptor.getExtensions().get(2));
|
||||||
constructorAnnotation.internalInit(descriptor.getExtensions().get(3));
|
functionAnnotation.internalInit(descriptor.getExtensions().get(3));
|
||||||
functionAnnotation.internalInit(descriptor.getExtensions().get(4));
|
propertyAnnotation.internalInit(descriptor.getExtensions().get(4));
|
||||||
propertyAnnotation.internalInit(descriptor.getExtensions().get(5));
|
compileTimeValue.internalInit(descriptor.getExtensions().get(5));
|
||||||
compileTimeValue.internalInit(descriptor.getExtensions().get(6));
|
enumEntryAnnotation.internalInit(descriptor.getExtensions().get(6));
|
||||||
enumEntryAnnotation.internalInit(descriptor.getExtensions().get(7));
|
parameterAnnotation.internalInit(descriptor.getExtensions().get(7));
|
||||||
parameterAnnotation.internalInit(descriptor.getExtensions().get(8));
|
typeAnnotation.internalInit(descriptor.getExtensions().get(8));
|
||||||
typeAnnotation.internalInit(descriptor.getExtensions().get(9));
|
typeParameterAnnotation.internalInit(descriptor.getExtensions().get(9));
|
||||||
typeParameterAnnotation.internalInit(descriptor.getExtensions().get(10));
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -18,8 +18,6 @@ package org.jetbrains.kotlin.builtins
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
|
||||||
import org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf
|
import org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializedPackageFragment
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializedPackageFragment
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.NameResolverImpl
|
import org.jetbrains.kotlin.serialization.deserialization.NameResolverImpl
|
||||||
@@ -34,7 +32,8 @@ class BuiltinsPackageFragment(
|
|||||||
module: ModuleDescriptor,
|
module: ModuleDescriptor,
|
||||||
loadResource: (path: String) -> InputStream?
|
loadResource: (path: String) -> InputStream?
|
||||||
) : DeserializedPackageFragment(fqName, storageManager, module, BuiltInsSerializedResourcePaths, loadResource) {
|
) : DeserializedPackageFragment(fqName, storageManager, module, BuiltInsSerializedResourcePaths, loadResource) {
|
||||||
val builtinsMessage = loadResource(BuiltInsSerializedResourcePaths.getBuiltInsFilePath(fqName))?.let { stream ->
|
private val builtinsMessage = run {
|
||||||
|
val stream = loadResourceSure(BuiltInsSerializedResourcePaths.getBuiltInsFilePath(fqName))
|
||||||
val dataInput = DataInputStream(stream)
|
val dataInput = DataInputStream(stream)
|
||||||
val version = BuiltInsBinaryVersion(*(1..dataInput.readInt()).map { dataInput.readInt() }.toIntArray())
|
val version = BuiltInsBinaryVersion(*(1..dataInput.readInt()).map { dataInput.readInt() }.toIntArray())
|
||||||
|
|
||||||
@@ -50,24 +49,16 @@ class BuiltinsPackageFragment(
|
|||||||
BuiltInsProtoBuf.BuiltIns.parseFrom(stream, BuiltInsSerializedResourcePaths.extensionRegistry)
|
BuiltInsProtoBuf.BuiltIns.parseFrom(stream, BuiltInsSerializedResourcePaths.extensionRegistry)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val nameResolver =
|
override val nameResolver = NameResolverImpl(builtinsMessage.strings, builtinsMessage.qualifiedNames)
|
||||||
builtinsMessage?.let { NameResolverImpl(it.strings, it.qualifiedNames) }
|
|
||||||
?: NameResolverImpl.read(loadResourceSure(serializedResourcePaths.getStringTableFilePath(fqName)))
|
|
||||||
|
|
||||||
override val classIdToProto = builtinsMessage?.let { builtins ->
|
override val classIdToProto =
|
||||||
builtins.classList.toMapBy { klass ->
|
builtinsMessage.classList.toMapBy { klass ->
|
||||||
nameResolver.getClassId(klass.fqName)
|
nameResolver.getClassId(klass.fqName)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
override fun computeMemberScope() = builtinsMessage?.let { builtins ->
|
override fun computeMemberScope() =
|
||||||
DeserializedPackageMemberScope(
|
DeserializedPackageMemberScope(
|
||||||
this, builtins.`package`, nameResolver, packagePartSource = null, components = components,
|
this, builtinsMessage.`package`, nameResolver, packagePartSource = null, components = components,
|
||||||
classNames = { classIdToProto!!.keys.filter { classId -> !classId.isNestedClass }.map { it.shortClassName } }
|
classNames = { classIdToProto.keys.filter { classId -> !classId.isNestedClass }.map { it.shortClassName } }
|
||||||
)
|
)
|
||||||
} ?: super.computeMemberScope()
|
|
||||||
|
|
||||||
override fun loadClassNames(packageProto: ProtoBuf.Package): Collection<Name> {
|
|
||||||
return packageProto.getExtension(BuiltInsProtoBuf.className)?.map { id -> nameResolver.getName(id) } ?: listOf()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,8 +31,6 @@ message BuiltIns {
|
|||||||
}
|
}
|
||||||
|
|
||||||
extend Package {
|
extend Package {
|
||||||
// id in StringTable
|
|
||||||
repeated int32 class_name = 150 [packed = true];
|
|
||||||
optional int32 package_fq_name = 151;
|
optional int32 package_fq_name = 151;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-16
@@ -7,7 +7,6 @@ public final class BuiltInsProtoBuf {
|
|||||||
private BuiltInsProtoBuf() {}
|
private BuiltInsProtoBuf() {}
|
||||||
public static void registerAllExtensions(
|
public static void registerAllExtensions(
|
||||||
com.google.protobuf.ExtensionRegistryLite registry) {
|
com.google.protobuf.ExtensionRegistryLite registry) {
|
||||||
registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.className);
|
|
||||||
registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.packageFqName);
|
registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.packageFqName);
|
||||||
registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.classAnnotation);
|
registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.classAnnotation);
|
||||||
registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.constructorAnnotation);
|
registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.constructorAnnotation);
|
||||||
@@ -870,21 +869,6 @@ public final class BuiltInsProtoBuf {
|
|||||||
// @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.builtins.BuiltIns)
|
// @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.builtins.BuiltIns)
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final int CLASS_NAME_FIELD_NUMBER = 150;
|
|
||||||
/**
|
|
||||||
* <code>extend .org.jetbrains.kotlin.serialization.Package { ... }</code>
|
|
||||||
*/
|
|
||||||
public static final
|
|
||||||
com.google.protobuf.GeneratedMessageLite.GeneratedExtension<
|
|
||||||
org.jetbrains.kotlin.serialization.ProtoBuf.Package,
|
|
||||||
java.util.List<java.lang.Integer>> className = com.google.protobuf.GeneratedMessageLite
|
|
||||||
.newRepeatedGeneratedExtension(
|
|
||||||
org.jetbrains.kotlin.serialization.ProtoBuf.Package.getDefaultInstance(),
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
150,
|
|
||||||
com.google.protobuf.WireFormat.FieldType.INT32,
|
|
||||||
true);
|
|
||||||
public static final int PACKAGE_FQ_NAME_FIELD_NUMBER = 151;
|
public static final int PACKAGE_FQ_NAME_FIELD_NUMBER = 151;
|
||||||
/**
|
/**
|
||||||
* <code>extend .org.jetbrains.kotlin.serialization.Package { ... }</code>
|
* <code>extend .org.jetbrains.kotlin.serialization.Package { ... }</code>
|
||||||
|
|||||||
+1
-10
@@ -49,14 +49,7 @@ abstract class DeserializedPackageFragment(
|
|||||||
computeMemberScope()
|
computeMemberScope()
|
||||||
}
|
}
|
||||||
|
|
||||||
protected open fun computeMemberScope(): DeserializedPackageMemberScope {
|
protected abstract fun computeMemberScope(): DeserializedPackageMemberScope
|
||||||
val packageStream = loadResourceSure(serializedResourcePaths.getPackageFilePath(fqName))
|
|
||||||
val packageProto = ProtoBuf.Package.parseFrom(packageStream, serializedResourcePaths.extensionRegistry)
|
|
||||||
return DeserializedPackageMemberScope(
|
|
||||||
this, packageProto, nameResolver, packagePartSource = null, components = components,
|
|
||||||
classNames = { loadClassNames(packageProto) }
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getMemberScope() = deserializedMemberScope
|
override fun getMemberScope() = deserializedMemberScope
|
||||||
|
|
||||||
@@ -64,8 +57,6 @@ abstract class DeserializedPackageFragment(
|
|||||||
return name in getMemberScope().classNames
|
return name in getMemberScope().classNames
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract fun loadClassNames(packageProto: ProtoBuf.Package): Collection<Name>
|
|
||||||
|
|
||||||
protected fun loadResourceSure(path: String): InputStream =
|
protected fun loadResourceSure(path: String): InputStream =
|
||||||
loadResource(path) ?: throw IllegalStateException("Resource not found in classpath: $path")
|
loadResource(path) ?: throw IllegalStateException("Resource not found in classpath: $path")
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-1
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializedPackageFragment
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializedPackageFragment
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.NameResolverImpl
|
import org.jetbrains.kotlin.serialization.deserialization.NameResolverImpl
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPackageMemberScope
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
|
|
||||||
@@ -36,7 +37,15 @@ class KotlinJavascriptPackageFragment(
|
|||||||
|
|
||||||
override val classIdToProto: Map<ClassId, ProtoBuf.Class>? get() = null
|
override val classIdToProto: Map<ClassId, ProtoBuf.Class>? get() = null
|
||||||
|
|
||||||
override fun loadClassNames(packageProto: ProtoBuf.Package): Collection<Name> {
|
override fun computeMemberScope(): DeserializedPackageMemberScope {
|
||||||
|
val packageStream = loadResourceSure(serializedResourcePaths.getPackageFilePath(fqName))
|
||||||
|
val packageProto = ProtoBuf.Package.parseFrom(packageStream, serializedResourcePaths.extensionRegistry)
|
||||||
|
return DeserializedPackageMemberScope(
|
||||||
|
this, packageProto, nameResolver, packagePartSource = null, components = components, classNames = { loadClassNames() }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun loadClassNames(): Collection<Name> {
|
||||||
val classesStream = loadResourceSure(KotlinJavascriptSerializedResourcePaths.getClassesInPackageFilePath(fqName))
|
val classesStream = loadResourceSure(KotlinJavascriptSerializedResourcePaths.getClassesInPackageFilePath(fqName))
|
||||||
val classesProto = JsProtoBuf.Classes.parseFrom(classesStream, serializedResourcePaths.extensionRegistry)
|
val classesProto = JsProtoBuf.Classes.parseFrom(classesStream, serializedResourcePaths.extensionRegistry)
|
||||||
return classesProto.classNameList?.map { id -> nameResolver.getName(id) } ?: listOf()
|
return classesProto.classNameList?.map { id -> nameResolver.getName(id) } ?: listOf()
|
||||||
|
|||||||
Reference in New Issue
Block a user