diff --git a/compiler/ir/serialization.common/src/KotlinIr.proto b/compiler/ir/serialization.common/src/KotlinIr.proto index 436a06aa45c..6fda4f7808e 100644 --- a/compiler/ir/serialization.common/src/KotlinIr.proto +++ b/compiler/ir/serialization.common/src/KotlinIr.proto @@ -517,6 +517,7 @@ message IrFunctionBase { repeated IrValueParameter value_parameter = 9; optional int32 body = 10; required int32 return_type = 11; + required bool is_expect = 12; } message IrFunction { @@ -531,7 +532,6 @@ message IrFunction { message IrConstructor { required IrFunctionBase base = 1; required bool is_primary = 2; - } message IrField { @@ -568,6 +568,7 @@ message IrProperty { optional IrField backing_field = 10; optional IrFunction getter = 11; optional IrFunction setter = 12; + required bool is_expect = 13; } message IrVariable { @@ -636,6 +637,7 @@ message IrClass { required IrTypeParameterContainer type_parameters = 12; required IrDeclarationContainer declaration_container = 13; repeated int32 super_type = 14; + required bool is_expect = 15; } message IrTypeAlias { diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt index 1bc28ada8cc..d8ae9e6f043 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt @@ -985,7 +985,7 @@ abstract class IrFileDeserializer( isData = proto.isData, isExternal = proto.isExternal, isInline = proto.isInline, - isExpect = false // TODO isExpect + isExpect = proto.isExpect ) }.usingParent { proto.declarationContainer.declarationList.mapTo(declarations) { deserializeDeclaration(it) } @@ -1057,7 +1057,7 @@ abstract class IrFileDeserializer( isExternal = proto.base.isExternal, isTailrec = proto.isTailrec, isSuspend = proto.isSuspend, - isExpect = false // TODO isExpect + isExpect = proto.base.isExpect ) }.apply { proto.overriddenList.mapTo(overriddenSymbols) { deserializeIrSymbol(it) as IrSimpleFunctionSymbol } @@ -1141,7 +1141,7 @@ abstract class IrFileDeserializer( isInline = proto.base.isInline, isExternal = proto.base.isExternal, isPrimary = proto.isPrimary, - isExpect = false // TODO isExpect + isExpect = proto.base.isExpect ) }.apply { (descriptor as? WrappedClassConstructorDescriptor)?.bind(this) @@ -1212,11 +1212,12 @@ abstract class IrFileDeserializer( deserializeName(proto.name), deserializeVisibility(proto.visibility), deserializeModality(proto.modality), - proto.isVar, - proto.isConst, - proto.isLateinit, - proto.isDelegated, - proto.isExternal + isVar = proto.isVar, + isConst = proto.isConst, + isLateinit = proto.isLateinit, + isDelegated = proto.isDelegated, + isExpect = proto.isExpect, + isExternal = proto.isExternal ) }.apply { if (proto.hasGetter()) { diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt index 962c1c0b311..0a2258690c8 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt @@ -1033,6 +1033,7 @@ open class IrFileSerializer( .setVisibility(serializeVisibility(function.visibility)) .setIsInline(function.isInline) .setIsExternal(function.isExternal) + .setIsExpect(function.isExpect) .setReturnType(serializeIrType(function.returnType)) .setTypeParameters(serializeIrTypeParameterContainer(function.typeParameters)) @@ -1108,6 +1109,7 @@ open class IrFileSerializer( .setIsLateinit(property.isLateinit) .setIsDelegated(property.isDelegated) .setIsExternal(property.isExternal) + .setIsExpect(property.isExpect) val backingField = property.backingField val getter = property.getter @@ -1180,6 +1182,7 @@ open class IrFileSerializer( .setIsData(clazz.isData) .setIsExternal(clazz.isExternal) .setIsInline(clazz.isInline) + .setIsExpect(clazz.isExpect) .setTypeParameters(serializeIrTypeParameterContainer(clazz.typeParameters)) .setDeclarationContainer(serializeIrDeclarationContainer(clazz.declarations)) clazz.superTypes.forEach { diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrClass.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrClass.java index e4698cfd434..77be52d4303 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrClass.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrClass.java @@ -193,6 +193,11 @@ public final class IrClass extends input.popLimit(limit); break; } + case 120: { + bitField0_ |= 0x00002000; + isExpect_ = input.readBool(); + break; + } } } } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { @@ -455,6 +460,21 @@ public final class IrClass extends return superType_.get(index); } + public static final int IS_EXPECT_FIELD_NUMBER = 15; + private boolean isExpect_; + /** + * required bool is_expect = 15; + */ + public boolean hasIsExpect() { + return ((bitField0_ & 0x00002000) == 0x00002000); + } + /** + * required bool is_expect = 15; + */ + public boolean getIsExpect() { + return isExpect_; + } + private void initFields() { base_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrDeclarationBase.getDefaultInstance(); name_ = 0; @@ -470,6 +490,7 @@ public final class IrClass extends typeParameters_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrTypeParameterContainer.getDefaultInstance(); declarationContainer_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrDeclarationContainer.getDefaultInstance(); superType_ = java.util.Collections.emptyList(); + isExpect_ = false; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -525,6 +546,10 @@ public final class IrClass extends memoizedIsInitialized = 0; return false; } + if (!hasIsExpect()) { + memoizedIsInitialized = 0; + return false; + } if (!getBase().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -596,6 +621,9 @@ public final class IrClass extends for (int i = 0; i < superType_.size(); i++) { output.writeInt32(14, superType_.get(i)); } + if (((bitField0_ & 0x00002000) == 0x00002000)) { + output.writeBool(15, isExpect_); + } output.writeRawBytes(unknownFields); } @@ -666,6 +694,10 @@ public final class IrClass extends size += dataSize; size += 1 * getSuperTypeList().size(); } + if (((bitField0_ & 0x00002000) == 0x00002000)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeBoolSize(15, isExpect_); + } size += unknownFields.size(); memoizedSerializedSize = size; return size; @@ -788,6 +820,8 @@ public final class IrClass extends bitField0_ = (bitField0_ & ~0x00001000); superType_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00002000); + isExpect_ = false; + bitField0_ = (bitField0_ & ~0x00004000); return this; } @@ -868,6 +902,10 @@ public final class IrClass extends bitField0_ = (bitField0_ & ~0x00002000); } result.superType_ = superType_; + if (((from_bitField0_ & 0x00004000) == 0x00004000)) { + to_bitField0_ |= 0x00002000; + } + result.isExpect_ = isExpect_; result.bitField0_ = to_bitField0_; return result; } @@ -923,6 +961,9 @@ public final class IrClass extends } } + if (other.hasIsExpect()) { + setIsExpect(other.getIsExpect()); + } setUnknownFields( getUnknownFields().concat(other.unknownFields)); return this; @@ -977,6 +1018,10 @@ public final class IrClass extends return false; } + if (!hasIsExpect()) { + + return false; + } if (!getBase().isInitialized()) { return false; @@ -1665,6 +1710,38 @@ public final class IrClass extends return this; } + private boolean isExpect_ ; + /** + * required bool is_expect = 15; + */ + public boolean hasIsExpect() { + return ((bitField0_ & 0x00004000) == 0x00004000); + } + /** + * required bool is_expect = 15; + */ + public boolean getIsExpect() { + return isExpect_; + } + /** + * required bool is_expect = 15; + */ + public Builder setIsExpect(boolean value) { + bitField0_ |= 0x00004000; + isExpect_ = value; + + return this; + } + /** + * required bool is_expect = 15; + */ + public Builder clearIsExpect() { + bitField0_ = (bitField0_ & ~0x00004000); + isExpect_ = false; + + return this; + } + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.backend.common.serialization.proto.IrClass) } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrClassOrBuilder.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrClassOrBuilder.java index 095a7c92f56..3b8911e6f27 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrClassOrBuilder.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrClassOrBuilder.java @@ -144,4 +144,13 @@ public interface IrClassOrBuilder extends * repeated int32 super_type = 14; */ int getSuperType(int index); + + /** + * required bool is_expect = 15; + */ + boolean hasIsExpect(); + /** + * required bool is_expect = 15; + */ + boolean getIsExpect(); } \ No newline at end of file diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunctionBase.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunctionBase.java index f6020e75eb1..50e7f4e38e2 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunctionBase.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunctionBase.java @@ -151,6 +151,11 @@ public final class IrFunctionBase extends returnType_ = input.readInt32(); break; } + case 96: { + bitField0_ |= 0x00000400; + isExpect_ = input.readBool(); + break; + } } } } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { @@ -373,6 +378,21 @@ public final class IrFunctionBase extends return returnType_; } + public static final int IS_EXPECT_FIELD_NUMBER = 12; + private boolean isExpect_; + /** + * required bool is_expect = 12; + */ + public boolean hasIsExpect() { + return ((bitField0_ & 0x00000400) == 0x00000400); + } + /** + * required bool is_expect = 12; + */ + public boolean getIsExpect() { + return isExpect_; + } + private void initFields() { base_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrDeclarationBase.getDefaultInstance(); name_ = 0; @@ -385,6 +405,7 @@ public final class IrFunctionBase extends valueParameter_ = java.util.Collections.emptyList(); body_ = 0; returnType_ = 0; + isExpect_ = false; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -420,6 +441,10 @@ public final class IrFunctionBase extends memoizedIsInitialized = 0; return false; } + if (!hasIsExpect()) { + memoizedIsInitialized = 0; + return false; + } if (!getBase().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -490,6 +515,9 @@ public final class IrFunctionBase extends if (((bitField0_ & 0x00000200) == 0x00000200)) { output.writeInt32(11, returnType_); } + if (((bitField0_ & 0x00000400) == 0x00000400)) { + output.writeBool(12, isExpect_); + } output.writeRawBytes(unknownFields); } @@ -543,6 +571,10 @@ public final class IrFunctionBase extends size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeInt32Size(11, returnType_); } + if (((bitField0_ & 0x00000400) == 0x00000400)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeBoolSize(12, isExpect_); + } size += unknownFields.size(); memoizedSerializedSize = size; return size; @@ -659,6 +691,8 @@ public final class IrFunctionBase extends bitField0_ = (bitField0_ & ~0x00000200); returnType_ = 0; bitField0_ = (bitField0_ & ~0x00000400); + isExpect_ = false; + bitField0_ = (bitField0_ & ~0x00000800); return this; } @@ -727,6 +761,10 @@ public final class IrFunctionBase extends to_bitField0_ |= 0x00000200; } result.returnType_ = returnType_; + if (((from_bitField0_ & 0x00000800) == 0x00000800)) { + to_bitField0_ |= 0x00000400; + } + result.isExpect_ = isExpect_; result.bitField0_ = to_bitField0_; return result; } @@ -773,6 +811,9 @@ public final class IrFunctionBase extends if (other.hasReturnType()) { setReturnType(other.getReturnType()); } + if (other.hasIsExpect()) { + setIsExpect(other.getIsExpect()); + } setUnknownFields( getUnknownFields().concat(other.unknownFields)); return this; @@ -807,6 +848,10 @@ public final class IrFunctionBase extends return false; } + if (!hasIsExpect()) { + + return false; + } if (!getBase().isInitialized()) { return false; @@ -1444,6 +1489,38 @@ public final class IrFunctionBase extends return this; } + private boolean isExpect_ ; + /** + * required bool is_expect = 12; + */ + public boolean hasIsExpect() { + return ((bitField0_ & 0x00000800) == 0x00000800); + } + /** + * required bool is_expect = 12; + */ + public boolean getIsExpect() { + return isExpect_; + } + /** + * required bool is_expect = 12; + */ + public Builder setIsExpect(boolean value) { + bitField0_ |= 0x00000800; + isExpect_ = value; + + return this; + } + /** + * required bool is_expect = 12; + */ + public Builder clearIsExpect() { + bitField0_ = (bitField0_ & ~0x00000800); + isExpect_ = false; + + return this; + } + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.backend.common.serialization.proto.IrFunctionBase) } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunctionBaseOrBuilder.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunctionBaseOrBuilder.java index 98550ad76f8..0d9912cee5d 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunctionBaseOrBuilder.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunctionBaseOrBuilder.java @@ -110,4 +110,13 @@ public interface IrFunctionBaseOrBuilder extends * required int32 return_type = 11; */ int getReturnType(); + + /** + * required bool is_expect = 12; + */ + boolean hasIsExpect(); + /** + * required bool is_expect = 12; + */ + boolean getIsExpect(); } \ No newline at end of file diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrProperty.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrProperty.java index 267ff5ecccc..db2e6a65e96 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrProperty.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrProperty.java @@ -160,6 +160,11 @@ public final class IrProperty extends bitField0_ |= 0x00000800; break; } + case 104: { + bitField0_ |= 0x00001000; + isExpect_ = input.readBool(); + break; + } } } } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { @@ -374,6 +379,21 @@ public final class IrProperty extends return setter_; } + public static final int IS_EXPECT_FIELD_NUMBER = 13; + private boolean isExpect_; + /** + * required bool is_expect = 13; + */ + public boolean hasIsExpect() { + return ((bitField0_ & 0x00001000) == 0x00001000); + } + /** + * required bool is_expect = 13; + */ + public boolean getIsExpect() { + return isExpect_; + } + private void initFields() { base_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrDeclarationBase.getDefaultInstance(); name_ = 0; @@ -387,6 +407,7 @@ public final class IrProperty extends backingField_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrField.getDefaultInstance(); getter_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrFunction.getDefaultInstance(); setter_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrFunction.getDefaultInstance(); + isExpect_ = false; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -430,6 +451,10 @@ public final class IrProperty extends memoizedIsInitialized = 0; return false; } + if (!hasIsExpect()) { + memoizedIsInitialized = 0; + return false; + } if (!getBase().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -499,6 +524,9 @@ public final class IrProperty extends if (((bitField0_ & 0x00000800) == 0x00000800)) { output.writeMessage(12, setter_); } + if (((bitField0_ & 0x00001000) == 0x00001000)) { + output.writeBool(13, isExpect_); + } output.writeRawBytes(unknownFields); } @@ -556,6 +584,10 @@ public final class IrProperty extends size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeMessageSize(12, setter_); } + if (((bitField0_ & 0x00001000) == 0x00001000)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeBoolSize(13, isExpect_); + } size += unknownFields.size(); memoizedSerializedSize = size; return size; @@ -674,6 +706,8 @@ public final class IrProperty extends bitField0_ = (bitField0_ & ~0x00000400); setter_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrFunction.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000800); + isExpect_ = false; + bitField0_ = (bitField0_ & ~0x00001000); return this; } @@ -745,6 +779,10 @@ public final class IrProperty extends to_bitField0_ |= 0x00000800; } result.setter_ = setter_; + if (((from_bitField0_ & 0x00001000) == 0x00001000)) { + to_bitField0_ |= 0x00001000; + } + result.isExpect_ = isExpect_; result.bitField0_ = to_bitField0_; return result; } @@ -787,6 +825,9 @@ public final class IrProperty extends if (other.hasSetter()) { mergeSetter(other.getSetter()); } + if (other.hasIsExpect()) { + setIsExpect(other.getIsExpect()); + } setUnknownFields( getUnknownFields().concat(other.unknownFields)); return this; @@ -829,6 +870,10 @@ public final class IrProperty extends return false; } + if (!hasIsExpect()) { + + return false; + } if (!getBase().isInitialized()) { return false; @@ -1404,6 +1449,38 @@ public final class IrProperty extends return this; } + private boolean isExpect_ ; + /** + * required bool is_expect = 13; + */ + public boolean hasIsExpect() { + return ((bitField0_ & 0x00001000) == 0x00001000); + } + /** + * required bool is_expect = 13; + */ + public boolean getIsExpect() { + return isExpect_; + } + /** + * required bool is_expect = 13; + */ + public Builder setIsExpect(boolean value) { + bitField0_ |= 0x00001000; + isExpect_ = value; + + return this; + } + /** + * required bool is_expect = 13; + */ + public Builder clearIsExpect() { + bitField0_ = (bitField0_ & ~0x00001000); + isExpect_ = false; + + return this; + } + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.backend.common.serialization.proto.IrProperty) } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrPropertyOrBuilder.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrPropertyOrBuilder.java index fdb28f5d6bf..a48bb1ab456 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrPropertyOrBuilder.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrPropertyOrBuilder.java @@ -114,4 +114,13 @@ public interface IrPropertyOrBuilder extends * optional .org.jetbrains.kotlin.backend.common.serialization.proto.IrFunction setter = 12; */ org.jetbrains.kotlin.backend.common.serialization.proto.IrFunction getSetter(); + + /** + * required bool is_expect = 13; + */ + boolean hasIsExpect(); + /** + * required bool is_expect = 13; + */ + boolean getIsExpect(); } \ No newline at end of file