diff --git a/compiler/ir/serialization.common/src/KotlinIr.proto b/compiler/ir/serialization.common/src/KotlinIr.proto index 6fda4f7808e..de7dc16dd0e 100644 --- a/compiler/ir/serialization.common/src/KotlinIr.proto +++ b/compiler/ir/serialization.common/src/KotlinIr.proto @@ -527,6 +527,7 @@ message IrFunction { required bool is_suspend = 4; repeated int32 overridden = 5; //optional UniqId corresponding_property = 7; + required bool is_fake_override = 8; } message IrConstructor { @@ -543,6 +544,7 @@ message IrField { required bool is_external = 6; required bool is_static = 7; required int32 type = 8; + required bool is_fake_override = 9; } message IrLocalDelegatedProperty { @@ -569,6 +571,7 @@ message IrProperty { optional IrFunction getter = 11; optional IrFunction setter = 12; required bool is_expect = 13; + required bool is_fake_override = 14; } message IrVariable { 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 ee82502a680..3c11dc155d2 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 @@ -1058,7 +1058,7 @@ abstract class IrFileDeserializer( isTailrec = proto.isTailrec, isSuspend = proto.isSuspend, isExpect = proto.base.isExpect, - isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE + isFakeOverride = proto.isFakeOverride ) }.apply { proto.overriddenList.mapTo(overriddenSymbols) { deserializeIrSymbol(it) as IrSimpleFunctionSymbol } @@ -1167,7 +1167,7 @@ abstract class IrFileDeserializer( isFinal = proto.isFinal, isExternal = proto.isExternal, isStatic = proto.isStatic, - isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE + isFakeOverride = proto.isFakeOverride ) }.usingParent { if (proto.hasInitializer()) @@ -1220,7 +1220,7 @@ abstract class IrFileDeserializer( isDelegated = proto.isDelegated, isExpect = proto.isExpect, isExternal = proto.isExternal, - isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE + isFakeOverride = proto.isFakeOverride ) }.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 9c35bee9dc6..361736e94d6 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 @@ -1067,6 +1067,7 @@ open class IrFileSerializer( .setModality(serializeModality(declaration.modality)) .setIsTailrec(declaration.isTailrec) .setIsSuspend(declaration.isSuspend) + .setIsFakeOverride(declaration.isFakeOverride) declaration.overriddenSymbols.forEach { proto.addOverridden(serializeIrSymbol(it)) @@ -1110,6 +1111,7 @@ open class IrFileSerializer( .setIsDelegated(property.isDelegated) .setIsExternal(property.isExternal) .setIsExpect(property.isExpect) + .setIsFakeOverride(property.isFakeOverride) val backingField = property.backingField val getter = property.getter @@ -1133,6 +1135,7 @@ open class IrFileSerializer( .setIsExternal(field.isExternal) .setIsStatic(field.isStatic) .setType(serializeIrType(field.type)) + .setIsFakeOverride(field.isFakeOverride) val initializer = field.initializer?.expression if (initializer != null) { proto.initializer = serializeIrExpressionBody(initializer) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrField.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrField.java index aa7397b3322..e3be55d2f0b 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrField.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrField.java @@ -109,6 +109,11 @@ public final class IrField extends type_ = input.readInt32(); break; } + case 72: { + bitField0_ |= 0x00000100; + isFakeOverride_ = input.readBool(); + break; + } } } } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { @@ -263,6 +268,21 @@ public final class IrField extends return type_; } + public static final int IS_FAKE_OVERRIDE_FIELD_NUMBER = 9; + private boolean isFakeOverride_; + /** + * required bool is_fake_override = 9; + */ + public boolean hasIsFakeOverride() { + return ((bitField0_ & 0x00000100) == 0x00000100); + } + /** + * required bool is_fake_override = 9; + */ + public boolean getIsFakeOverride() { + return isFakeOverride_; + } + private void initFields() { base_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrDeclarationBase.getDefaultInstance(); initializer_ = 0; @@ -272,6 +292,7 @@ public final class IrField extends isExternal_ = false; isStatic_ = false; type_ = 0; + isFakeOverride_ = false; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -307,6 +328,10 @@ public final class IrField extends memoizedIsInitialized = 0; return false; } + if (!hasIsFakeOverride()) { + memoizedIsInitialized = 0; + return false; + } if (!getBase().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -346,6 +371,9 @@ public final class IrField extends if (((bitField0_ & 0x00000080) == 0x00000080)) { output.writeInt32(8, type_); } + if (((bitField0_ & 0x00000100) == 0x00000100)) { + output.writeBool(9, isFakeOverride_); + } output.writeRawBytes(unknownFields); } @@ -387,6 +415,10 @@ public final class IrField extends size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeInt32Size(8, type_); } + if (((bitField0_ & 0x00000100) == 0x00000100)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeBoolSize(9, isFakeOverride_); + } size += unknownFields.size(); memoizedSerializedSize = size; return size; @@ -497,6 +529,8 @@ public final class IrField extends bitField0_ = (bitField0_ & ~0x00000040); type_ = 0; bitField0_ = (bitField0_ & ~0x00000080); + isFakeOverride_ = false; + bitField0_ = (bitField0_ & ~0x00000100); return this; } @@ -552,6 +586,10 @@ public final class IrField extends to_bitField0_ |= 0x00000080; } result.type_ = type_; + if (((from_bitField0_ & 0x00000100) == 0x00000100)) { + to_bitField0_ |= 0x00000100; + } + result.isFakeOverride_ = isFakeOverride_; result.bitField0_ = to_bitField0_; return result; } @@ -582,6 +620,9 @@ public final class IrField extends if (other.hasType()) { setType(other.getType()); } + if (other.hasIsFakeOverride()) { + setIsFakeOverride(other.getIsFakeOverride()); + } setUnknownFields( getUnknownFields().concat(other.unknownFields)); return this; @@ -616,6 +657,10 @@ public final class IrField extends return false; } + if (!hasIsFakeOverride()) { + + return false; + } if (!getBase().isInitialized()) { return false; @@ -958,6 +1003,38 @@ public final class IrField extends return this; } + private boolean isFakeOverride_ ; + /** + * required bool is_fake_override = 9; + */ + public boolean hasIsFakeOverride() { + return ((bitField0_ & 0x00000100) == 0x00000100); + } + /** + * required bool is_fake_override = 9; + */ + public boolean getIsFakeOverride() { + return isFakeOverride_; + } + /** + * required bool is_fake_override = 9; + */ + public Builder setIsFakeOverride(boolean value) { + bitField0_ |= 0x00000100; + isFakeOverride_ = value; + + return this; + } + /** + * required bool is_fake_override = 9; + */ + public Builder clearIsFakeOverride() { + bitField0_ = (bitField0_ & ~0x00000100); + isFakeOverride_ = false; + + return this; + } + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.backend.common.serialization.proto.IrField) } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFieldOrBuilder.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFieldOrBuilder.java index 70e5444dcf3..8bef8bdbd4e 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFieldOrBuilder.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFieldOrBuilder.java @@ -78,4 +78,13 @@ public interface IrFieldOrBuilder extends * required int32 type = 8; */ int getType(); + + /** + * required bool is_fake_override = 9; + */ + boolean hasIsFakeOverride(); + /** + * required bool is_fake_override = 9; + */ + boolean getIsFakeOverride(); } \ No newline at end of file diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunction.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunction.java index ec24ce32472..9772312f060 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunction.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunction.java @@ -109,6 +109,11 @@ public final class IrFunction extends input.popLimit(limit); break; } + case 64: { + bitField0_ |= 0x00000010; + isFakeOverride_ = input.readBool(); + break; + } } } } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { @@ -210,10 +215,6 @@ public final class IrFunction extends private java.util.List overridden_; /** * repeated int32 overridden = 5; - * - *
-   *optional UniqId corresponding_property = 7;
-   * 
*/ public java.util.List getOverriddenList() { @@ -221,23 +222,38 @@ public final class IrFunction extends } /** * repeated int32 overridden = 5; - * - *
-   *optional UniqId corresponding_property = 7;
-   * 
*/ public int getOverriddenCount() { return overridden_.size(); } /** * repeated int32 overridden = 5; + */ + public int getOverridden(int index) { + return overridden_.get(index); + } + + public static final int IS_FAKE_OVERRIDE_FIELD_NUMBER = 8; + private boolean isFakeOverride_; + /** + * required bool is_fake_override = 8; * *
    *optional UniqId corresponding_property = 7;
    * 
*/ - public int getOverridden(int index) { - return overridden_.get(index); + public boolean hasIsFakeOverride() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * required bool is_fake_override = 8; + * + *
+   *optional UniqId corresponding_property = 7;
+   * 
+ */ + public boolean getIsFakeOverride() { + return isFakeOverride_; } private void initFields() { @@ -246,6 +262,7 @@ public final class IrFunction extends isTailrec_ = false; isSuspend_ = false; overridden_ = java.util.Collections.emptyList(); + isFakeOverride_ = false; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -269,6 +286,10 @@ public final class IrFunction extends memoizedIsInitialized = 0; return false; } + if (!hasIsFakeOverride()) { + memoizedIsInitialized = 0; + return false; + } if (!getBase().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -295,6 +316,9 @@ public final class IrFunction extends for (int i = 0; i < overridden_.size(); i++) { output.writeInt32(5, overridden_.get(i)); } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + output.writeBool(8, isFakeOverride_); + } output.writeRawBytes(unknownFields); } @@ -329,6 +353,10 @@ public final class IrFunction extends size += dataSize; size += 1 * getOverriddenList().size(); } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeBoolSize(8, isFakeOverride_); + } size += unknownFields.size(); memoizedSerializedSize = size; return size; @@ -433,6 +461,8 @@ public final class IrFunction extends bitField0_ = (bitField0_ & ~0x00000008); overridden_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000010); + isFakeOverride_ = false; + bitField0_ = (bitField0_ & ~0x00000020); return this; } @@ -477,6 +507,10 @@ public final class IrFunction extends bitField0_ = (bitField0_ & ~0x00000010); } result.overridden_ = overridden_; + if (((from_bitField0_ & 0x00000020) == 0x00000020)) { + to_bitField0_ |= 0x00000010; + } + result.isFakeOverride_ = isFakeOverride_; result.bitField0_ = to_bitField0_; return result; } @@ -505,6 +539,9 @@ public final class IrFunction extends } } + if (other.hasIsFakeOverride()) { + setIsFakeOverride(other.getIsFakeOverride()); + } setUnknownFields( getUnknownFields().concat(other.unknownFields)); return this; @@ -527,6 +564,10 @@ public final class IrFunction extends return false; } + if (!hasIsFakeOverride()) { + + return false; + } if (!getBase().isInitialized()) { return false; @@ -721,10 +762,6 @@ public final class IrFunction extends } /** * repeated int32 overridden = 5; - * - *
-     *optional UniqId corresponding_property = 7;
-     * 
*/ public java.util.List getOverriddenList() { @@ -732,30 +769,18 @@ public final class IrFunction extends } /** * repeated int32 overridden = 5; - * - *
-     *optional UniqId corresponding_property = 7;
-     * 
*/ public int getOverriddenCount() { return overridden_.size(); } /** * repeated int32 overridden = 5; - * - *
-     *optional UniqId corresponding_property = 7;
-     * 
*/ public int getOverridden(int index) { return overridden_.get(index); } /** * repeated int32 overridden = 5; - * - *
-     *optional UniqId corresponding_property = 7;
-     * 
*/ public Builder setOverridden( int index, int value) { @@ -766,10 +791,6 @@ public final class IrFunction extends } /** * repeated int32 overridden = 5; - * - *
-     *optional UniqId corresponding_property = 7;
-     * 
*/ public Builder addOverridden(int value) { ensureOverriddenIsMutable(); @@ -779,10 +800,6 @@ public final class IrFunction extends } /** * repeated int32 overridden = 5; - * - *
-     *optional UniqId corresponding_property = 7;
-     * 
*/ public Builder addAllOverridden( java.lang.Iterable values) { @@ -794,14 +811,58 @@ public final class IrFunction extends } /** * repeated int32 overridden = 5; + */ + public Builder clearOverridden() { + overridden_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + + return this; + } + + private boolean isFakeOverride_ ; + /** + * required bool is_fake_override = 8; * *
      *optional UniqId corresponding_property = 7;
      * 
*/ - public Builder clearOverridden() { - overridden_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); + public boolean hasIsFakeOverride() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * required bool is_fake_override = 8; + * + *
+     *optional UniqId corresponding_property = 7;
+     * 
+ */ + public boolean getIsFakeOverride() { + return isFakeOverride_; + } + /** + * required bool is_fake_override = 8; + * + *
+     *optional UniqId corresponding_property = 7;
+     * 
+ */ + public Builder setIsFakeOverride(boolean value) { + bitField0_ |= 0x00000020; + isFakeOverride_ = value; + + return this; + } + /** + * required bool is_fake_override = 8; + * + *
+     *optional UniqId corresponding_property = 7;
+     * 
+ */ + public Builder clearIsFakeOverride() { + bitField0_ = (bitField0_ & ~0x00000020); + isFakeOverride_ = false; return this; } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunctionOrBuilder.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunctionOrBuilder.java index 7b753b4b3ea..7934891191a 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunctionOrBuilder.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrFunctionOrBuilder.java @@ -45,26 +45,31 @@ public interface IrFunctionOrBuilder extends /** * repeated int32 overridden = 5; - * - *
-   *optional UniqId corresponding_property = 7;
-   * 
*/ java.util.List getOverriddenList(); /** * repeated int32 overridden = 5; - * - *
-   *optional UniqId corresponding_property = 7;
-   * 
*/ int getOverriddenCount(); /** * repeated int32 overridden = 5; + */ + int getOverridden(int index); + + /** + * required bool is_fake_override = 8; * *
    *optional UniqId corresponding_property = 7;
    * 
*/ - int getOverridden(int index); + boolean hasIsFakeOverride(); + /** + * required bool is_fake_override = 8; + * + *
+   *optional UniqId corresponding_property = 7;
+   * 
+ */ + boolean getIsFakeOverride(); } \ 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 db2e6a65e96..9cb0adb4cb9 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 @@ -165,6 +165,11 @@ public final class IrProperty extends isExpect_ = input.readBool(); break; } + case 112: { + bitField0_ |= 0x00002000; + isFakeOverride_ = input.readBool(); + break; + } } } } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { @@ -394,6 +399,21 @@ public final class IrProperty extends return isExpect_; } + public static final int IS_FAKE_OVERRIDE_FIELD_NUMBER = 14; + private boolean isFakeOverride_; + /** + * required bool is_fake_override = 14; + */ + public boolean hasIsFakeOverride() { + return ((bitField0_ & 0x00002000) == 0x00002000); + } + /** + * required bool is_fake_override = 14; + */ + public boolean getIsFakeOverride() { + return isFakeOverride_; + } + private void initFields() { base_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrDeclarationBase.getDefaultInstance(); name_ = 0; @@ -408,6 +428,7 @@ public final class IrProperty extends getter_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrFunction.getDefaultInstance(); setter_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrFunction.getDefaultInstance(); isExpect_ = false; + isFakeOverride_ = false; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -455,6 +476,10 @@ public final class IrProperty extends memoizedIsInitialized = 0; return false; } + if (!hasIsFakeOverride()) { + memoizedIsInitialized = 0; + return false; + } if (!getBase().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -527,6 +552,9 @@ public final class IrProperty extends if (((bitField0_ & 0x00001000) == 0x00001000)) { output.writeBool(13, isExpect_); } + if (((bitField0_ & 0x00002000) == 0x00002000)) { + output.writeBool(14, isFakeOverride_); + } output.writeRawBytes(unknownFields); } @@ -588,6 +616,10 @@ public final class IrProperty extends size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeBoolSize(13, isExpect_); } + if (((bitField0_ & 0x00002000) == 0x00002000)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeBoolSize(14, isFakeOverride_); + } size += unknownFields.size(); memoizedSerializedSize = size; return size; @@ -708,6 +740,8 @@ public final class IrProperty extends bitField0_ = (bitField0_ & ~0x00000800); isExpect_ = false; bitField0_ = (bitField0_ & ~0x00001000); + isFakeOverride_ = false; + bitField0_ = (bitField0_ & ~0x00002000); return this; } @@ -783,6 +817,10 @@ public final class IrProperty extends to_bitField0_ |= 0x00001000; } result.isExpect_ = isExpect_; + if (((from_bitField0_ & 0x00002000) == 0x00002000)) { + to_bitField0_ |= 0x00002000; + } + result.isFakeOverride_ = isFakeOverride_; result.bitField0_ = to_bitField0_; return result; } @@ -828,6 +866,9 @@ public final class IrProperty extends if (other.hasIsExpect()) { setIsExpect(other.getIsExpect()); } + if (other.hasIsFakeOverride()) { + setIsFakeOverride(other.getIsFakeOverride()); + } setUnknownFields( getUnknownFields().concat(other.unknownFields)); return this; @@ -874,6 +915,10 @@ public final class IrProperty extends return false; } + if (!hasIsFakeOverride()) { + + return false; + } if (!getBase().isInitialized()) { return false; @@ -1481,6 +1526,38 @@ public final class IrProperty extends return this; } + private boolean isFakeOverride_ ; + /** + * required bool is_fake_override = 14; + */ + public boolean hasIsFakeOverride() { + return ((bitField0_ & 0x00002000) == 0x00002000); + } + /** + * required bool is_fake_override = 14; + */ + public boolean getIsFakeOverride() { + return isFakeOverride_; + } + /** + * required bool is_fake_override = 14; + */ + public Builder setIsFakeOverride(boolean value) { + bitField0_ |= 0x00002000; + isFakeOverride_ = value; + + return this; + } + /** + * required bool is_fake_override = 14; + */ + public Builder clearIsFakeOverride() { + bitField0_ = (bitField0_ & ~0x00002000); + isFakeOverride_ = 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 a48bb1ab456..7d3ba77c775 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 @@ -123,4 +123,13 @@ public interface IrPropertyOrBuilder extends * required bool is_expect = 13; */ boolean getIsExpect(); + + /** + * required bool is_fake_override = 14; + */ + boolean hasIsFakeOverride(); + /** + * required bool is_fake_override = 14; + */ + boolean getIsFakeOverride(); } \ No newline at end of file