From e458534c9308cf5d3eeaf07891058322a7369e8d Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Mon, 7 Dec 2015 16:31:45 +0300 Subject: [PATCH] Write package_fq_name to for Package message when serializing builtins --- .../serialization/builtins/BuiltInsSerializerExtension.kt | 4 ++++ .../org/jetbrains/kotlin/serialization/StringTableImpl.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt index c17c1e3cd1a..6021c0b8ee8 100644 --- a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt +++ b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt @@ -37,6 +37,8 @@ public class BuiltInsSerializerExtension : SerializerExtension() { } override fun serializePackage(packageFragments: Collection, proto: ProtoBuf.Package.Builder) { + if (packageFragments.isEmpty()) return + val classes = packageFragments.flatMap { it.getMemberScope().getContributedDescriptors(DescriptorKindFilter.CLASSIFIERS).filterIsInstance() } @@ -44,6 +46,8 @@ public class BuiltInsSerializerExtension : SerializerExtension() { for (descriptor in DescriptorSerializer.sort(classes)) { proto.addExtension(BuiltInsProtoBuf.className, stringTable.getSimpleNameIndex(descriptor.name)) } + + proto.setExtension(BuiltInsProtoBuf.packageFqName, stringTable.getPackageFqNameIndex(packageFragments.first().fqName)) } override fun serializeConstructor(descriptor: ConstructorDescriptor, proto: ProtoBuf.Constructor.Builder) { diff --git a/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTableImpl.java b/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTableImpl.java index aec18f0f75f..87c09179840 100644 --- a/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTableImpl.java +++ b/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTableImpl.java @@ -100,7 +100,7 @@ public class StringTableImpl implements StringTable { return qualifiedNames.intern(new FqNameProto(builder)); } - private int getPackageFqNameIndex(@NotNull FqName fqName) { + public int getPackageFqNameIndex(@NotNull FqName fqName) { int result = -1; for (Name segment : fqName.pathSegments()) { QualifiedName.Builder builder = QualifiedName.newBuilder();