diff --git a/compiler/ir/serialization.common/src/KotlinIr.proto b/compiler/ir/serialization.common/src/KotlinIr.proto
index 8e9cf88bb04..af337d5da2f 100644
--- a/compiler/ir/serialization.common/src/KotlinIr.proto
+++ b/compiler/ir/serialization.common/src/KotlinIr.proto
@@ -258,6 +258,7 @@ message IrLocalDelegatedPropertyReference {
optional IrSymbol getter = 2;
optional IrSymbol setter = 3;
required IrSymbol symbol = 4;
+ required IrStatementOrigin origin = 5;
}
message IrPropertyReference {
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleDeserializer.kt
index ec71073a5c9..733c83f1c77 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleDeserializer.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleDeserializer.kt
@@ -427,12 +427,15 @@ abstract class IrModuleDeserializer(
val getter = deserializeIrSymbol(proto.getter) as IrSimpleFunctionSymbol
val setter = if (proto.hasSetter()) deserializeIrSymbol(proto.setter) as IrSimpleFunctionSymbol else null
val symbol = deserializeIrSymbol(proto.symbol) as IrLocalDelegatedPropertySymbol
+ val origin = deserializeIrStatementOrigin(proto.origin)
+
return IrLocalDelegatedPropertyReferenceImpl(
start, end, type,
symbol,
delegate,
getter,
- setter
+ setter,
+ origin
)
}
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt
index 4cb2697558b..90660e5d435 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt
@@ -430,6 +430,7 @@ open class IrModuleSerializer(
.setDelegate(serializeIrSymbol(callable.delegate))
.setGetter(serializeIrSymbol(callable.getter))
.setSymbol(serializeIrSymbol(callable.symbol))
+ .setOrigin(serializeIrStatementOrigin(callable.origin))
callable.setter?.let { proto.setSetter(serializeIrSymbol(it)) }
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIr.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIr.java
index ed2d226753d..b8bbaa64f1d 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIr.java
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIr.java
@@ -19677,6 +19677,10 @@ public final class KotlinIr {
memoizedIsInitialized = 0;
return false;
}
+ if (!getOrigin().isInitialized()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
memoizedIsInitialized = 1;
return true;
}
@@ -19894,6 +19898,10 @@ public final class KotlinIr {
return false;
}
+ if (!getOrigin().isInitialized()) {
+
+ return false;
+ }
return true;
}
@@ -20146,6 +20154,15 @@ public final class KotlinIr {
* required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 4;
*/
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol getSymbol();
+
+ /**
+ * required .org.jetbrains.kotlin.backend.common.serialization.IrStatementOrigin origin = 5;
+ */
+ boolean hasOrigin();
+ /**
+ * required .org.jetbrains.kotlin.backend.common.serialization.IrStatementOrigin origin = 5;
+ */
+ org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin getOrigin();
}
/**
* Protobuf type {@code org.jetbrains.kotlin.backend.common.serialization.IrLocalDelegatedPropertyReference}
@@ -20249,6 +20266,19 @@ public final class KotlinIr {
bitField0_ |= 0x00000008;
break;
}
+ case 42: {
+ org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin.Builder subBuilder = null;
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ subBuilder = origin_.toBuilder();
+ }
+ origin_ = input.readMessage(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin.PARSER, extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(origin_);
+ origin_ = subBuilder.buildPartial();
+ }
+ bitField0_ |= 0x00000010;
+ break;
+ }
}
}
} catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
@@ -20343,11 +20373,27 @@ public final class KotlinIr {
return symbol_;
}
+ public static final int ORIGIN_FIELD_NUMBER = 5;
+ private org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin origin_;
+ /**
+ * required .org.jetbrains.kotlin.backend.common.serialization.IrStatementOrigin origin = 5;
+ */
+ public boolean hasOrigin() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * required .org.jetbrains.kotlin.backend.common.serialization.IrStatementOrigin origin = 5;
+ */
+ public org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin getOrigin() {
+ return origin_;
+ }
+
private void initFields() {
delegate_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
getter_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
setter_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
symbol_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
+ origin_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin.getDefaultInstance();
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
@@ -20363,6 +20409,10 @@ public final class KotlinIr {
memoizedIsInitialized = 0;
return false;
}
+ if (!hasOrigin()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
if (!getDelegate().isInitialized()) {
memoizedIsInitialized = 0;
return false;
@@ -20402,6 +20452,9 @@ public final class KotlinIr {
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeMessage(4, symbol_);
}
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ output.writeMessage(5, origin_);
+ }
output.writeRawBytes(unknownFields);
}
@@ -20427,6 +20480,10 @@ public final class KotlinIr {
size += org.jetbrains.kotlin.protobuf.CodedOutputStream
.computeMessageSize(4, symbol_);
}
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ size += org.jetbrains.kotlin.protobuf.CodedOutputStream
+ .computeMessageSize(5, origin_);
+ }
size += unknownFields.size();
memoizedSerializedSize = size;
return size;
@@ -20529,6 +20586,8 @@ public final class KotlinIr {
bitField0_ = (bitField0_ & ~0x00000004);
symbol_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
bitField0_ = (bitField0_ & ~0x00000008);
+ origin_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin.getDefaultInstance();
+ bitField0_ = (bitField0_ & ~0x00000010);
return this;
}
@@ -20568,6 +20627,10 @@ public final class KotlinIr {
to_bitField0_ |= 0x00000008;
}
result.symbol_ = symbol_;
+ if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+ to_bitField0_ |= 0x00000010;
+ }
+ result.origin_ = origin_;
result.bitField0_ = to_bitField0_;
return result;
}
@@ -20586,6 +20649,9 @@ public final class KotlinIr {
if (other.hasSymbol()) {
mergeSymbol(other.getSymbol());
}
+ if (other.hasOrigin()) {
+ mergeOrigin(other.getOrigin());
+ }
setUnknownFields(
getUnknownFields().concat(other.unknownFields));
return this;
@@ -20600,6 +20666,10 @@ public final class KotlinIr {
return false;
}
+ if (!hasOrigin()) {
+
+ return false;
+ }
if (!getDelegate().isInitialized()) {
return false;
@@ -20882,6 +20952,66 @@ public final class KotlinIr {
return this;
}
+ private org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin origin_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin.getDefaultInstance();
+ /**
+ * required .org.jetbrains.kotlin.backend.common.serialization.IrStatementOrigin origin = 5;
+ */
+ public boolean hasOrigin() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * required .org.jetbrains.kotlin.backend.common.serialization.IrStatementOrigin origin = 5;
+ */
+ public org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin getOrigin() {
+ return origin_;
+ }
+ /**
+ * required .org.jetbrains.kotlin.backend.common.serialization.IrStatementOrigin origin = 5;
+ */
+ public Builder setOrigin(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ origin_ = value;
+
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+ /**
+ * required .org.jetbrains.kotlin.backend.common.serialization.IrStatementOrigin origin = 5;
+ */
+ public Builder setOrigin(
+ org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin.Builder builderForValue) {
+ origin_ = builderForValue.build();
+
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+ /**
+ * required .org.jetbrains.kotlin.backend.common.serialization.IrStatementOrigin origin = 5;
+ */
+ public Builder mergeOrigin(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin value) {
+ if (((bitField0_ & 0x00000010) == 0x00000010) &&
+ origin_ != org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin.getDefaultInstance()) {
+ origin_ =
+ org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin.newBuilder(origin_).mergeFrom(value).buildPartial();
+ } else {
+ origin_ = value;
+ }
+
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+ /**
+ * required .org.jetbrains.kotlin.backend.common.serialization.IrStatementOrigin origin = 5;
+ */
+ public Builder clearOrigin() {
+ origin_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin.getDefaultInstance();
+
+ bitField0_ = (bitField0_ & ~0x00000010);
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.backend.common.serialization.IrLocalDelegatedPropertyReference)
}