From 7592f3159602cdf4edad2a36755a940fa200ceb7 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 23 Dec 2015 19:52:44 +0300 Subject: [PATCH] Serialize built-ins to separate file .kotlin_builtins --- .../builtins/BuiltInsSerializer.kt | 22 +- .../kotlin/serialization/builtins/run.kt | 6 +- .../kotlin/serialization/StringTableImpl.java | 30 +- .../builtins/DebugBuiltInsProtoBuf.java | 1321 ++++++++++++++++- .../BuiltInsSerializedResourcePaths.kt | 4 + core/deserialization/src/builtins.proto | 9 + .../serialization/SerializedResourcePaths.kt | 2 + .../builtins/BuiltInsProtoBuf.java | 851 +++++++++++ ...KotlinJavascriptSerializedResourcePaths.kt | 2 + 9 files changed, 2225 insertions(+), 22 deletions(-) diff --git a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializer.kt b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializer.kt index 7b5e3eca2c3..3c333865090 100644 --- a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializer.kt +++ b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializer.kt @@ -46,6 +46,7 @@ import org.jetbrains.kotlin.serialization.DescriptorSerializer import org.jetbrains.kotlin.serialization.ProtoBuf import org.jetbrains.kotlin.utils.recursePostOrder import java.io.ByteArrayOutputStream +import java.io.DataOutputStream import java.io.File public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) { @@ -120,12 +121,15 @@ public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) { val classifierDescriptors = DescriptorSerializer.sort(packageView.memberScope.getContributedDescriptors(DescriptorKindFilter.CLASSIFIERS)) + val message = BuiltInsProtoBuf.BuiltIns.newBuilder() + val extension = BuiltInsSerializerExtension() serializeClasses(classifierDescriptors, extension) { classDescriptor, classProto -> val stream = ByteArrayOutputStream() classProto.writeTo(stream) write(destDir, getFileName(classDescriptor), stream) + message.addClass(classProto) } val packageStream = ByteArrayOutputStream() @@ -133,10 +137,26 @@ public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) { val packageProto = DescriptorSerializer.createTopLevel(extension).packageProto(fragments).build() packageProto.writeTo(packageStream) write(destDir, BuiltInsSerializedResourcePaths.getPackageFilePath(fqName), packageStream) + message.setPackage(packageProto) val nameStream = ByteArrayOutputStream() - extension.stringTable.serializeTo(nameStream) + val (strings, qualifiedNames) = extension.stringTable.buildProto() + strings.writeDelimitedTo(nameStream) + qualifiedNames.writeDelimitedTo(nameStream) write(destDir, BuiltInsSerializedResourcePaths.getStringTableFilePath(fqName), nameStream) + message.setStrings(strings) + message.setQualifiedNames(qualifiedNames) + + val builtinsFileStream = ByteArrayOutputStream() + with(DataOutputStream(builtinsFileStream)) { + // TODO: write version properly + writeInt(3) + writeInt(1) + writeInt(0) + writeInt(0) + } + message.build().writeTo(builtinsFileStream) + write(destDir, BuiltInsSerializedResourcePaths.getBuiltInsFilePath(fqName), builtinsFileStream) } private fun write(destDir: File, fileName: String, stream: ByteArrayOutputStream) { diff --git a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/run.kt b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/run.kt index 67c344200ba..c691b06563c 100644 --- a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/run.kt +++ b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/run.kt @@ -21,15 +21,15 @@ import java.io.File fun main(args: Array) { System.setProperty("java.awt.headless", "true") - if (args.size() < 2) { + if (args.size < 2) { println( """Kotlin built-ins serializer Usage: ... ()+ Analyzes Kotlin sources found in the given source directories and serializes -found top-level declarations to (files such as -*.kotlin_string_table, *.kotlin_package, *.kotlin_class)""" +found top-level declarations to (files such as *.kotlin_builtins, +as well as old files *.kotlin_string_table, *.kotlin_package, *.kotlin_class)""" ) return } diff --git a/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTableImpl.java b/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTableImpl.java index 87c09179840..30c8496e04b 100644 --- a/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTableImpl.java +++ b/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTableImpl.java @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.serialization; +import kotlin.Pair; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.descriptors.ClassDescriptor; import org.jetbrains.kotlin.descriptors.DeclarationDescriptor; @@ -113,20 +114,27 @@ public class StringTableImpl implements StringTable { return result; } + @NotNull + public Pair buildProto() { + ProtoBuf.StringTable.Builder strings = ProtoBuf.StringTable.newBuilder(); + for (String simpleName : this.strings.getAllInternedObjects()) { + strings.addString(simpleName); + } + + ProtoBuf.QualifiedNameTable.Builder qualifiedNames = ProtoBuf.QualifiedNameTable.newBuilder(); + for (FqNameProto fqName : this.qualifiedNames.getAllInternedObjects()) { + qualifiedNames.addQualifiedName(fqName.fqName); + } + + return new Pair(strings.build(), qualifiedNames.build()); + } + @Override public void serializeTo(@NotNull OutputStream output) { try { - ProtoBuf.StringTable.Builder stringTable = ProtoBuf.StringTable.newBuilder(); - for (String simpleName : strings.getAllInternedObjects()) { - stringTable.addString(simpleName); - } - stringTable.build().writeDelimitedTo(output); - - ProtoBuf.QualifiedNameTable.Builder qualifiedNameTable = ProtoBuf.QualifiedNameTable.newBuilder(); - for (FqNameProto fqName : qualifiedNames.getAllInternedObjects()) { - qualifiedNameTable.addQualifiedName(fqName.fqName); - } - qualifiedNameTable.build().writeDelimitedTo(output); + Pair protos = buildProto(); + protos.getFirst().writeDelimitedTo(output); + protos.getSecond().writeDelimitedTo(output); } catch (IOException e) { throw ExceptionUtilsKt.rethrow(e); diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/DebugBuiltInsProtoBuf.java b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/DebugBuiltInsProtoBuf.java index 8ffdd6d8cf1..f27e7cc0b81 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/DebugBuiltInsProtoBuf.java +++ b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/DebugBuiltInsProtoBuf.java @@ -19,6 +19,1295 @@ public final class DebugBuiltInsProtoBuf { registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.typeAnnotation); registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.typeParameterAnnotation); } + public interface BuiltInsOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + boolean hasStrings(); + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable getStrings(); + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTableOrBuilder getStringsOrBuilder(); + + // optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + boolean hasQualifiedNames(); + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable getQualifiedNames(); + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTableOrBuilder getQualifiedNamesOrBuilder(); + + // optional .org.jetbrains.kotlin.serialization.Package package = 3; + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + boolean hasPackage(); + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + org.jetbrains.kotlin.serialization.DebugProtoBuf.Package getPackage(); + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + org.jetbrains.kotlin.serialization.DebugProtoBuf.PackageOrBuilder getPackageOrBuilder(); + + // repeated .org.jetbrains.kotlin.serialization.Class class = 4; + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + java.util.List + getClassList(); + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + org.jetbrains.kotlin.serialization.DebugProtoBuf.Class getClass(int index); + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + int getClassCount(); + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + java.util.List + getClassOrBuilderList(); + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + org.jetbrains.kotlin.serialization.DebugProtoBuf.ClassOrBuilder getClassOrBuilder( + int index); + } + /** + * Protobuf type {@code org.jetbrains.kotlin.serialization.builtins.BuiltIns} + */ + public static final class BuiltIns extends + com.google.protobuf.GeneratedMessage + implements BuiltInsOrBuilder { + // Use BuiltIns.newBuilder() to construct. + private BuiltIns(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private BuiltIns(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final BuiltIns defaultInstance; + public static BuiltIns getDefaultInstance() { + return defaultInstance; + } + + public BuiltIns getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private BuiltIns( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = strings_.toBuilder(); + } + strings_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(strings_); + strings_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + case 18: { + org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = qualifiedNames_.toBuilder(); + } + qualifiedNames_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(qualifiedNames_); + qualifiedNames_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000002; + break; + } + case 26: { + org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.Builder subBuilder = null; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + subBuilder = package_.toBuilder(); + } + package_ = input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(package_); + package_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000004; + break; + } + case 34: { + if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + class_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000008; + } + class_.add(input.readMessage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.PARSER, extensionRegistry)); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + class_ = java.util.Collections.unmodifiableList(class_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_builtins_BuiltIns_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_builtins_BuiltIns_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns.class, org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public BuiltIns parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new BuiltIns(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + public static final int STRINGS_FIELD_NUMBER = 1; + private org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable strings_; + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public boolean hasStrings() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable getStrings() { + return strings_; + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTableOrBuilder getStringsOrBuilder() { + return strings_; + } + + // optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + public static final int QUALIFIED_NAMES_FIELD_NUMBER = 2; + private org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable qualifiedNames_; + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public boolean hasQualifiedNames() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable getQualifiedNames() { + return qualifiedNames_; + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTableOrBuilder getQualifiedNamesOrBuilder() { + return qualifiedNames_; + } + + // optional .org.jetbrains.kotlin.serialization.Package package = 3; + public static final int PACKAGE_FIELD_NUMBER = 3; + private org.jetbrains.kotlin.serialization.DebugProtoBuf.Package package_; + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public boolean hasPackage() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.Package getPackage() { + return package_; + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.PackageOrBuilder getPackageOrBuilder() { + return package_; + } + + // repeated .org.jetbrains.kotlin.serialization.Class class = 4; + public static final int CLASS_FIELD_NUMBER = 4; + private java.util.List class_; + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List getClassList() { + return class_; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List + getClassOrBuilderList() { + return class_; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public int getClassCount() { + return class_.size(); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class getClass(int index) { + return class_.get(index); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.ClassOrBuilder getClassOrBuilder( + int index) { + return class_.get(index); + } + + private void initFields() { + strings_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.getDefaultInstance(); + qualifiedNames_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.getDefaultInstance(); + package_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.getDefaultInstance(); + class_ = java.util.Collections.emptyList(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (hasQualifiedNames()) { + if (!getQualifiedNames().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + if (hasPackage()) { + if (!getPackage().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + for (int i = 0; i < getClassCount(); i++) { + if (!getClass(i).isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, strings_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeMessage(2, qualifiedNames_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeMessage(3, package_); + } + for (int i = 0; i < class_.size(); i++) { + output.writeMessage(4, class_.get(i)); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, strings_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, qualifiedNames_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, package_); + } + for (int i = 0; i < class_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, class_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code org.jetbrains.kotlin.serialization.builtins.BuiltIns} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltInsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_builtins_BuiltIns_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_builtins_BuiltIns_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns.class, org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns.Builder.class); + } + + // Construct using org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getStringsFieldBuilder(); + getQualifiedNamesFieldBuilder(); + getPackageFieldBuilder(); + getClassFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (stringsBuilder_ == null) { + strings_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.getDefaultInstance(); + } else { + stringsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + if (qualifiedNamesBuilder_ == null) { + qualifiedNames_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.getDefaultInstance(); + } else { + qualifiedNamesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + if (packageBuilder_ == null) { + package_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.getDefaultInstance(); + } else { + packageBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + if (classBuilder_ == null) { + class_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + } else { + classBuilder_.clear(); + } + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_builtins_BuiltIns_descriptor; + } + + public org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns getDefaultInstanceForType() { + return org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns.getDefaultInstance(); + } + + public org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns build() { + org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns buildPartial() { + org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns result = new org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + if (stringsBuilder_ == null) { + result.strings_ = strings_; + } else { + result.strings_ = stringsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + if (qualifiedNamesBuilder_ == null) { + result.qualifiedNames_ = qualifiedNames_; + } else { + result.qualifiedNames_ = qualifiedNamesBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + if (packageBuilder_ == null) { + result.package_ = package_; + } else { + result.package_ = packageBuilder_.build(); + } + if (classBuilder_ == null) { + if (((bitField0_ & 0x00000008) == 0x00000008)) { + class_ = java.util.Collections.unmodifiableList(class_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.class_ = class_; + } else { + result.class_ = classBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns) { + return mergeFrom((org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns other) { + if (other == org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns.getDefaultInstance()) return this; + if (other.hasStrings()) { + mergeStrings(other.getStrings()); + } + if (other.hasQualifiedNames()) { + mergeQualifiedNames(other.getQualifiedNames()); + } + if (other.hasPackage()) { + mergePackage(other.getPackage()); + } + if (classBuilder_ == null) { + if (!other.class_.isEmpty()) { + if (class_.isEmpty()) { + class_ = other.class_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureClassIsMutable(); + class_.addAll(other.class_); + } + onChanged(); + } + } else { + if (!other.class_.isEmpty()) { + if (classBuilder_.isEmpty()) { + classBuilder_.dispose(); + classBuilder_ = null; + class_ = other.class_; + bitField0_ = (bitField0_ & ~0x00000008); + classBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getClassFieldBuilder() : null; + } else { + classBuilder_.addAllMessages(other.class_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (hasQualifiedNames()) { + if (!getQualifiedNames().isInitialized()) { + + return false; + } + } + if (hasPackage()) { + if (!getPackage().isInitialized()) { + + return false; + } + } + for (int i = 0; i < getClassCount(); i++) { + if (!getClass(i).isInitialized()) { + + return false; + } + } + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.BuiltIns) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + private org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable strings_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable, org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTableOrBuilder> stringsBuilder_; + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public boolean hasStrings() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable getStrings() { + if (stringsBuilder_ == null) { + return strings_; + } else { + return stringsBuilder_.getMessage(); + } + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public Builder setStrings(org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable value) { + if (stringsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + strings_ = value; + onChanged(); + } else { + stringsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public Builder setStrings( + org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.Builder builderForValue) { + if (stringsBuilder_ == null) { + strings_ = builderForValue.build(); + onChanged(); + } else { + stringsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public Builder mergeStrings(org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable value) { + if (stringsBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + strings_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.getDefaultInstance()) { + strings_ = + org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.newBuilder(strings_).mergeFrom(value).buildPartial(); + } else { + strings_ = value; + } + onChanged(); + } else { + stringsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public Builder clearStrings() { + if (stringsBuilder_ == null) { + strings_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.getDefaultInstance(); + onChanged(); + } else { + stringsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.Builder getStringsBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getStringsFieldBuilder().getBuilder(); + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTableOrBuilder getStringsOrBuilder() { + if (stringsBuilder_ != null) { + return stringsBuilder_.getMessageOrBuilder(); + } else { + return strings_; + } + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + private com.google.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable, org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTableOrBuilder> + getStringsFieldBuilder() { + if (stringsBuilder_ == null) { + stringsBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable, org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTableOrBuilder>( + strings_, + getParentForChildren(), + isClean()); + strings_ = null; + } + return stringsBuilder_; + } + + // optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + private org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable qualifiedNames_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTableOrBuilder> qualifiedNamesBuilder_; + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public boolean hasQualifiedNames() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable getQualifiedNames() { + if (qualifiedNamesBuilder_ == null) { + return qualifiedNames_; + } else { + return qualifiedNamesBuilder_.getMessage(); + } + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public Builder setQualifiedNames(org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable value) { + if (qualifiedNamesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + qualifiedNames_ = value; + onChanged(); + } else { + qualifiedNamesBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public Builder setQualifiedNames( + org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.Builder builderForValue) { + if (qualifiedNamesBuilder_ == null) { + qualifiedNames_ = builderForValue.build(); + onChanged(); + } else { + qualifiedNamesBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public Builder mergeQualifiedNames(org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable value) { + if (qualifiedNamesBuilder_ == null) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + qualifiedNames_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.getDefaultInstance()) { + qualifiedNames_ = + org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.newBuilder(qualifiedNames_).mergeFrom(value).buildPartial(); + } else { + qualifiedNames_ = value; + } + onChanged(); + } else { + qualifiedNamesBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public Builder clearQualifiedNames() { + if (qualifiedNamesBuilder_ == null) { + qualifiedNames_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.getDefaultInstance(); + onChanged(); + } else { + qualifiedNamesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.Builder getQualifiedNamesBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getQualifiedNamesFieldBuilder().getBuilder(); + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTableOrBuilder getQualifiedNamesOrBuilder() { + if (qualifiedNamesBuilder_ != null) { + return qualifiedNamesBuilder_.getMessageOrBuilder(); + } else { + return qualifiedNames_; + } + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + private com.google.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTableOrBuilder> + getQualifiedNamesFieldBuilder() { + if (qualifiedNamesBuilder_ == null) { + qualifiedNamesBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTableOrBuilder>( + qualifiedNames_, + getParentForChildren(), + isClean()); + qualifiedNames_ = null; + } + return qualifiedNamesBuilder_; + } + + // optional .org.jetbrains.kotlin.serialization.Package package = 3; + private org.jetbrains.kotlin.serialization.DebugProtoBuf.Package package_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Package, org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.PackageOrBuilder> packageBuilder_; + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public boolean hasPackage() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.Package getPackage() { + if (packageBuilder_ == null) { + return package_; + } else { + return packageBuilder_.getMessage(); + } + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public Builder setPackage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Package value) { + if (packageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + package_ = value; + onChanged(); + } else { + packageBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public Builder setPackage( + org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.Builder builderForValue) { + if (packageBuilder_ == null) { + package_ = builderForValue.build(); + onChanged(); + } else { + packageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public Builder mergePackage(org.jetbrains.kotlin.serialization.DebugProtoBuf.Package value) { + if (packageBuilder_ == null) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + package_ != org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.getDefaultInstance()) { + package_ = + org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.newBuilder(package_).mergeFrom(value).buildPartial(); + } else { + package_ = value; + } + onChanged(); + } else { + packageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public Builder clearPackage() { + if (packageBuilder_ == null) { + package_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.getDefaultInstance(); + onChanged(); + } else { + packageBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.Builder getPackageBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getPackageFieldBuilder().getBuilder(); + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.PackageOrBuilder getPackageOrBuilder() { + if (packageBuilder_ != null) { + return packageBuilder_.getMessageOrBuilder(); + } else { + return package_; + } + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + private com.google.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Package, org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.PackageOrBuilder> + getPackageFieldBuilder() { + if (packageBuilder_ == null) { + packageBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Package, org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.PackageOrBuilder>( + package_, + getParentForChildren(), + isClean()); + package_ = null; + } + return packageBuilder_; + } + + // repeated .org.jetbrains.kotlin.serialization.Class class = 4; + private java.util.List class_ = + java.util.Collections.emptyList(); + private void ensureClassIsMutable() { + if (!((bitField0_ & 0x00000008) == 0x00000008)) { + class_ = new java.util.ArrayList(class_); + bitField0_ |= 0x00000008; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.ClassOrBuilder> classBuilder_; + + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List getClassList() { + if (classBuilder_ == null) { + return java.util.Collections.unmodifiableList(class_); + } else { + return classBuilder_.getMessageList(); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public int getClassCount() { + if (classBuilder_ == null) { + return class_.size(); + } else { + return classBuilder_.getCount(); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class getClass(int index) { + if (classBuilder_ == null) { + return class_.get(index); + } else { + return classBuilder_.getMessage(index); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder setClass( + int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class value) { + if (classBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureClassIsMutable(); + class_.set(index, value); + onChanged(); + } else { + classBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder setClass( + int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder builderForValue) { + if (classBuilder_ == null) { + ensureClassIsMutable(); + class_.set(index, builderForValue.build()); + onChanged(); + } else { + classBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder addClass(org.jetbrains.kotlin.serialization.DebugProtoBuf.Class value) { + if (classBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureClassIsMutable(); + class_.add(value); + onChanged(); + } else { + classBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder addClass( + int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class value) { + if (classBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureClassIsMutable(); + class_.add(index, value); + onChanged(); + } else { + classBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder addClass( + org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder builderForValue) { + if (classBuilder_ == null) { + ensureClassIsMutable(); + class_.add(builderForValue.build()); + onChanged(); + } else { + classBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder addClass( + int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder builderForValue) { + if (classBuilder_ == null) { + ensureClassIsMutable(); + class_.add(index, builderForValue.build()); + onChanged(); + } else { + classBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder addAllClass( + java.lang.Iterable values) { + if (classBuilder_ == null) { + ensureClassIsMutable(); + super.addAll(values, class_); + onChanged(); + } else { + classBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder clearClass() { + if (classBuilder_ == null) { + class_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + classBuilder_.clear(); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder removeClass(int index) { + if (classBuilder_ == null) { + ensureClassIsMutable(); + class_.remove(index); + onChanged(); + } else { + classBuilder_.remove(index); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder getClassBuilder( + int index) { + return getClassFieldBuilder().getBuilder(index); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.ClassOrBuilder getClassOrBuilder( + int index) { + if (classBuilder_ == null) { + return class_.get(index); } else { + return classBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List + getClassOrBuilderList() { + if (classBuilder_ != null) { + return classBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(class_); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder addClassBuilder() { + return getClassFieldBuilder().addBuilder( + org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.getDefaultInstance()); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder addClassBuilder( + int index) { + return getClassFieldBuilder().addBuilder( + index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.getDefaultInstance()); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List + getClassBuilderList() { + return getClassFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.ClassOrBuilder> + getClassFieldBuilder() { + if (classBuilder_ == null) { + classBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.ClassOrBuilder>( + class_, + ((bitField0_ & 0x00000008) == 0x00000008), + getParentForChildren(), + isClean()); + class_ = null; + } + return classBuilder_; + } + + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.builtins.BuiltIns) + } + + static { + defaultInstance = new BuiltIns(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.builtins.BuiltIns) + } + public static final int CLASS_NAME_FIELD_NUMBER = 150; /** * extend .org.jetbrains.kotlin.serialization.Package { ... } @@ -140,6 +1429,11 @@ public final class DebugBuiltInsProtoBuf { .newFileScopedGeneratedExtension( org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance()); + private static com.google.protobuf.Descriptors.Descriptor + internal_static_org_jetbrains_kotlin_serialization_builtins_BuiltIns_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_org_jetbrains_kotlin_serialization_builtins_BuiltIns_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -152,36 +1446,43 @@ public final class DebugBuiltInsProtoBuf { "\n-core/deserialization/src/builtins.debu" + "g.proto\022+org.jetbrains.kotlin.serializat" + "ion.builtins\0320core/deserialization/src/d" + - "escriptors.debug.proto:D\n\nclass_name\022+.o" + + "escriptors.debug.proto\"\225\002\n\010BuiltIns\022@\n\007s" + + "trings\030\001 \001(\0132/.org.jetbrains.kotlin.seri" + + "alization.StringTable\022O\n\017qualified_names" + + "\030\002 \001(\01326.org.jetbrains.kotlin.serializat" + + "ion.QualifiedNameTable\022<\n\007package\030\003 \001(\0132" + + "+.org.jetbrains.kotlin.serialization.Pac" + + "kage\0228\n\005class\030\004 \003(\0132).org.jetbrains.kotl", + "in.serialization.Class:D\n\nclass_name\022+.o" + "rg.jetbrains.kotlin.serialization.Packag" + "e\030\226\001 \003(\005B\002\020\001:E\n\017package_fq_name\022+.org.je" + "tbrains.kotlin.serialization.Package\030\227\001 " + "\001(\005:t\n\020class_annotation\022).org.jetbrains." + "kotlin.serialization.Class\030\226\001 \003(\0132..org." + - "jetbrains.kotlin.serialization.Annotatio", + "jetbrains.kotlin.serialization.Annotatio" + "n:\200\001\n\026constructor_annotation\022/.org.jetbr" + "ains.kotlin.serialization.Constructor\030\226\001" + - " \003(\0132..org.jetbrains.kotlin.serializatio" + + " \003(\0132..org.jetbrains.kotlin.serializatio", "n.Annotation:z\n\023function_annotation\022,.or" + "g.jetbrains.kotlin.serialization.Functio" + "n\030\226\001 \003(\0132..org.jetbrains.kotlin.serializ" + "ation.Annotation:z\n\023property_annotation\022" + ",.org.jetbrains.kotlin.serialization.Pro" + "perty\030\226\001 \003(\0132..org.jetbrains.kotlin.seri" + - "alization.Annotation:\210\001\n\022compile_time_va", + "alization.Annotation:\210\001\n\022compile_time_va" + "lue\022,.org.jetbrains.kotlin.serialization" + ".Property\030\227\001 \001(\0132=.org.jetbrains.kotlin." + - "serialization.Annotation.Argument.Value:" + + "serialization.Annotation.Argument.Value:", "}\n\025enum_entry_annotation\022-.org.jetbrains" + ".kotlin.serialization.EnumEntry\030\226\001 \003(\0132." + ".org.jetbrains.kotlin.serialization.Anno" + "tation:\201\001\n\024parameter_annotation\0222.org.je" + "tbrains.kotlin.serialization.ValueParame" + "ter\030\226\001 \003(\0132..org.jetbrains.kotlin.serial" + - "ization.Annotation:r\n\017type_annotation\022(.", + "ization.Annotation:r\n\017type_annotation\022(." + "org.jetbrains.kotlin.serialization.Type\030" + "\226\001 \003(\0132..org.jetbrains.kotlin.serializat" + - "ion.Annotation:\205\001\n\031type_parameter_annota" + + "ion.Annotation:\205\001\n\031type_parameter_annota", "tion\0221.org.jetbrains.kotlin.serializatio" + "n.TypeParameter\030\226\001 \003(\0132..org.jetbrains.k" + "otlin.serialization.AnnotationB\027B\025DebugB" + @@ -192,6 +1493,12 @@ public final class DebugBuiltInsProtoBuf { public com.google.protobuf.ExtensionRegistry assignDescriptors( com.google.protobuf.Descriptors.FileDescriptor root) { descriptor = root; + internal_static_org_jetbrains_kotlin_serialization_builtins_BuiltIns_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_org_jetbrains_kotlin_serialization_builtins_BuiltIns_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_org_jetbrains_kotlin_serialization_builtins_BuiltIns_descriptor, + new java.lang.String[] { "Strings", "QualifiedNames", "Package", "Class", }); className.internalInit(descriptor.getExtensions().get(0)); packageFqName.internalInit(descriptor.getExtensions().get(1)); classAnnotation.internalInit(descriptor.getExtensions().get(2)); diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsSerializedResourcePaths.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsSerializedResourcePaths.kt index 20dc6169bf6..bea7da9bf99 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsSerializedResourcePaths.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsSerializedResourcePaths.kt @@ -33,6 +33,7 @@ object BuiltInsSerializedResourcePaths : SerializedResourcePaths { val CLASS_METADATA_FILE_EXTENSION = "kotlin_class" val PACKAGE_FILE_EXTENSION = "kotlin_package" val STRING_TABLE_FILE_EXTENSION = "kotlin_string_table" + val BUILTINS_FILE_EXTENSION = "kotlin_builtins" override fun getClassMetadataPath(classId: ClassId): String { return packageFqNameToPath(classId.getPackageFqName()) + "/" + classId.getRelativeClassName().asString() + @@ -45,6 +46,9 @@ object BuiltInsSerializedResourcePaths : SerializedResourcePaths { override fun getStringTableFilePath(fqName: FqName): String = packageFqNameToPath(fqName) + "/" + shortName(fqName) + "." + STRING_TABLE_FILE_EXTENSION + override fun getBuiltInsFilePath(fqName: FqName): String = + packageFqNameToPath(fqName) + "/" + shortName(fqName) + "." + BUILTINS_FILE_EXTENSION + private fun packageFqNameToPath(fqName: FqName): String = fqName.asString().replace('.', '/') diff --git a/core/deserialization/src/builtins.proto b/core/deserialization/src/builtins.proto index e4386a626ee..8559ac8c11f 100644 --- a/core/deserialization/src/builtins.proto +++ b/core/deserialization/src/builtins.proto @@ -21,6 +21,15 @@ import "core/deserialization/src/descriptors.proto"; option java_outer_classname = "BuiltInsProtoBuf"; option optimize_for = LITE_RUNTIME; +message BuiltIns { + optional StringTable strings = 1; + optional QualifiedNameTable qualified_names = 2; + + optional Package package = 3; + + repeated Class class = 4; +} + extend Package { // id in StringTable repeated int32 class_name = 150 [packed = true]; diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/SerializedResourcePaths.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/SerializedResourcePaths.kt index 49b263cc858..c378c8888f7 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/SerializedResourcePaths.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/SerializedResourcePaths.kt @@ -28,4 +28,6 @@ interface SerializedResourcePaths { fun getPackageFilePath(fqName: FqName): String fun getStringTableFilePath(fqName: FqName): String + + fun getBuiltInsFilePath(fqName: FqName): String? } diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsProtoBuf.java b/core/deserialization/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsProtoBuf.java index 20bef9e756c..d51673f71a2 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsProtoBuf.java +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsProtoBuf.java @@ -19,6 +19,857 @@ public final class BuiltInsProtoBuf { registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.typeAnnotation); registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.typeParameterAnnotation); } + public interface BuiltInsOrBuilder + extends com.google.protobuf.MessageLiteOrBuilder { + + // optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + boolean hasStrings(); + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + org.jetbrains.kotlin.serialization.ProtoBuf.StringTable getStrings(); + + // optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + boolean hasQualifiedNames(); + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable getQualifiedNames(); + + // optional .org.jetbrains.kotlin.serialization.Package package = 3; + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + boolean hasPackage(); + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + org.jetbrains.kotlin.serialization.ProtoBuf.Package getPackage(); + + // repeated .org.jetbrains.kotlin.serialization.Class class = 4; + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + java.util.List + getClassList(); + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + org.jetbrains.kotlin.serialization.ProtoBuf.Class getClass(int index); + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + int getClassCount(); + } + /** + * Protobuf type {@code org.jetbrains.kotlin.serialization.builtins.BuiltIns} + */ + public static final class BuiltIns extends + com.google.protobuf.GeneratedMessageLite + implements BuiltInsOrBuilder { + // Use BuiltIns.newBuilder() to construct. + private BuiltIns(com.google.protobuf.GeneratedMessageLite.Builder builder) { + super(builder); + + } + private BuiltIns(boolean noInit) {} + + private static final BuiltIns defaultInstance; + public static BuiltIns getDefaultInstance() { + return defaultInstance; + } + + public BuiltIns getDefaultInstanceForType() { + return defaultInstance; + } + + private BuiltIns( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + org.jetbrains.kotlin.serialization.ProtoBuf.StringTable.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = strings_.toBuilder(); + } + strings_ = input.readMessage(org.jetbrains.kotlin.serialization.ProtoBuf.StringTable.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(strings_); + strings_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + case 18: { + org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = qualifiedNames_.toBuilder(); + } + qualifiedNames_ = input.readMessage(org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(qualifiedNames_); + qualifiedNames_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000002; + break; + } + case 26: { + org.jetbrains.kotlin.serialization.ProtoBuf.Package.Builder subBuilder = null; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + subBuilder = package_.toBuilder(); + } + package_ = input.readMessage(org.jetbrains.kotlin.serialization.ProtoBuf.Package.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(package_); + package_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000004; + break; + } + case 34: { + if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + class_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000008; + } + class_.add(input.readMessage(org.jetbrains.kotlin.serialization.ProtoBuf.Class.PARSER, extensionRegistry)); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + class_ = java.util.Collections.unmodifiableList(class_); + } + makeExtensionsImmutable(); + } + } + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public BuiltIns parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new BuiltIns(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + public static final int STRINGS_FIELD_NUMBER = 1; + private org.jetbrains.kotlin.serialization.ProtoBuf.StringTable strings_; + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public boolean hasStrings() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public org.jetbrains.kotlin.serialization.ProtoBuf.StringTable getStrings() { + return strings_; + } + + // optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + public static final int QUALIFIED_NAMES_FIELD_NUMBER = 2; + private org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable qualifiedNames_; + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public boolean hasQualifiedNames() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable getQualifiedNames() { + return qualifiedNames_; + } + + // optional .org.jetbrains.kotlin.serialization.Package package = 3; + public static final int PACKAGE_FIELD_NUMBER = 3; + private org.jetbrains.kotlin.serialization.ProtoBuf.Package package_; + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public boolean hasPackage() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public org.jetbrains.kotlin.serialization.ProtoBuf.Package getPackage() { + return package_; + } + + // repeated .org.jetbrains.kotlin.serialization.Class class = 4; + public static final int CLASS_FIELD_NUMBER = 4; + private java.util.List class_; + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List getClassList() { + return class_; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List + getClassOrBuilderList() { + return class_; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public int getClassCount() { + return class_.size(); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.ProtoBuf.Class getClass(int index) { + return class_.get(index); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.ProtoBuf.ClassOrBuilder getClassOrBuilder( + int index) { + return class_.get(index); + } + + private void initFields() { + strings_ = org.jetbrains.kotlin.serialization.ProtoBuf.StringTable.getDefaultInstance(); + qualifiedNames_ = org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable.getDefaultInstance(); + package_ = org.jetbrains.kotlin.serialization.ProtoBuf.Package.getDefaultInstance(); + class_ = java.util.Collections.emptyList(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (hasQualifiedNames()) { + if (!getQualifiedNames().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + if (hasPackage()) { + if (!getPackage().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + for (int i = 0; i < getClassCount(); i++) { + if (!getClass(i).isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, strings_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeMessage(2, qualifiedNames_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeMessage(3, package_); + } + for (int i = 0; i < class_.size(); i++) { + output.writeMessage(4, class_.get(i)); + } + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, strings_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, qualifiedNames_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, package_); + } + for (int i = 0; i < class_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, class_.get(i)); + } + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + /** + * Protobuf type {@code org.jetbrains.kotlin.serialization.builtins.BuiltIns} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageLite.Builder< + org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns, Builder> + implements org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltInsOrBuilder { + // Construct using org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + strings_ = org.jetbrains.kotlin.serialization.ProtoBuf.StringTable.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000001); + qualifiedNames_ = org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000002); + package_ = org.jetbrains.kotlin.serialization.ProtoBuf.Package.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000004); + class_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns getDefaultInstanceForType() { + return org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns.getDefaultInstance(); + } + + public org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns build() { + org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns buildPartial() { + org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns result = new org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.strings_ = strings_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.qualifiedNames_ = qualifiedNames_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.package_ = package_; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + class_ = java.util.Collections.unmodifiableList(class_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.class_ = class_; + result.bitField0_ = to_bitField0_; + return result; + } + + public Builder mergeFrom(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns other) { + if (other == org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns.getDefaultInstance()) return this; + if (other.hasStrings()) { + mergeStrings(other.getStrings()); + } + if (other.hasQualifiedNames()) { + mergeQualifiedNames(other.getQualifiedNames()); + } + if (other.hasPackage()) { + mergePackage(other.getPackage()); + } + if (!other.class_.isEmpty()) { + if (class_.isEmpty()) { + class_ = other.class_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureClassIsMutable(); + class_.addAll(other.class_); + } + + } + return this; + } + + public final boolean isInitialized() { + if (hasQualifiedNames()) { + if (!getQualifiedNames().isInitialized()) { + + return false; + } + } + if (hasPackage()) { + if (!getPackage().isInitialized()) { + + return false; + } + } + for (int i = 0; i < getClassCount(); i++) { + if (!getClass(i).isInitialized()) { + + return false; + } + } + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.BuiltIns) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + private org.jetbrains.kotlin.serialization.ProtoBuf.StringTable strings_ = org.jetbrains.kotlin.serialization.ProtoBuf.StringTable.getDefaultInstance(); + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public boolean hasStrings() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public org.jetbrains.kotlin.serialization.ProtoBuf.StringTable getStrings() { + return strings_; + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public Builder setStrings(org.jetbrains.kotlin.serialization.ProtoBuf.StringTable value) { + if (value == null) { + throw new NullPointerException(); + } + strings_ = value; + + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public Builder setStrings( + org.jetbrains.kotlin.serialization.ProtoBuf.StringTable.Builder builderForValue) { + strings_ = builderForValue.build(); + + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public Builder mergeStrings(org.jetbrains.kotlin.serialization.ProtoBuf.StringTable value) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + strings_ != org.jetbrains.kotlin.serialization.ProtoBuf.StringTable.getDefaultInstance()) { + strings_ = + org.jetbrains.kotlin.serialization.ProtoBuf.StringTable.newBuilder(strings_).mergeFrom(value).buildPartial(); + } else { + strings_ = value; + } + + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; + */ + public Builder clearStrings() { + strings_ = org.jetbrains.kotlin.serialization.ProtoBuf.StringTable.getDefaultInstance(); + + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + // optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + private org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable qualifiedNames_ = org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable.getDefaultInstance(); + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public boolean hasQualifiedNames() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable getQualifiedNames() { + return qualifiedNames_; + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public Builder setQualifiedNames(org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable value) { + if (value == null) { + throw new NullPointerException(); + } + qualifiedNames_ = value; + + bitField0_ |= 0x00000002; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public Builder setQualifiedNames( + org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable.Builder builderForValue) { + qualifiedNames_ = builderForValue.build(); + + bitField0_ |= 0x00000002; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public Builder mergeQualifiedNames(org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable value) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + qualifiedNames_ != org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable.getDefaultInstance()) { + qualifiedNames_ = + org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable.newBuilder(qualifiedNames_).mergeFrom(value).buildPartial(); + } else { + qualifiedNames_ = value; + } + + bitField0_ |= 0x00000002; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; + */ + public Builder clearQualifiedNames() { + qualifiedNames_ = org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable.getDefaultInstance(); + + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + // optional .org.jetbrains.kotlin.serialization.Package package = 3; + private org.jetbrains.kotlin.serialization.ProtoBuf.Package package_ = org.jetbrains.kotlin.serialization.ProtoBuf.Package.getDefaultInstance(); + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public boolean hasPackage() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public org.jetbrains.kotlin.serialization.ProtoBuf.Package getPackage() { + return package_; + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public Builder setPackage(org.jetbrains.kotlin.serialization.ProtoBuf.Package value) { + if (value == null) { + throw new NullPointerException(); + } + package_ = value; + + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public Builder setPackage( + org.jetbrains.kotlin.serialization.ProtoBuf.Package.Builder builderForValue) { + package_ = builderForValue.build(); + + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public Builder mergePackage(org.jetbrains.kotlin.serialization.ProtoBuf.Package value) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + package_ != org.jetbrains.kotlin.serialization.ProtoBuf.Package.getDefaultInstance()) { + package_ = + org.jetbrains.kotlin.serialization.ProtoBuf.Package.newBuilder(package_).mergeFrom(value).buildPartial(); + } else { + package_ = value; + } + + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.Package package = 3; + */ + public Builder clearPackage() { + package_ = org.jetbrains.kotlin.serialization.ProtoBuf.Package.getDefaultInstance(); + + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + // repeated .org.jetbrains.kotlin.serialization.Class class = 4; + private java.util.List class_ = + java.util.Collections.emptyList(); + private void ensureClassIsMutable() { + if (!((bitField0_ & 0x00000008) == 0x00000008)) { + class_ = new java.util.ArrayList(class_); + bitField0_ |= 0x00000008; + } + } + + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List getClassList() { + return java.util.Collections.unmodifiableList(class_); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public int getClassCount() { + return class_.size(); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.ProtoBuf.Class getClass(int index) { + return class_.get(index); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder setClass( + int index, org.jetbrains.kotlin.serialization.ProtoBuf.Class value) { + if (value == null) { + throw new NullPointerException(); + } + ensureClassIsMutable(); + class_.set(index, value); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder setClass( + int index, org.jetbrains.kotlin.serialization.ProtoBuf.Class.Builder builderForValue) { + ensureClassIsMutable(); + class_.set(index, builderForValue.build()); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder addClass(org.jetbrains.kotlin.serialization.ProtoBuf.Class value) { + if (value == null) { + throw new NullPointerException(); + } + ensureClassIsMutable(); + class_.add(value); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder addClass( + int index, org.jetbrains.kotlin.serialization.ProtoBuf.Class value) { + if (value == null) { + throw new NullPointerException(); + } + ensureClassIsMutable(); + class_.add(index, value); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder addClass( + org.jetbrains.kotlin.serialization.ProtoBuf.Class.Builder builderForValue) { + ensureClassIsMutable(); + class_.add(builderForValue.build()); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder addClass( + int index, org.jetbrains.kotlin.serialization.ProtoBuf.Class.Builder builderForValue) { + ensureClassIsMutable(); + class_.add(index, builderForValue.build()); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder addAllClass( + java.lang.Iterable values) { + ensureClassIsMutable(); + super.addAll(values, class_); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder clearClass() { + class_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder removeClass(int index) { + ensureClassIsMutable(); + class_.remove(index); + + return this; + } + + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.builtins.BuiltIns) + } + + static { + defaultInstance = new BuiltIns(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.builtins.BuiltIns) + } + public static final int CLASS_NAME_FIELD_NUMBER = 150; /** * extend .org.jetbrains.kotlin.serialization.Package { ... } diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializedResourcePaths.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializedResourcePaths.kt index 5bcfadfd539..b8a9a9d8f9d 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializedResourcePaths.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializedResourcePaths.kt @@ -47,6 +47,8 @@ object KotlinJavascriptSerializedResourcePaths : SerializedResourcePaths { override fun getStringTableFilePath(fqName: FqName): String = fqName.toPath().withSepIfNotEmpty() + shortName(fqName) + "." + STRING_TABLE_FILE_EXTENSION + override fun getBuiltInsFilePath(fqName: FqName): String? = null + private fun FqName.toPath() = this.asString().replace('.', '/') private fun String.withSepIfNotEmpty() = if (this.isEmpty()) this else this + "/"