Write package_fq_name to for Package message when serializing builtins
This commit is contained in:
+4
@@ -37,6 +37,8 @@ public class BuiltInsSerializerExtension : SerializerExtension() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun serializePackage(packageFragments: Collection<PackageFragmentDescriptor>, proto: ProtoBuf.Package.Builder) {
|
override fun serializePackage(packageFragments: Collection<PackageFragmentDescriptor>, proto: ProtoBuf.Package.Builder) {
|
||||||
|
if (packageFragments.isEmpty()) return
|
||||||
|
|
||||||
val classes = packageFragments.flatMap {
|
val classes = packageFragments.flatMap {
|
||||||
it.getMemberScope().getContributedDescriptors(DescriptorKindFilter.CLASSIFIERS).filterIsInstance<ClassDescriptor>()
|
it.getMemberScope().getContributedDescriptors(DescriptorKindFilter.CLASSIFIERS).filterIsInstance<ClassDescriptor>()
|
||||||
}
|
}
|
||||||
@@ -44,6 +46,8 @@ public class BuiltInsSerializerExtension : SerializerExtension() {
|
|||||||
for (descriptor in DescriptorSerializer.sort(classes)) {
|
for (descriptor in DescriptorSerializer.sort(classes)) {
|
||||||
proto.addExtension(BuiltInsProtoBuf.className, stringTable.getSimpleNameIndex(descriptor.name))
|
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) {
|
override fun serializeConstructor(descriptor: ConstructorDescriptor, proto: ProtoBuf.Constructor.Builder) {
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ public class StringTableImpl implements StringTable {
|
|||||||
return qualifiedNames.intern(new FqNameProto(builder));
|
return qualifiedNames.intern(new FqNameProto(builder));
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getPackageFqNameIndex(@NotNull FqName fqName) {
|
public int getPackageFqNameIndex(@NotNull FqName fqName) {
|
||||||
int result = -1;
|
int result = -1;
|
||||||
for (Name segment : fqName.pathSegments()) {
|
for (Name segment : fqName.pathSegments()) {
|
||||||
QualifiedName.Builder builder = QualifiedName.newBuilder();
|
QualifiedName.Builder builder = QualifiedName.newBuilder();
|
||||||
|
|||||||
Reference in New Issue
Block a user