From 55e9e8afbfb7c88e3648a9a532942f229c59d8f1 Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Wed, 27 Nov 2019 12:06:52 +0300 Subject: [PATCH] IR ser/deser: IrSimpleFunction.isOperator --- .../serialization.common/src/KotlinIr.proto | 1 + .../serialization/IrFileDeserializer.kt | 3 +- .../common/serialization/IrFileSerializer.kt | 1 + .../serialization/proto/IrFunction.java | 77 +++++++++++++++++++ .../proto/IrFunctionOrBuilder.java | 9 +++ 5 files changed, 90 insertions(+), 1 deletion(-) diff --git a/compiler/ir/serialization.common/src/KotlinIr.proto b/compiler/ir/serialization.common/src/KotlinIr.proto index de7dc16dd0e..7f73ed2a390 100644 --- a/compiler/ir/serialization.common/src/KotlinIr.proto +++ b/compiler/ir/serialization.common/src/KotlinIr.proto @@ -528,6 +528,7 @@ message IrFunction { repeated int32 overridden = 5; //optional UniqId corresponding_property = 7; required bool is_fake_override = 8; + required bool is_operator = 9; } message IrConstructor { 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 5847438aea3..3810546e4a7 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 @@ -1053,7 +1053,8 @@ abstract class IrFileDeserializer( isTailrec = proto.isTailrec, isSuspend = proto.isSuspend, isExpect = proto.base.isExpect, - isFakeOverride = proto.isFakeOverride + isFakeOverride = proto.isFakeOverride, + isOperator = proto.isOperator ) }.apply { proto.overriddenList.mapTo(overriddenSymbols) { deserializeIrSymbol(it) as IrSimpleFunctionSymbol } 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 f898e546782..c761afa4589 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 @@ -1070,6 +1070,7 @@ open class IrFileSerializer( .setIsTailrec(declaration.isTailrec) .setIsSuspend(declaration.isSuspend) .setIsFakeOverride(declaration.isFakeOverride) + .setIsOperator(declaration.isOperator) declaration.overriddenSymbols.forEach { proto.addOverridden(serializeIrSymbol(it)) 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 9772312f060..1d9d799e390 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 @@ -114,6 +114,11 @@ public final class IrFunction extends isFakeOverride_ = input.readBool(); break; } + case 72: { + bitField0_ |= 0x00000020; + isOperator_ = input.readBool(); + break; + } } } } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { @@ -256,6 +261,21 @@ public final class IrFunction extends return isFakeOverride_; } + public static final int IS_OPERATOR_FIELD_NUMBER = 9; + private boolean isOperator_; + /** + * required bool is_operator = 9; + */ + public boolean hasIsOperator() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * required bool is_operator = 9; + */ + public boolean getIsOperator() { + return isOperator_; + } + private void initFields() { base_ = org.jetbrains.kotlin.backend.common.serialization.proto.IrFunctionBase.getDefaultInstance(); modality_ = org.jetbrains.kotlin.backend.common.serialization.proto.ModalityKind.FINAL_MODALITY; @@ -263,6 +283,7 @@ public final class IrFunction extends isSuspend_ = false; overridden_ = java.util.Collections.emptyList(); isFakeOverride_ = false; + isOperator_ = false; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -290,6 +311,10 @@ public final class IrFunction extends memoizedIsInitialized = 0; return false; } + if (!hasIsOperator()) { + memoizedIsInitialized = 0; + return false; + } if (!getBase().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -319,6 +344,9 @@ public final class IrFunction extends if (((bitField0_ & 0x00000010) == 0x00000010)) { output.writeBool(8, isFakeOverride_); } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + output.writeBool(9, isOperator_); + } output.writeRawBytes(unknownFields); } @@ -357,6 +385,10 @@ public final class IrFunction extends size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeBoolSize(8, isFakeOverride_); } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeBoolSize(9, isOperator_); + } size += unknownFields.size(); memoizedSerializedSize = size; return size; @@ -463,6 +495,8 @@ public final class IrFunction extends bitField0_ = (bitField0_ & ~0x00000010); isFakeOverride_ = false; bitField0_ = (bitField0_ & ~0x00000020); + isOperator_ = false; + bitField0_ = (bitField0_ & ~0x00000040); return this; } @@ -511,6 +545,10 @@ public final class IrFunction extends to_bitField0_ |= 0x00000010; } result.isFakeOverride_ = isFakeOverride_; + if (((from_bitField0_ & 0x00000040) == 0x00000040)) { + to_bitField0_ |= 0x00000020; + } + result.isOperator_ = isOperator_; result.bitField0_ = to_bitField0_; return result; } @@ -542,6 +580,9 @@ public final class IrFunction extends if (other.hasIsFakeOverride()) { setIsFakeOverride(other.getIsFakeOverride()); } + if (other.hasIsOperator()) { + setIsOperator(other.getIsOperator()); + } setUnknownFields( getUnknownFields().concat(other.unknownFields)); return this; @@ -568,6 +609,10 @@ public final class IrFunction extends return false; } + if (!hasIsOperator()) { + + return false; + } if (!getBase().isInitialized()) { return false; @@ -867,6 +912,38 @@ public final class IrFunction extends return this; } + private boolean isOperator_ ; + /** + * required bool is_operator = 9; + */ + public boolean hasIsOperator() { + return ((bitField0_ & 0x00000040) == 0x00000040); + } + /** + * required bool is_operator = 9; + */ + public boolean getIsOperator() { + return isOperator_; + } + /** + * required bool is_operator = 9; + */ + public Builder setIsOperator(boolean value) { + bitField0_ |= 0x00000040; + isOperator_ = value; + + return this; + } + /** + * required bool is_operator = 9; + */ + public Builder clearIsOperator() { + bitField0_ = (bitField0_ & ~0x00000040); + isOperator_ = false; + + return this; + } + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.backend.common.serialization.proto.IrFunction) } 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 7934891191a..74d5232535a 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 @@ -72,4 +72,13 @@ public interface IrFunctionOrBuilder extends * */ boolean getIsFakeOverride(); + + /** + * required bool is_operator = 9; + */ + boolean hasIsOperator(); + /** + * required bool is_operator = 9; + */ + boolean getIsOperator(); } \ No newline at end of file