diff --git a/compiler/ir/serialization.common/src/KotlinIr.proto b/compiler/ir/serialization.common/src/KotlinIr.proto index e4156c88398..b38849a7aa5 100644 --- a/compiler/ir/serialization.common/src/KotlinIr.proto +++ b/compiler/ir/serialization.common/src/KotlinIr.proto @@ -125,6 +125,7 @@ message IrConstructorCall { required int64 symbol = 1; required int32 constructor_type_arguments_count = 2; required MemberAccessCommon member_access = 3; + optional int32 origin_name = 4; } message IrFunctionReference { diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrBodyDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrBodyDeserializer.kt index 1842e3c43cc..ef2c02df6f7 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrBodyDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrBodyDeserializer.kt @@ -245,7 +245,8 @@ class IrBodyDeserializer( start, end, type, symbol, typeArgumentsCount = proto.memberAccess.typeArgumentCount, constructorTypeArgumentsCount = proto.constructorTypeArgumentsCount, - valueArgumentsCount = proto.memberAccess.valueArgumentCount + valueArgumentsCount = proto.memberAccess.valueArgumentCount, + origin = if (proto.hasOriginName()) deserializeIrStatementOrigin(proto.originName) else null ).also { deserializeMemberAccessCommon(it, proto.memberAccess) } 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 15cc2f1750a..780d051a158 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 @@ -526,6 +526,9 @@ open class IrFileSerializer( symbol = serializeIrSymbol(call.symbol) constructorTypeArgumentsCount = call.constructorTypeArgumentsCount memberAccess = serializeMemberAccessCommon(call) + call.origin?.let { + originName = serializeIrStatementOrigin(it) + } }.build() private fun serializeFunctionExpression(functionExpression: IrFunctionExpression): ProtoFunctionExpression = diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrConstructorCall.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrConstructorCall.java index 66bf2d4f52d..350172c6ad3 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrConstructorCall.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrConstructorCall.java @@ -76,6 +76,11 @@ public final class IrConstructorCall extends bitField0_ |= 0x00000004; break; } + case 32: { + bitField0_ |= 0x00000008; + originName_ = input.readInt32(); + break; + } } } } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { @@ -155,10 +160,26 @@ public final class IrConstructorCall extends return memberAccess_; } + public static final int ORIGIN_NAME_FIELD_NUMBER = 4; + private int originName_; + /** + * optional int32 origin_name = 4; + */ + public boolean hasOriginName() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional int32 origin_name = 4; + */ + public int getOriginName() { + return originName_; + } + private void initFields() { symbol_ = 0L; constructorTypeArgumentsCount_ = 0; memberAccess_ = org.jetbrains.kotlin.backend.common.serialization.proto.MemberAccessCommon.getDefaultInstance(); + originName_ = 0; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -198,6 +219,9 @@ public final class IrConstructorCall extends if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeMessage(3, memberAccess_); } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeInt32(4, originName_); + } output.writeRawBytes(unknownFields); } @@ -219,6 +243,10 @@ public final class IrConstructorCall extends size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeMessageSize(3, memberAccess_); } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeInt32Size(4, originName_); + } size += unknownFields.size(); memoizedSerializedSize = size; return size; @@ -319,6 +347,8 @@ public final class IrConstructorCall extends bitField0_ = (bitField0_ & ~0x00000002); memberAccess_ = org.jetbrains.kotlin.backend.common.serialization.proto.MemberAccessCommon.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000004); + originName_ = 0; + bitField0_ = (bitField0_ & ~0x00000008); return this; } @@ -354,6 +384,10 @@ public final class IrConstructorCall extends to_bitField0_ |= 0x00000004; } result.memberAccess_ = memberAccess_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + result.originName_ = originName_; result.bitField0_ = to_bitField0_; return result; } @@ -369,6 +403,9 @@ public final class IrConstructorCall extends if (other.hasMemberAccess()) { mergeMemberAccess(other.getMemberAccess()); } + if (other.hasOriginName()) { + setOriginName(other.getOriginName()); + } setUnknownFields( getUnknownFields().concat(other.unknownFields)); return this; @@ -537,6 +574,38 @@ public final class IrConstructorCall extends return this; } + private int originName_ ; + /** + * optional int32 origin_name = 4; + */ + public boolean hasOriginName() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional int32 origin_name = 4; + */ + public int getOriginName() { + return originName_; + } + /** + * optional int32 origin_name = 4; + */ + public Builder setOriginName(int value) { + bitField0_ |= 0x00000008; + originName_ = value; + + return this; + } + /** + * optional int32 origin_name = 4; + */ + public Builder clearOriginName() { + bitField0_ = (bitField0_ & ~0x00000008); + originName_ = 0; + + return this; + } + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.backend.common.serialization.proto.IrConstructorCall) } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrConstructorCallOrBuilder.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrConstructorCallOrBuilder.java index 0829c480029..789c89dba62 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrConstructorCallOrBuilder.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/proto/IrConstructorCallOrBuilder.java @@ -33,4 +33,13 @@ public interface IrConstructorCallOrBuilder extends * required .org.jetbrains.kotlin.backend.common.serialization.proto.MemberAccessCommon member_access = 3; */ org.jetbrains.kotlin.backend.common.serialization.proto.MemberAccessCommon getMemberAccess(); + + /** + * optional int32 origin_name = 4; + */ + boolean hasOriginName(); + /** + * optional int32 origin_name = 4; + */ + int getOriginName(); } \ No newline at end of file