Write package_fq_name to for Package message when serializing builtins

This commit is contained in:
Pavel V. Talanov
2015-12-07 16:31:45 +03:00
parent f05de6d6eb
commit e458534c93
2 changed files with 5 additions and 1 deletions
@@ -37,6 +37,8 @@ public class BuiltInsSerializerExtension : SerializerExtension() {
}
override fun serializePackage(packageFragments: Collection<PackageFragmentDescriptor>, proto: ProtoBuf.Package.Builder) {
if (packageFragments.isEmpty()) return
val classes = packageFragments.flatMap {
it.getMemberScope().getContributedDescriptors(DescriptorKindFilter.CLASSIFIERS).filterIsInstance<ClassDescriptor>()
}
@@ -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) {
@@ -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();