From 4b81dfb7c1946805a25970d004ccc4d330af064b Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 24 Jan 2017 14:05:43 +0300 Subject: [PATCH] JS: improve binary representation format of metadata in .meta.js Instead of writing many different files and serializing this "virtual file system" to a byte array in a protobuf message, just write the needed stuff directly, as fields in the Library message. Make it consist of many Part messages, where the Part message is equivalent to the BuiltIns message in builtins.proto. The next step would be to combine Library.Part and BuiltIns, which will allow us to simplify some serialization-related code soon. In this commit, no changes happened to the .kjsm format. But since the code that serialized the abovementioned files was shared, a temporary abstraction over two serialization formats was made, see SerializerCallbacks. This commit temporarily breaks .kjsm decompiler and stub builder --- .../serialization/js/DebugJsProtoBuf.java | 2232 ++++++++++++----- ...tlinJavaScriptDeserializerForDecompiler.kt | 10 +- .../js/KotlinJavaScriptStubBuilder.kt | 6 +- js/js.serializer/src/js.proto | 28 +- .../kotlin/serialization/js/JsProtoBuf.java | 1357 ++++++---- .../js/KotlinJavascriptClassDataFinder.kt | 16 +- .../js/KotlinJavascriptPackageFragment.kt | 49 +- .../js/KotlinJavascriptSerializationUtil.kt | 309 ++- ...KotlinJavascriptSerializedResourcePaths.kt | 14 - .../js/KotlinJavascriptSerializerExtension.kt | 12 +- ...kotlinJavascriptPackageFragmentProvider.kt | 18 +- 11 files changed, 2724 insertions(+), 1327 deletions(-) diff --git a/build-common/test/org/jetbrains/kotlin/serialization/js/DebugJsProtoBuf.java b/build-common/test/org/jetbrains/kotlin/serialization/js/DebugJsProtoBuf.java index 193d2437993..7d18e79637e 100644 --- a/build-common/test/org/jetbrains/kotlin/serialization/js/DebugJsProtoBuf.java +++ b/build-common/test/org/jetbrains/kotlin/serialization/js/DebugJsProtoBuf.java @@ -7,6 +7,7 @@ public final class DebugJsProtoBuf { private DebugJsProtoBuf() {} public static void registerAllExtensions( org.jetbrains.kotlin.protobuf.ExtensionRegistry registry) { + registry.add(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.packageFqName); registry.add(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.classAnnotation); registry.add(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.classContainingFileId); registry.add(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.constructorAnnotation); @@ -2023,38 +2024,38 @@ public final class DebugJsProtoBuf { org.jetbrains.kotlin.protobuf.MessageOrBuilder { /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - java.util.List - getEntryList(); - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry getEntry(int index); - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - int getEntryCount(); - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - java.util.List - getEntryOrBuilderList(); - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntryOrBuilder getEntryOrBuilder( - int index); - - /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ boolean hasKind(); /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Kind getKind(); + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + java.util.List + getPartList(); + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part getPart(int index); + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + int getPartCount(); + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + java.util.List + getPartOrBuilderList(); + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.PartOrBuilder getPartOrBuilder( + int index); + /** * repeated string imported_module = 3; */ @@ -2126,25 +2127,25 @@ public final class DebugJsProtoBuf { } break; } - case 10: { - if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) { - entry_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - entry_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.PARSER, extensionRegistry)); - break; - } - case 16: { + case 8: { int rawValue = input.readEnum(); org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Kind value = org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Kind.valueOf(rawValue); if (value == null) { - unknownFields.mergeVarintField(2, rawValue); + unknownFields.mergeVarintField(1, rawValue); } else { bitField0_ |= 0x00000001; kind_ = value; } break; } + case 18: { + if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + part_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; + } + part_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.PARSER, extensionRegistry)); + break; + } case 26: { org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) { @@ -2162,8 +2163,8 @@ public final class DebugJsProtoBuf { throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException( e.getMessage()).setUnfinishedMessage(this); } finally { - if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) { - entry_ = java.util.Collections.unmodifiableList(entry_); + if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + part_ = java.util.Collections.unmodifiableList(part_); } if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) { importedModule_ = importedModule_.getUnmodifiableView(); @@ -2299,53 +2300,111 @@ public final class DebugJsProtoBuf { // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.js.Library.Kind) } - public interface FileEntryOrBuilder extends - // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.Library.FileEntry) + public interface PartOrBuilder extends + // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.Library.Part) org.jetbrains.kotlin.protobuf.MessageOrBuilder { /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - boolean hasPath(); + boolean hasStrings(); /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - java.lang.String getPath(); + org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable getStrings(); /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - org.jetbrains.kotlin.protobuf.ByteString - getPathBytes(); + org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTableOrBuilder getStringsOrBuilder(); /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - boolean hasContent(); + boolean hasQualifiedNames(); /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - org.jetbrains.kotlin.protobuf.ByteString getContent(); + 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; + */ + 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; + */ + java.util.List + getClass_List(); + /** + * 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 getClass_Count(); + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + java.util.List + getClass_OrBuilderList(); + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + org.jetbrains.kotlin.serialization.DebugProtoBuf.ClassOrBuilder getClass_OrBuilder( + int index); + + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + boolean hasFiles(); + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files getFiles(); + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.FilesOrBuilder getFilesOrBuilder(); } /** - * Protobuf type {@code org.jetbrains.kotlin.serialization.js.Library.FileEntry} + * Protobuf type {@code org.jetbrains.kotlin.serialization.js.Library.Part} + * + *
+     * This is a copy of BuiltIns in builtins.proto
+     * TODO: combine the two
+     * 
*/ - public static final class FileEntry extends + public static final class Part extends org.jetbrains.kotlin.protobuf.GeneratedMessage implements - // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.Library.FileEntry) - FileEntryOrBuilder { - // Use FileEntry.newBuilder() to construct. - private FileEntry(org.jetbrains.kotlin.protobuf.GeneratedMessage.Builder builder) { + // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.Library.Part) + PartOrBuilder { + // Use Part.newBuilder() to construct. + private Part(org.jetbrains.kotlin.protobuf.GeneratedMessage.Builder builder) { super(builder); this.unknownFields = builder.getUnknownFields(); } - private FileEntry(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.UnknownFieldSet.getDefaultInstance(); } + private Part(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.UnknownFieldSet.getDefaultInstance(); } - private static final FileEntry defaultInstance; - public static FileEntry getDefaultInstance() { + private static final Part defaultInstance; + public static Part getDefaultInstance() { return defaultInstance; } - public FileEntry getDefaultInstanceForType() { + public Part getDefaultInstanceForType() { return defaultInstance; } @@ -2355,7 +2414,7 @@ public final class DebugJsProtoBuf { getUnknownFields() { return this.unknownFields; } - private FileEntry( + private Part( org.jetbrains.kotlin.protobuf.CodedInputStream input, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { @@ -2379,14 +2438,63 @@ public final class DebugJsProtoBuf { break; } case 10: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + 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; - path_ = bs; 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; - content_ = input.readBytes(); + 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; + } + case 1042: { + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.Builder subBuilder = null; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + subBuilder = files_.toBuilder(); + } + files_ = input.readMessage(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(files_); + files_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000008; break; } } @@ -2397,98 +2505,166 @@ public final class DebugJsProtoBuf { throw new org.jetbrains.kotlin.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 org.jetbrains.kotlin.protobuf.Descriptors.Descriptor getDescriptor() { - return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_js_Library_FileEntry_descriptor; + return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_js_Library_Part_descriptor; } protected org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_js_Library_FileEntry_fieldAccessorTable + return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_js_Library_Part_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.class, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.Builder.class); + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.class, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.Builder.class); } - public static org.jetbrains.kotlin.protobuf.Parser PARSER = - new org.jetbrains.kotlin.protobuf.AbstractParser() { - public FileEntry parsePartialFrom( + public static org.jetbrains.kotlin.protobuf.Parser PARSER = + new org.jetbrains.kotlin.protobuf.AbstractParser() { + public Part parsePartialFrom( org.jetbrains.kotlin.protobuf.CodedInputStream input, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { - return new FileEntry(input, extensionRegistry); + return new Part(input, extensionRegistry); } }; @java.lang.Override - public org.jetbrains.kotlin.protobuf.Parser getParserForType() { + public org.jetbrains.kotlin.protobuf.Parser getParserForType() { return PARSER; } private int bitField0_; - public static final int PATH_FIELD_NUMBER = 1; - private java.lang.Object path_; + public static final int STRINGS_FIELD_NUMBER = 1; + private org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable strings_; /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public boolean hasPath() { + public boolean hasStrings() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public java.lang.String getPath() { - java.lang.Object ref = path_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - path_ = s; - } - return s; - } + public org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable getStrings() { + return strings_; } /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public org.jetbrains.kotlin.protobuf.ByteString - getPathBytes() { - java.lang.Object ref = path_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - path_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTableOrBuilder getStringsOrBuilder() { + return strings_; } - public static final int CONTENT_FIELD_NUMBER = 2; - private org.jetbrains.kotlin.protobuf.ByteString content_; + public static final int QUALIFIED_NAMES_FIELD_NUMBER = 2; + private org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable qualifiedNames_; /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - public boolean hasContent() { + public boolean hasQualifiedNames() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString getContent() { - return content_; + 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_; + } + + 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_; + } + + 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 getClass_List() { + return class__; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List + getClass_OrBuilderList() { + return class__; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public int getClass_Count() { + 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 getClass_OrBuilder( + int index) { + return class__.get(index); + } + + public static final int FILES_FIELD_NUMBER = 130; + private org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files files_; + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public boolean hasFiles() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files getFiles() { + return files_; + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.FilesOrBuilder getFilesOrBuilder() { + return files_; } private void initFields() { - path_ = ""; - content_ = org.jetbrains.kotlin.protobuf.ByteString.EMPTY; + 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(); + files_ = org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -2496,13 +2672,29 @@ public final class DebugJsProtoBuf { if (isInitialized == 1) return true; if (isInitialized == 0) return false; - if (!hasPath()) { - memoizedIsInitialized = 0; - return false; + if (hasQualifiedNames()) { + if (!getQualifiedNames().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } } - if (!hasContent()) { - memoizedIsInitialized = 0; - return false; + if (hasPackage()) { + if (!getPackage().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + for (int i = 0; i < getClass_Count(); i++) { + if (!getClass_(i).isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + if (hasFiles()) { + if (!getFiles().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } } memoizedIsInitialized = 1; return true; @@ -2512,10 +2704,19 @@ public final class DebugJsProtoBuf { throws java.io.IOException { getSerializedSize(); if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeBytes(1, getPathBytes()); + output.writeMessage(1, strings_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, content_); + 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)); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeMessage(130, files_); } getUnknownFields().writeTo(output); } @@ -2528,11 +2729,23 @@ public final class DebugJsProtoBuf { size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(1, getPathBytes()); + .computeMessageSize(1, strings_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(2, content_); + .computeMessageSize(2, qualifiedNames_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(3, package_); + } + for (int i = 0; i < class__.size(); i++) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(4, class__.get(i)); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(130, files_); } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; @@ -2546,53 +2759,53 @@ public final class DebugJsProtoBuf { return super.writeReplace(); } - public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry parseFrom( + public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part parseFrom( org.jetbrains.kotlin.protobuf.ByteString data) throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry parseFrom( + public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part parseFrom( org.jetbrains.kotlin.protobuf.ByteString data, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry parseFrom(byte[] data) + public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part parseFrom(byte[] data) throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry parseFrom( + public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part parseFrom( byte[] data, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry parseFrom(java.io.InputStream input) + public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part parseFrom(java.io.InputStream input) throws java.io.IOException { return PARSER.parseFrom(input); } - public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry parseFrom( + public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part parseFrom( java.io.InputStream input, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return PARSER.parseFrom(input, extensionRegistry); } - public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry parseDelimitedFrom(java.io.InputStream input) + public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return PARSER.parseDelimitedFrom(input); } - public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry parseDelimitedFrom( + public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part parseDelimitedFrom( java.io.InputStream input, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return PARSER.parseDelimitedFrom(input, extensionRegistry); } - public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry parseFrom( + public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part parseFrom( org.jetbrains.kotlin.protobuf.CodedInputStream input) throws java.io.IOException { return PARSER.parseFrom(input); } - public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry parseFrom( + public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part parseFrom( org.jetbrains.kotlin.protobuf.CodedInputStream input, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -2601,7 +2814,7 @@ public final class DebugJsProtoBuf { public static Builder newBuilder() { return Builder.create(); } public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry prototype) { + public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part prototype) { return newBuilder().mergeFrom(prototype); } public Builder toBuilder() { return newBuilder(this); } @@ -2613,25 +2826,30 @@ public final class DebugJsProtoBuf { return builder; } /** - * Protobuf type {@code org.jetbrains.kotlin.serialization.js.Library.FileEntry} + * Protobuf type {@code org.jetbrains.kotlin.serialization.js.Library.Part} + * + *
+       * This is a copy of BuiltIns in builtins.proto
+       * TODO: combine the two
+       * 
*/ public static final class Builder extends org.jetbrains.kotlin.protobuf.GeneratedMessage.Builder implements - // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.Library.FileEntry) - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntryOrBuilder { + // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.Library.Part) + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.PartOrBuilder { public static final org.jetbrains.kotlin.protobuf.Descriptors.Descriptor getDescriptor() { - return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_js_Library_FileEntry_descriptor; + return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_js_Library_Part_descriptor; } protected org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_js_Library_FileEntry_fieldAccessorTable + return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_js_Library_Part_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.class, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.Builder.class); + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.class, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.Builder.class); } - // Construct using org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.newBuilder() + // Construct using org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -2643,6 +2861,11 @@ public final class DebugJsProtoBuf { } private void maybeForceBuilderInitialization() { if (org.jetbrains.kotlin.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getStringsFieldBuilder(); + getQualifiedNamesFieldBuilder(); + getPackageFieldBuilder(); + getClass_FieldBuilder(); + getFilesFieldBuilder(); } } private static Builder create() { @@ -2651,10 +2874,36 @@ public final class DebugJsProtoBuf { public Builder clear() { super.clear(); - path_ = ""; + if (stringsBuilder_ == null) { + strings_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.getDefaultInstance(); + } else { + stringsBuilder_.clear(); + } bitField0_ = (bitField0_ & ~0x00000001); - content_ = org.jetbrains.kotlin.protobuf.ByteString.EMPTY; + 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 (class_Builder_ == null) { + class__ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + } else { + class_Builder_.clear(); + } + if (filesBuilder_ == null) { + files_ = org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.getDefaultInstance(); + } else { + filesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -2664,69 +2913,148 @@ public final class DebugJsProtoBuf { public org.jetbrains.kotlin.protobuf.Descriptors.Descriptor getDescriptorForType() { - return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_js_Library_FileEntry_descriptor; + return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_js_Library_Part_descriptor; } - public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry getDefaultInstanceForType() { - return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.getDefaultInstance(); + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part getDefaultInstanceForType() { + return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.getDefaultInstance(); } - public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry build() { - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry result = buildPartial(); + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part build() { + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry buildPartial() { - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry result = new org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry(this); + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part buildPartial() { + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part result = new org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) == 0x00000001)) { to_bitField0_ |= 0x00000001; } - result.path_ = path_; + if (stringsBuilder_ == null) { + result.strings_ = strings_; + } else { + result.strings_ = stringsBuilder_.build(); + } if (((from_bitField0_ & 0x00000002) == 0x00000002)) { to_bitField0_ |= 0x00000002; } - result.content_ = content_; + 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 (class_Builder_ == null) { + if (((bitField0_ & 0x00000008) == 0x00000008)) { + class__ = java.util.Collections.unmodifiableList(class__); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.class__ = class__; + } else { + result.class__ = class_Builder_.build(); + } + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000008; + } + if (filesBuilder_ == null) { + result.files_ = files_; + } else { + result.files_ = filesBuilder_.build(); + } result.bitField0_ = to_bitField0_; onBuilt(); return result; } public Builder mergeFrom(org.jetbrains.kotlin.protobuf.Message other) { - if (other instanceof org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry) { - return mergeFrom((org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry)other); + if (other instanceof org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part) { + return mergeFrom((org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry other) { - if (other == org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.getDefaultInstance()) return this; - if (other.hasPath()) { - bitField0_ |= 0x00000001; - path_ = other.path_; - onChanged(); + public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part other) { + if (other == org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.getDefaultInstance()) return this; + if (other.hasStrings()) { + mergeStrings(other.getStrings()); } - if (other.hasContent()) { - setContent(other.getContent()); + if (other.hasQualifiedNames()) { + mergeQualifiedNames(other.getQualifiedNames()); + } + if (other.hasPackage()) { + mergePackage(other.getPackage()); + } + if (class_Builder_ == null) { + if (!other.class__.isEmpty()) { + if (class__.isEmpty()) { + class__ = other.class__; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureClass_IsMutable(); + class__.addAll(other.class__); + } + onChanged(); + } + } else { + if (!other.class__.isEmpty()) { + if (class_Builder_.isEmpty()) { + class_Builder_.dispose(); + class_Builder_ = null; + class__ = other.class__; + bitField0_ = (bitField0_ & ~0x00000008); + class_Builder_ = + org.jetbrains.kotlin.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getClass_FieldBuilder() : null; + } else { + class_Builder_.addAllMessages(other.class__); + } + } + } + if (other.hasFiles()) { + mergeFiles(other.getFiles()); } this.mergeUnknownFields(other.getUnknownFields()); return this; } public final boolean isInitialized() { - if (!hasPath()) { - - return false; + if (hasQualifiedNames()) { + if (!getQualifiedNames().isInitialized()) { + + return false; + } } - if (!hasContent()) { - - return false; + if (hasPackage()) { + if (!getPackage().isInitialized()) { + + return false; + } + } + for (int i = 0; i < getClass_Count(); i++) { + if (!getClass_(i).isInitialized()) { + + return false; + } + } + if (hasFiles()) { + if (!getFiles().isInitialized()) { + + return false; + } } return true; } @@ -2735,11 +3063,11 @@ public final class DebugJsProtoBuf { org.jetbrains.kotlin.protobuf.CodedInputStream input, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry parsedMessage = null; + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry) e.getUnfinishedMessage(); + parsedMessage = (org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part) e.getUnfinishedMessage(); throw e; } finally { if (parsedMessage != null) { @@ -2750,179 +3078,772 @@ public final class DebugJsProtoBuf { } private int bitField0_; - private java.lang.Object path_ = ""; + private org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable strings_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.getDefaultInstance(); + private org.jetbrains.kotlin.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable, org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTableOrBuilder> stringsBuilder_; /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public boolean hasPath() { + public boolean hasStrings() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public java.lang.String getPath() { - java.lang.Object ref = path_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - path_ = s; + 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(); } - return s; + strings_ = value; + onChanged(); } else { - return (java.lang.String) ref; + stringsBuilder_.setMessage(value); } - } - /** - * required string path = 1; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getPathBytes() { - java.lang.Object ref = path_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - path_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } - } - /** - * required string path = 1; - */ - public Builder setPath( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - path_ = value; - onChanged(); + bitField0_ |= 0x00000001; return this; } /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public Builder clearPath() { + 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); - path_ = getDefaultInstance().getPath(); - onChanged(); return this; } /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public Builder setPathBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - path_ = value; + public org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.Builder getStringsBuilder() { + bitField0_ |= 0x00000001; onChanged(); - return this; + 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 org.jetbrains.kotlin.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 org.jetbrains.kotlin.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable, org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.StringTableOrBuilder>( + getStrings(), + getParentForChildren(), + isClean()); + strings_ = null; + } + return stringsBuilder_; } - private org.jetbrains.kotlin.protobuf.ByteString content_ = org.jetbrains.kotlin.protobuf.ByteString.EMPTY; + private org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable qualifiedNames_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.getDefaultInstance(); + private org.jetbrains.kotlin.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTableOrBuilder> qualifiedNamesBuilder_; /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - public boolean hasContent() { + public boolean hasQualifiedNames() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString getContent() { - return content_; + public org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable getQualifiedNames() { + if (qualifiedNamesBuilder_ == null) { + return qualifiedNames_; + } else { + return qualifiedNamesBuilder_.getMessage(); + } } /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - public Builder setContent(org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - content_ = value; - onChanged(); + 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; } /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - public Builder clearContent() { + 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); - content_ = getDefaultInstance().getContent(); - onChanged(); 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 org.jetbrains.kotlin.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 org.jetbrains.kotlin.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTable.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.QualifiedNameTableOrBuilder>( + getQualifiedNames(), + getParentForChildren(), + isClean()); + qualifiedNames_ = null; + } + return qualifiedNamesBuilder_; + } - // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.Library.FileEntry) + private org.jetbrains.kotlin.serialization.DebugProtoBuf.Package package_ = org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.getDefaultInstance(); + private org.jetbrains.kotlin.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 org.jetbrains.kotlin.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 org.jetbrains.kotlin.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Package, org.jetbrains.kotlin.serialization.DebugProtoBuf.Package.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.PackageOrBuilder>( + getPackage(), + getParentForChildren(), + isClean()); + package_ = null; + } + return packageBuilder_; + } + + private java.util.List class__ = + java.util.Collections.emptyList(); + private void ensureClass_IsMutable() { + if (!((bitField0_ & 0x00000008) == 0x00000008)) { + class__ = new java.util.ArrayList(class__); + bitField0_ |= 0x00000008; + } + } + + private org.jetbrains.kotlin.protobuf.RepeatedFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.ClassOrBuilder> class_Builder_; + + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List getClass_List() { + if (class_Builder_ == null) { + return java.util.Collections.unmodifiableList(class__); + } else { + return class_Builder_.getMessageList(); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public int getClass_Count() { + if (class_Builder_ == null) { + return class__.size(); + } else { + return class_Builder_.getCount(); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class getClass_(int index) { + if (class_Builder_ == null) { + return class__.get(index); + } else { + return class_Builder_.getMessage(index); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder setClass_( + int index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class value) { + if (class_Builder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureClass_IsMutable(); + class__.set(index, value); + onChanged(); + } else { + class_Builder_.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 (class_Builder_ == null) { + ensureClass_IsMutable(); + class__.set(index, builderForValue.build()); + onChanged(); + } else { + class_Builder_.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 (class_Builder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureClass_IsMutable(); + class__.add(value); + onChanged(); + } else { + class_Builder_.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 (class_Builder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureClass_IsMutable(); + class__.add(index, value); + onChanged(); + } else { + class_Builder_.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 (class_Builder_ == null) { + ensureClass_IsMutable(); + class__.add(builderForValue.build()); + onChanged(); + } else { + class_Builder_.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 (class_Builder_ == null) { + ensureClass_IsMutable(); + class__.add(index, builderForValue.build()); + onChanged(); + } else { + class_Builder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder addAllClass_( + java.lang.Iterable values) { + if (class_Builder_ == null) { + ensureClass_IsMutable(); + org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll( + values, class__); + onChanged(); + } else { + class_Builder_.addAllMessages(values); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder clearClass_() { + if (class_Builder_ == null) { + class__ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + class_Builder_.clear(); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder removeClass_(int index) { + if (class_Builder_ == null) { + ensureClass_IsMutable(); + class__.remove(index); + onChanged(); + } else { + class_Builder_.remove(index); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder getClass_Builder( + int index) { + return getClass_FieldBuilder().getBuilder(index); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.ClassOrBuilder getClass_OrBuilder( + int index) { + if (class_Builder_ == null) { + return class__.get(index); } else { + return class_Builder_.getMessageOrBuilder(index); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List + getClass_OrBuilderList() { + if (class_Builder_ != null) { + return class_Builder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(class__); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder addClass_Builder() { + return getClass_FieldBuilder().addBuilder( + org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.getDefaultInstance()); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder addClass_Builder( + int index) { + return getClass_FieldBuilder().addBuilder( + index, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.getDefaultInstance()); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List + getClass_BuilderList() { + return getClass_FieldBuilder().getBuilderList(); + } + private org.jetbrains.kotlin.protobuf.RepeatedFieldBuilder< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Class, org.jetbrains.kotlin.serialization.DebugProtoBuf.Class.Builder, org.jetbrains.kotlin.serialization.DebugProtoBuf.ClassOrBuilder> + getClass_FieldBuilder() { + if (class_Builder_ == null) { + class_Builder_ = new org.jetbrains.kotlin.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 class_Builder_; + } + + private org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files files_ = org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.getDefaultInstance(); + private org.jetbrains.kotlin.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.Builder, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.FilesOrBuilder> filesBuilder_; + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public boolean hasFiles() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files getFiles() { + if (filesBuilder_ == null) { + return files_; + } else { + return filesBuilder_.getMessage(); + } + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public Builder setFiles(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files value) { + if (filesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + files_ = value; + onChanged(); + } else { + filesBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public Builder setFiles( + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.Builder builderForValue) { + if (filesBuilder_ == null) { + files_ = builderForValue.build(); + onChanged(); + } else { + filesBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public Builder mergeFiles(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files value) { + if (filesBuilder_ == null) { + if (((bitField0_ & 0x00000010) == 0x00000010) && + files_ != org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.getDefaultInstance()) { + files_ = + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.newBuilder(files_).mergeFrom(value).buildPartial(); + } else { + files_ = value; + } + onChanged(); + } else { + filesBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000010; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public Builder clearFiles() { + if (filesBuilder_ == null) { + files_ = org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.getDefaultInstance(); + onChanged(); + } else { + filesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.Builder getFilesBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getFilesFieldBuilder().getBuilder(); + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.FilesOrBuilder getFilesOrBuilder() { + if (filesBuilder_ != null) { + return filesBuilder_.getMessageOrBuilder(); + } else { + return files_; + } + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + private org.jetbrains.kotlin.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.Builder, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.FilesOrBuilder> + getFilesFieldBuilder() { + if (filesBuilder_ == null) { + filesBuilder_ = new org.jetbrains.kotlin.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Files.Builder, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.FilesOrBuilder>( + getFiles(), + getParentForChildren(), + isClean()); + files_ = null; + } + return filesBuilder_; + } + + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.Library.Part) } static { - defaultInstance = new FileEntry(true); + defaultInstance = new Part(true); defaultInstance.initFields(); } - // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.Library.FileEntry) + // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.Library.Part) } private int bitField0_; - public static final int ENTRY_FIELD_NUMBER = 1; - private java.util.List entry_; - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public java.util.List getEntryList() { - return entry_; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public java.util.List - getEntryOrBuilderList() { - return entry_; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public int getEntryCount() { - return entry_.size(); - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry getEntry(int index) { - return entry_.get(index); - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntryOrBuilder getEntryOrBuilder( - int index) { - return entry_.get(index); - } - - public static final int KIND_FIELD_NUMBER = 2; + public static final int KIND_FIELD_NUMBER = 1; private org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Kind kind_; /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ public boolean hasKind() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Kind getKind() { return kind_; } + public static final int PART_FIELD_NUMBER = 2; + private java.util.List part_; + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public java.util.List getPartList() { + return part_; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public java.util.List + getPartOrBuilderList() { + return part_; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public int getPartCount() { + return part_.size(); + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part getPart(int index) { + return part_.get(index); + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.PartOrBuilder getPartOrBuilder( + int index) { + return part_.get(index); + } + public static final int IMPORTED_MODULE_FIELD_NUMBER = 3; private org.jetbrains.kotlin.protobuf.LazyStringList importedModule_; /** @@ -2953,8 +3874,8 @@ public final class DebugJsProtoBuf { } private void initFields() { - entry_ = java.util.Collections.emptyList(); kind_ = org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Kind.PLAIN; + part_ = java.util.Collections.emptyList(); importedModule_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY; } private byte memoizedIsInitialized = -1; @@ -2963,8 +3884,8 @@ public final class DebugJsProtoBuf { if (isInitialized == 1) return true; if (isInitialized == 0) return false; - for (int i = 0; i < getEntryCount(); i++) { - if (!getEntry(i).isInitialized()) { + for (int i = 0; i < getPartCount(); i++) { + if (!getPart(i).isInitialized()) { memoizedIsInitialized = 0; return false; } @@ -2976,11 +3897,11 @@ public final class DebugJsProtoBuf { public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output) throws java.io.IOException { getSerializedSize(); - for (int i = 0; i < entry_.size(); i++) { - output.writeMessage(1, entry_.get(i)); - } if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeEnum(2, kind_.getNumber()); + output.writeEnum(1, kind_.getNumber()); + } + for (int i = 0; i < part_.size(); i++) { + output.writeMessage(2, part_.get(i)); } for (int i = 0; i < importedModule_.size(); i++) { output.writeBytes(3, importedModule_.getByteString(i)); @@ -2994,13 +3915,13 @@ public final class DebugJsProtoBuf { if (size != -1) return size; size = 0; - for (int i = 0; i < entry_.size(); i++) { - size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeMessageSize(1, entry_.get(i)); - } if (((bitField0_ & 0x00000001) == 0x00000001)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeEnumSize(2, kind_.getNumber()); + .computeEnumSize(1, kind_.getNumber()); + } + for (int i = 0; i < part_.size(); i++) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(2, part_.get(i)); } { int dataSize = 0; @@ -3120,7 +4041,7 @@ public final class DebugJsProtoBuf { } private void maybeForceBuilderInitialization() { if (org.jetbrains.kotlin.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - getEntryFieldBuilder(); + getPartFieldBuilder(); } } private static Builder create() { @@ -3129,14 +4050,14 @@ public final class DebugJsProtoBuf { public Builder clear() { super.clear(); - if (entryBuilder_ == null) { - entry_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - entryBuilder_.clear(); - } kind_ = org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Kind.PLAIN; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); + if (partBuilder_ == null) { + part_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + } else { + partBuilder_.clear(); + } importedModule_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000004); return this; @@ -3167,19 +4088,19 @@ public final class DebugJsProtoBuf { org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library result = new org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; - if (entryBuilder_ == null) { - if (((bitField0_ & 0x00000001) == 0x00000001)) { - entry_ = java.util.Collections.unmodifiableList(entry_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.entry_ = entry_; - } else { - result.entry_ = entryBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { to_bitField0_ |= 0x00000001; } result.kind_ = kind_; + if (partBuilder_ == null) { + if (((bitField0_ & 0x00000002) == 0x00000002)) { + part_ = java.util.Collections.unmodifiableList(part_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.part_ = part_; + } else { + result.part_ = partBuilder_.build(); + } if (((bitField0_ & 0x00000004) == 0x00000004)) { importedModule_ = importedModule_.getUnmodifiableView(); bitField0_ = (bitField0_ & ~0x00000004); @@ -3201,35 +4122,35 @@ public final class DebugJsProtoBuf { public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library other) { if (other == org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.getDefaultInstance()) return this; - if (entryBuilder_ == null) { - if (!other.entry_.isEmpty()) { - if (entry_.isEmpty()) { - entry_ = other.entry_; - bitField0_ = (bitField0_ & ~0x00000001); + if (other.hasKind()) { + setKind(other.getKind()); + } + if (partBuilder_ == null) { + if (!other.part_.isEmpty()) { + if (part_.isEmpty()) { + part_ = other.part_; + bitField0_ = (bitField0_ & ~0x00000002); } else { - ensureEntryIsMutable(); - entry_.addAll(other.entry_); + ensurePartIsMutable(); + part_.addAll(other.part_); } onChanged(); } } else { - if (!other.entry_.isEmpty()) { - if (entryBuilder_.isEmpty()) { - entryBuilder_.dispose(); - entryBuilder_ = null; - entry_ = other.entry_; - bitField0_ = (bitField0_ & ~0x00000001); - entryBuilder_ = + if (!other.part_.isEmpty()) { + if (partBuilder_.isEmpty()) { + partBuilder_.dispose(); + partBuilder_ = null; + part_ = other.part_; + bitField0_ = (bitField0_ & ~0x00000002); + partBuilder_ = org.jetbrains.kotlin.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getEntryFieldBuilder() : null; + getPartFieldBuilder() : null; } else { - entryBuilder_.addAllMessages(other.entry_); + partBuilder_.addAllMessages(other.part_); } } } - if (other.hasKind()) { - setKind(other.getKind()); - } if (!other.importedModule_.isEmpty()) { if (importedModule_.isEmpty()) { importedModule_ = other.importedModule_; @@ -3245,8 +4166,8 @@ public final class DebugJsProtoBuf { } public final boolean isInitialized() { - for (int i = 0; i < getEntryCount(); i++) { - if (!getEntry(i).isInitialized()) { + for (int i = 0; i < getPartCount(); i++) { + if (!getPart(i).isInitialized()) { return false; } @@ -3273,281 +4194,281 @@ public final class DebugJsProtoBuf { } private int bitField0_; - private java.util.List entry_ = - java.util.Collections.emptyList(); - private void ensureEntryIsMutable() { - if (!((bitField0_ & 0x00000001) == 0x00000001)) { - entry_ = new java.util.ArrayList(entry_); - bitField0_ |= 0x00000001; - } - } - - private org.jetbrains.kotlin.protobuf.RepeatedFieldBuilder< - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.Builder, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntryOrBuilder> entryBuilder_; - - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public java.util.List getEntryList() { - if (entryBuilder_ == null) { - return java.util.Collections.unmodifiableList(entry_); - } else { - return entryBuilder_.getMessageList(); - } - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public int getEntryCount() { - if (entryBuilder_ == null) { - return entry_.size(); - } else { - return entryBuilder_.getCount(); - } - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry getEntry(int index) { - if (entryBuilder_ == null) { - return entry_.get(index); - } else { - return entryBuilder_.getMessage(index); - } - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder setEntry( - int index, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry value) { - if (entryBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureEntryIsMutable(); - entry_.set(index, value); - onChanged(); - } else { - entryBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder setEntry( - int index, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.Builder builderForValue) { - if (entryBuilder_ == null) { - ensureEntryIsMutable(); - entry_.set(index, builderForValue.build()); - onChanged(); - } else { - entryBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder addEntry(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry value) { - if (entryBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureEntryIsMutable(); - entry_.add(value); - onChanged(); - } else { - entryBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder addEntry( - int index, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry value) { - if (entryBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureEntryIsMutable(); - entry_.add(index, value); - onChanged(); - } else { - entryBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder addEntry( - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.Builder builderForValue) { - if (entryBuilder_ == null) { - ensureEntryIsMutable(); - entry_.add(builderForValue.build()); - onChanged(); - } else { - entryBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder addEntry( - int index, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.Builder builderForValue) { - if (entryBuilder_ == null) { - ensureEntryIsMutable(); - entry_.add(index, builderForValue.build()); - onChanged(); - } else { - entryBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder addAllEntry( - java.lang.Iterable values) { - if (entryBuilder_ == null) { - ensureEntryIsMutable(); - org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll( - values, entry_); - onChanged(); - } else { - entryBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder clearEntry() { - if (entryBuilder_ == null) { - entry_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - entryBuilder_.clear(); - } - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder removeEntry(int index) { - if (entryBuilder_ == null) { - ensureEntryIsMutable(); - entry_.remove(index); - onChanged(); - } else { - entryBuilder_.remove(index); - } - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.Builder getEntryBuilder( - int index) { - return getEntryFieldBuilder().getBuilder(index); - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntryOrBuilder getEntryOrBuilder( - int index) { - if (entryBuilder_ == null) { - return entry_.get(index); } else { - return entryBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public java.util.List - getEntryOrBuilderList() { - if (entryBuilder_ != null) { - return entryBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(entry_); - } - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.Builder addEntryBuilder() { - return getEntryFieldBuilder().addBuilder( - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.getDefaultInstance()); - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.Builder addEntryBuilder( - int index) { - return getEntryFieldBuilder().addBuilder( - index, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.getDefaultInstance()); - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public java.util.List - getEntryBuilderList() { - return getEntryFieldBuilder().getBuilderList(); - } - private org.jetbrains.kotlin.protobuf.RepeatedFieldBuilder< - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.Builder, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntryOrBuilder> - getEntryFieldBuilder() { - if (entryBuilder_ == null) { - entryBuilder_ = new org.jetbrains.kotlin.protobuf.RepeatedFieldBuilder< - org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntry.Builder, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.FileEntryOrBuilder>( - entry_, - ((bitField0_ & 0x00000001) == 0x00000001), - getParentForChildren(), - isClean()); - entry_ = null; - } - return entryBuilder_; - } - private org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Kind kind_ = org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Kind.PLAIN; /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ public boolean hasKind() { - return ((bitField0_ & 0x00000002) == 0x00000002); + return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Kind getKind() { return kind_; } /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ public Builder setKind(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Kind value) { if (value == null) { throw new NullPointerException(); } - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000001; kind_ = value; onChanged(); return this; } /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ public Builder clearKind() { - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); kind_ = org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Kind.PLAIN; onChanged(); return this; } + private java.util.List part_ = + java.util.Collections.emptyList(); + private void ensurePartIsMutable() { + if (!((bitField0_ & 0x00000002) == 0x00000002)) { + part_ = new java.util.ArrayList(part_); + bitField0_ |= 0x00000002; + } + } + + private org.jetbrains.kotlin.protobuf.RepeatedFieldBuilder< + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.Builder, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.PartOrBuilder> partBuilder_; + + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public java.util.List getPartList() { + if (partBuilder_ == null) { + return java.util.Collections.unmodifiableList(part_); + } else { + return partBuilder_.getMessageList(); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public int getPartCount() { + if (partBuilder_ == null) { + return part_.size(); + } else { + return partBuilder_.getCount(); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part getPart(int index) { + if (partBuilder_ == null) { + return part_.get(index); + } else { + return partBuilder_.getMessage(index); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder setPart( + int index, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part value) { + if (partBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePartIsMutable(); + part_.set(index, value); + onChanged(); + } else { + partBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder setPart( + int index, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.Builder builderForValue) { + if (partBuilder_ == null) { + ensurePartIsMutable(); + part_.set(index, builderForValue.build()); + onChanged(); + } else { + partBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder addPart(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part value) { + if (partBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePartIsMutable(); + part_.add(value); + onChanged(); + } else { + partBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder addPart( + int index, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part value) { + if (partBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePartIsMutable(); + part_.add(index, value); + onChanged(); + } else { + partBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder addPart( + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.Builder builderForValue) { + if (partBuilder_ == null) { + ensurePartIsMutable(); + part_.add(builderForValue.build()); + onChanged(); + } else { + partBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder addPart( + int index, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.Builder builderForValue) { + if (partBuilder_ == null) { + ensurePartIsMutable(); + part_.add(index, builderForValue.build()); + onChanged(); + } else { + partBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder addAllPart( + java.lang.Iterable values) { + if (partBuilder_ == null) { + ensurePartIsMutable(); + org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll( + values, part_); + onChanged(); + } else { + partBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder clearPart() { + if (partBuilder_ == null) { + part_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + partBuilder_.clear(); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder removePart(int index) { + if (partBuilder_ == null) { + ensurePartIsMutable(); + part_.remove(index); + onChanged(); + } else { + partBuilder_.remove(index); + } + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.Builder getPartBuilder( + int index) { + return getPartFieldBuilder().getBuilder(index); + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.PartOrBuilder getPartOrBuilder( + int index) { + if (partBuilder_ == null) { + return part_.get(index); } else { + return partBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public java.util.List + getPartOrBuilderList() { + if (partBuilder_ != null) { + return partBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(part_); + } + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.Builder addPartBuilder() { + return getPartFieldBuilder().addBuilder( + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.getDefaultInstance()); + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.Builder addPartBuilder( + int index) { + return getPartFieldBuilder().addBuilder( + index, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.getDefaultInstance()); + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public java.util.List + getPartBuilderList() { + return getPartFieldBuilder().getBuilderList(); + } + private org.jetbrains.kotlin.protobuf.RepeatedFieldBuilder< + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.Builder, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.PartOrBuilder> + getPartFieldBuilder() { + if (partBuilder_ == null) { + partBuilder_ = new org.jetbrains.kotlin.protobuf.RepeatedFieldBuilder< + org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.Part.Builder, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Library.PartOrBuilder>( + part_, + ((bitField0_ & 0x00000002) == 0x00000002), + getParentForChildren(), + isClean()); + part_ = null; + } + return partBuilder_; + } + private org.jetbrains.kotlin.protobuf.LazyStringList importedModule_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY; private void ensureImportedModuleIsMutable() { if (!((bitField0_ & 0x00000004) == 0x00000004)) { @@ -3652,6 +4573,17 @@ public final class DebugJsProtoBuf { // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.Library) } + public static final int PACKAGE_FQ_NAME_FIELD_NUMBER = 131; + /** + * extend .org.jetbrains.kotlin.serialization.Package { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Package, + java.lang.Integer> packageFqName = org.jetbrains.kotlin.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Integer.class, + null); public static final int CLASS_ANNOTATION_FIELD_NUMBER = 130; /** * extend .org.jetbrains.kotlin.serialization.Class { ... } @@ -3805,10 +4737,10 @@ public final class DebugJsProtoBuf { org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable internal_static_org_jetbrains_kotlin_serialization_js_Library_fieldAccessorTable; private static final org.jetbrains.kotlin.protobuf.Descriptors.Descriptor - internal_static_org_jetbrains_kotlin_serialization_js_Library_FileEntry_descriptor; + internal_static_org_jetbrains_kotlin_serialization_js_Library_Part_descriptor; private static org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_org_jetbrains_kotlin_serialization_js_Library_FileEntry_fieldAccessorTable; + internal_static_org_jetbrains_kotlin_serialization_js_Library_Part_fieldAccessorTable; public static org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -3825,50 +4757,59 @@ public final class DebugJsProtoBuf { "\030\002 \003(\0132..org.jetbrains.kotlin.serializat" + "ion.Annotation\"B\n\005Files\0229\n\004file\030\001 \003(\0132+." + "org.jetbrains.kotlin.serialization.js.Fi" + - "le\"!\n\007Classes\022\026\n\nclass_name\030\001 \003(\005B\002\020\001\"\225\002" + - "\n\007Library\022G\n\005entry\030\001 \003(\01328.org.jetbrains" + - ".kotlin.serialization.js.Library.FileEnt", - "ry\022H\n\004kind\030\002 \001(\01623.org.jetbrains.kotlin." + - "serialization.js.Library.Kind:\005PLAIN\022\027\n\017" + - "imported_module\030\003 \003(\t\032*\n\tFileEntry\022\014\n\004pa" + - "th\030\001 \002(\t\022\017\n\007content\030\002 \002(\014\"2\n\004Kind\022\t\n\005PLA" + - "IN\020\001\022\007\n\003AMD\020\002\022\r\n\tCOMMON_JS\020\003\022\007\n\003UMD\020\004:t\n" + - "\020class_annotation\022).org.jetbrains.kotlin" + - ".serialization.Class\030\202\001 \003(\0132..org.jetbra" + - "ins.kotlin.serialization.Annotation:L\n\030c" + - "lass_containing_file_id\022).org.jetbrains." + - "kotlin.serialization.Class\030\207\001 \001(\005:\200\001\n\026co", - "nstructor_annotation\022/.org.jetbrains.kot" + - "lin.serialization.Constructor\030\202\001 \003(\0132..o" + - "rg.jetbrains.kotlin.serialization.Annota" + - "tion:z\n\023function_annotation\022,.org.jetbra" + - "ins.kotlin.serialization.Function\030\202\001 \003(\013" + - "2..org.jetbrains.kotlin.serialization.An" + - "notation:R\n\033function_containing_file_id\022" + - ",.org.jetbrains.kotlin.serialization.Fun" + - "ction\030\207\001 \001(\005:z\n\023property_annotation\022,.or" + - "g.jetbrains.kotlin.serialization.Propert", - "y\030\202\001 \003(\0132..org.jetbrains.kotlin.serializ" + - "ation.Annotation:\210\001\n\022compile_time_value\022" + - ",.org.jetbrains.kotlin.serialization.Pro" + - "perty\030\203\001 \001(\0132=.org.jetbrains.kotlin.seri" + - "alization.Annotation.Argument.Value:R\n\033p" + - "roperty_containing_file_id\022,.org.jetbrai" + - "ns.kotlin.serialization.Property\030\207\001 \001(\005:" + - "}\n\025enum_entry_annotation\022-.org.jetbrains" + - ".kotlin.serialization.EnumEntry\030\202\001 \003(\0132." + - ".org.jetbrains.kotlin.serialization.Anno", - "tation:\201\001\n\024parameter_annotation\0222.org.je" + - "tbrains.kotlin.serialization.ValueParame" + - "ter\030\202\001 \003(\0132..org.jetbrains.kotlin.serial" + - "ization.Annotation:r\n\017type_annotation\022(." + - "org.jetbrains.kotlin.serialization.Type\030" + - "\202\001 \003(\0132..org.jetbrains.kotlin.serializat" + - "ion.Annotation:\205\001\n\031type_parameter_annota" + - "tion\0221.org.jetbrains.kotlin.serializatio" + - "n.TypeParameter\030\202\001 \003(\0132..org.jetbrains.k" + - "otlin.serialization.AnnotationB\021B\017DebugJ", - "sProtoBuf" + "le\"!\n\007Classes\022\026\n\nclass_name\030\001 \003(\005B\002\020\001\"\265\004" + + "\n\007Library\022H\n\004kind\030\001 \001(\01623.org.jetbrains." + + "kotlin.serialization.js.Library.Kind:\005PL", + "AIN\022A\n\004part\030\002 \003(\01323.org.jetbrains.kotlin" + + ".serialization.js.Library.Part\022\027\n\017import" + + "ed_module\030\003 \003(\t\032\317\002\n\004Part\022@\n\007strings\030\001 \001(" + + "\0132/.org.jetbrains.kotlin.serialization.S" + + "tringTable\022O\n\017qualified_names\030\002 \001(\01326.or" + + "g.jetbrains.kotlin.serialization.Qualifi" + + "edNameTable\022<\n\007package\030\003 \001(\0132+.org.jetbr" + + "ains.kotlin.serialization.Package\0228\n\005cla" + + "ss\030\004 \003(\0132).org.jetbrains.kotlin.serializ" + + "ation.Class\022<\n\005files\030\202\001 \001(\0132,.org.jetbra", + "ins.kotlin.serialization.js.Files\"2\n\004Kin" + + "d\022\t\n\005PLAIN\020\001\022\007\n\003AMD\020\002\022\r\n\tCOMMON_JS\020\003\022\007\n\003" + + "UMD\020\004:E\n\017package_fq_name\022+.org.jetbrains" + + ".kotlin.serialization.Package\030\203\001 \001(\005:t\n\020" + + "class_annotation\022).org.jetbrains.kotlin." + + "serialization.Class\030\202\001 \003(\0132..org.jetbrai" + + "ns.kotlin.serialization.Annotation:L\n\030cl" + + "ass_containing_file_id\022).org.jetbrains.k" + + "otlin.serialization.Class\030\207\001 \001(\005:\200\001\n\026con" + + "structor_annotation\022/.org.jetbrains.kotl", + "in.serialization.Constructor\030\202\001 \003(\0132..or" + + "g.jetbrains.kotlin.serialization.Annotat" + + "ion:z\n\023function_annotation\022,.org.jetbrai" + + "ns.kotlin.serialization.Function\030\202\001 \003(\0132" + + "..org.jetbrains.kotlin.serialization.Ann" + + "otation:R\n\033function_containing_file_id\022," + + ".org.jetbrains.kotlin.serialization.Func" + + "tion\030\207\001 \001(\005:z\n\023property_annotation\022,.org" + + ".jetbrains.kotlin.serialization.Property" + + "\030\202\001 \003(\0132..org.jetbrains.kotlin.serializa", + "tion.Annotation:\210\001\n\022compile_time_value\022," + + ".org.jetbrains.kotlin.serialization.Prop" + + "erty\030\203\001 \001(\0132=.org.jetbrains.kotlin.seria" + + "lization.Annotation.Argument.Value:R\n\033pr" + + "operty_containing_file_id\022,.org.jetbrain" + + "s.kotlin.serialization.Property\030\207\001 \001(\005:}" + + "\n\025enum_entry_annotation\022-.org.jetbrains." + + "kotlin.serialization.EnumEntry\030\202\001 \003(\0132.." + + "org.jetbrains.kotlin.serialization.Annot" + + "ation:\201\001\n\024parameter_annotation\0222.org.jet", + "brains.kotlin.serialization.ValueParamet" + + "er\030\202\001 \003(\0132..org.jetbrains.kotlin.seriali" + + "zation.Annotation:r\n\017type_annotation\022(.o" + + "rg.jetbrains.kotlin.serialization.Type\030\202" + + "\001 \003(\0132..org.jetbrains.kotlin.serializati" + + "on.Annotation:\205\001\n\031type_parameter_annotat" + + "ion\0221.org.jetbrains.kotlin.serialization" + + ".TypeParameter\030\202\001 \003(\0132..org.jetbrains.ko" + + "tlin.serialization.AnnotationB\021B\017DebugJs" + + "ProtoBuf" }; org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -3906,25 +4847,26 @@ public final class DebugJsProtoBuf { internal_static_org_jetbrains_kotlin_serialization_js_Library_fieldAccessorTable = new org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_jetbrains_kotlin_serialization_js_Library_descriptor, - new java.lang.String[] { "Entry", "Kind", "ImportedModule", }); - internal_static_org_jetbrains_kotlin_serialization_js_Library_FileEntry_descriptor = + new java.lang.String[] { "Kind", "Part", "ImportedModule", }); + internal_static_org_jetbrains_kotlin_serialization_js_Library_Part_descriptor = internal_static_org_jetbrains_kotlin_serialization_js_Library_descriptor.getNestedTypes().get(0); - internal_static_org_jetbrains_kotlin_serialization_js_Library_FileEntry_fieldAccessorTable = new + internal_static_org_jetbrains_kotlin_serialization_js_Library_Part_fieldAccessorTable = new org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_org_jetbrains_kotlin_serialization_js_Library_FileEntry_descriptor, - new java.lang.String[] { "Path", "Content", }); - classAnnotation.internalInit(descriptor.getExtensions().get(0)); - classContainingFileId.internalInit(descriptor.getExtensions().get(1)); - constructorAnnotation.internalInit(descriptor.getExtensions().get(2)); - functionAnnotation.internalInit(descriptor.getExtensions().get(3)); - functionContainingFileId.internalInit(descriptor.getExtensions().get(4)); - propertyAnnotation.internalInit(descriptor.getExtensions().get(5)); - compileTimeValue.internalInit(descriptor.getExtensions().get(6)); - propertyContainingFileId.internalInit(descriptor.getExtensions().get(7)); - enumEntryAnnotation.internalInit(descriptor.getExtensions().get(8)); - parameterAnnotation.internalInit(descriptor.getExtensions().get(9)); - typeAnnotation.internalInit(descriptor.getExtensions().get(10)); - typeParameterAnnotation.internalInit(descriptor.getExtensions().get(11)); + internal_static_org_jetbrains_kotlin_serialization_js_Library_Part_descriptor, + new java.lang.String[] { "Strings", "QualifiedNames", "Package", "Class_", "Files", }); + packageFqName.internalInit(descriptor.getExtensions().get(0)); + classAnnotation.internalInit(descriptor.getExtensions().get(1)); + classContainingFileId.internalInit(descriptor.getExtensions().get(2)); + constructorAnnotation.internalInit(descriptor.getExtensions().get(3)); + functionAnnotation.internalInit(descriptor.getExtensions().get(4)); + functionContainingFileId.internalInit(descriptor.getExtensions().get(5)); + propertyAnnotation.internalInit(descriptor.getExtensions().get(6)); + compileTimeValue.internalInit(descriptor.getExtensions().get(7)); + propertyContainingFileId.internalInit(descriptor.getExtensions().get(8)); + enumEntryAnnotation.internalInit(descriptor.getExtensions().get(9)); + parameterAnnotation.internalInit(descriptor.getExtensions().get(10)); + typeAnnotation.internalInit(descriptor.getExtensions().get(11)); + typeParameterAnnotation.internalInit(descriptor.getExtensions().get(12)); org.jetbrains.kotlin.serialization.DebugProtoBuf.getDescriptor(); } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptDeserializerForDecompiler.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptDeserializerForDecompiler.kt index c76222fa8e4..ee01c6b52c4 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptDeserializerForDecompiler.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptDeserializerForDecompiler.kt @@ -31,10 +31,7 @@ import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.serialization.ProtoBuf import org.jetbrains.kotlin.serialization.deserialization.* import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPackageMemberScope -import org.jetbrains.kotlin.serialization.js.DynamicTypeDeserializer -import org.jetbrains.kotlin.serialization.js.JsSerializerProtocol -import org.jetbrains.kotlin.serialization.js.KotlinJavascriptClassDataFinder -import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializedResourcePaths +import org.jetbrains.kotlin.serialization.js.* import java.io.ByteArrayInputStream class KotlinJavaScriptDeserializerForDecompiler( @@ -52,9 +49,8 @@ class KotlinJavaScriptDeserializerForDecompiler( override val targetPlatform: TargetPlatform get() = JsPlatform override val builtIns: KotlinBuiltIns get() = DefaultBuiltIns.Instance - private val classDataFinder = KotlinJavascriptClassDataFinder(nameResolver) { path -> - packageDirectory.findChild(path.substringAfterLast("/"))?.inputStream - } + // TODO: read metadata from .kjsm files here + private val classDataFinder = KotlinJavascriptClassDataFinder(JsProtoBuf.Library.Part.getDefaultInstance(), nameResolver) override val deserializationComponents: DeserializationComponents diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptStubBuilder.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptStubBuilder.kt index ac83bde909b..fe733075865 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptStubBuilder.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptStubBuilder.kt @@ -32,6 +32,7 @@ import org.jetbrains.kotlin.serialization.ProtoBuf import org.jetbrains.kotlin.serialization.deserialization.NameResolver import org.jetbrains.kotlin.serialization.deserialization.NameResolverImpl import org.jetbrains.kotlin.serialization.deserialization.TypeTable +import org.jetbrains.kotlin.serialization.js.JsProtoBuf import org.jetbrains.kotlin.serialization.js.JsSerializerProtocol import org.jetbrains.kotlin.serialization.js.KotlinJavascriptClassDataFinder import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializedResourcePaths @@ -76,9 +77,8 @@ class KotlinJavaScriptStubBuilder : ClsStubBuilder() { } private fun createStubBuilderComponents(file: VirtualFile, nameResolver: NameResolver): ClsStubBuilderComponents { - val classDataFinder = KotlinJavascriptClassDataFinder(nameResolver) { path -> - file.parent.findChild(path.substringAfterLast("/"))?.inputStream - } + // TODO: read metadata from .kjsm files here + val classDataFinder = KotlinJavascriptClassDataFinder(JsProtoBuf.Library.Part.getDefaultInstance(), nameResolver) val annotationLoader = AnnotationLoaderForStubBuilderImpl(JsSerializerProtocol) return ClsStubBuilderComponents(classDataFinder, annotationLoader, file) } diff --git a/js/js.serializer/src/js.proto b/js/js.serializer/src/js.proto index 920bc7c9365..92d0631ac2c 100644 --- a/js/js.serializer/src/js.proto +++ b/js/js.serializer/src/js.proto @@ -30,6 +30,10 @@ message Files { repeated File file = 1; } +extend Package { + optional int32 package_fq_name = 131; +} + extend Class { repeated Annotation class_annotation = 130; optional int32 class_containing_file_id = 135; @@ -72,11 +76,6 @@ message Classes { } message Library { - message FileEntry { - required string path = 1; - required bytes content = 2; - } - enum Kind { PLAIN = 1; AMD = 2; @@ -84,7 +83,22 @@ message Library { UMD = 4; } - repeated FileEntry entry = 1; - optional Kind kind = 2 [default = PLAIN]; + // This is a copy of BuiltIns in builtins.proto + // TODO: combine the two + message Part { + optional StringTable strings = 1; + optional QualifiedNameTable qualified_names = 2; + + optional Package package = 3; + + repeated Class class = 4; + + optional Files files = 130; + } + + optional Kind kind = 1 [default = PLAIN]; + + repeated Part part = 2; + repeated string imported_module = 3; } diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/JsProtoBuf.java b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/JsProtoBuf.java index 3cf213e86a0..241a963f882 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/JsProtoBuf.java +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/JsProtoBuf.java @@ -7,6 +7,7 @@ public final class JsProtoBuf { private JsProtoBuf() {} public static void registerAllExtensions( org.jetbrains.kotlin.protobuf.ExtensionRegistryLite registry) { + registry.add(org.jetbrains.kotlin.serialization.js.JsProtoBuf.packageFqName); registry.add(org.jetbrains.kotlin.serialization.js.JsProtoBuf.classAnnotation); registry.add(org.jetbrains.kotlin.serialization.js.JsProtoBuf.classContainingFileId); registry.add(org.jetbrains.kotlin.serialization.js.JsProtoBuf.constructorAnnotation); @@ -1588,28 +1589,28 @@ public final class JsProtoBuf { org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - java.util.List - getEntryList(); - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry getEntry(int index); - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - int getEntryCount(); - - /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ boolean hasKind(); /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Kind getKind(); + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + java.util.List + getPartList(); + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part getPart(int index); + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + int getPartCount(); + /** * repeated string imported_module = 3; */ @@ -1679,15 +1680,7 @@ public final class JsProtoBuf { } break; } - case 10: { - if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) { - entry_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - entry_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry.PARSER, extensionRegistry)); - break; - } - case 16: { + case 8: { int rawValue = input.readEnum(); org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Kind value = org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Kind.valueOf(rawValue); if (value == null) { @@ -1699,6 +1692,14 @@ public final class JsProtoBuf { } break; } + case 18: { + if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + part_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; + } + part_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part.PARSER, extensionRegistry)); + break; + } case 26: { org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) { @@ -1716,8 +1717,8 @@ public final class JsProtoBuf { throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException( e.getMessage()).setUnfinishedMessage(this); } finally { - if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) { - entry_ = java.util.Collections.unmodifiableList(entry_); + if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + part_ = java.util.Collections.unmodifiableList(part_); } if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) { importedModule_ = importedModule_.getUnmodifiableView(); @@ -1821,58 +1822,90 @@ public final class JsProtoBuf { // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.js.Library.Kind) } - public interface FileEntryOrBuilder extends - // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.Library.FileEntry) + public interface PartOrBuilder extends + // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.Library.Part) org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - boolean hasPath(); + boolean hasStrings(); /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - java.lang.String getPath(); - /** - * required string path = 1; - */ - org.jetbrains.kotlin.protobuf.ByteString - getPathBytes(); + org.jetbrains.kotlin.serialization.ProtoBuf.StringTable getStrings(); /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - boolean hasContent(); + boolean hasQualifiedNames(); /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - org.jetbrains.kotlin.protobuf.ByteString getContent(); + org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable getQualifiedNames(); + + /** + * 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; + */ + java.util.List + getClass_List(); + /** + * 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 getClass_Count(); + + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + boolean hasFiles(); + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files getFiles(); } /** - * Protobuf type {@code org.jetbrains.kotlin.serialization.js.Library.FileEntry} + * Protobuf type {@code org.jetbrains.kotlin.serialization.js.Library.Part} + * + *
+     * This is a copy of BuiltIns in builtins.proto
+     * TODO: combine the two
+     * 
*/ - public static final class FileEntry extends + public static final class Part extends org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements - // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.Library.FileEntry) - FileEntryOrBuilder { - // Use FileEntry.newBuilder() to construct. - private FileEntry(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) { + // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.Library.Part) + PartOrBuilder { + // Use Part.newBuilder() to construct. + private Part(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) { super(builder); this.unknownFields = builder.getUnknownFields(); } - private FileEntry(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;} + private Part(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;} - private static final FileEntry defaultInstance; - public static FileEntry getDefaultInstance() { + private static final Part defaultInstance; + public static Part getDefaultInstance() { return defaultInstance; } - public FileEntry getDefaultInstanceForType() { + public Part getDefaultInstanceForType() { return defaultInstance; } private final org.jetbrains.kotlin.protobuf.ByteString unknownFields; - private FileEntry( + private Part( org.jetbrains.kotlin.protobuf.CodedInputStream input, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { @@ -1899,14 +1932,63 @@ public final class JsProtoBuf { break; } case 10: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + 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; - path_ = bs; 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; - content_ = input.readBytes(); + 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; + } + case 1042: { + org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files.Builder subBuilder = null; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + subBuilder = files_.toBuilder(); + } + files_ = input.readMessage(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(files_); + files_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000008; break; } } @@ -1917,6 +1999,9 @@ public final class JsProtoBuf { throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException( e.getMessage()).setUnfinishedMessage(this); } finally { + if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + class__ = java.util.Collections.unmodifiableList(class__); + } try { unknownFieldsCodedOutput.flush(); } catch (java.io.IOException e) { @@ -1927,82 +2012,123 @@ public final class JsProtoBuf { makeExtensionsImmutable(); } } - public static org.jetbrains.kotlin.protobuf.Parser PARSER = - new org.jetbrains.kotlin.protobuf.AbstractParser() { - public FileEntry parsePartialFrom( + public static org.jetbrains.kotlin.protobuf.Parser PARSER = + new org.jetbrains.kotlin.protobuf.AbstractParser() { + public Part parsePartialFrom( org.jetbrains.kotlin.protobuf.CodedInputStream input, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { - return new FileEntry(input, extensionRegistry); + return new Part(input, extensionRegistry); } }; @java.lang.Override - public org.jetbrains.kotlin.protobuf.Parser getParserForType() { + public org.jetbrains.kotlin.protobuf.Parser getParserForType() { return PARSER; } private int bitField0_; - public static final int PATH_FIELD_NUMBER = 1; - private java.lang.Object path_; + public static final int STRINGS_FIELD_NUMBER = 1; + private org.jetbrains.kotlin.serialization.ProtoBuf.StringTable strings_; /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public boolean hasPath() { + public boolean hasStrings() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public java.lang.String getPath() { - java.lang.Object ref = path_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - path_ = s; - } - return s; - } - } - /** - * required string path = 1; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getPathBytes() { - java.lang.Object ref = path_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - path_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.serialization.ProtoBuf.StringTable getStrings() { + return strings_; } - public static final int CONTENT_FIELD_NUMBER = 2; - private org.jetbrains.kotlin.protobuf.ByteString content_; + public static final int QUALIFIED_NAMES_FIELD_NUMBER = 2; + private org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable qualifiedNames_; /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - public boolean hasContent() { + public boolean hasQualifiedNames() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString getContent() { - return content_; + public org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable getQualifiedNames() { + return qualifiedNames_; + } + + 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_; + } + + 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 getClass_List() { + return class__; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List + getClass_OrBuilderList() { + return class__; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public int getClass_Count() { + 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 getClass_OrBuilder( + int index) { + return class__.get(index); + } + + public static final int FILES_FIELD_NUMBER = 130; + private org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files files_; + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public boolean hasFiles() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files getFiles() { + return files_; } private void initFields() { - path_ = ""; - content_ = org.jetbrains.kotlin.protobuf.ByteString.EMPTY; + 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(); + files_ = org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -2010,13 +2136,29 @@ public final class JsProtoBuf { if (isInitialized == 1) return true; if (isInitialized == 0) return false; - if (!hasPath()) { - memoizedIsInitialized = 0; - return false; + if (hasQualifiedNames()) { + if (!getQualifiedNames().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } } - if (!hasContent()) { - memoizedIsInitialized = 0; - return false; + if (hasPackage()) { + if (!getPackage().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + for (int i = 0; i < getClass_Count(); i++) { + if (!getClass_(i).isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + if (hasFiles()) { + if (!getFiles().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } } memoizedIsInitialized = 1; return true; @@ -2026,10 +2168,19 @@ public final class JsProtoBuf { throws java.io.IOException { getSerializedSize(); if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeBytes(1, getPathBytes()); + output.writeMessage(1, strings_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, content_); + 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)); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeMessage(130, files_); } output.writeRawBytes(unknownFields); } @@ -2042,11 +2193,23 @@ public final class JsProtoBuf { size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(1, getPathBytes()); + .computeMessageSize(1, strings_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(2, content_); + .computeMessageSize(2, qualifiedNames_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(3, package_); + } + for (int i = 0; i < class__.size(); i++) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(4, class__.get(i)); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(130, files_); } size += unknownFields.size(); memoizedSerializedSize = size; @@ -2060,53 +2223,53 @@ public final class JsProtoBuf { return super.writeReplace(); } - public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry parseFrom( + public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part parseFrom( org.jetbrains.kotlin.protobuf.ByteString data) throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry parseFrom( + public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part parseFrom( org.jetbrains.kotlin.protobuf.ByteString data, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry parseFrom(byte[] data) + public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part parseFrom(byte[] data) throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry parseFrom( + public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part parseFrom( byte[] data, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry parseFrom(java.io.InputStream input) + public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part parseFrom(java.io.InputStream input) throws java.io.IOException { return PARSER.parseFrom(input); } - public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry parseFrom( + public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part parseFrom( java.io.InputStream input, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return PARSER.parseFrom(input, extensionRegistry); } - public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry parseDelimitedFrom(java.io.InputStream input) + public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return PARSER.parseDelimitedFrom(input); } - public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry parseDelimitedFrom( + public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part parseDelimitedFrom( java.io.InputStream input, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return PARSER.parseDelimitedFrom(input, extensionRegistry); } - public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry parseFrom( + public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part parseFrom( org.jetbrains.kotlin.protobuf.CodedInputStream input) throws java.io.IOException { return PARSER.parseFrom(input); } - public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry parseFrom( + public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part parseFrom( org.jetbrains.kotlin.protobuf.CodedInputStream input, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -2115,21 +2278,26 @@ public final class JsProtoBuf { public static Builder newBuilder() { return Builder.create(); } public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry prototype) { + public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part prototype) { return newBuilder().mergeFrom(prototype); } public Builder toBuilder() { return newBuilder(this); } /** - * Protobuf type {@code org.jetbrains.kotlin.serialization.js.Library.FileEntry} + * Protobuf type {@code org.jetbrains.kotlin.serialization.js.Library.Part} + * + *
+       * This is a copy of BuiltIns in builtins.proto
+       * TODO: combine the two
+       * 
*/ public static final class Builder extends org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder< - org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry, Builder> + org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part, Builder> implements - // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.Library.FileEntry) - org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntryOrBuilder { - // Construct using org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry.newBuilder() + // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.Library.Part) + org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.PartOrBuilder { + // Construct using org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -2142,10 +2310,16 @@ public final class JsProtoBuf { public Builder clear() { super.clear(); - path_ = ""; + strings_ = org.jetbrains.kotlin.serialization.ProtoBuf.StringTable.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000001); - content_ = org.jetbrains.kotlin.protobuf.ByteString.EMPTY; + 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); + files_ = org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -2153,43 +2327,70 @@ public final class JsProtoBuf { return create().mergeFrom(buildPartial()); } - public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry getDefaultInstanceForType() { - return org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry.getDefaultInstance(); + public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part getDefaultInstanceForType() { + return org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part.getDefaultInstance(); } - public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry build() { - org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry result = buildPartial(); + public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part build() { + org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry buildPartial() { - org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry result = new org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry(this); + public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part buildPartial() { + org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part result = new org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) == 0x00000001)) { to_bitField0_ |= 0x00000001; } - result.path_ = path_; + result.strings_ = strings_; if (((from_bitField0_ & 0x00000002) == 0x00000002)) { to_bitField0_ |= 0x00000002; } - result.content_ = content_; + 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__; + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000008; + } + result.files_ = files_; result.bitField0_ = to_bitField0_; return result; } - public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry other) { - if (other == org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry.getDefaultInstance()) return this; - if (other.hasPath()) { - bitField0_ |= 0x00000001; - path_ = other.path_; + public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part other) { + if (other == org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part.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 { + ensureClass_IsMutable(); + class__.addAll(other.class__); + } } - if (other.hasContent()) { - setContent(other.getContent()); + if (other.hasFiles()) { + mergeFiles(other.getFiles()); } setUnknownFields( getUnknownFields().concat(other.unknownFields)); @@ -2197,13 +2398,29 @@ public final class JsProtoBuf { } public final boolean isInitialized() { - if (!hasPath()) { - - return false; + if (hasQualifiedNames()) { + if (!getQualifiedNames().isInitialized()) { + + return false; + } } - if (!hasContent()) { - - return false; + if (hasPackage()) { + if (!getPackage().isInitialized()) { + + return false; + } + } + for (int i = 0; i < getClass_Count(); i++) { + if (!getClass_(i).isInitialized()) { + + return false; + } + } + if (hasFiles()) { + if (!getFiles().isInitialized()) { + + return false; + } } return true; } @@ -2212,11 +2429,11 @@ public final class JsProtoBuf { org.jetbrains.kotlin.protobuf.CodedInputStream input, org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry parsedMessage = null; + org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry) e.getUnfinishedMessage(); + parsedMessage = (org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part) e.getUnfinishedMessage(); throw e; } finally { if (parsedMessage != null) { @@ -2227,179 +2444,433 @@ public final class JsProtoBuf { } private int bitField0_; - private java.lang.Object path_ = ""; + private org.jetbrains.kotlin.serialization.ProtoBuf.StringTable strings_ = org.jetbrains.kotlin.serialization.ProtoBuf.StringTable.getDefaultInstance(); /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public boolean hasPath() { + public boolean hasStrings() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public java.lang.String getPath() { - java.lang.Object ref = path_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - path_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.serialization.ProtoBuf.StringTable getStrings() { + return strings_; } /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public org.jetbrains.kotlin.protobuf.ByteString - getPathBytes() { - java.lang.Object ref = path_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - path_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } - } - /** - * required string path = 1; - */ - public Builder setPath( - java.lang.String value) { + public Builder setStrings(org.jetbrains.kotlin.serialization.ProtoBuf.StringTable value) { if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - path_ = value; - + throw new NullPointerException(); + } + strings_ = value; + + bitField0_ |= 0x00000001; return this; } /** - * required string path = 1; + * optional .org.jetbrains.kotlin.serialization.StringTable strings = 1; */ - public Builder clearPath() { + 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); - path_ = getDefaultInstance().getPath(); - - return this; - } - /** - * required string path = 1; - */ - public Builder setPathBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - path_ = value; - return this; } - private org.jetbrains.kotlin.protobuf.ByteString content_ = org.jetbrains.kotlin.protobuf.ByteString.EMPTY; + private org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable qualifiedNames_ = org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable.getDefaultInstance(); /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - public boolean hasContent() { + public boolean hasQualifiedNames() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString getContent() { - return content_; + public org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable getQualifiedNames() { + return qualifiedNames_; } /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - public Builder setContent(org.jetbrains.kotlin.protobuf.ByteString value) { + public Builder setQualifiedNames(org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable value) { if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - content_ = value; - + throw new NullPointerException(); + } + qualifiedNames_ = value; + + bitField0_ |= 0x00000002; return this; } /** - * required bytes content = 2; + * optional .org.jetbrains.kotlin.serialization.QualifiedNameTable qualified_names = 2; */ - public Builder clearContent() { + 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); - content_ = getDefaultInstance().getContent(); - return this; } - // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.Library.FileEntry) + 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; + } + + private java.util.List class__ = + java.util.Collections.emptyList(); + private void ensureClass_IsMutable() { + if (!((bitField0_ & 0x00000008) == 0x00000008)) { + class__ = new java.util.ArrayList(class__); + bitField0_ |= 0x00000008; + } + } + + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public java.util.List getClass_List() { + return java.util.Collections.unmodifiableList(class__); + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public int getClass_Count() { + 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(); + } + ensureClass_IsMutable(); + 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) { + ensureClass_IsMutable(); + 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(); + } + ensureClass_IsMutable(); + 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(); + } + ensureClass_IsMutable(); + 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) { + ensureClass_IsMutable(); + 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) { + ensureClass_IsMutable(); + class__.add(index, builderForValue.build()); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.Class class = 4; + */ + public Builder addAllClass_( + java.lang.Iterable values) { + ensureClass_IsMutable(); + org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.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) { + ensureClass_IsMutable(); + class__.remove(index); + + return this; + } + + private org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files files_ = org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files.getDefaultInstance(); + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public boolean hasFiles() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files getFiles() { + return files_; + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public Builder setFiles(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files value) { + if (value == null) { + throw new NullPointerException(); + } + files_ = value; + + bitField0_ |= 0x00000010; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public Builder setFiles( + org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files.Builder builderForValue) { + files_ = builderForValue.build(); + + bitField0_ |= 0x00000010; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public Builder mergeFiles(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files value) { + if (((bitField0_ & 0x00000010) == 0x00000010) && + files_ != org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files.getDefaultInstance()) { + files_ = + org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files.newBuilder(files_).mergeFrom(value).buildPartial(); + } else { + files_ = value; + } + + bitField0_ |= 0x00000010; + return this; + } + /** + * optional .org.jetbrains.kotlin.serialization.js.Files files = 130; + */ + public Builder clearFiles() { + files_ = org.jetbrains.kotlin.serialization.js.JsProtoBuf.Files.getDefaultInstance(); + + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.Library.Part) } static { - defaultInstance = new FileEntry(true); + defaultInstance = new Part(true); defaultInstance.initFields(); } - // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.Library.FileEntry) + // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.Library.Part) } private int bitField0_; - public static final int ENTRY_FIELD_NUMBER = 1; - private java.util.List entry_; - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public java.util.List getEntryList() { - return entry_; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public java.util.List - getEntryOrBuilderList() { - return entry_; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public int getEntryCount() { - return entry_.size(); - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry getEntry(int index) { - return entry_.get(index); - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntryOrBuilder getEntryOrBuilder( - int index) { - return entry_.get(index); - } - - public static final int KIND_FIELD_NUMBER = 2; + public static final int KIND_FIELD_NUMBER = 1; private org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Kind kind_; /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ public boolean hasKind() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Kind getKind() { return kind_; } + public static final int PART_FIELD_NUMBER = 2; + private java.util.List part_; + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public java.util.List getPartList() { + return part_; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public java.util.List + getPartOrBuilderList() { + return part_; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public int getPartCount() { + return part_.size(); + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part getPart(int index) { + return part_.get(index); + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.PartOrBuilder getPartOrBuilder( + int index) { + return part_.get(index); + } + public static final int IMPORTED_MODULE_FIELD_NUMBER = 3; private org.jetbrains.kotlin.protobuf.LazyStringList importedModule_; /** @@ -2430,8 +2901,8 @@ public final class JsProtoBuf { } private void initFields() { - entry_ = java.util.Collections.emptyList(); kind_ = org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Kind.PLAIN; + part_ = java.util.Collections.emptyList(); importedModule_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY; } private byte memoizedIsInitialized = -1; @@ -2440,8 +2911,8 @@ public final class JsProtoBuf { if (isInitialized == 1) return true; if (isInitialized == 0) return false; - for (int i = 0; i < getEntryCount(); i++) { - if (!getEntry(i).isInitialized()) { + for (int i = 0; i < getPartCount(); i++) { + if (!getPart(i).isInitialized()) { memoizedIsInitialized = 0; return false; } @@ -2453,11 +2924,11 @@ public final class JsProtoBuf { public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output) throws java.io.IOException { getSerializedSize(); - for (int i = 0; i < entry_.size(); i++) { - output.writeMessage(1, entry_.get(i)); - } if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeEnum(2, kind_.getNumber()); + output.writeEnum(1, kind_.getNumber()); + } + for (int i = 0; i < part_.size(); i++) { + output.writeMessage(2, part_.get(i)); } for (int i = 0; i < importedModule_.size(); i++) { output.writeBytes(3, importedModule_.getByteString(i)); @@ -2471,13 +2942,13 @@ public final class JsProtoBuf { if (size != -1) return size; size = 0; - for (int i = 0; i < entry_.size(); i++) { - size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeMessageSize(1, entry_.get(i)); - } if (((bitField0_ & 0x00000001) == 0x00000001)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeEnumSize(2, kind_.getNumber()); + .computeEnumSize(1, kind_.getNumber()); + } + for (int i = 0; i < part_.size(); i++) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(2, part_.get(i)); } { int dataSize = 0; @@ -2582,9 +3053,9 @@ public final class JsProtoBuf { public Builder clear() { super.clear(); - entry_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); kind_ = org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Kind.PLAIN; + bitField0_ = (bitField0_ & ~0x00000001); + part_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000002); importedModule_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000004); @@ -2611,15 +3082,15 @@ public final class JsProtoBuf { org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library result = new org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library(this); int from_bitField0_ = bitField0_; int to_bitField0_ = 0; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - entry_ = java.util.Collections.unmodifiableList(entry_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.entry_ = entry_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { to_bitField0_ |= 0x00000001; } result.kind_ = kind_; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + part_ = java.util.Collections.unmodifiableList(part_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.part_ = part_; if (((bitField0_ & 0x00000004) == 0x00000004)) { importedModule_ = importedModule_.getUnmodifiableView(); bitField0_ = (bitField0_ & ~0x00000004); @@ -2631,19 +3102,19 @@ public final class JsProtoBuf { public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library other) { if (other == org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.getDefaultInstance()) return this; - if (!other.entry_.isEmpty()) { - if (entry_.isEmpty()) { - entry_ = other.entry_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureEntryIsMutable(); - entry_.addAll(other.entry_); - } - - } if (other.hasKind()) { setKind(other.getKind()); } + if (!other.part_.isEmpty()) { + if (part_.isEmpty()) { + part_ = other.part_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensurePartIsMutable(); + part_.addAll(other.part_); + } + + } if (!other.importedModule_.isEmpty()) { if (importedModule_.isEmpty()) { importedModule_ = other.importedModule_; @@ -2660,8 +3131,8 @@ public final class JsProtoBuf { } public final boolean isInitialized() { - for (int i = 0; i < getEntryCount(); i++) { - if (!getEntry(i).isInitialized()) { + for (int i = 0; i < getPartCount(); i++) { + if (!getPart(i).isInitialized()) { return false; } @@ -2688,166 +3159,166 @@ public final class JsProtoBuf { } private int bitField0_; - private java.util.List entry_ = - java.util.Collections.emptyList(); - private void ensureEntryIsMutable() { - if (!((bitField0_ & 0x00000001) == 0x00000001)) { - entry_ = new java.util.ArrayList(entry_); - bitField0_ |= 0x00000001; - } - } - - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public java.util.List getEntryList() { - return java.util.Collections.unmodifiableList(entry_); - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public int getEntryCount() { - return entry_.size(); - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry getEntry(int index) { - return entry_.get(index); - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder setEntry( - int index, org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry value) { - if (value == null) { - throw new NullPointerException(); - } - ensureEntryIsMutable(); - entry_.set(index, value); - - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder setEntry( - int index, org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry.Builder builderForValue) { - ensureEntryIsMutable(); - entry_.set(index, builderForValue.build()); - - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder addEntry(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry value) { - if (value == null) { - throw new NullPointerException(); - } - ensureEntryIsMutable(); - entry_.add(value); - - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder addEntry( - int index, org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry value) { - if (value == null) { - throw new NullPointerException(); - } - ensureEntryIsMutable(); - entry_.add(index, value); - - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder addEntry( - org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry.Builder builderForValue) { - ensureEntryIsMutable(); - entry_.add(builderForValue.build()); - - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder addEntry( - int index, org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.FileEntry.Builder builderForValue) { - ensureEntryIsMutable(); - entry_.add(index, builderForValue.build()); - - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder addAllEntry( - java.lang.Iterable values) { - ensureEntryIsMutable(); - org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll( - values, entry_); - - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder clearEntry() { - entry_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - - return this; - } - /** - * repeated .org.jetbrains.kotlin.serialization.js.Library.FileEntry entry = 1; - */ - public Builder removeEntry(int index) { - ensureEntryIsMutable(); - entry_.remove(index); - - return this; - } - private org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Kind kind_ = org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Kind.PLAIN; /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ public boolean hasKind() { - return ((bitField0_ & 0x00000002) == 0x00000002); + return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Kind getKind() { return kind_; } /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ public Builder setKind(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Kind value) { if (value == null) { throw new NullPointerException(); } - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000001; kind_ = value; return this; } /** - * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 2 [default = PLAIN]; + * optional .org.jetbrains.kotlin.serialization.js.Library.Kind kind = 1 [default = PLAIN]; */ public Builder clearKind() { - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); kind_ = org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Kind.PLAIN; return this; } + private java.util.List part_ = + java.util.Collections.emptyList(); + private void ensurePartIsMutable() { + if (!((bitField0_ & 0x00000002) == 0x00000002)) { + part_ = new java.util.ArrayList(part_); + bitField0_ |= 0x00000002; + } + } + + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public java.util.List getPartList() { + return java.util.Collections.unmodifiableList(part_); + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public int getPartCount() { + return part_.size(); + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part getPart(int index) { + return part_.get(index); + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder setPart( + int index, org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part value) { + if (value == null) { + throw new NullPointerException(); + } + ensurePartIsMutable(); + part_.set(index, value); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder setPart( + int index, org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part.Builder builderForValue) { + ensurePartIsMutable(); + part_.set(index, builderForValue.build()); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder addPart(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part value) { + if (value == null) { + throw new NullPointerException(); + } + ensurePartIsMutable(); + part_.add(value); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder addPart( + int index, org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part value) { + if (value == null) { + throw new NullPointerException(); + } + ensurePartIsMutable(); + part_.add(index, value); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder addPart( + org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part.Builder builderForValue) { + ensurePartIsMutable(); + part_.add(builderForValue.build()); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder addPart( + int index, org.jetbrains.kotlin.serialization.js.JsProtoBuf.Library.Part.Builder builderForValue) { + ensurePartIsMutable(); + part_.add(index, builderForValue.build()); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder addAllPart( + java.lang.Iterable values) { + ensurePartIsMutable(); + org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll( + values, part_); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder clearPart() { + part_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + + return this; + } + /** + * repeated .org.jetbrains.kotlin.serialization.js.Library.Part part = 2; + */ + public Builder removePart(int index) { + ensurePartIsMutable(); + part_.remove(index); + + return this; + } + private org.jetbrains.kotlin.protobuf.LazyStringList importedModule_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY; private void ensureImportedModuleIsMutable() { if (!((bitField0_ & 0x00000004) == 0x00000004)) { @@ -2952,6 +3423,22 @@ public final class JsProtoBuf { // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.Library) } + public static final int PACKAGE_FQ_NAME_FIELD_NUMBER = 131; + /** + * extend .org.jetbrains.kotlin.serialization.Package { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessageLite.GeneratedExtension< + org.jetbrains.kotlin.serialization.ProtoBuf.Package, + java.lang.Integer> packageFqName = org.jetbrains.kotlin.protobuf.GeneratedMessageLite + .newSingularGeneratedExtension( + org.jetbrains.kotlin.serialization.ProtoBuf.Package.getDefaultInstance(), + 0, + null, + null, + 131, + org.jetbrains.kotlin.protobuf.WireFormat.FieldType.INT32, + java.lang.Integer.class); public static final int CLASS_ANNOTATION_FIELD_NUMBER = 130; /** * extend .org.jetbrains.kotlin.serialization.Class { ... } diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptClassDataFinder.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptClassDataFinder.kt index d541291736d..55092b31d87 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptClassDataFinder.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptClassDataFinder.kt @@ -20,18 +20,22 @@ import org.jetbrains.kotlin.descriptors.SourceElement import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.serialization.ClassData import org.jetbrains.kotlin.serialization.ClassDataWithSource -import org.jetbrains.kotlin.serialization.ProtoBuf import org.jetbrains.kotlin.serialization.deserialization.ClassDataFinder import org.jetbrains.kotlin.serialization.deserialization.NameResolver -import java.io.InputStream class KotlinJavascriptClassDataFinder( - private val nameResolver: NameResolver, - private val loadResource: (path: String) -> InputStream? + proto: JsProtoBuf.Library.Part, + private val nameResolver: NameResolver ) : ClassDataFinder { + private val classIdToProto = + proto.class_List.associateBy { klass -> + nameResolver.getClassId(klass.fqName) + } + + internal val allClassIds: Collection get() = classIdToProto.keys + override fun findClassData(classId: ClassId): ClassDataWithSource? { - val stream = loadResource(KotlinJavascriptSerializedResourcePaths.getClassMetadataPath(classId)) ?: return null - val classProto = ProtoBuf.Class.parseFrom(stream, JsSerializerProtocol.extensionRegistry) + val classProto = classIdToProto[classId] ?: return null return ClassDataWithSource(ClassData(nameResolver, classProto), SourceElement.NO_SOURCE) } } diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptPackageFragment.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptPackageFragment.kt index 34398ceb1e1..967da277efd 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptPackageFragment.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptPackageFragment.kt @@ -20,63 +20,42 @@ import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.protobuf.CodedInputStream import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.serialization.ProtoBuf import org.jetbrains.kotlin.serialization.deserialization.AnnotationDeserializer import org.jetbrains.kotlin.serialization.deserialization.DeserializedPackageFragment -import org.jetbrains.kotlin.serialization.deserialization.NameResolverImpl +import org.jetbrains.kotlin.serialization.deserialization.NameResolver import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPackageMemberScope import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPropertyDescriptor import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedSimpleFunctionDescriptor import org.jetbrains.kotlin.storage.StorageManager -import java.io.InputStream +import org.jetbrains.kotlin.storage.getValue class KotlinJavascriptPackageFragment( fqName: FqName, storageManager: StorageManager, module: ModuleDescriptor, - private val loadResource: (path: String) -> InputStream? + private val proto: JsProtoBuf.Library.Part, + private val nameResolver: NameResolver ) : DeserializedPackageFragment(fqName, storageManager, module) { - private val nameResolver = - loadResourceSure(KotlinJavascriptSerializedResourcePaths.getStringTableFilePath(fqName)).use { stream -> - NameResolverImpl.read(stream) - } - - private val fileMap: Map by lazy { - loadResource(KotlinJavascriptSerializedResourcePaths.getFileListFilePath(fqName))?.use { rawInput -> - val input = CodedInputStream.newInstance(rawInput) - val filesProto = JsProtoBuf.Files.parseFrom(input).fileOrBuilderList - filesProto.associate { it.id to FileHolder(it.annotationList) } - }.orEmpty() + private val fileMap: Map by storageManager.createLazyValue { + proto.files.fileList.associate { file -> file.id to FileHolder(file.annotationList) } } - private val annotationDeserializer: AnnotationDeserializer by lazy { + private val annotationDeserializer: AnnotationDeserializer by storageManager.createLazyValue { AnnotationDeserializer(module, components.notFoundClasses) } - override val classDataFinder = KotlinJavascriptClassDataFinder(nameResolver, loadResource) + override val classDataFinder = KotlinJavascriptClassDataFinder(proto, nameResolver) override fun computeMemberScope(): DeserializedPackageMemberScope = - loadResourceSure(KotlinJavascriptSerializedResourcePaths.getPackageFilePath(fqName)).use { packageStream -> - val packageProto = ProtoBuf.Package.parseFrom(packageStream, JsSerializerProtocol.extensionRegistry) - DeserializedPackageMemberScope( - this, packageProto, nameResolver, containerSource = null, components = components, - classNames = { loadClassNames() } - ) - } - - private fun loadClassNames(): Collection = - loadResourceSure(KotlinJavascriptSerializedResourcePaths.getClassesInPackageFilePath(fqName)).use { classesStream -> - val classesProto = JsProtoBuf.Classes.parseFrom(classesStream, JsSerializerProtocol.extensionRegistry) - classesProto.classNameList?.map { id -> nameResolver.getName(id) } ?: listOf() - } - - private fun loadResourceSure(path: String): InputStream = - loadResource(path) ?: throw IllegalStateException("Resource not found in classpath: $path") + DeserializedPackageMemberScope( + this, proto.`package`, nameResolver, containerSource = null, components = components, + classNames = { classDataFinder.allClassIds.filterNot(ClassId::isNestedClass).map { it.shortClassName } } + ) fun getContainingFileAnnotations(descriptor: DeclarationDescriptor): List { if (DescriptorUtils.getParentOfType(descriptor, PackageFragmentDescriptor::class.java) != this) { @@ -93,7 +72,7 @@ class KotlinJavascriptPackageFragment( } private inner class FileHolder(val annotationsProto: List) { - val annotations: List by lazy { + val annotations: List by storageManager.createLazyValue { annotationsProto.map { annotationDeserializer.deserializeAnnotation(it, nameResolver) } } } diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializationUtil.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializationUtil.kt index 6a0c680b4a5..2c2b6f2e177 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializationUtil.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializationUtil.kt @@ -17,8 +17,9 @@ package org.jetbrains.kotlin.serialization.js import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.protobuf.ByteString +import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.classId @@ -40,97 +41,91 @@ import java.util.zip.GZIPOutputStream object KotlinJavascriptSerializationUtil { val CLASS_METADATA_FILE_EXTENSION: String = "kjsm" - private val PACKAGE_DEFAULT_BYTES = run { - val stream = ByteArrayOutputStream() - ProtoBuf.Package.getDefaultInstance().writeTo(stream) - stream.toByteArray() - } - - private val CLASSES_IN_PACKAGE_DEFAULT_BYTES = run { - val stream = ByteArrayOutputStream() - JsProtoBuf.Classes.getDefaultInstance().writeTo(stream) - stream.toByteArray() - } - - private val STRING_TABLE_DEFAULT_BYTES = run { - val serializer = DescriptorSerializer.createTopLevel(KotlinJavascriptSerializerExtension(KotlinFileRegistry())) - val stream = ByteArrayOutputStream() - serializer.stringTable.serializeTo(stream) - stream.toByteArray() - } - @JvmStatic fun readModule( - metadata: ByteArray, storageManager: StorageManager, kotlinModule: ModuleDescriptor, configuration: DeserializationConfiguration + metadata: ByteArray, storageManager: StorageManager, module: ModuleDescriptor, configuration: DeserializationConfiguration ): JsModuleDescriptor { - val jsModule = metadata.readAsContentMap(kotlinModule.name.asString()) - return jsModule.copy(createPackageFragmentProvider(kotlinModule, jsModule.data, storageManager, configuration)) + val jsModule = metadata.deserializeToLibraryParts(module.name.asString()) + return jsModule.copy(createKotlinJavascriptPackageFragmentProvider(storageManager, module, jsModule.data, configuration)) } - @JvmStatic - private fun createPackageFragmentProvider( - moduleDescriptor: ModuleDescriptor, - contentMap: Map, - storageManager: StorageManager, - configuration: DeserializationConfiguration - ): PackageFragmentProvider? { - val packageFqNames = getPackages(contentMap).map(::FqName).toSet() - if (packageFqNames.isEmpty()) return null + fun serializeMetadata( + bindingContext: BindingContext, + module: ModuleDescriptor, + moduleKind: ModuleKind, + importedModules: List + ): JsProtoBuf.Library { + val builder = JsProtoBuf.Library.newBuilder() - return createKotlinJavascriptPackageFragmentProvider(storageManager, moduleDescriptor, packageFqNames, configuration) { path -> - if (!contentMap.containsKey(path)) { - when { - isPackageMetadataFile(path) -> - ByteArrayInputStream(PACKAGE_DEFAULT_BYTES) - isStringTableFile(path) -> - ByteArrayInputStream(STRING_TABLE_DEFAULT_BYTES) - isClassesInPackageFile(path) -> - ByteArrayInputStream(CLASSES_IN_PACKAGE_DEFAULT_BYTES) - else -> - null - } - } - else ByteArrayInputStream(contentMap[path]) - } - } - - fun contentMapToByteArray(contentMap: Map, moduleKind: ModuleKind, importedModules: List): ByteArray { - val contentBuilder = JsProtoBuf.Library.newBuilder() - - contentBuilder.kind = when (moduleKind) { + val moduleProtoKind = when (moduleKind) { ModuleKind.PLAIN -> JsProtoBuf.Library.Kind.PLAIN ModuleKind.AMD -> JsProtoBuf.Library.Kind.AMD ModuleKind.COMMON_JS -> JsProtoBuf.Library.Kind.COMMON_JS ModuleKind.UMD -> JsProtoBuf.Library.Kind.UMD } - - importedModules.forEach { contentBuilder.addImportedModule(it) } - - contentMap.forEach { - val entry = JsProtoBuf.Library.FileEntry.newBuilder().setPath(it.key).setContent(ByteString.copyFrom(it.value)).build() - contentBuilder.addEntry(entry) + if (builder.kind != moduleProtoKind) { + builder.kind = moduleProtoKind } - val byteStream = ByteArrayOutputStream() - GZIPOutputStream(byteStream).use { - contentBuilder.build().writeTo(it) + importedModules.forEach { builder.addImportedModule(it) } + + for (fqName in getPackagesFqNames(module)) { + val part = JsProtoBuf.Library.Part.newBuilder() + serializePackage(bindingContext, module, fqName, object : SerializerCallbacks { + override fun writeClass(classId: ClassId, classProto: ProtoBuf.Class) { + part.addClass_(classProto) + } + + override fun writePackage(fqName: FqName, packageProto: ProtoBuf.Package) { + part.`package` = packageProto + } + + override fun writeFiles(fqName: FqName, filesProto: JsProtoBuf.Files) { + part.files = filesProto + } + + override fun writeStringTable(fqName: FqName, stringTable: StringTableImpl) { + val (strings, qualifiedNames) = stringTable.buildProto() + part.strings = strings + part.qualifiedNames = qualifiedNames + } + + override fun writeClassNames(fqName: FqName, classNames: List, stringTable: StringTableImpl) { + // Do nothing + } + }) + + if (part.hasPackage() || part.class_Count > 0) { + builder.addPart(part) + } } - return byteStream.toByteArray() + return builder.build() } fun metadataAsString(bindingContext: BindingContext, jsDescriptor: JsModuleDescriptor): String = - KotlinJavascriptMetadataUtils.formatMetadataAsString(jsDescriptor.name, jsDescriptor.toBinaryMetadata(bindingContext)) + KotlinJavascriptMetadataUtils.formatMetadataAsString(jsDescriptor.name, jsDescriptor.serializeToBinaryMetadata(bindingContext)) - fun serializePackage(bindingContext: BindingContext, module: ModuleDescriptor, fqName: FqName, - writeFun: (String, ByteArray) -> Unit) { + interface SerializerCallbacks { + fun writeClass(classId: ClassId, classProto: ProtoBuf.Class) + + fun writePackage(fqName: FqName, packageProto: ProtoBuf.Package) + + fun writeFiles(fqName: FqName, filesProto: JsProtoBuf.Files) + + fun writeStringTable(fqName: FqName, stringTable: StringTableImpl) + + fun writeClassNames(fqName: FqName, classNames: List, stringTable: StringTableImpl) + } + + fun serializePackage(bindingContext: BindingContext, module: ModuleDescriptor, fqName: FqName, callbacks: SerializerCallbacks) { val packageView = module.getPackage(fqName) // TODO: ModuleDescriptor should be able to return the package only with the contents of that module, without dependencies val skip: (DeclarationDescriptor) -> Boolean = { DescriptorUtils.getContainingModule(it) != module || (it is MemberDescriptor && it.isHeader) } val fileRegistry = KotlinFileRegistry() - val serializerExtension = KotlinJavascriptSerializerExtension(fileRegistry) + val serializerExtension = KotlinJavascriptSerializerExtension(fileRegistry, fqName) val serializer = DescriptorSerializer.createTopLevel(serializerExtension) val classifierDescriptors = DescriptorSerializer.sort(packageView.memberScope.getContributedDescriptors( @@ -138,66 +133,36 @@ object KotlinJavascriptSerializationUtil { ClassSerializationUtil.serializeClasses(classifierDescriptors, serializer, object : ClassSerializationUtil.Sink { override fun writeClass(classDescriptor: ClassDescriptor, classProto: ProtoBuf.Class) { - val stream = ByteArrayOutputStream() - classProto.writeTo(stream) - writeFun(getFileName(classDescriptor), stream.toByteArray()) + callbacks.writeClass(classDescriptor.classId!!, classProto) } }, skip) - val packageStream = ByteArrayOutputStream() + val stringTable = serializerExtension.stringTable + val fragments = packageView.fragments val members = fragments .flatMap { fragment -> DescriptorUtils.getAllDescriptors(fragment.getMemberScope()) } .filterNot(skip) - val packageProto = serializer.packagePartProto(members).build() ?: error("Package fragments not serialized: $fragments") - if (packageProto.functionCount > 0 || packageProto.propertyCount > 0 || packageProto.typeAliasCount > 0) { - packageProto.writeTo(packageStream) - writeFun(KotlinJavascriptSerializedResourcePaths.getPackageFilePath(fqName), packageStream.toByteArray()) - } + val packageProto = serializer.packagePartProto(members) + packageProto.setExtension(JsProtoBuf.packageFqName, stringTable.getPackageFqNameIndex(fqName)) + callbacks.writePackage(fqName, packageProto.build()) - writeFun(KotlinJavascriptSerializedResourcePaths.getFileListFilePath(fqName), - serializeFiles(fileRegistry, bindingContext, AnnotationSerializer(serializer.stringTable))) + val fileTable = serializeFiles(fileRegistry, bindingContext, AnnotationSerializer(stringTable)) + callbacks.writeFiles(fqName, fileTable) - val strings = serializerExtension.stringTable - serializeClassNamesInPackage(fqName, fragments, strings, skip, writeFun) + val classNames = DescriptorSerializer.sort(fragments.flatMap { fragment -> + fragment.getMemberScope().getContributedDescriptors(DescriptorKindFilter.CLASSIFIERS).filterIsInstance() + }.filterNot(skip)).map { it.name } + callbacks.writeClassNames(fqName, classNames, stringTable) - val nameStream = ByteArrayOutputStream() - strings.serializeTo(nameStream) - val stringBytes = nameStream.toByteArray() - - if (!stringBytes.isEmpty() && !Arrays.equals(stringBytes, STRING_TABLE_DEFAULT_BYTES)) { - writeFun(KotlinJavascriptSerializedResourcePaths.getStringTableFilePath(fqName), stringBytes) - } + callbacks.writeStringTable(fqName, stringTable) } - private fun serializeClassNamesInPackage( - fqName: FqName, - packageFragments: Collection, - stringTable: StringTableImpl, - skip: (DeclarationDescriptor) -> Boolean, - writeFun: (String, ByteArray) -> Unit - ) { - val classes = packageFragments.flatMap { - it.getMemberScope().getContributedDescriptors(DescriptorKindFilter.CLASSIFIERS).filterIsInstance() - }.filter { !skip(it) } - - val builder = JsProtoBuf.Classes.newBuilder() - - for (descriptor in DescriptorSerializer.sort(classes)) { - builder.addClassName(stringTable.getSimpleNameIndex(descriptor.name)) - } - - val classesProto = builder.build() - - if (classesProto.classNameCount > 0) { - val stream = ByteArrayOutputStream() - classesProto.writeTo(stream) - writeFun(KotlinJavascriptSerializedResourcePaths.getClassesInPackageFilePath(fqName), stream.toByteArray()) - } - } - - private fun serializeFiles(fileRegistry: KotlinFileRegistry, bindingContext: BindingContext, - serializer: AnnotationSerializer): ByteArray { + private fun serializeFiles( + fileRegistry: KotlinFileRegistry, + bindingContext: BindingContext, + serializer: AnnotationSerializer + ): JsProtoBuf.Files { val filesProto = JsProtoBuf.Files.newBuilder() for ((file, id) in fileRegistry.fileIds) { val fileProto = JsProtoBuf.File.newBuilder() @@ -208,24 +173,52 @@ object KotlinJavascriptSerializationUtil { } filesProto.addFile(fileProto) } - - return ByteArrayOutputStream().use { out -> - filesProto.build().writeTo(out) - out - }.toByteArray() - } - - private fun getFileName(classDescriptor: ClassDescriptor): String { - return KotlinJavascriptSerializedResourcePaths.getClassMetadataPath(classDescriptor.classId!!) + return filesProto.build() } fun toContentMap(bindingContext: BindingContext, module: ModuleDescriptor): Map { val contentMap = hashMapOf() - getPackagesFqNames(module).forEach { - serializePackage(bindingContext, module, it) { - fileName, bytes -> contentMap[fileName] = bytes - } + fun writeFile(fileName: String, bytes: ByteArray) { + contentMap[fileName] = bytes + } + + for (fqName in getPackagesFqNames(module)) { + serializePackage(bindingContext, module, fqName, object : SerializerCallbacks { + override fun writeClass(classId: ClassId, classProto: ProtoBuf.Class) { + val bytes = ByteArrayOutputStream().apply(classProto::writeTo).toByteArray() + writeFile(KotlinJavascriptSerializedResourcePaths.getClassMetadataPath(classId), bytes) + } + + override fun writePackage(fqName: FqName, packageProto: ProtoBuf.Package) { + if (packageProto.functionCount > 0 || packageProto.propertyCount > 0 || packageProto.typeAliasCount > 0) { + val bytes = ByteArrayOutputStream().apply(packageProto::writeTo).toByteArray() + writeFile(KotlinJavascriptSerializedResourcePaths.getPackageFilePath(fqName), bytes) + } + } + + override fun writeFiles(fqName: FqName, filesProto: JsProtoBuf.Files) { + val bytes = ByteArrayOutputStream().apply(filesProto::writeTo).toByteArray() + writeFile(KotlinJavascriptSerializedResourcePaths.getFileListFilePath(fqName), bytes) + } + + override fun writeStringTable(fqName: FqName, stringTable: StringTableImpl) { + val bytes = ByteArrayOutputStream().apply(stringTable::serializeTo).toByteArray() + if (bytes.isNotEmpty()) { + writeFile(KotlinJavascriptSerializedResourcePaths.getStringTableFilePath(fqName), bytes) + } + } + + override fun writeClassNames(fqName: FqName, classNames: List, stringTable: StringTableImpl) { + val builder = JsProtoBuf.Classes.newBuilder() + builder.addAllClassName(classNames.map(stringTable::getSimpleNameIndex)) + val classesProto = builder.build() + if (classesProto.classNameCount > 0) { + val bytes = ByteArrayOutputStream().apply(classesProto::writeTo).toByteArray() + writeFile(KotlinJavascriptSerializedResourcePaths.getClassesInPackageFilePath(fqName), bytes) + } + } + }) } return contentMap @@ -251,44 +244,28 @@ object KotlinJavascriptSerializationUtil { } } - private fun getPackages(contentMap: Map): Set { - val keys = contentMap.keys.map { (if (it.startsWith('/')) it else "/" + it).substringBeforeLast('/') }.toSet() - - val result = hashSetOf() - - fun addNames(name: String) { - result.add(name) - if (name != "") { - addNames(name.substringBeforeLast('/')) - } - } - - keys.forEach { addNames(it) } - - return result.map { it.substringAfter('/').replace('/', '.') }.toSet() + private fun JsModuleDescriptor.serializeToBinaryMetadata(bindingContext: BindingContext): ByteArray { + val proto = serializeMetadata(bindingContext, data, kind, imported) + return ByteArrayOutputStream().apply { + GZIPOutputStream(this).use(proto::writeTo) + }.toByteArray() } - private fun JsModuleDescriptor.toBinaryMetadata(bindingContext: BindingContext) = - contentMapToByteArray(toContentMap(bindingContext, data), kind, imported) -} - -private fun ByteArray.readAsContentMap(name: String): JsModuleDescriptor> { - val gzipInputStream = GZIPInputStream(ByteArrayInputStream(this)) - val content = JsProtoBuf.Library.parseFrom(gzipInputStream) - gzipInputStream.close() - - val contentMap: MutableMap = hashMapOf() - content.entryList.forEach { entry -> contentMap[entry.path] = entry.content.toByteArray() } - - return JsModuleDescriptor( - name = name, - data = contentMap, - kind = when (content.kind) { - null, JsProtoBuf.Library.Kind.PLAIN -> ModuleKind.PLAIN - JsProtoBuf.Library.Kind.AMD -> ModuleKind.AMD - JsProtoBuf.Library.Kind.COMMON_JS -> ModuleKind.COMMON_JS - JsProtoBuf.Library.Kind.UMD -> ModuleKind.UMD - }, - imported = content.importedModuleList - ) + private fun ByteArray.deserializeToLibraryParts(name: String): JsModuleDescriptor> { + val content = GZIPInputStream(ByteArrayInputStream(this)).use { stream -> + JsProtoBuf.Library.parseFrom(stream, JsSerializerProtocol.extensionRegistry) + } + + return JsModuleDescriptor( + name = name, + data = content.partList, + kind = when (content.kind) { + null, JsProtoBuf.Library.Kind.PLAIN -> ModuleKind.PLAIN + JsProtoBuf.Library.Kind.AMD -> ModuleKind.AMD + JsProtoBuf.Library.Kind.COMMON_JS -> ModuleKind.COMMON_JS + JsProtoBuf.Library.Kind.UMD -> ModuleKind.UMD + }, + imported = content.importedModuleList + ) + } } 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 07121d4a6d2..2f317c111a9 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 @@ -59,20 +59,6 @@ fun FqName.isPackageClassFqName(): Boolean = !this.isRoot && getPackageClassFqNa fun isDefaultPackageMetafile(fileName: String): Boolean = fileName == DEFAULT_PACKAGE_METAFILE_NAME -fun isPackageMetadataFile(fileName: String): Boolean = - KotlinJavascriptSerializedResourcePaths.getPackageFilePath(getPackageFqName(fileName)) == fileName - -fun isStringTableFile(fileName: String): Boolean = - KotlinJavascriptSerializedResourcePaths.getStringTableFilePath(getPackageFqName(fileName)) == fileName - -fun isClassesInPackageFile(fileName: String): Boolean = - KotlinJavascriptSerializedResourcePaths.getClassesInPackageFilePath(getPackageFqName(fileName)) == fileName - -private fun getPackageFqName(fileName: String): FqName = FqName(getPackageName(fileName)) - -private fun getPackageName(filePath: String): String = - if (filePath.indexOf('/') >= 0) filePath.substringBeforeLast('/').replace('/', '.') else "" - private fun getPackageClassFqName(packageFQN: FqName): FqName { return packageFQN.child(Name.identifier(getPackageClassName(packageFQN))) } diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt index 912a8dda20a..86bf67f49b1 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.serialization.js import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.protobuf.ExtensionRegistryLite import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.DescriptorUtils @@ -24,10 +25,13 @@ import org.jetbrains.kotlin.resolve.source.PsiSourceFile import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase import org.jetbrains.kotlin.serialization.ProtoBuf import org.jetbrains.kotlin.serialization.SerializerExtensionProtocol +import org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf import org.jetbrains.kotlin.types.FlexibleType -class KotlinJavascriptSerializerExtension(private val fileRegistry: KotlinFileRegistry) : - KotlinSerializerExtensionBase(JsSerializerProtocol) { +class KotlinJavascriptSerializerExtension( + private val fileRegistry: KotlinFileRegistry, + private val packageFqName: FqName +) : KotlinSerializerExtensionBase(JsSerializerProtocol) { override val stringTable = JavaScriptStringTable() override fun serializeFlexibleType(flexibleType: FlexibleType, lowerProto: ProtoBuf.Type.Builder, upperProto: ProtoBuf.Type.Builder) { @@ -42,6 +46,10 @@ class KotlinJavascriptSerializerExtension(private val fileRegistry: KotlinFileRe super.serializeClass(descriptor, proto) } + override fun serializePackage(proto: ProtoBuf.Package.Builder) { + proto.setExtension(BuiltInsProtoBuf.packageFqName, stringTable.getPackageFqNameIndex(packageFqName)) + } + override fun serializeProperty(descriptor: PropertyDescriptor, proto: ProtoBuf.Property.Builder) { val id = getFileId(descriptor) if (id != null) { diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/kotlinJavascriptPackageFragmentProvider.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/kotlinJavascriptPackageFragmentProvider.kt index 83158c8115a..651c7633c5b 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/kotlinJavascriptPackageFragmentProvider.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/kotlinJavascriptPackageFragmentProvider.kt @@ -20,21 +20,25 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.PackageFragmentProvider import org.jetbrains.kotlin.descriptors.PackageFragmentProviderImpl import org.jetbrains.kotlin.incremental.components.LookupTracker -import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.serialization.deserialization.* import org.jetbrains.kotlin.storage.StorageManager -import java.io.InputStream fun createKotlinJavascriptPackageFragmentProvider( storageManager: StorageManager, module: ModuleDescriptor, - packageFqNames: Set, - configuration: DeserializationConfiguration, - loadResource: (String) -> InputStream? + libraryParts: List, + configuration: DeserializationConfiguration ): PackageFragmentProvider { - val packageFragments = packageFqNames.map { fqName -> - KotlinJavascriptPackageFragment(fqName, storageManager, module, loadResource) + val packageFragments = libraryParts.map { part -> + val nameResolver = NameResolverImpl(part.strings, part.qualifiedNames) + val fqName = when { + part.hasPackage() -> nameResolver.getPackageFqName(part.`package`.getExtension(JsProtoBuf.packageFqName)) + part.class_Count > 0 -> nameResolver.getClassId(part.class_OrBuilderList.first().fqName).packageFqName + else -> throw IllegalStateException("Invalid library part: either a Package or a Class must be present") + } + KotlinJavascriptPackageFragment(fqName, storageManager, module, part, nameResolver) } + val provider = PackageFragmentProviderImpl(packageFragments) val notFoundClasses = NotFoundClasses(storageManager, module)