From ea01c97a8e8f61c015b699e5170c0b8b990377fc Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 19 Mar 2021 22:58:02 +0100 Subject: [PATCH] Write underlying property name & type for inline class to metadata This will be used in the compiler starting from 1.5.20 instead of the currently used approach of looking for the single value parameter of the primary constructor. The problem with the current approach is that primary constructor can be private (since 1.4.30) and the property could always be private. Relying on private declarations from metadata is dangerous; for example lazy IR doesn't usually create stubs for private declarations, and it didn't create stubs for private inline class constructors before b5f9b1df, which led to the problem reported in KT-44723. --- .../incremental/ProtoCompareGenerated.kt | 45 ++ .../incremental/protoDifferenceUtils.kt | 5 + .../kotlin/metadata/DebugProtoBuf.java | 676 ++++++++++++++---- .../serialization/DescriptorSerializer.kt | 16 +- .../jvm/deserialization/JvmMetadataVersion.kt | 2 +- core/metadata/src/metadata.proto | 5 + .../jetbrains/kotlin/metadata/ProtoBuf.java | 354 ++++++++- 7 files changed, 909 insertions(+), 194 deletions(-) diff --git a/build-common/src/org/jetbrains/kotlin/incremental/ProtoCompareGenerated.kt b/build-common/src/org/jetbrains/kotlin/incremental/ProtoCompareGenerated.kt index abd90a587a5..3fef9df3ebc 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/ProtoCompareGenerated.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/ProtoCompareGenerated.kt @@ -182,6 +182,21 @@ open class ProtoCompareGenerated( if (!checkEqualsClassSealedSubclassFqName(old, new)) return false + if (old.hasInlineClassUnderlyingPropertyName() != new.hasInlineClassUnderlyingPropertyName()) return false + if (old.hasInlineClassUnderlyingPropertyName()) { + if (!checkStringEquals(old.inlineClassUnderlyingPropertyName, new.inlineClassUnderlyingPropertyName)) return false + } + + if (old.hasInlineClassUnderlyingType() != new.hasInlineClassUnderlyingType()) return false + if (old.hasInlineClassUnderlyingType()) { + if (!checkEquals(old.inlineClassUnderlyingType, new.inlineClassUnderlyingType)) return false + } + + if (old.hasInlineClassUnderlyingTypeId() != new.hasInlineClassUnderlyingTypeId()) return false + if (old.hasInlineClassUnderlyingTypeId()) { + if (!checkEquals(oldTypeTable.getType(old.inlineClassUnderlyingTypeId), newTypeTable.getType(new.inlineClassUnderlyingTypeId))) return false + } + if (!checkEqualsClassVersionRequirement(old, new)) return false if (old.hasVersionRequirementTable() != new.hasVersionRequirementTable()) return false @@ -266,6 +281,9 @@ open class ProtoCompareGenerated( TYPE_ALIAS_LIST, ENUM_ENTRY_LIST, SEALED_SUBCLASS_FQ_NAME_LIST, + INLINE_CLASS_UNDERLYING_PROPERTY_NAME, + INLINE_CLASS_UNDERLYING_TYPE, + INLINE_CLASS_UNDERLYING_TYPE_ID, VERSION_REQUIREMENT_LIST, VERSION_REQUIREMENT_TABLE, JVM_EXT_CLASS_MODULE_NAME, @@ -314,6 +332,21 @@ open class ProtoCompareGenerated( if (!checkEqualsClassSealedSubclassFqName(old, new)) result.add(ProtoBufClassKind.SEALED_SUBCLASS_FQ_NAME_LIST) + if (old.hasInlineClassUnderlyingPropertyName() != new.hasInlineClassUnderlyingPropertyName()) result.add(ProtoBufClassKind.INLINE_CLASS_UNDERLYING_PROPERTY_NAME) + if (old.hasInlineClassUnderlyingPropertyName()) { + if (!checkStringEquals(old.inlineClassUnderlyingPropertyName, new.inlineClassUnderlyingPropertyName)) result.add(ProtoBufClassKind.INLINE_CLASS_UNDERLYING_PROPERTY_NAME) + } + + if (old.hasInlineClassUnderlyingType() != new.hasInlineClassUnderlyingType()) result.add(ProtoBufClassKind.INLINE_CLASS_UNDERLYING_TYPE) + if (old.hasInlineClassUnderlyingType()) { + if (!checkEquals(old.inlineClassUnderlyingType, new.inlineClassUnderlyingType)) result.add(ProtoBufClassKind.INLINE_CLASS_UNDERLYING_TYPE) + } + + if (old.hasInlineClassUnderlyingTypeId() != new.hasInlineClassUnderlyingTypeId()) result.add(ProtoBufClassKind.INLINE_CLASS_UNDERLYING_TYPE_ID) + if (old.hasInlineClassUnderlyingTypeId()) { + if (!checkEquals(oldTypeTable.getType(old.inlineClassUnderlyingTypeId), newTypeTable.getType(new.inlineClassUnderlyingTypeId))) result.add(ProtoBufClassKind.INLINE_CLASS_UNDERLYING_TYPE_ID) + } + if (!checkEqualsClassVersionRequirement(old, new)) result.add(ProtoBufClassKind.VERSION_REQUIREMENT_LIST) if (old.hasVersionRequirementTable() != new.hasVersionRequirementTable()) result.add(ProtoBufClassKind.VERSION_REQUIREMENT_TABLE) @@ -1728,6 +1761,18 @@ fun ProtoBuf.Class.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> hashCode = 31 * hashCode + fqNameIndexes(getSealedSubclassFqName(i)) } + if (hasInlineClassUnderlyingPropertyName()) { + hashCode = 31 * hashCode + stringIndexes(inlineClassUnderlyingPropertyName) + } + + if (hasInlineClassUnderlyingType()) { + hashCode = 31 * hashCode + inlineClassUnderlyingType.hashCode(stringIndexes, fqNameIndexes, typeById) + } + + if (hasInlineClassUnderlyingTypeId()) { + hashCode = 31 * hashCode + typeById(inlineClassUnderlyingTypeId).hashCode(stringIndexes, fqNameIndexes, typeById) + } + for(i in 0..versionRequirementCount - 1) { hashCode = 31 * hashCode + getVersionRequirement(i) } diff --git a/build-common/src/org/jetbrains/kotlin/incremental/protoDifferenceUtils.kt b/build-common/src/org/jetbrains/kotlin/incremental/protoDifferenceUtils.kt index 8af998ce9c7..021cdcff681 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/protoDifferenceUtils.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/protoDifferenceUtils.kt @@ -290,6 +290,11 @@ class DifferenceCalculatorForClass( isClassAffected = true areSubclassesAffected = true } + ProtoBufClassKind.INLINE_CLASS_UNDERLYING_PROPERTY_NAME, + ProtoBufClassKind.INLINE_CLASS_UNDERLYING_TYPE, + ProtoBufClassKind.INLINE_CLASS_UNDERLYING_TYPE_ID -> { + isClassAffected = true + } } } diff --git a/build-common/test/org/jetbrains/kotlin/metadata/DebugProtoBuf.java b/build-common/test/org/jetbrains/kotlin/metadata/DebugProtoBuf.java index 946e948e2db..2740fec403a 100644 --- a/build-common/test/org/jetbrains/kotlin/metadata/DebugProtoBuf.java +++ b/build-common/test/org/jetbrains/kotlin/metadata/DebugProtoBuf.java @@ -10347,6 +10347,37 @@ public final class DebugProtoBuf { */ int getSealedSubclassFqName(int index); + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + boolean hasInlineClassUnderlyingPropertyName(); + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + int getInlineClassUnderlyingPropertyName(); + + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + boolean hasInlineClassUnderlyingType(); + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + org.jetbrains.kotlin.metadata.DebugProtoBuf.Type getInlineClassUnderlyingType(); + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeOrBuilder getInlineClassUnderlyingTypeOrBuilder(); + + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + boolean hasInlineClassUnderlyingTypeId(); + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + int getInlineClassUnderlyingTypeId(); + /** * optional .org.jetbrains.kotlin.metadata.TypeTable type_table = 30; */ @@ -10585,9 +10616,32 @@ public final class DebugProtoBuf { input.popLimit(limit); break; } + case 136: { + bitField0_ |= 0x00000008; + inlineClassUnderlyingPropertyName_ = input.readInt32(); + break; + } + case 146: { + org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.Builder subBuilder = null; + if (((bitField0_ & 0x00000010) == 0x00000010)) { + subBuilder = inlineClassUnderlyingType_.toBuilder(); + } + inlineClassUnderlyingType_ = input.readMessage(org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(inlineClassUnderlyingType_); + inlineClassUnderlyingType_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000010; + break; + } + case 152: { + bitField0_ |= 0x00000020; + inlineClassUnderlyingTypeId_ = input.readInt32(); + break; + } case 242: { org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable.Builder subBuilder = null; - if (((bitField0_ & 0x00000008) == 0x00000008)) { + if (((bitField0_ & 0x00000040) == 0x00000040)) { subBuilder = typeTable_.toBuilder(); } typeTable_ = input.readMessage(org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable.PARSER, extensionRegistry); @@ -10595,13 +10649,13 @@ public final class DebugProtoBuf { subBuilder.mergeFrom(typeTable_); typeTable_ = subBuilder.buildPartial(); } - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000040; break; } case 248: { - if (!((mutable_bitField0_ & 0x00004000) == 0x00004000)) { + if (!((mutable_bitField0_ & 0x00020000) == 0x00020000)) { versionRequirement_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00004000; + mutable_bitField0_ |= 0x00020000; } versionRequirement_.add(input.readInt32()); break; @@ -10609,9 +10663,9 @@ public final class DebugProtoBuf { case 250: { int length = input.readRawVarint32(); int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00004000) == 0x00004000) && input.getBytesUntilLimit() > 0) { + if (!((mutable_bitField0_ & 0x00020000) == 0x00020000) && input.getBytesUntilLimit() > 0) { versionRequirement_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00004000; + mutable_bitField0_ |= 0x00020000; } while (input.getBytesUntilLimit() > 0) { versionRequirement_.add(input.readInt32()); @@ -10621,7 +10675,7 @@ public final class DebugProtoBuf { } case 258: { org.jetbrains.kotlin.metadata.DebugProtoBuf.VersionRequirementTable.Builder subBuilder = null; - if (((bitField0_ & 0x00000010) == 0x00000010)) { + if (((bitField0_ & 0x00000080) == 0x00000080)) { subBuilder = versionRequirementTable_.toBuilder(); } versionRequirementTable_ = input.readMessage(org.jetbrains.kotlin.metadata.DebugProtoBuf.VersionRequirementTable.PARSER, extensionRegistry); @@ -10629,7 +10683,7 @@ public final class DebugProtoBuf { subBuilder.mergeFrom(versionRequirementTable_); versionRequirementTable_ = subBuilder.buildPartial(); } - bitField0_ |= 0x00000010; + bitField0_ |= 0x00000080; break; } } @@ -10670,7 +10724,7 @@ public final class DebugProtoBuf { if (((mutable_bitField0_ & 0x00001000) == 0x00001000)) { sealedSubclassFqName_ = java.util.Collections.unmodifiableList(sealedSubclassFqName_); } - if (((mutable_bitField0_ & 0x00004000) == 0x00004000)) { + if (((mutable_bitField0_ & 0x00020000) == 0x00020000)) { versionRequirement_ = java.util.Collections.unmodifiableList(versionRequirement_); } this.unknownFields = unknownFields.build(); @@ -11225,13 +11279,64 @@ public final class DebugProtoBuf { } private int sealedSubclassFqNameMemoizedSerializedSize = -1; + public static final int INLINE_CLASS_UNDERLYING_PROPERTY_NAME_FIELD_NUMBER = 17; + private int inlineClassUnderlyingPropertyName_; + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + public boolean hasInlineClassUnderlyingPropertyName() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + public int getInlineClassUnderlyingPropertyName() { + return inlineClassUnderlyingPropertyName_; + } + + public static final int INLINE_CLASS_UNDERLYING_TYPE_FIELD_NUMBER = 18; + private org.jetbrains.kotlin.metadata.DebugProtoBuf.Type inlineClassUnderlyingType_; + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public boolean hasInlineClassUnderlyingType() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public org.jetbrains.kotlin.metadata.DebugProtoBuf.Type getInlineClassUnderlyingType() { + return inlineClassUnderlyingType_; + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeOrBuilder getInlineClassUnderlyingTypeOrBuilder() { + return inlineClassUnderlyingType_; + } + + public static final int INLINE_CLASS_UNDERLYING_TYPE_ID_FIELD_NUMBER = 19; + private int inlineClassUnderlyingTypeId_; + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + public boolean hasInlineClassUnderlyingTypeId() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + public int getInlineClassUnderlyingTypeId() { + return inlineClassUnderlyingTypeId_; + } + public static final int TYPE_TABLE_FIELD_NUMBER = 30; private org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable typeTable_; /** * optional .org.jetbrains.kotlin.metadata.TypeTable type_table = 30; */ public boolean hasTypeTable() { - return ((bitField0_ & 0x00000008) == 0x00000008); + return ((bitField0_ & 0x00000040) == 0x00000040); } /** * optional .org.jetbrains.kotlin.metadata.TypeTable type_table = 30; @@ -11286,7 +11391,7 @@ public final class DebugProtoBuf { * optional .org.jetbrains.kotlin.metadata.VersionRequirementTable version_requirement_table = 32; */ public boolean hasVersionRequirementTable() { - return ((bitField0_ & 0x00000010) == 0x00000010); + return ((bitField0_ & 0x00000080) == 0x00000080); } /** * optional .org.jetbrains.kotlin.metadata.VersionRequirementTable version_requirement_table = 32; @@ -11315,6 +11420,9 @@ public final class DebugProtoBuf { typeAlias_ = java.util.Collections.emptyList(); enumEntry_ = java.util.Collections.emptyList(); sealedSubclassFqName_ = java.util.Collections.emptyList(); + inlineClassUnderlyingPropertyName_ = 0; + inlineClassUnderlyingType_ = org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.getDefaultInstance(); + inlineClassUnderlyingTypeId_ = 0; typeTable_ = org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable.getDefaultInstance(); versionRequirement_ = java.util.Collections.emptyList(); versionRequirementTable_ = org.jetbrains.kotlin.metadata.DebugProtoBuf.VersionRequirementTable.getDefaultInstance(); @@ -11371,6 +11479,12 @@ public final class DebugProtoBuf { return false; } } + if (hasInlineClassUnderlyingType()) { + if (!getInlineClassUnderlyingType().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } if (hasTypeTable()) { if (!getTypeTable().isInitialized()) { memoizedIsInitialized = 0; @@ -11443,12 +11557,21 @@ public final class DebugProtoBuf { output.writeInt32NoTag(sealedSubclassFqName_.get(i)); } if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeInt32(17, inlineClassUnderlyingPropertyName_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + output.writeMessage(18, inlineClassUnderlyingType_); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + output.writeInt32(19, inlineClassUnderlyingTypeId_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { output.writeMessage(30, typeTable_); } for (int i = 0; i < versionRequirement_.size(); i++) { output.writeInt32(31, versionRequirement_.get(i)); } - if (((bitField0_ & 0x00000010) == 0x00000010)) { + if (((bitField0_ & 0x00000080) == 0x00000080)) { output.writeMessage(32, versionRequirementTable_); } extensionWriter.writeUntil(19000, output); @@ -11544,6 +11667,18 @@ public final class DebugProtoBuf { sealedSubclassFqNameMemoizedSerializedSize = dataSize; } if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeInt32Size(17, inlineClassUnderlyingPropertyName_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(18, inlineClassUnderlyingType_); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeInt32Size(19, inlineClassUnderlyingTypeId_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeMessageSize(30, typeTable_); } @@ -11556,7 +11691,7 @@ public final class DebugProtoBuf { size += dataSize; size += 2 * getVersionRequirementList().size(); } - if (((bitField0_ & 0x00000010) == 0x00000010)) { + if (((bitField0_ & 0x00000080) == 0x00000080)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeMessageSize(32, versionRequirementTable_); } @@ -11678,6 +11813,7 @@ public final class DebugProtoBuf { getPropertyFieldBuilder(); getTypeAliasFieldBuilder(); getEnumEntryFieldBuilder(); + getInlineClassUnderlyingTypeFieldBuilder(); getTypeTableFieldBuilder(); getVersionRequirementTableFieldBuilder(); } @@ -11742,20 +11878,30 @@ public final class DebugProtoBuf { } sealedSubclassFqName_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00001000); + inlineClassUnderlyingPropertyName_ = 0; + bitField0_ = (bitField0_ & ~0x00002000); + if (inlineClassUnderlyingTypeBuilder_ == null) { + inlineClassUnderlyingType_ = org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.getDefaultInstance(); + } else { + inlineClassUnderlyingTypeBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00004000); + inlineClassUnderlyingTypeId_ = 0; + bitField0_ = (bitField0_ & ~0x00008000); if (typeTableBuilder_ == null) { typeTable_ = org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable.getDefaultInstance(); } else { typeTableBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00002000); + bitField0_ = (bitField0_ & ~0x00010000); versionRequirement_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00004000); + bitField0_ = (bitField0_ & ~0x00020000); if (versionRequirementTableBuilder_ == null) { versionRequirementTable_ = org.jetbrains.kotlin.metadata.DebugProtoBuf.VersionRequirementTable.getDefaultInstance(); } else { versionRequirementTableBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00008000); + bitField0_ = (bitField0_ & ~0x00040000); return this; } @@ -11877,18 +12023,34 @@ public final class DebugProtoBuf { if (((from_bitField0_ & 0x00002000) == 0x00002000)) { to_bitField0_ |= 0x00000008; } + result.inlineClassUnderlyingPropertyName_ = inlineClassUnderlyingPropertyName_; + if (((from_bitField0_ & 0x00004000) == 0x00004000)) { + to_bitField0_ |= 0x00000010; + } + if (inlineClassUnderlyingTypeBuilder_ == null) { + result.inlineClassUnderlyingType_ = inlineClassUnderlyingType_; + } else { + result.inlineClassUnderlyingType_ = inlineClassUnderlyingTypeBuilder_.build(); + } + if (((from_bitField0_ & 0x00008000) == 0x00008000)) { + to_bitField0_ |= 0x00000020; + } + result.inlineClassUnderlyingTypeId_ = inlineClassUnderlyingTypeId_; + if (((from_bitField0_ & 0x00010000) == 0x00010000)) { + to_bitField0_ |= 0x00000040; + } if (typeTableBuilder_ == null) { result.typeTable_ = typeTable_; } else { result.typeTable_ = typeTableBuilder_.build(); } - if (((bitField0_ & 0x00004000) == 0x00004000)) { + if (((bitField0_ & 0x00020000) == 0x00020000)) { versionRequirement_ = java.util.Collections.unmodifiableList(versionRequirement_); - bitField0_ = (bitField0_ & ~0x00004000); + bitField0_ = (bitField0_ & ~0x00020000); } result.versionRequirement_ = versionRequirement_; - if (((from_bitField0_ & 0x00008000) == 0x00008000)) { - to_bitField0_ |= 0x00000010; + if (((from_bitField0_ & 0x00040000) == 0x00040000)) { + to_bitField0_ |= 0x00000080; } if (versionRequirementTableBuilder_ == null) { result.versionRequirementTable_ = versionRequirementTable_; @@ -12132,13 +12294,22 @@ public final class DebugProtoBuf { } onChanged(); } + if (other.hasInlineClassUnderlyingPropertyName()) { + setInlineClassUnderlyingPropertyName(other.getInlineClassUnderlyingPropertyName()); + } + if (other.hasInlineClassUnderlyingType()) { + mergeInlineClassUnderlyingType(other.getInlineClassUnderlyingType()); + } + if (other.hasInlineClassUnderlyingTypeId()) { + setInlineClassUnderlyingTypeId(other.getInlineClassUnderlyingTypeId()); + } if (other.hasTypeTable()) { mergeTypeTable(other.getTypeTable()); } if (!other.versionRequirement_.isEmpty()) { if (versionRequirement_.isEmpty()) { versionRequirement_ = other.versionRequirement_; - bitField0_ = (bitField0_ & ~0x00004000); + bitField0_ = (bitField0_ & ~0x00020000); } else { ensureVersionRequirementIsMutable(); versionRequirement_.addAll(other.versionRequirement_); @@ -12200,6 +12371,12 @@ public final class DebugProtoBuf { return false; } } + if (hasInlineClassUnderlyingType()) { + if (!getInlineClassUnderlyingType().isInitialized()) { + + return false; + } + } if (hasTypeTable()) { if (!getTypeTable().isInitialized()) { @@ -14258,6 +14435,186 @@ public final class DebugProtoBuf { return this; } + private int inlineClassUnderlyingPropertyName_ ; + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + public boolean hasInlineClassUnderlyingPropertyName() { + return ((bitField0_ & 0x00002000) == 0x00002000); + } + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + public int getInlineClassUnderlyingPropertyName() { + return inlineClassUnderlyingPropertyName_; + } + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + public Builder setInlineClassUnderlyingPropertyName(int value) { + bitField0_ |= 0x00002000; + inlineClassUnderlyingPropertyName_ = value; + onChanged(); + return this; + } + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + public Builder clearInlineClassUnderlyingPropertyName() { + bitField0_ = (bitField0_ & ~0x00002000); + inlineClassUnderlyingPropertyName_ = 0; + onChanged(); + return this; + } + + private org.jetbrains.kotlin.metadata.DebugProtoBuf.Type inlineClassUnderlyingType_ = org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.getDefaultInstance(); + private org.jetbrains.kotlin.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.metadata.DebugProtoBuf.Type, org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeOrBuilder> inlineClassUnderlyingTypeBuilder_; + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public boolean hasInlineClassUnderlyingType() { + return ((bitField0_ & 0x00004000) == 0x00004000); + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public org.jetbrains.kotlin.metadata.DebugProtoBuf.Type getInlineClassUnderlyingType() { + if (inlineClassUnderlyingTypeBuilder_ == null) { + return inlineClassUnderlyingType_; + } else { + return inlineClassUnderlyingTypeBuilder_.getMessage(); + } + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public Builder setInlineClassUnderlyingType(org.jetbrains.kotlin.metadata.DebugProtoBuf.Type value) { + if (inlineClassUnderlyingTypeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + inlineClassUnderlyingType_ = value; + onChanged(); + } else { + inlineClassUnderlyingTypeBuilder_.setMessage(value); + } + bitField0_ |= 0x00004000; + return this; + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public Builder setInlineClassUnderlyingType( + org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.Builder builderForValue) { + if (inlineClassUnderlyingTypeBuilder_ == null) { + inlineClassUnderlyingType_ = builderForValue.build(); + onChanged(); + } else { + inlineClassUnderlyingTypeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00004000; + return this; + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public Builder mergeInlineClassUnderlyingType(org.jetbrains.kotlin.metadata.DebugProtoBuf.Type value) { + if (inlineClassUnderlyingTypeBuilder_ == null) { + if (((bitField0_ & 0x00004000) == 0x00004000) && + inlineClassUnderlyingType_ != org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.getDefaultInstance()) { + inlineClassUnderlyingType_ = + org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.newBuilder(inlineClassUnderlyingType_).mergeFrom(value).buildPartial(); + } else { + inlineClassUnderlyingType_ = value; + } + onChanged(); + } else { + inlineClassUnderlyingTypeBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00004000; + return this; + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public Builder clearInlineClassUnderlyingType() { + if (inlineClassUnderlyingTypeBuilder_ == null) { + inlineClassUnderlyingType_ = org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.getDefaultInstance(); + onChanged(); + } else { + inlineClassUnderlyingTypeBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00004000); + return this; + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.Builder getInlineClassUnderlyingTypeBuilder() { + bitField0_ |= 0x00004000; + onChanged(); + return getInlineClassUnderlyingTypeFieldBuilder().getBuilder(); + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeOrBuilder getInlineClassUnderlyingTypeOrBuilder() { + if (inlineClassUnderlyingTypeBuilder_ != null) { + return inlineClassUnderlyingTypeBuilder_.getMessageOrBuilder(); + } else { + return inlineClassUnderlyingType_; + } + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + private org.jetbrains.kotlin.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.metadata.DebugProtoBuf.Type, org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeOrBuilder> + getInlineClassUnderlyingTypeFieldBuilder() { + if (inlineClassUnderlyingTypeBuilder_ == null) { + inlineClassUnderlyingTypeBuilder_ = new org.jetbrains.kotlin.protobuf.SingleFieldBuilder< + org.jetbrains.kotlin.metadata.DebugProtoBuf.Type, org.jetbrains.kotlin.metadata.DebugProtoBuf.Type.Builder, org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeOrBuilder>( + getInlineClassUnderlyingType(), + getParentForChildren(), + isClean()); + inlineClassUnderlyingType_ = null; + } + return inlineClassUnderlyingTypeBuilder_; + } + + private int inlineClassUnderlyingTypeId_ ; + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + public boolean hasInlineClassUnderlyingTypeId() { + return ((bitField0_ & 0x00008000) == 0x00008000); + } + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + public int getInlineClassUnderlyingTypeId() { + return inlineClassUnderlyingTypeId_; + } + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + public Builder setInlineClassUnderlyingTypeId(int value) { + bitField0_ |= 0x00008000; + inlineClassUnderlyingTypeId_ = value; + onChanged(); + return this; + } + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + public Builder clearInlineClassUnderlyingTypeId() { + bitField0_ = (bitField0_ & ~0x00008000); + inlineClassUnderlyingTypeId_ = 0; + onChanged(); + return this; + } + private org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable typeTable_ = org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable.getDefaultInstance(); private org.jetbrains.kotlin.protobuf.SingleFieldBuilder< org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable, org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable.Builder, org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTableOrBuilder> typeTableBuilder_; @@ -14265,7 +14622,7 @@ public final class DebugProtoBuf { * optional .org.jetbrains.kotlin.metadata.TypeTable type_table = 30; */ public boolean hasTypeTable() { - return ((bitField0_ & 0x00002000) == 0x00002000); + return ((bitField0_ & 0x00010000) == 0x00010000); } /** * optional .org.jetbrains.kotlin.metadata.TypeTable type_table = 30; @@ -14290,7 +14647,7 @@ public final class DebugProtoBuf { } else { typeTableBuilder_.setMessage(value); } - bitField0_ |= 0x00002000; + bitField0_ |= 0x00010000; return this; } /** @@ -14304,7 +14661,7 @@ public final class DebugProtoBuf { } else { typeTableBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00002000; + bitField0_ |= 0x00010000; return this; } /** @@ -14312,7 +14669,7 @@ public final class DebugProtoBuf { */ public Builder mergeTypeTable(org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable value) { if (typeTableBuilder_ == null) { - if (((bitField0_ & 0x00002000) == 0x00002000) && + if (((bitField0_ & 0x00010000) == 0x00010000) && typeTable_ != org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable.getDefaultInstance()) { typeTable_ = org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable.newBuilder(typeTable_).mergeFrom(value).buildPartial(); @@ -14323,7 +14680,7 @@ public final class DebugProtoBuf { } else { typeTableBuilder_.mergeFrom(value); } - bitField0_ |= 0x00002000; + bitField0_ |= 0x00010000; return this; } /** @@ -14336,14 +14693,14 @@ public final class DebugProtoBuf { } else { typeTableBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00002000); + bitField0_ = (bitField0_ & ~0x00010000); return this; } /** * optional .org.jetbrains.kotlin.metadata.TypeTable type_table = 30; */ public org.jetbrains.kotlin.metadata.DebugProtoBuf.TypeTable.Builder getTypeTableBuilder() { - bitField0_ |= 0x00002000; + bitField0_ |= 0x00010000; onChanged(); return getTypeTableFieldBuilder().getBuilder(); } @@ -14376,9 +14733,9 @@ public final class DebugProtoBuf { private java.util.List versionRequirement_ = java.util.Collections.emptyList(); private void ensureVersionRequirementIsMutable() { - if (!((bitField0_ & 0x00004000) == 0x00004000)) { + if (!((bitField0_ & 0x00020000) == 0x00020000)) { versionRequirement_ = new java.util.ArrayList(versionRequirement_); - bitField0_ |= 0x00004000; + bitField0_ |= 0x00020000; } } /** @@ -14463,7 +14820,7 @@ public final class DebugProtoBuf { */ public Builder clearVersionRequirement() { versionRequirement_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00004000); + bitField0_ = (bitField0_ & ~0x00020000); onChanged(); return this; } @@ -14475,7 +14832,7 @@ public final class DebugProtoBuf { * optional .org.jetbrains.kotlin.metadata.VersionRequirementTable version_requirement_table = 32; */ public boolean hasVersionRequirementTable() { - return ((bitField0_ & 0x00008000) == 0x00008000); + return ((bitField0_ & 0x00040000) == 0x00040000); } /** * optional .org.jetbrains.kotlin.metadata.VersionRequirementTable version_requirement_table = 32; @@ -14500,7 +14857,7 @@ public final class DebugProtoBuf { } else { versionRequirementTableBuilder_.setMessage(value); } - bitField0_ |= 0x00008000; + bitField0_ |= 0x00040000; return this; } /** @@ -14514,7 +14871,7 @@ public final class DebugProtoBuf { } else { versionRequirementTableBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00008000; + bitField0_ |= 0x00040000; return this; } /** @@ -14522,7 +14879,7 @@ public final class DebugProtoBuf { */ public Builder mergeVersionRequirementTable(org.jetbrains.kotlin.metadata.DebugProtoBuf.VersionRequirementTable value) { if (versionRequirementTableBuilder_ == null) { - if (((bitField0_ & 0x00008000) == 0x00008000) && + if (((bitField0_ & 0x00040000) == 0x00040000) && versionRequirementTable_ != org.jetbrains.kotlin.metadata.DebugProtoBuf.VersionRequirementTable.getDefaultInstance()) { versionRequirementTable_ = org.jetbrains.kotlin.metadata.DebugProtoBuf.VersionRequirementTable.newBuilder(versionRequirementTable_).mergeFrom(value).buildPartial(); @@ -14533,7 +14890,7 @@ public final class DebugProtoBuf { } else { versionRequirementTableBuilder_.mergeFrom(value); } - bitField0_ |= 0x00008000; + bitField0_ |= 0x00040000; return this; } /** @@ -14546,14 +14903,14 @@ public final class DebugProtoBuf { } else { versionRequirementTableBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00008000); + bitField0_ = (bitField0_ & ~0x00040000); return this; } /** * optional .org.jetbrains.kotlin.metadata.VersionRequirementTable version_requirement_table = 32; */ public org.jetbrains.kotlin.metadata.DebugProtoBuf.VersionRequirementTable.Builder getVersionRequirementTableBuilder() { - bitField0_ |= 0x00008000; + bitField0_ |= 0x00040000; onChanged(); return getVersionRequirementTableFieldBuilder().getBuilder(); } @@ -34382,7 +34739,7 @@ public final class DebugProtoBuf { "Variance:\003INV\0228\n\013upper_bound\030\005 \003(\0132#.org" + ".jetbrains.kotlin.metadata.Type\022\036\n\016upper" + "_bound_id\030\006 \003(\005B\006\020\001\240\265\030\001\"$\n\010Variance\022\006\n\002I" + - "N\020\000\022\007\n\003OUT\020\001\022\007\n\003INV\020\002*\005\010d\020\350\007\"\250\007\n\005Class\022\020" + + "N\020\000\022\007\n\003OUT\020\001\022\007\n\003INV\020\002*\005\010d\020\350\007\"\327\010\n\005Class\022\020" + "\n\005flags\030\001 \001(\005:\0016\022\025\n\007fq_name\030\003 \002(\005B\004\220\265\030\001\022", "#\n\025companion_object_name\030\004 \001(\005B\004\210\265\030\001\022D\n\016" + "type_parameter\030\005 \003(\0132,.org.jetbrains.kot" + @@ -34398,122 +34755,127 @@ public final class DebugProtoBuf { "brains.kotlin.metadata.TypeAlias\022<\n\nenum" + "_entry\030\r \003(\0132(.org.jetbrains.kotlin.meta" + "data.EnumEntry\022\'\n\027sealed_subclass_fq_nam" + - "e\030\020 \003(\005B\006\020\001\220\265\030\001\022<\n\ntype_table\030\036 \001(\0132(.or" + - "g.jetbrains.kotlin.metadata.TypeTable\022\033\n" + - "\023version_requirement\030\037 \003(\005\022Y\n\031version_re" + - "quirement_table\030 \001(\01326.org.jetbrains.ko" + - "tlin.metadata.VersionRequirementTable\"x\n" + - "\004Kind\022\t\n\005CLASS\020\000\022\r\n\tINTERFACE\020\001\022\016\n\nENUM_", - "CLASS\020\002\022\016\n\nENUM_ENTRY\020\003\022\024\n\020ANNOTATION_CL" + - "ASS\020\004\022\n\n\006OBJECT\020\005\022\024\n\020COMPANION_OBJECT\020\006*" + - "\006\010d\020\270\224\001\"\335\002\n\007Package\0229\n\010function\030\003 \003(\0132\'." + - "org.jetbrains.kotlin.metadata.Function\0229" + - "\n\010property\030\004 \003(\0132\'.org.jetbrains.kotlin." + - "metadata.Property\022<\n\ntype_alias\030\005 \003(\0132(." + - "org.jetbrains.kotlin.metadata.TypeAlias\022" + - "<\n\ntype_table\030\036 \001(\0132(.org.jetbrains.kotl" + - "in.metadata.TypeTable\022Y\n\031version_require" + - "ment_table\030 \001(\01326.org.jetbrains.kotlin.", - "metadata.VersionRequirementTable*\005\010d\020\310\001\"" + - "`\n\tTypeTable\0221\n\004type\030\001 \003(\0132#.org.jetbrai" + - "ns.kotlin.metadata.Type\022\032\n\016first_nullabl" + - "e\030\002 \001(\005:\002-1:\004\240\273\030\001\"\214\001\n\013Constructor\022\020\n\005fla" + - "gs\030\001 \001(\005:\0016\022F\n\017value_parameter\030\002 \003(\0132-.o" + - "rg.jetbrains.kotlin.metadata.ValueParame" + - "ter\022\033\n\023version_requirement\030\037 \003(\005*\006\010d\020\270\224\001" + - "\"\246\004\n\010Function\022\020\n\005flags\030\t \001(\005:\0016\022\024\n\told_f" + - "lags\030\001 \001(\005:\0016\022\022\n\004name\030\002 \002(\005B\004\210\265\030\001\0228\n\013ret" + - "urn_type\030\003 \001(\0132#.org.jetbrains.kotlin.me", - "tadata.Type\022\034\n\016return_type_id\030\007 \001(\005B\004\240\265\030" + - "\001\022D\n\016type_parameter\030\004 \003(\0132,.org.jetbrain" + - "s.kotlin.metadata.TypeParameter\022:\n\rrecei" + - "ver_type\030\005 \001(\0132#.org.jetbrains.kotlin.me" + - "tadata.Type\022\036\n\020receiver_type_id\030\010 \001(\005B\004\240" + - "\265\030\001\022F\n\017value_parameter\030\006 \003(\0132-.org.jetbr" + - "ains.kotlin.metadata.ValueParameter\022<\n\nt" + - "ype_table\030\036 \001(\0132(.org.jetbrains.kotlin.m" + - "etadata.TypeTable\022\033\n\023version_requirement" + - "\030\037 \003(\005\0229\n\010contract\030 \001(\0132\'.org.jetbrains", - ".kotlin.metadata.Contract*\006\010d\020\270\224\001\"\345\003\n\010Pr" + - "operty\022\022\n\005flags\030\013 \001(\005:\003518\022\027\n\told_flags\030" + - "\001 \001(\005:\0042054\022\022\n\004name\030\002 \002(\005B\004\210\265\030\001\0228\n\013retur" + - "n_type\030\003 \001(\0132#.org.jetbrains.kotlin.meta" + - "data.Type\022\034\n\016return_type_id\030\t \001(\005B\004\240\265\030\001\022" + - "D\n\016type_parameter\030\004 \003(\0132,.org.jetbrains." + - "kotlin.metadata.TypeParameter\022:\n\rreceive" + - "r_type\030\005 \001(\0132#.org.jetbrains.kotlin.meta" + - "data.Type\022\036\n\020receiver_type_id\030\n \001(\005B\004\240\265\030" + - "\001\022M\n\026setter_value_parameter\030\006 \001(\0132-.org.", - "jetbrains.kotlin.metadata.ValueParameter" + - "\022\024\n\014getter_flags\030\007 \001(\005\022\024\n\014setter_flags\030\010" + - " \001(\005\022\033\n\023version_requirement\030\037 \003(\005*\006\010d\020\270\224" + - "\001\"\357\001\n\016ValueParameter\022\020\n\005flags\030\001 \001(\005:\0010\022\022" + - "\n\004name\030\002 \002(\005B\004\210\265\030\001\0221\n\004type\030\003 \001(\0132#.org.j" + - "etbrains.kotlin.metadata.Type\022\025\n\007type_id" + - "\030\005 \001(\005B\004\240\265\030\001\022@\n\023vararg_element_type\030\004 \001(" + - "\0132#.org.jetbrains.kotlin.metadata.Type\022$" + - "\n\026vararg_element_type_id\030\006 \001(\005B\004\240\265\030\001*\005\010d" + - "\020\310\001\"\226\003\n\tTypeAlias\022\020\n\005flags\030\001 \001(\005:\0016\022\022\n\004n", - "ame\030\002 \002(\005B\004\210\265\030\001\022D\n\016type_parameter\030\003 \003(\0132" + - ",.org.jetbrains.kotlin.metadata.TypePara" + - "meter\022<\n\017underlying_type\030\004 \001(\0132#.org.jet" + - "brains.kotlin.metadata.Type\022 \n\022underlyin" + - "g_type_id\030\005 \001(\005B\004\240\265\030\001\022:\n\rexpanded_type\030\006" + - " \001(\0132#.org.jetbrains.kotlin.metadata.Typ" + - "e\022\036\n\020expanded_type_id\030\007 \001(\005B\004\240\265\030\001\022=\n\nann" + - "otation\030\010 \003(\0132).org.jetbrains.kotlin.met" + - "adata.Annotation\022\033\n\023version_requirement\030" + - "\037 \003(\005*\005\010d\020\310\001\"&\n\tEnumEntry\022\022\n\004name\030\001 \001(\005B", - "\004\210\265\030\001*\005\010d\020\310\001\"\225\003\n\022VersionRequirement\022\017\n\007v" + - "ersion\030\001 \001(\005\022\024\n\014version_full\030\002 \001(\005\022M\n\005le" + - "vel\030\003 \001(\01627.org.jetbrains.kotlin.metadat" + - "a.VersionRequirement.Level:\005ERROR\022\022\n\nerr" + - "or_code\030\004 \001(\005\022\025\n\007message\030\005 \001(\005B\004\230\265\030\001\022e\n\014" + - "version_kind\030\006 \001(\0162=.org.jetbrains.kotli" + - "n.metadata.VersionRequirement.VersionKin" + - "d:\020LANGUAGE_VERSION\"+\n\005Level\022\013\n\007WARNING\020" + - "\000\022\t\n\005ERROR\020\001\022\n\n\006HIDDEN\020\002\"J\n\013VersionKind\022" + - "\024\n\020LANGUAGE_VERSION\020\000\022\024\n\020COMPILER_VERSIO", - "N\020\001\022\017\n\013API_VERSION\020\002\"a\n\027VersionRequireme" + - "ntTable\022F\n\013requirement\030\001 \003(\01321.org.jetbr" + - "ains.kotlin.metadata.VersionRequirement\"" + - "\217\002\n\017PackageFragment\022;\n\007strings\030\001 \001(\0132*.o" + - "rg.jetbrains.kotlin.metadata.StringTable" + - "\022J\n\017qualified_names\030\002 \001(\01321.org.jetbrain" + - "s.kotlin.metadata.QualifiedNameTable\0227\n\007" + - "package\030\003 \001(\0132&.org.jetbrains.kotlin.met" + - "adata.Package\0223\n\005class\030\004 \003(\0132$.org.jetbr" + - "ains.kotlin.metadata.Class*\005\010d\020\310\001\"A\n\010Con", - "tract\0225\n\006effect\030\001 \003(\0132%.org.jetbrains.ko" + - "tlin.metadata.Effect\"\306\003\n\006Effect\022E\n\013effec" + - "t_type\030\001 \001(\01620.org.jetbrains.kotlin.meta" + - "data.Effect.EffectType\022N\n\033effect_constru" + - "ctor_argument\030\002 \003(\0132).org.jetbrains.kotl" + - "in.metadata.Expression\022S\n conclusion_of_" + - "conditional_effect\030\003 \001(\0132).org.jetbrains" + - ".kotlin.metadata.Expression\022B\n\004kind\030\004 \001(" + - "\01624.org.jetbrains.kotlin.metadata.Effect" + - ".InvocationKind\"C\n\nEffectType\022\024\n\020RETURNS", - "_CONSTANT\020\000\022\t\n\005CALLS\020\001\022\024\n\020RETURNS_NOT_NU" + - "LL\020\002\"G\n\016InvocationKind\022\020\n\014AT_MOST_ONCE\020\000" + - "\022\020\n\014EXACTLY_ONCE\020\001\022\021\n\rAT_LEAST_ONCE\020\002\"\245\003" + - "\n\nExpression\022\020\n\005flags\030\001 \001(\005:\0010\022!\n\031value_" + - "parameter_reference\030\002 \001(\005\022O\n\016constant_va" + - "lue\030\003 \001(\01627.org.jetbrains.kotlin.metadat" + - "a.Expression.ConstantValue\022=\n\020is_instanc" + - "e_type\030\004 \001(\0132#.org.jetbrains.kotlin.meta" + - "data.Type\022!\n\023is_instance_type_id\030\005 \001(\005B\004" + - "\240\265\030\001\022?\n\014and_argument\030\006 \003(\0132).org.jetbrai", - "ns.kotlin.metadata.Expression\022>\n\013or_argu" + - "ment\030\007 \003(\0132).org.jetbrains.kotlin.metada" + - "ta.Expression\".\n\rConstantValue\022\010\n\004TRUE\020\000" + - "\022\t\n\005FALSE\020\001\022\010\n\004NULL\020\002*9\n\010Modality\022\t\n\005FIN" + - "AL\020\000\022\010\n\004OPEN\020\001\022\014\n\010ABSTRACT\020\002\022\n\n\006SEALED\020\003" + - "*b\n\nVisibility\022\014\n\010INTERNAL\020\000\022\013\n\007PRIVATE\020" + - "\001\022\r\n\tPROTECTED\020\002\022\n\n\006PUBLIC\020\003\022\023\n\017PRIVATE_" + - "TO_THIS\020\004\022\t\n\005LOCAL\020\005*Q\n\nMemberKind\022\017\n\013DE" + - "CLARATION\020\000\022\021\n\rFAKE_OVERRIDE\020\001\022\016\n\nDELEGA" + - "TION\020\002\022\017\n\013SYNTHESIZED\020\003B\017B\rDebugProtoBuf" + "e\030\020 \003(\005B\006\020\001\220\265\030\001\0223\n%inline_class_underlyi" + + "ng_property_name\030\021 \001(\005B\004\210\265\030\001\022I\n\034inline_c" + + "lass_underlying_type\030\022 \001(\0132#.org.jetbrai" + + "ns.kotlin.metadata.Type\022-\n\037inline_class_" + + "underlying_type_id\030\023 \001(\005B\004\240\265\030\001\022<\n\ntype_t" + + "able\030\036 \001(\0132(.org.jetbrains.kotlin.metada", + "ta.TypeTable\022\033\n\023version_requirement\030\037 \003(" + + "\005\022Y\n\031version_requirement_table\030 \001(\01326.o" + + "rg.jetbrains.kotlin.metadata.VersionRequ" + + "irementTable\"x\n\004Kind\022\t\n\005CLASS\020\000\022\r\n\tINTER" + + "FACE\020\001\022\016\n\nENUM_CLASS\020\002\022\016\n\nENUM_ENTRY\020\003\022\024" + + "\n\020ANNOTATION_CLASS\020\004\022\n\n\006OBJECT\020\005\022\024\n\020COMP" + + "ANION_OBJECT\020\006*\006\010d\020\270\224\001\"\335\002\n\007Package\0229\n\010fu" + + "nction\030\003 \003(\0132\'.org.jetbrains.kotlin.meta" + + "data.Function\0229\n\010property\030\004 \003(\0132\'.org.je" + + "tbrains.kotlin.metadata.Property\022<\n\ntype", + "_alias\030\005 \003(\0132(.org.jetbrains.kotlin.meta" + + "data.TypeAlias\022<\n\ntype_table\030\036 \001(\0132(.org" + + ".jetbrains.kotlin.metadata.TypeTable\022Y\n\031" + + "version_requirement_table\030 \001(\01326.org.je" + + "tbrains.kotlin.metadata.VersionRequireme" + + "ntTable*\005\010d\020\310\001\"`\n\tTypeTable\0221\n\004type\030\001 \003(" + + "\0132#.org.jetbrains.kotlin.metadata.Type\022\032" + + "\n\016first_nullable\030\002 \001(\005:\002-1:\004\240\273\030\001\"\214\001\n\013Con" + + "structor\022\020\n\005flags\030\001 \001(\005:\0016\022F\n\017value_para" + + "meter\030\002 \003(\0132-.org.jetbrains.kotlin.metad", + "ata.ValueParameter\022\033\n\023version_requiremen" + + "t\030\037 \003(\005*\006\010d\020\270\224\001\"\246\004\n\010Function\022\020\n\005flags\030\t " + + "\001(\005:\0016\022\024\n\told_flags\030\001 \001(\005:\0016\022\022\n\004name\030\002 \002" + + "(\005B\004\210\265\030\001\0228\n\013return_type\030\003 \001(\0132#.org.jetb" + + "rains.kotlin.metadata.Type\022\034\n\016return_typ" + + "e_id\030\007 \001(\005B\004\240\265\030\001\022D\n\016type_parameter\030\004 \003(\013" + + "2,.org.jetbrains.kotlin.metadata.TypePar" + + "ameter\022:\n\rreceiver_type\030\005 \001(\0132#.org.jetb" + + "rains.kotlin.metadata.Type\022\036\n\020receiver_t" + + "ype_id\030\010 \001(\005B\004\240\265\030\001\022F\n\017value_parameter\030\006 ", + "\003(\0132-.org.jetbrains.kotlin.metadata.Valu" + + "eParameter\022<\n\ntype_table\030\036 \001(\0132(.org.jet" + + "brains.kotlin.metadata.TypeTable\022\033\n\023vers" + + "ion_requirement\030\037 \003(\005\0229\n\010contract\030 \001(\0132" + + "\'.org.jetbrains.kotlin.metadata.Contract" + + "*\006\010d\020\270\224\001\"\345\003\n\010Property\022\022\n\005flags\030\013 \001(\005:\00351" + + "8\022\027\n\told_flags\030\001 \001(\005:\0042054\022\022\n\004name\030\002 \002(\005" + + "B\004\210\265\030\001\0228\n\013return_type\030\003 \001(\0132#.org.jetbra" + + "ins.kotlin.metadata.Type\022\034\n\016return_type_" + + "id\030\t \001(\005B\004\240\265\030\001\022D\n\016type_parameter\030\004 \003(\0132,", + ".org.jetbrains.kotlin.metadata.TypeParam" + + "eter\022:\n\rreceiver_type\030\005 \001(\0132#.org.jetbra" + + "ins.kotlin.metadata.Type\022\036\n\020receiver_typ" + + "e_id\030\n \001(\005B\004\240\265\030\001\022M\n\026setter_value_paramet" + + "er\030\006 \001(\0132-.org.jetbrains.kotlin.metadata" + + ".ValueParameter\022\024\n\014getter_flags\030\007 \001(\005\022\024\n" + + "\014setter_flags\030\010 \001(\005\022\033\n\023version_requireme" + + "nt\030\037 \003(\005*\006\010d\020\270\224\001\"\357\001\n\016ValueParameter\022\020\n\005f" + + "lags\030\001 \001(\005:\0010\022\022\n\004name\030\002 \002(\005B\004\210\265\030\001\0221\n\004typ" + + "e\030\003 \001(\0132#.org.jetbrains.kotlin.metadata.", + "Type\022\025\n\007type_id\030\005 \001(\005B\004\240\265\030\001\022@\n\023vararg_el" + + "ement_type\030\004 \001(\0132#.org.jetbrains.kotlin." + + "metadata.Type\022$\n\026vararg_element_type_id\030" + + "\006 \001(\005B\004\240\265\030\001*\005\010d\020\310\001\"\226\003\n\tTypeAlias\022\020\n\005flag" + + "s\030\001 \001(\005:\0016\022\022\n\004name\030\002 \002(\005B\004\210\265\030\001\022D\n\016type_p" + + "arameter\030\003 \003(\0132,.org.jetbrains.kotlin.me" + + "tadata.TypeParameter\022<\n\017underlying_type\030" + + "\004 \001(\0132#.org.jetbrains.kotlin.metadata.Ty" + + "pe\022 \n\022underlying_type_id\030\005 \001(\005B\004\240\265\030\001\022:\n\r" + + "expanded_type\030\006 \001(\0132#.org.jetbrains.kotl", + "in.metadata.Type\022\036\n\020expanded_type_id\030\007 \001" + + "(\005B\004\240\265\030\001\022=\n\nannotation\030\010 \003(\0132).org.jetbr" + + "ains.kotlin.metadata.Annotation\022\033\n\023versi" + + "on_requirement\030\037 \003(\005*\005\010d\020\310\001\"&\n\tEnumEntry" + + "\022\022\n\004name\030\001 \001(\005B\004\210\265\030\001*\005\010d\020\310\001\"\225\003\n\022VersionR" + + "equirement\022\017\n\007version\030\001 \001(\005\022\024\n\014version_f" + + "ull\030\002 \001(\005\022M\n\005level\030\003 \001(\01627.org.jetbrains" + + ".kotlin.metadata.VersionRequirement.Leve" + + "l:\005ERROR\022\022\n\nerror_code\030\004 \001(\005\022\025\n\007message\030" + + "\005 \001(\005B\004\230\265\030\001\022e\n\014version_kind\030\006 \001(\0162=.org.", + "jetbrains.kotlin.metadata.VersionRequire" + + "ment.VersionKind:\020LANGUAGE_VERSION\"+\n\005Le" + + "vel\022\013\n\007WARNING\020\000\022\t\n\005ERROR\020\001\022\n\n\006HIDDEN\020\002\"" + + "J\n\013VersionKind\022\024\n\020LANGUAGE_VERSION\020\000\022\024\n\020" + + "COMPILER_VERSION\020\001\022\017\n\013API_VERSION\020\002\"a\n\027V" + + "ersionRequirementTable\022F\n\013requirement\030\001 " + + "\003(\01321.org.jetbrains.kotlin.metadata.Vers" + + "ionRequirement\"\217\002\n\017PackageFragment\022;\n\007st" + + "rings\030\001 \001(\0132*.org.jetbrains.kotlin.metad" + + "ata.StringTable\022J\n\017qualified_names\030\002 \001(\013", + "21.org.jetbrains.kotlin.metadata.Qualifi" + + "edNameTable\0227\n\007package\030\003 \001(\0132&.org.jetbr" + + "ains.kotlin.metadata.Package\0223\n\005class\030\004 " + + "\003(\0132$.org.jetbrains.kotlin.metadata.Clas" + + "s*\005\010d\020\310\001\"A\n\010Contract\0225\n\006effect\030\001 \003(\0132%.o" + + "rg.jetbrains.kotlin.metadata.Effect\"\306\003\n\006" + + "Effect\022E\n\013effect_type\030\001 \001(\01620.org.jetbra" + + "ins.kotlin.metadata.Effect.EffectType\022N\n" + + "\033effect_constructor_argument\030\002 \003(\0132).org" + + ".jetbrains.kotlin.metadata.Expression\022S\n", + " conclusion_of_conditional_effect\030\003 \001(\0132" + + ").org.jetbrains.kotlin.metadata.Expressi" + + "on\022B\n\004kind\030\004 \001(\01624.org.jetbrains.kotlin." + + "metadata.Effect.InvocationKind\"C\n\nEffect" + + "Type\022\024\n\020RETURNS_CONSTANT\020\000\022\t\n\005CALLS\020\001\022\024\n" + + "\020RETURNS_NOT_NULL\020\002\"G\n\016InvocationKind\022\020\n" + + "\014AT_MOST_ONCE\020\000\022\020\n\014EXACTLY_ONCE\020\001\022\021\n\rAT_" + + "LEAST_ONCE\020\002\"\245\003\n\nExpression\022\020\n\005flags\030\001 \001" + + "(\005:\0010\022!\n\031value_parameter_reference\030\002 \001(\005" + + "\022O\n\016constant_value\030\003 \001(\01627.org.jetbrains", + ".kotlin.metadata.Expression.ConstantValu" + + "e\022=\n\020is_instance_type\030\004 \001(\0132#.org.jetbra" + + "ins.kotlin.metadata.Type\022!\n\023is_instance_" + + "type_id\030\005 \001(\005B\004\240\265\030\001\022?\n\014and_argument\030\006 \003(" + + "\0132).org.jetbrains.kotlin.metadata.Expres" + + "sion\022>\n\013or_argument\030\007 \003(\0132).org.jetbrain" + + "s.kotlin.metadata.Expression\".\n\rConstant" + + "Value\022\010\n\004TRUE\020\000\022\t\n\005FALSE\020\001\022\010\n\004NULL\020\002*9\n\010" + + "Modality\022\t\n\005FINAL\020\000\022\010\n\004OPEN\020\001\022\014\n\010ABSTRAC" + + "T\020\002\022\n\n\006SEALED\020\003*b\n\nVisibility\022\014\n\010INTERNA", + "L\020\000\022\013\n\007PRIVATE\020\001\022\r\n\tPROTECTED\020\002\022\n\n\006PUBLI" + + "C\020\003\022\023\n\017PRIVATE_TO_THIS\020\004\022\t\n\005LOCAL\020\005*Q\n\nM" + + "emberKind\022\017\n\013DECLARATION\020\000\022\021\n\rFAKE_OVERR" + + "IDE\020\001\022\016\n\nDELEGATION\020\002\022\017\n\013SYNTHESIZED\020\003B\017" + + "B\rDebugProtoBuf" }; org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -34587,7 +34949,7 @@ public final class DebugProtoBuf { internal_static_org_jetbrains_kotlin_metadata_Class_fieldAccessorTable = new org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_jetbrains_kotlin_metadata_Class_descriptor, - new java.lang.String[] { "Flags", "FqName", "CompanionObjectName", "TypeParameter", "Supertype", "SupertypeId", "NestedClassName", "Constructor", "Function", "Property", "TypeAlias", "EnumEntry", "SealedSubclassFqName", "TypeTable", "VersionRequirement", "VersionRequirementTable", }); + new java.lang.String[] { "Flags", "FqName", "CompanionObjectName", "TypeParameter", "Supertype", "SupertypeId", "NestedClassName", "Constructor", "Function", "Property", "TypeAlias", "EnumEntry", "SealedSubclassFqName", "InlineClassUnderlyingPropertyName", "InlineClassUnderlyingType", "InlineClassUnderlyingTypeId", "TypeTable", "VersionRequirement", "VersionRequirementTable", }); internal_static_org_jetbrains_kotlin_metadata_Package_descriptor = getDescriptor().getMessageTypes().get(6); internal_static_org_jetbrains_kotlin_metadata_Package_fieldAccessorTable = new @@ -34696,6 +35058,8 @@ public final class DebugProtoBuf { registry.add(org.jetbrains.kotlin.metadata.DebugExtOptionsProtoBuf.typeIdInTable); registry.add(org.jetbrains.kotlin.metadata.DebugExtOptionsProtoBuf.nameIdInTable); registry.add(org.jetbrains.kotlin.metadata.DebugExtOptionsProtoBuf.fqNameIdInTable); + registry.add(org.jetbrains.kotlin.metadata.DebugExtOptionsProtoBuf.nameIdInTable); + registry.add(org.jetbrains.kotlin.metadata.DebugExtOptionsProtoBuf.typeIdInTable); registry.add(org.jetbrains.kotlin.metadata.DebugExtOptionsProtoBuf.skipMessageInComparison); registry.add(org.jetbrains.kotlin.metadata.DebugExtOptionsProtoBuf.nameIdInTable); registry.add(org.jetbrains.kotlin.metadata.DebugExtOptionsProtoBuf.typeIdInTable); diff --git a/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt b/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt index f6f0b075351..e0ab84aa60b 100644 --- a/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt +++ b/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt @@ -30,7 +30,6 @@ import org.jetbrains.kotlin.resolve.constants.EnumValue import org.jetbrains.kotlin.resolve.constants.IntValue import org.jetbrains.kotlin.resolve.constants.NullValue import org.jetbrains.kotlin.resolve.constants.StringValue -import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.descriptorUtil.nonSourceAnnotations import org.jetbrains.kotlin.serialization.deserialization.ProtoEnumFlags import org.jetbrains.kotlin.serialization.deserialization.descriptorVisibility @@ -150,6 +149,21 @@ class DescriptorSerializer private constructor( builder.typeTable = typeTableProto } + classDescriptor.underlyingRepresentation()?.let { parameter -> + builder.inlineClassUnderlyingPropertyName = getSimpleNameIndex(parameter.name) + + val property = callableMembers.single { + it is PropertyDescriptor && it.extensionReceiverParameter == null && it.name == parameter.name + } + if (!property.visibility.isPublicAPI) { + if (useTypeTable()) { + builder.inlineClassUnderlyingTypeId = typeId(parameter.type) + } else { + builder.setInlineClassUnderlyingType(type(parameter.type)) + } + } + } + if (versionRequirementTable == null) error("Version requirements must be serialized for classes: $classDescriptor") builder.addAllVersionRequirement(versionRequirementTable.serializeVersionRequirements(classDescriptor)) diff --git a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmMetadataVersion.kt b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmMetadataVersion.kt index 1b1ea4deda8..22ae8940222 100644 --- a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmMetadataVersion.kt +++ b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmMetadataVersion.kt @@ -26,7 +26,7 @@ class JvmMetadataVersion(versionArray: IntArray, val isStrictSemantics: Boolean) companion object { @JvmField - val INSTANCE = JvmMetadataVersion(1, 5, 0) + val INSTANCE = JvmMetadataVersion(1, 5, 1) @JvmField val INVALID_VERSION = JvmMetadataVersion() diff --git a/core/metadata/src/metadata.proto b/core/metadata/src/metadata.proto index 23a79879b8d..fbd04ea3df2 100644 --- a/core/metadata/src/metadata.proto +++ b/core/metadata/src/metadata.proto @@ -233,6 +233,11 @@ message Class { repeated int32 sealed_subclass_fq_name = 16 [packed = true, (fq_name_id_in_table) = true]; + optional int32 inline_class_underlying_property_name = 17 [(name_id_in_table) = true]; + + optional Type inline_class_underlying_type = 18; + optional int32 inline_class_underlying_type_id = 19 [(type_id_in_table) = true]; + optional TypeTable type_table = 30; // Index into the VersionRequirementTable diff --git a/core/metadata/src/org/jetbrains/kotlin/metadata/ProtoBuf.java b/core/metadata/src/org/jetbrains/kotlin/metadata/ProtoBuf.java index e4ab28fc0eb..4f253284816 100644 --- a/core/metadata/src/org/jetbrains/kotlin/metadata/ProtoBuf.java +++ b/core/metadata/src/org/jetbrains/kotlin/metadata/ProtoBuf.java @@ -8450,6 +8450,33 @@ public final class ProtoBuf { */ int getSealedSubclassFqName(int index); + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + boolean hasInlineClassUnderlyingPropertyName(); + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + int getInlineClassUnderlyingPropertyName(); + + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + boolean hasInlineClassUnderlyingType(); + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + org.jetbrains.kotlin.metadata.ProtoBuf.Type getInlineClassUnderlyingType(); + + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + boolean hasInlineClassUnderlyingTypeId(); + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + int getInlineClassUnderlyingTypeId(); + /** * optional .org.jetbrains.kotlin.metadata.TypeTable type_table = 30; */ @@ -8678,9 +8705,32 @@ public final class ProtoBuf { input.popLimit(limit); break; } + case 136: { + bitField0_ |= 0x00000008; + inlineClassUnderlyingPropertyName_ = input.readInt32(); + break; + } + case 146: { + org.jetbrains.kotlin.metadata.ProtoBuf.Type.Builder subBuilder = null; + if (((bitField0_ & 0x00000010) == 0x00000010)) { + subBuilder = inlineClassUnderlyingType_.toBuilder(); + } + inlineClassUnderlyingType_ = input.readMessage(org.jetbrains.kotlin.metadata.ProtoBuf.Type.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(inlineClassUnderlyingType_); + inlineClassUnderlyingType_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000010; + break; + } + case 152: { + bitField0_ |= 0x00000020; + inlineClassUnderlyingTypeId_ = input.readInt32(); + break; + } case 242: { org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable.Builder subBuilder = null; - if (((bitField0_ & 0x00000008) == 0x00000008)) { + if (((bitField0_ & 0x00000040) == 0x00000040)) { subBuilder = typeTable_.toBuilder(); } typeTable_ = input.readMessage(org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable.PARSER, extensionRegistry); @@ -8688,13 +8738,13 @@ public final class ProtoBuf { subBuilder.mergeFrom(typeTable_); typeTable_ = subBuilder.buildPartial(); } - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000040; break; } case 248: { - if (!((mutable_bitField0_ & 0x00004000) == 0x00004000)) { + if (!((mutable_bitField0_ & 0x00020000) == 0x00020000)) { versionRequirement_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00004000; + mutable_bitField0_ |= 0x00020000; } versionRequirement_.add(input.readInt32()); break; @@ -8702,9 +8752,9 @@ public final class ProtoBuf { case 250: { int length = input.readRawVarint32(); int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00004000) == 0x00004000) && input.getBytesUntilLimit() > 0) { + if (!((mutable_bitField0_ & 0x00020000) == 0x00020000) && input.getBytesUntilLimit() > 0) { versionRequirement_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00004000; + mutable_bitField0_ |= 0x00020000; } while (input.getBytesUntilLimit() > 0) { versionRequirement_.add(input.readInt32()); @@ -8714,7 +8764,7 @@ public final class ProtoBuf { } case 258: { org.jetbrains.kotlin.metadata.ProtoBuf.VersionRequirementTable.Builder subBuilder = null; - if (((bitField0_ & 0x00000010) == 0x00000010)) { + if (((bitField0_ & 0x00000080) == 0x00000080)) { subBuilder = versionRequirementTable_.toBuilder(); } versionRequirementTable_ = input.readMessage(org.jetbrains.kotlin.metadata.ProtoBuf.VersionRequirementTable.PARSER, extensionRegistry); @@ -8722,7 +8772,7 @@ public final class ProtoBuf { subBuilder.mergeFrom(versionRequirementTable_); versionRequirementTable_ = subBuilder.buildPartial(); } - bitField0_ |= 0x00000010; + bitField0_ |= 0x00000080; break; } } @@ -8763,7 +8813,7 @@ public final class ProtoBuf { if (((mutable_bitField0_ & 0x00001000) == 0x00001000)) { sealedSubclassFqName_ = java.util.Collections.unmodifiableList(sealedSubclassFqName_); } - if (((mutable_bitField0_ & 0x00004000) == 0x00004000)) { + if (((mutable_bitField0_ & 0x00020000) == 0x00020000)) { versionRequirement_ = java.util.Collections.unmodifiableList(versionRequirement_); } try { @@ -9286,13 +9336,58 @@ public final class ProtoBuf { } private int sealedSubclassFqNameMemoizedSerializedSize = -1; + public static final int INLINE_CLASS_UNDERLYING_PROPERTY_NAME_FIELD_NUMBER = 17; + private int inlineClassUnderlyingPropertyName_; + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + public boolean hasInlineClassUnderlyingPropertyName() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + public int getInlineClassUnderlyingPropertyName() { + return inlineClassUnderlyingPropertyName_; + } + + public static final int INLINE_CLASS_UNDERLYING_TYPE_FIELD_NUMBER = 18; + private org.jetbrains.kotlin.metadata.ProtoBuf.Type inlineClassUnderlyingType_; + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public boolean hasInlineClassUnderlyingType() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public org.jetbrains.kotlin.metadata.ProtoBuf.Type getInlineClassUnderlyingType() { + return inlineClassUnderlyingType_; + } + + public static final int INLINE_CLASS_UNDERLYING_TYPE_ID_FIELD_NUMBER = 19; + private int inlineClassUnderlyingTypeId_; + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + public boolean hasInlineClassUnderlyingTypeId() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + public int getInlineClassUnderlyingTypeId() { + return inlineClassUnderlyingTypeId_; + } + public static final int TYPE_TABLE_FIELD_NUMBER = 30; private org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable typeTable_; /** * optional .org.jetbrains.kotlin.metadata.TypeTable type_table = 30; */ public boolean hasTypeTable() { - return ((bitField0_ & 0x00000008) == 0x00000008); + return ((bitField0_ & 0x00000040) == 0x00000040); } /** * optional .org.jetbrains.kotlin.metadata.TypeTable type_table = 30; @@ -9341,7 +9436,7 @@ public final class ProtoBuf { * optional .org.jetbrains.kotlin.metadata.VersionRequirementTable version_requirement_table = 32; */ public boolean hasVersionRequirementTable() { - return ((bitField0_ & 0x00000010) == 0x00000010); + return ((bitField0_ & 0x00000080) == 0x00000080); } /** * optional .org.jetbrains.kotlin.metadata.VersionRequirementTable version_requirement_table = 32; @@ -9364,6 +9459,9 @@ public final class ProtoBuf { typeAlias_ = java.util.Collections.emptyList(); enumEntry_ = java.util.Collections.emptyList(); sealedSubclassFqName_ = java.util.Collections.emptyList(); + inlineClassUnderlyingPropertyName_ = 0; + inlineClassUnderlyingType_ = org.jetbrains.kotlin.metadata.ProtoBuf.Type.getDefaultInstance(); + inlineClassUnderlyingTypeId_ = 0; typeTable_ = org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable.getDefaultInstance(); versionRequirement_ = java.util.Collections.emptyList(); versionRequirementTable_ = org.jetbrains.kotlin.metadata.ProtoBuf.VersionRequirementTable.getDefaultInstance(); @@ -9420,6 +9518,12 @@ public final class ProtoBuf { return false; } } + if (hasInlineClassUnderlyingType()) { + if (!getInlineClassUnderlyingType().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } if (hasTypeTable()) { if (!getTypeTable().isInitialized()) { memoizedIsInitialized = 0; @@ -9492,12 +9596,21 @@ public final class ProtoBuf { output.writeInt32NoTag(sealedSubclassFqName_.get(i)); } if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeInt32(17, inlineClassUnderlyingPropertyName_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + output.writeMessage(18, inlineClassUnderlyingType_); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + output.writeInt32(19, inlineClassUnderlyingTypeId_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { output.writeMessage(30, typeTable_); } for (int i = 0; i < versionRequirement_.size(); i++) { output.writeInt32(31, versionRequirement_.get(i)); } - if (((bitField0_ & 0x00000010) == 0x00000010)) { + if (((bitField0_ & 0x00000080) == 0x00000080)) { output.writeMessage(32, versionRequirementTable_); } extensionWriter.writeUntil(19000, output); @@ -9593,6 +9706,18 @@ public final class ProtoBuf { sealedSubclassFqNameMemoizedSerializedSize = dataSize; } if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeInt32Size(17, inlineClassUnderlyingPropertyName_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(18, inlineClassUnderlyingType_); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeInt32Size(19, inlineClassUnderlyingTypeId_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeMessageSize(30, typeTable_); } @@ -9605,7 +9730,7 @@ public final class ProtoBuf { size += dataSize; size += 2 * getVersionRequirementList().size(); } - if (((bitField0_ & 0x00000010) == 0x00000010)) { + if (((bitField0_ & 0x00000080) == 0x00000080)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeMessageSize(32, versionRequirementTable_); } @@ -9729,12 +9854,18 @@ public final class ProtoBuf { bitField0_ = (bitField0_ & ~0x00000800); sealedSubclassFqName_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00001000); - typeTable_ = org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable.getDefaultInstance(); + inlineClassUnderlyingPropertyName_ = 0; bitField0_ = (bitField0_ & ~0x00002000); - versionRequirement_ = java.util.Collections.emptyList(); + inlineClassUnderlyingType_ = org.jetbrains.kotlin.metadata.ProtoBuf.Type.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00004000); - versionRequirementTable_ = org.jetbrains.kotlin.metadata.ProtoBuf.VersionRequirementTable.getDefaultInstance(); + inlineClassUnderlyingTypeId_ = 0; bitField0_ = (bitField0_ & ~0x00008000); + typeTable_ = org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00010000); + versionRequirement_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00020000); + versionRequirementTable_ = org.jetbrains.kotlin.metadata.ProtoBuf.VersionRequirementTable.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00040000); return this; } @@ -9823,14 +9954,26 @@ public final class ProtoBuf { if (((from_bitField0_ & 0x00002000) == 0x00002000)) { to_bitField0_ |= 0x00000008; } + result.inlineClassUnderlyingPropertyName_ = inlineClassUnderlyingPropertyName_; + if (((from_bitField0_ & 0x00004000) == 0x00004000)) { + to_bitField0_ |= 0x00000010; + } + result.inlineClassUnderlyingType_ = inlineClassUnderlyingType_; + if (((from_bitField0_ & 0x00008000) == 0x00008000)) { + to_bitField0_ |= 0x00000020; + } + result.inlineClassUnderlyingTypeId_ = inlineClassUnderlyingTypeId_; + if (((from_bitField0_ & 0x00010000) == 0x00010000)) { + to_bitField0_ |= 0x00000040; + } result.typeTable_ = typeTable_; - if (((bitField0_ & 0x00004000) == 0x00004000)) { + if (((bitField0_ & 0x00020000) == 0x00020000)) { versionRequirement_ = java.util.Collections.unmodifiableList(versionRequirement_); - bitField0_ = (bitField0_ & ~0x00004000); + bitField0_ = (bitField0_ & ~0x00020000); } result.versionRequirement_ = versionRequirement_; - if (((from_bitField0_ & 0x00008000) == 0x00008000)) { - to_bitField0_ |= 0x00000010; + if (((from_bitField0_ & 0x00040000) == 0x00040000)) { + to_bitField0_ |= 0x00000080; } result.versionRequirementTable_ = versionRequirementTable_; result.bitField0_ = to_bitField0_; @@ -9948,13 +10091,22 @@ public final class ProtoBuf { } } + if (other.hasInlineClassUnderlyingPropertyName()) { + setInlineClassUnderlyingPropertyName(other.getInlineClassUnderlyingPropertyName()); + } + if (other.hasInlineClassUnderlyingType()) { + mergeInlineClassUnderlyingType(other.getInlineClassUnderlyingType()); + } + if (other.hasInlineClassUnderlyingTypeId()) { + setInlineClassUnderlyingTypeId(other.getInlineClassUnderlyingTypeId()); + } if (other.hasTypeTable()) { mergeTypeTable(other.getTypeTable()); } if (!other.versionRequirement_.isEmpty()) { if (versionRequirement_.isEmpty()) { versionRequirement_ = other.versionRequirement_; - bitField0_ = (bitField0_ & ~0x00004000); + bitField0_ = (bitField0_ & ~0x00020000); } else { ensureVersionRequirementIsMutable(); versionRequirement_.addAll(other.versionRequirement_); @@ -10017,6 +10169,12 @@ public final class ProtoBuf { return false; } } + if (hasInlineClassUnderlyingType()) { + if (!getInlineClassUnderlyingType().isInitialized()) { + + return false; + } + } if (hasTypeTable()) { if (!getTypeTable().isInitialized()) { @@ -11270,12 +11428,136 @@ public final class ProtoBuf { return this; } + private int inlineClassUnderlyingPropertyName_ ; + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + public boolean hasInlineClassUnderlyingPropertyName() { + return ((bitField0_ & 0x00002000) == 0x00002000); + } + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + public int getInlineClassUnderlyingPropertyName() { + return inlineClassUnderlyingPropertyName_; + } + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + public Builder setInlineClassUnderlyingPropertyName(int value) { + bitField0_ |= 0x00002000; + inlineClassUnderlyingPropertyName_ = value; + + return this; + } + /** + * optional int32 inline_class_underlying_property_name = 17; + */ + public Builder clearInlineClassUnderlyingPropertyName() { + bitField0_ = (bitField0_ & ~0x00002000); + inlineClassUnderlyingPropertyName_ = 0; + + return this; + } + + private org.jetbrains.kotlin.metadata.ProtoBuf.Type inlineClassUnderlyingType_ = org.jetbrains.kotlin.metadata.ProtoBuf.Type.getDefaultInstance(); + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public boolean hasInlineClassUnderlyingType() { + return ((bitField0_ & 0x00004000) == 0x00004000); + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public org.jetbrains.kotlin.metadata.ProtoBuf.Type getInlineClassUnderlyingType() { + return inlineClassUnderlyingType_; + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public Builder setInlineClassUnderlyingType(org.jetbrains.kotlin.metadata.ProtoBuf.Type value) { + if (value == null) { + throw new NullPointerException(); + } + inlineClassUnderlyingType_ = value; + + bitField0_ |= 0x00004000; + return this; + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public Builder setInlineClassUnderlyingType( + org.jetbrains.kotlin.metadata.ProtoBuf.Type.Builder builderForValue) { + inlineClassUnderlyingType_ = builderForValue.build(); + + bitField0_ |= 0x00004000; + return this; + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public Builder mergeInlineClassUnderlyingType(org.jetbrains.kotlin.metadata.ProtoBuf.Type value) { + if (((bitField0_ & 0x00004000) == 0x00004000) && + inlineClassUnderlyingType_ != org.jetbrains.kotlin.metadata.ProtoBuf.Type.getDefaultInstance()) { + inlineClassUnderlyingType_ = + org.jetbrains.kotlin.metadata.ProtoBuf.Type.newBuilder(inlineClassUnderlyingType_).mergeFrom(value).buildPartial(); + } else { + inlineClassUnderlyingType_ = value; + } + + bitField0_ |= 0x00004000; + return this; + } + /** + * optional .org.jetbrains.kotlin.metadata.Type inline_class_underlying_type = 18; + */ + public Builder clearInlineClassUnderlyingType() { + inlineClassUnderlyingType_ = org.jetbrains.kotlin.metadata.ProtoBuf.Type.getDefaultInstance(); + + bitField0_ = (bitField0_ & ~0x00004000); + return this; + } + + private int inlineClassUnderlyingTypeId_ ; + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + public boolean hasInlineClassUnderlyingTypeId() { + return ((bitField0_ & 0x00008000) == 0x00008000); + } + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + public int getInlineClassUnderlyingTypeId() { + return inlineClassUnderlyingTypeId_; + } + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + public Builder setInlineClassUnderlyingTypeId(int value) { + bitField0_ |= 0x00008000; + inlineClassUnderlyingTypeId_ = value; + + return this; + } + /** + * optional int32 inline_class_underlying_type_id = 19; + */ + public Builder clearInlineClassUnderlyingTypeId() { + bitField0_ = (bitField0_ & ~0x00008000); + inlineClassUnderlyingTypeId_ = 0; + + return this; + } + private org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable typeTable_ = org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable.getDefaultInstance(); /** * optional .org.jetbrains.kotlin.metadata.TypeTable type_table = 30; */ public boolean hasTypeTable() { - return ((bitField0_ & 0x00002000) == 0x00002000); + return ((bitField0_ & 0x00010000) == 0x00010000); } /** * optional .org.jetbrains.kotlin.metadata.TypeTable type_table = 30; @@ -11292,7 +11574,7 @@ public final class ProtoBuf { } typeTable_ = value; - bitField0_ |= 0x00002000; + bitField0_ |= 0x00010000; return this; } /** @@ -11302,14 +11584,14 @@ public final class ProtoBuf { org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable.Builder builderForValue) { typeTable_ = builderForValue.build(); - bitField0_ |= 0x00002000; + bitField0_ |= 0x00010000; return this; } /** * optional .org.jetbrains.kotlin.metadata.TypeTable type_table = 30; */ public Builder mergeTypeTable(org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable value) { - if (((bitField0_ & 0x00002000) == 0x00002000) && + if (((bitField0_ & 0x00010000) == 0x00010000) && typeTable_ != org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable.getDefaultInstance()) { typeTable_ = org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable.newBuilder(typeTable_).mergeFrom(value).buildPartial(); @@ -11317,7 +11599,7 @@ public final class ProtoBuf { typeTable_ = value; } - bitField0_ |= 0x00002000; + bitField0_ |= 0x00010000; return this; } /** @@ -11326,15 +11608,15 @@ public final class ProtoBuf { public Builder clearTypeTable() { typeTable_ = org.jetbrains.kotlin.metadata.ProtoBuf.TypeTable.getDefaultInstance(); - bitField0_ = (bitField0_ & ~0x00002000); + bitField0_ = (bitField0_ & ~0x00010000); return this; } private java.util.List versionRequirement_ = java.util.Collections.emptyList(); private void ensureVersionRequirementIsMutable() { - if (!((bitField0_ & 0x00004000) == 0x00004000)) { + if (!((bitField0_ & 0x00020000) == 0x00020000)) { versionRequirement_ = new java.util.ArrayList(versionRequirement_); - bitField0_ |= 0x00004000; + bitField0_ |= 0x00020000; } } /** @@ -11419,7 +11701,7 @@ public final class ProtoBuf { */ public Builder clearVersionRequirement() { versionRequirement_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00004000); + bitField0_ = (bitField0_ & ~0x00020000); return this; } @@ -11429,7 +11711,7 @@ public final class ProtoBuf { * optional .org.jetbrains.kotlin.metadata.VersionRequirementTable version_requirement_table = 32; */ public boolean hasVersionRequirementTable() { - return ((bitField0_ & 0x00008000) == 0x00008000); + return ((bitField0_ & 0x00040000) == 0x00040000); } /** * optional .org.jetbrains.kotlin.metadata.VersionRequirementTable version_requirement_table = 32; @@ -11446,7 +11728,7 @@ public final class ProtoBuf { } versionRequirementTable_ = value; - bitField0_ |= 0x00008000; + bitField0_ |= 0x00040000; return this; } /** @@ -11456,14 +11738,14 @@ public final class ProtoBuf { org.jetbrains.kotlin.metadata.ProtoBuf.VersionRequirementTable.Builder builderForValue) { versionRequirementTable_ = builderForValue.build(); - bitField0_ |= 0x00008000; + bitField0_ |= 0x00040000; return this; } /** * optional .org.jetbrains.kotlin.metadata.VersionRequirementTable version_requirement_table = 32; */ public Builder mergeVersionRequirementTable(org.jetbrains.kotlin.metadata.ProtoBuf.VersionRequirementTable value) { - if (((bitField0_ & 0x00008000) == 0x00008000) && + if (((bitField0_ & 0x00040000) == 0x00040000) && versionRequirementTable_ != org.jetbrains.kotlin.metadata.ProtoBuf.VersionRequirementTable.getDefaultInstance()) { versionRequirementTable_ = org.jetbrains.kotlin.metadata.ProtoBuf.VersionRequirementTable.newBuilder(versionRequirementTable_).mergeFrom(value).buildPartial(); @@ -11471,7 +11753,7 @@ public final class ProtoBuf { versionRequirementTable_ = value; } - bitField0_ |= 0x00008000; + bitField0_ |= 0x00040000; return this; } /** @@ -11480,7 +11762,7 @@ public final class ProtoBuf { public Builder clearVersionRequirementTable() { versionRequirementTable_ = org.jetbrains.kotlin.metadata.ProtoBuf.VersionRequirementTable.getDefaultInstance(); - bitField0_ = (bitField0_ & ~0x00008000); + bitField0_ = (bitField0_ & ~0x00040000); return this; } -- GitLab