Move property serialization to symbols
Make sure private field's wrapped descriptor is bound
This commit is contained in:
committed by
alexander-gorshenev
parent
2c026114ae
commit
bd78e7e0aa
@@ -95,7 +95,7 @@ class DeclarationStubGenerator(
|
||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor.original,
|
||||
isDelegated = @Suppress("DEPRECATION") descriptor.isDelegated
|
||||
) {
|
||||
deserializer?.findDeserializedDeclaration(descriptor)
|
||||
deserializer?.findDeserializedDeclaration(referenced) as? IrProperty
|
||||
?: IrLazyProperty(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, it, this, typeTranslator, bindingContext)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,15 +29,6 @@ import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType
|
||||
|
||||
interface IrDeserializer {
|
||||
fun findDeserializedDeclaration(symbol: IrSymbol): IrDeclaration?
|
||||
// We need a separate method for properties, because properties
|
||||
// are treated differently in the SymbolTable.
|
||||
// See SymbolTable.propertyTable and SymbolTable.referenceProperty.
|
||||
// There was an attempt to solve this asymmetry in the symbol table
|
||||
// using property symbols, but it was not successful.
|
||||
// For now we have to live with a special treatment of properties.
|
||||
// TODO: eventually get rid of this asymmetry.
|
||||
fun findDeserializedDeclaration(propertyDescriptor: PropertyDescriptor): IrProperty?
|
||||
|
||||
fun declareForwardDeclarations()
|
||||
}
|
||||
|
||||
|
||||
@@ -127,6 +127,7 @@ enum IrSymbolKind {
|
||||
ANONYMOUS_INIT_SYMBOL = 10;
|
||||
STANDALONE_FIELD_SYMBOL = 11; // For fields without properties. WrappedFieldDescriptor, rather than WrappedPropertyDescriptor.
|
||||
RECEIVER_PARAMETER_SYMBOL = 12; // ReceiverParameterDescriptor rather than ValueParameterDescriptor.
|
||||
PROPERTY_SYMBOL = 13;
|
||||
}
|
||||
|
||||
message IrSymbolData {
|
||||
@@ -266,7 +267,7 @@ message IrPropertyReference {
|
||||
optional IrSymbol setter = 3;
|
||||
optional IrStatementOrigin origin = 4;
|
||||
required MemberAccessCommon member_access = 5;
|
||||
optional DescriptorReference descriptor_reference = 6; // IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
required IrSymbol symbol = 6;
|
||||
}
|
||||
|
||||
message IrComposite {
|
||||
@@ -584,7 +585,7 @@ message IrLocalDelegatedProperty {
|
||||
}
|
||||
|
||||
message IrProperty {
|
||||
optional DescriptorReference descriptor_reference = 1; // IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
required IrSymbol symbol = 1;
|
||||
required String name = 2;
|
||||
required Visibility visibility = 3;
|
||||
required ModalityKind modality = 4;
|
||||
|
||||
+46
-45
@@ -439,28 +439,21 @@ abstract class IrModuleDeserializer(
|
||||
)
|
||||
}
|
||||
|
||||
private val getterToPropertyDescriptorMap = mutableMapOf<IrSimpleFunctionSymbol, WrappedPropertyDescriptor>()
|
||||
|
||||
private fun deserializePropertyReference(
|
||||
proto: KotlinIr.IrPropertyReference,
|
||||
start: Int, end: Int, type: IrType
|
||||
): IrPropertyReference {
|
||||
|
||||
val symbol = deserializeIrSymbol(proto.symbol) as IrPropertySymbol
|
||||
|
||||
val field = if (proto.hasField()) deserializeIrSymbol(proto.field) as IrFieldSymbol else null
|
||||
val getter = if (proto.hasGetter()) deserializeIrSymbol(proto.getter) as IrSimpleFunctionSymbol else null
|
||||
val setter = if (proto.hasSetter()) deserializeIrSymbol(proto.setter) as IrSimpleFunctionSymbol else null
|
||||
val origin = if (proto.hasOrigin()) deserializeIrStatementOrigin(proto.origin) else null
|
||||
|
||||
val descriptor =
|
||||
if (proto.hasDescriptorReference())
|
||||
deserializeDescriptorReference(proto.descriptorReference) as PropertyDescriptor
|
||||
else
|
||||
field?.descriptor as? WrappedPropertyDescriptor // If field's descriptor coincides with property's.
|
||||
?: getterToPropertyDescriptorMap.getOrPut(getter!!) { WrappedPropertyDescriptor() }
|
||||
|
||||
val callable = IrPropertyReferenceImpl(
|
||||
start, end, type,
|
||||
descriptor,
|
||||
symbol,
|
||||
proto.memberAccess.typeArguments.typeArgumentCount,
|
||||
field,
|
||||
getter,
|
||||
@@ -1178,44 +1171,56 @@ abstract class IrModuleDeserializer(
|
||||
origin: IrDeclarationOrigin
|
||||
): IrProperty {
|
||||
|
||||
val symbol = deserializeIrSymbol(proto.symbol) as IrPropertySymbol
|
||||
|
||||
val backingField =
|
||||
if (proto.hasBackingField()) deserializeIrField(proto.backingField, start, end, origin) else null
|
||||
val getter = if (proto.hasGetter()) deserializeIrFunction(proto.getter, start, end, origin) else null
|
||||
val setter = if (proto.hasSetter()) deserializeIrFunction(proto.setter, start, end, origin) else null
|
||||
|
||||
backingField?.let { (it.descriptor as? WrappedFieldDescriptor)?.bind(it) }
|
||||
val property =
|
||||
symbolTable.declareProperty(
|
||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, irrelevantOrigin,
|
||||
symbol.descriptor, proto.isDelegated
|
||||
) {
|
||||
IrPropertyImpl(
|
||||
start, end, origin,
|
||||
symbol,
|
||||
deserializeName(proto.name),
|
||||
deserializeVisibility(proto.visibility),
|
||||
deserializeModality(proto.modality),
|
||||
proto.isVar,
|
||||
proto.isConst,
|
||||
proto.isLateinit,
|
||||
proto.isDelegated,
|
||||
proto.isExternal
|
||||
)
|
||||
}
|
||||
|
||||
backingField?.let {
|
||||
val descriptor = it.descriptor
|
||||
when (descriptor) {
|
||||
is WrappedFieldDescriptor ->
|
||||
descriptor.bind(it)
|
||||
is WrappedPropertyDescriptor ->
|
||||
// A property symbol and its field symbol share the same descriptor.
|
||||
// Unfortunately symbol deserialization doesn't know anything about that.
|
||||
// So we can end up with two wrapped property descriptors for property and its field.
|
||||
// In that case we need to bind the field's one here.
|
||||
if (symbol.descriptor != descriptor) descriptor.bind(property)
|
||||
}
|
||||
|
||||
}
|
||||
getter?.let { (it.descriptor as? WrappedSimpleFunctionDescriptor)?.bind(it) }
|
||||
setter?.let { (it.descriptor as? WrappedSimpleFunctionDescriptor)?.bind(it) }
|
||||
|
||||
val descriptor =
|
||||
if (proto.hasDescriptorReference())
|
||||
deserializeDescriptorReference(proto.descriptorReference) as PropertyDescriptor
|
||||
else
|
||||
backingField?.descriptor as? WrappedPropertyDescriptor // If field's descriptor coincides with property's.
|
||||
?: getterToPropertyDescriptorMap.getOrPut(getter!!.symbol) { WrappedPropertyDescriptor() }
|
||||
|
||||
val property = IrPropertyImpl(
|
||||
start, end, origin,
|
||||
descriptor,
|
||||
deserializeName(proto.name),
|
||||
deserializeVisibility(proto.visibility),
|
||||
deserializeModality(proto.modality),
|
||||
proto.isVar,
|
||||
proto.isConst,
|
||||
proto.isLateinit,
|
||||
proto.isDelegated,
|
||||
proto.isExternal
|
||||
)
|
||||
|
||||
symbolTable.referenceProperty(descriptor, { property })
|
||||
|
||||
property.backingField = backingField
|
||||
property.getter = getter
|
||||
property.setter = setter
|
||||
|
||||
backingField?.let { it.correspondingProperty = property }
|
||||
getter?.let { it.correspondingProperty = property }
|
||||
setter?.let { it.correspondingProperty = property }
|
||||
backingField?.let { it.correspondingPropertySymbol = symbol }
|
||||
getter?.let { it.correspondingPropertySymbol = symbol }
|
||||
setter?.let { it.correspondingPropertySymbol = symbol }
|
||||
|
||||
return property
|
||||
}
|
||||
@@ -1231,18 +1236,15 @@ abstract class IrModuleDeserializer(
|
||||
|
||||
private val allKnownDeclarationOrigins =
|
||||
IrDeclarationOrigin::class.nestedClasses.toList() + DeclarationFactory.FIELD_FOR_OUTER_THIS::class
|
||||
<<<<<<< HEAD
|
||||
val originIndex = allKnownOrigins.map { it.objectInstance as IrDeclarationOriginImpl }.associateBy { it.name }
|
||||
|
||||
fun deserializeIrDeclarationOrigin(proto: KotlinIr.IrDeclarationOrigin): IrDeclarationOriginImpl {
|
||||
val originName = deserializeString(proto.custom)
|
||||
return originIndex[originName] ?: object : IrDeclarationOriginImpl(originName) {}
|
||||
=======
|
||||
val declarationOriginIndex =
|
||||
allKnownDeclarationOrigins.map { it.objectInstance as IrDeclarationOriginImpl }.associateBy { it.name }
|
||||
|
||||
fun deserializeIrDeclarationOrigin(proto: KotlinIr.IrDeclarationOrigin) =
|
||||
declarationOriginIndex[deserializeString(proto.custom)]!!
|
||||
|
||||
fun deserializeIrDeclarationOrigin(proto: KotlinIr.IrDeclarationOrigin): IrDeclarationOriginImpl {
|
||||
val originName = deserializeString(proto.custom)
|
||||
return declarationOriginIndex[originName] ?: object : IrDeclarationOriginImpl(originName) {}
|
||||
}
|
||||
|
||||
private val allKnownStatementOrigins =
|
||||
IrStatementOrigin::class.nestedClasses.toList()
|
||||
@@ -1259,7 +1261,6 @@ abstract class IrModuleDeserializer(
|
||||
else -> statementOriginIndex[it] ?: error("Unexpected statement origin: $it")
|
||||
}
|
||||
}
|
||||
>>>>>>> Introduced proper IrStatementOrigin serialization.
|
||||
}
|
||||
|
||||
open fun deserializeDeclaration(proto: KotlinIr.IrDeclaration, parent: IrDeclarationParent?): IrDeclaration {
|
||||
|
||||
+4
-4
@@ -120,6 +120,8 @@ open class IrModuleSerializer(
|
||||
KotlinIr.IrSymbolKind.STANDALONE_FIELD_SYMBOL
|
||||
else
|
||||
KotlinIr.IrSymbolKind.FIELD_SYMBOL
|
||||
is IrPropertySymbol ->
|
||||
KotlinIr.IrSymbolKind.PROPERTY_SYMBOL
|
||||
else ->
|
||||
TODO("Unexpected symbol kind: $symbol")
|
||||
}
|
||||
@@ -434,13 +436,12 @@ open class IrModuleSerializer(
|
||||
private fun serializePropertyReference(callable: IrPropertyReference): KotlinIr.IrPropertyReference {
|
||||
val proto = KotlinIr.IrPropertyReference.newBuilder()
|
||||
.setMemberAccess(serializeMemberAccessCommon(callable))
|
||||
.setSymbol(serializeIrSymbol(callable.symbol))
|
||||
callable.origin?.let { proto.origin = serializeIrStatementOrigin(it) }
|
||||
callable.field?.let { proto.field = serializeIrSymbol(it) }
|
||||
callable.getter?.let { proto.getter = serializeIrSymbol(it) }
|
||||
callable.setter?.let { proto.setter = serializeIrSymbol(it) }
|
||||
|
||||
val property = callable.getter!!.owner.correspondingProperty!!
|
||||
descriptorReferenceSerializer.serializeDescriptorReference(property)?.let { proto.setDescriptorReference(it) }
|
||||
return proto.build()
|
||||
}
|
||||
|
||||
@@ -998,8 +999,7 @@ open class IrModuleSerializer(
|
||||
.setIsLateinit(property.isLateinit)
|
||||
.setIsDelegated(property.isDelegated)
|
||||
.setIsExternal(property.isExternal)
|
||||
|
||||
descriptorReferenceSerializer.serializeDescriptorReference(property)?.let { proto.setDescriptorReference(it) }
|
||||
.setSymbol(serializeIrSymbol(property.symbol))
|
||||
|
||||
val backingField = property.backingField
|
||||
val getter = property.getter
|
||||
|
||||
+127
-190
@@ -359,6 +359,10 @@ public final class KotlinIr {
|
||||
* </pre>
|
||||
*/
|
||||
RECEIVER_PARAMETER_SYMBOL(11, 12),
|
||||
/**
|
||||
* <code>PROPERTY_SYMBOL = 13;</code>
|
||||
*/
|
||||
PROPERTY_SYMBOL(12, 13),
|
||||
;
|
||||
|
||||
/**
|
||||
@@ -417,6 +421,10 @@ public final class KotlinIr {
|
||||
* </pre>
|
||||
*/
|
||||
public static final int RECEIVER_PARAMETER_SYMBOL_VALUE = 12;
|
||||
/**
|
||||
* <code>PROPERTY_SYMBOL = 13;</code>
|
||||
*/
|
||||
public static final int PROPERTY_SYMBOL_VALUE = 13;
|
||||
|
||||
|
||||
public final int getNumber() { return value; }
|
||||
@@ -435,6 +443,7 @@ public final class KotlinIr {
|
||||
case 10: return ANONYMOUS_INIT_SYMBOL;
|
||||
case 11: return STANDALONE_FIELD_SYMBOL;
|
||||
case 12: return RECEIVER_PARAMETER_SYMBOL;
|
||||
case 13: return PROPERTY_SYMBOL;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
@@ -21057,21 +21066,13 @@ public final class KotlinIr {
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.MemberAccessCommon getMemberAccess();
|
||||
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 6;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 6;</code>
|
||||
*/
|
||||
boolean hasDescriptorReference();
|
||||
boolean hasSymbol();
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 6;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 6;</code>
|
||||
*/
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference getDescriptorReference();
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol getSymbol();
|
||||
}
|
||||
/**
|
||||
* Protobuf type {@code org.jetbrains.kotlin.backend.common.serialization.IrPropertyReference}
|
||||
@@ -21189,14 +21190,14 @@ public final class KotlinIr {
|
||||
break;
|
||||
}
|
||||
case 50: {
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.Builder subBuilder = null;
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.Builder subBuilder = null;
|
||||
if (((bitField0_ & 0x00000020) == 0x00000020)) {
|
||||
subBuilder = descriptorReference_.toBuilder();
|
||||
subBuilder = symbol_.toBuilder();
|
||||
}
|
||||
descriptorReference_ = input.readMessage(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.PARSER, extensionRegistry);
|
||||
symbol_ = input.readMessage(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.PARSER, extensionRegistry);
|
||||
if (subBuilder != null) {
|
||||
subBuilder.mergeFrom(descriptorReference_);
|
||||
descriptorReference_ = subBuilder.buildPartial();
|
||||
subBuilder.mergeFrom(symbol_);
|
||||
symbol_ = subBuilder.buildPartial();
|
||||
}
|
||||
bitField0_ |= 0x00000020;
|
||||
break;
|
||||
@@ -21310,27 +21311,19 @@ public final class KotlinIr {
|
||||
return memberAccess_;
|
||||
}
|
||||
|
||||
public static final int DESCRIPTOR_REFERENCE_FIELD_NUMBER = 6;
|
||||
private org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference descriptorReference_;
|
||||
public static final int SYMBOL_FIELD_NUMBER = 6;
|
||||
private org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol symbol_;
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 6;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 6;</code>
|
||||
*/
|
||||
public boolean hasDescriptorReference() {
|
||||
public boolean hasSymbol() {
|
||||
return ((bitField0_ & 0x00000020) == 0x00000020);
|
||||
}
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 6;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 6;</code>
|
||||
*/
|
||||
public org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference getDescriptorReference() {
|
||||
return descriptorReference_;
|
||||
public org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol getSymbol() {
|
||||
return symbol_;
|
||||
}
|
||||
|
||||
private void initFields() {
|
||||
@@ -21339,7 +21332,7 @@ public final class KotlinIr {
|
||||
setter_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
|
||||
origin_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrStatementOrigin.getDefaultInstance();
|
||||
memberAccess_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.MemberAccessCommon.getDefaultInstance();
|
||||
descriptorReference_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.getDefaultInstance();
|
||||
symbol_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
|
||||
}
|
||||
private byte memoizedIsInitialized = -1;
|
||||
public final boolean isInitialized() {
|
||||
@@ -21351,6 +21344,10 @@ public final class KotlinIr {
|
||||
memoizedIsInitialized = 0;
|
||||
return false;
|
||||
}
|
||||
if (!hasSymbol()) {
|
||||
memoizedIsInitialized = 0;
|
||||
return false;
|
||||
}
|
||||
if (hasField()) {
|
||||
if (!getField().isInitialized()) {
|
||||
memoizedIsInitialized = 0;
|
||||
@@ -21379,11 +21376,9 @@ public final class KotlinIr {
|
||||
memoizedIsInitialized = 0;
|
||||
return false;
|
||||
}
|
||||
if (hasDescriptorReference()) {
|
||||
if (!getDescriptorReference().isInitialized()) {
|
||||
memoizedIsInitialized = 0;
|
||||
return false;
|
||||
}
|
||||
if (!getSymbol().isInitialized()) {
|
||||
memoizedIsInitialized = 0;
|
||||
return false;
|
||||
}
|
||||
memoizedIsInitialized = 1;
|
||||
return true;
|
||||
@@ -21408,7 +21403,7 @@ public final class KotlinIr {
|
||||
output.writeMessage(5, memberAccess_);
|
||||
}
|
||||
if (((bitField0_ & 0x00000020) == 0x00000020)) {
|
||||
output.writeMessage(6, descriptorReference_);
|
||||
output.writeMessage(6, symbol_);
|
||||
}
|
||||
output.writeRawBytes(unknownFields);
|
||||
}
|
||||
@@ -21441,7 +21436,7 @@ public final class KotlinIr {
|
||||
}
|
||||
if (((bitField0_ & 0x00000020) == 0x00000020)) {
|
||||
size += org.jetbrains.kotlin.protobuf.CodedOutputStream
|
||||
.computeMessageSize(6, descriptorReference_);
|
||||
.computeMessageSize(6, symbol_);
|
||||
}
|
||||
size += unknownFields.size();
|
||||
memoizedSerializedSize = size;
|
||||
@@ -21547,7 +21542,7 @@ public final class KotlinIr {
|
||||
bitField0_ = (bitField0_ & ~0x00000008);
|
||||
memberAccess_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.MemberAccessCommon.getDefaultInstance();
|
||||
bitField0_ = (bitField0_ & ~0x00000010);
|
||||
descriptorReference_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.getDefaultInstance();
|
||||
symbol_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
|
||||
bitField0_ = (bitField0_ & ~0x00000020);
|
||||
return this;
|
||||
}
|
||||
@@ -21595,7 +21590,7 @@ public final class KotlinIr {
|
||||
if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
|
||||
to_bitField0_ |= 0x00000020;
|
||||
}
|
||||
result.descriptorReference_ = descriptorReference_;
|
||||
result.symbol_ = symbol_;
|
||||
result.bitField0_ = to_bitField0_;
|
||||
return result;
|
||||
}
|
||||
@@ -21617,8 +21612,8 @@ public final class KotlinIr {
|
||||
if (other.hasMemberAccess()) {
|
||||
mergeMemberAccess(other.getMemberAccess());
|
||||
}
|
||||
if (other.hasDescriptorReference()) {
|
||||
mergeDescriptorReference(other.getDescriptorReference());
|
||||
if (other.hasSymbol()) {
|
||||
mergeSymbol(other.getSymbol());
|
||||
}
|
||||
setUnknownFields(
|
||||
getUnknownFields().concat(other.unknownFields));
|
||||
@@ -21630,6 +21625,10 @@ public final class KotlinIr {
|
||||
|
||||
return false;
|
||||
}
|
||||
if (!hasSymbol()) {
|
||||
|
||||
return false;
|
||||
}
|
||||
if (hasField()) {
|
||||
if (!getField().isInitialized()) {
|
||||
|
||||
@@ -21658,11 +21657,9 @@ public final class KotlinIr {
|
||||
|
||||
return false;
|
||||
}
|
||||
if (hasDescriptorReference()) {
|
||||
if (!getDescriptorReference().isInitialized()) {
|
||||
|
||||
return false;
|
||||
}
|
||||
if (!getSymbol().isInitialized()) {
|
||||
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -21986,85 +21983,61 @@ public final class KotlinIr {
|
||||
return this;
|
||||
}
|
||||
|
||||
private org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference descriptorReference_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.getDefaultInstance();
|
||||
private org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol symbol_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 6;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 6;</code>
|
||||
*/
|
||||
public boolean hasDescriptorReference() {
|
||||
public boolean hasSymbol() {
|
||||
return ((bitField0_ & 0x00000020) == 0x00000020);
|
||||
}
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 6;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 6;</code>
|
||||
*/
|
||||
public org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference getDescriptorReference() {
|
||||
return descriptorReference_;
|
||||
public org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol getSymbol() {
|
||||
return symbol_;
|
||||
}
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 6;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 6;</code>
|
||||
*/
|
||||
public Builder setDescriptorReference(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference value) {
|
||||
public Builder setSymbol(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol value) {
|
||||
if (value == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
descriptorReference_ = value;
|
||||
symbol_ = value;
|
||||
|
||||
bitField0_ |= 0x00000020;
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 6;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 6;</code>
|
||||
*/
|
||||
public Builder setDescriptorReference(
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.Builder builderForValue) {
|
||||
descriptorReference_ = builderForValue.build();
|
||||
public Builder setSymbol(
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.Builder builderForValue) {
|
||||
symbol_ = builderForValue.build();
|
||||
|
||||
bitField0_ |= 0x00000020;
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 6;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 6;</code>
|
||||
*/
|
||||
public Builder mergeDescriptorReference(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference value) {
|
||||
public Builder mergeSymbol(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol value) {
|
||||
if (((bitField0_ & 0x00000020) == 0x00000020) &&
|
||||
descriptorReference_ != org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.getDefaultInstance()) {
|
||||
descriptorReference_ =
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.newBuilder(descriptorReference_).mergeFrom(value).buildPartial();
|
||||
symbol_ != org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance()) {
|
||||
symbol_ =
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.newBuilder(symbol_).mergeFrom(value).buildPartial();
|
||||
} else {
|
||||
descriptorReference_ = value;
|
||||
symbol_ = value;
|
||||
}
|
||||
|
||||
bitField0_ |= 0x00000020;
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 6;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 6;</code>
|
||||
*/
|
||||
public Builder clearDescriptorReference() {
|
||||
descriptorReference_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.getDefaultInstance();
|
||||
public Builder clearSymbol() {
|
||||
symbol_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
|
||||
|
||||
bitField0_ = (bitField0_ & ~0x00000020);
|
||||
return this;
|
||||
@@ -50552,21 +50525,13 @@ public final class KotlinIr {
|
||||
org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {
|
||||
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 1;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 1;</code>
|
||||
*/
|
||||
boolean hasDescriptorReference();
|
||||
boolean hasSymbol();
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 1;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 1;</code>
|
||||
*/
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference getDescriptorReference();
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol getSymbol();
|
||||
|
||||
/**
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.String name = 2;</code>
|
||||
@@ -50718,14 +50683,14 @@ public final class KotlinIr {
|
||||
break;
|
||||
}
|
||||
case 10: {
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.Builder subBuilder = null;
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.Builder subBuilder = null;
|
||||
if (((bitField0_ & 0x00000001) == 0x00000001)) {
|
||||
subBuilder = descriptorReference_.toBuilder();
|
||||
subBuilder = symbol_.toBuilder();
|
||||
}
|
||||
descriptorReference_ = input.readMessage(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.PARSER, extensionRegistry);
|
||||
symbol_ = input.readMessage(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.PARSER, extensionRegistry);
|
||||
if (subBuilder != null) {
|
||||
subBuilder.mergeFrom(descriptorReference_);
|
||||
descriptorReference_ = subBuilder.buildPartial();
|
||||
subBuilder.mergeFrom(symbol_);
|
||||
symbol_ = subBuilder.buildPartial();
|
||||
}
|
||||
bitField0_ |= 0x00000001;
|
||||
break;
|
||||
@@ -50866,27 +50831,19 @@ public final class KotlinIr {
|
||||
}
|
||||
|
||||
private int bitField0_;
|
||||
public static final int DESCRIPTOR_REFERENCE_FIELD_NUMBER = 1;
|
||||
private org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference descriptorReference_;
|
||||
public static final int SYMBOL_FIELD_NUMBER = 1;
|
||||
private org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol symbol_;
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 1;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 1;</code>
|
||||
*/
|
||||
public boolean hasDescriptorReference() {
|
||||
public boolean hasSymbol() {
|
||||
return ((bitField0_ & 0x00000001) == 0x00000001);
|
||||
}
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 1;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 1;</code>
|
||||
*/
|
||||
public org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference getDescriptorReference() {
|
||||
return descriptorReference_;
|
||||
public org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol getSymbol() {
|
||||
return symbol_;
|
||||
}
|
||||
|
||||
public static final int NAME_FIELD_NUMBER = 2;
|
||||
@@ -51055,7 +51012,7 @@ public final class KotlinIr {
|
||||
}
|
||||
|
||||
private void initFields() {
|
||||
descriptorReference_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.getDefaultInstance();
|
||||
symbol_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
|
||||
name_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.String.getDefaultInstance();
|
||||
visibility_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.Visibility.getDefaultInstance();
|
||||
modality_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.ModalityKind.FINAL_MODALITY;
|
||||
@@ -51074,6 +51031,10 @@ public final class KotlinIr {
|
||||
if (isInitialized == 1) return true;
|
||||
if (isInitialized == 0) return false;
|
||||
|
||||
if (!hasSymbol()) {
|
||||
memoizedIsInitialized = 0;
|
||||
return false;
|
||||
}
|
||||
if (!hasName()) {
|
||||
memoizedIsInitialized = 0;
|
||||
return false;
|
||||
@@ -51106,11 +51067,9 @@ public final class KotlinIr {
|
||||
memoizedIsInitialized = 0;
|
||||
return false;
|
||||
}
|
||||
if (hasDescriptorReference()) {
|
||||
if (!getDescriptorReference().isInitialized()) {
|
||||
memoizedIsInitialized = 0;
|
||||
return false;
|
||||
}
|
||||
if (!getSymbol().isInitialized()) {
|
||||
memoizedIsInitialized = 0;
|
||||
return false;
|
||||
}
|
||||
if (!getName().isInitialized()) {
|
||||
memoizedIsInitialized = 0;
|
||||
@@ -51146,7 +51105,7 @@ public final class KotlinIr {
|
||||
throws java.io.IOException {
|
||||
getSerializedSize();
|
||||
if (((bitField0_ & 0x00000001) == 0x00000001)) {
|
||||
output.writeMessage(1, descriptorReference_);
|
||||
output.writeMessage(1, symbol_);
|
||||
}
|
||||
if (((bitField0_ & 0x00000002) == 0x00000002)) {
|
||||
output.writeMessage(2, name_);
|
||||
@@ -51192,7 +51151,7 @@ public final class KotlinIr {
|
||||
size = 0;
|
||||
if (((bitField0_ & 0x00000001) == 0x00000001)) {
|
||||
size += org.jetbrains.kotlin.protobuf.CodedOutputStream
|
||||
.computeMessageSize(1, descriptorReference_);
|
||||
.computeMessageSize(1, symbol_);
|
||||
}
|
||||
if (((bitField0_ & 0x00000002) == 0x00000002)) {
|
||||
size += org.jetbrains.kotlin.protobuf.CodedOutputStream
|
||||
@@ -51332,7 +51291,7 @@ public final class KotlinIr {
|
||||
|
||||
public Builder clear() {
|
||||
super.clear();
|
||||
descriptorReference_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.getDefaultInstance();
|
||||
symbol_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
|
||||
bitField0_ = (bitField0_ & ~0x00000001);
|
||||
name_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.String.getDefaultInstance();
|
||||
bitField0_ = (bitField0_ & ~0x00000002);
|
||||
@@ -51382,7 +51341,7 @@ public final class KotlinIr {
|
||||
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
|
||||
to_bitField0_ |= 0x00000001;
|
||||
}
|
||||
result.descriptorReference_ = descriptorReference_;
|
||||
result.symbol_ = symbol_;
|
||||
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
|
||||
to_bitField0_ |= 0x00000002;
|
||||
}
|
||||
@@ -51433,8 +51392,8 @@ public final class KotlinIr {
|
||||
|
||||
public Builder mergeFrom(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrProperty other) {
|
||||
if (other == org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrProperty.getDefaultInstance()) return this;
|
||||
if (other.hasDescriptorReference()) {
|
||||
mergeDescriptorReference(other.getDescriptorReference());
|
||||
if (other.hasSymbol()) {
|
||||
mergeSymbol(other.getSymbol());
|
||||
}
|
||||
if (other.hasName()) {
|
||||
mergeName(other.getName());
|
||||
@@ -51475,6 +51434,10 @@ public final class KotlinIr {
|
||||
}
|
||||
|
||||
public final boolean isInitialized() {
|
||||
if (!hasSymbol()) {
|
||||
|
||||
return false;
|
||||
}
|
||||
if (!hasName()) {
|
||||
|
||||
return false;
|
||||
@@ -51507,11 +51470,9 @@ public final class KotlinIr {
|
||||
|
||||
return false;
|
||||
}
|
||||
if (hasDescriptorReference()) {
|
||||
if (!getDescriptorReference().isInitialized()) {
|
||||
|
||||
return false;
|
||||
}
|
||||
if (!getSymbol().isInitialized()) {
|
||||
|
||||
return false;
|
||||
}
|
||||
if (!getName().isInitialized()) {
|
||||
|
||||
@@ -51561,85 +51522,61 @@ public final class KotlinIr {
|
||||
}
|
||||
private int bitField0_;
|
||||
|
||||
private org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference descriptorReference_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.getDefaultInstance();
|
||||
private org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol symbol_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 1;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 1;</code>
|
||||
*/
|
||||
public boolean hasDescriptorReference() {
|
||||
public boolean hasSymbol() {
|
||||
return ((bitField0_ & 0x00000001) == 0x00000001);
|
||||
}
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 1;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 1;</code>
|
||||
*/
|
||||
public org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference getDescriptorReference() {
|
||||
return descriptorReference_;
|
||||
public org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol getSymbol() {
|
||||
return symbol_;
|
||||
}
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 1;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 1;</code>
|
||||
*/
|
||||
public Builder setDescriptorReference(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference value) {
|
||||
public Builder setSymbol(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol value) {
|
||||
if (value == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
descriptorReference_ = value;
|
||||
symbol_ = value;
|
||||
|
||||
bitField0_ |= 0x00000001;
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 1;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 1;</code>
|
||||
*/
|
||||
public Builder setDescriptorReference(
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.Builder builderForValue) {
|
||||
descriptorReference_ = builderForValue.build();
|
||||
public Builder setSymbol(
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.Builder builderForValue) {
|
||||
symbol_ = builderForValue.build();
|
||||
|
||||
bitField0_ |= 0x00000001;
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 1;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 1;</code>
|
||||
*/
|
||||
public Builder mergeDescriptorReference(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference value) {
|
||||
public Builder mergeSymbol(org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol value) {
|
||||
if (((bitField0_ & 0x00000001) == 0x00000001) &&
|
||||
descriptorReference_ != org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.getDefaultInstance()) {
|
||||
descriptorReference_ =
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.newBuilder(descriptorReference_).mergeFrom(value).buildPartial();
|
||||
symbol_ != org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance()) {
|
||||
symbol_ =
|
||||
org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.newBuilder(symbol_).mergeFrom(value).buildPartial();
|
||||
} else {
|
||||
descriptorReference_ = value;
|
||||
symbol_ = value;
|
||||
}
|
||||
|
||||
bitField0_ |= 0x00000001;
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* <code>optional .org.jetbrains.kotlin.backend.common.serialization.DescriptorReference descriptor_reference = 1;</code>
|
||||
*
|
||||
* <pre>
|
||||
* IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
|
||||
* </pre>
|
||||
* <code>required .org.jetbrains.kotlin.backend.common.serialization.IrSymbol symbol = 1;</code>
|
||||
*/
|
||||
public Builder clearDescriptorReference() {
|
||||
descriptorReference_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.DescriptorReference.getDefaultInstance();
|
||||
public Builder clearSymbol() {
|
||||
symbol_ = org.jetbrains.kotlin.backend.common.serialization.KotlinIr.IrSymbol.getDefaultInstance();
|
||||
|
||||
bitField0_ = (bitField0_ & ~0x00000001);
|
||||
return this;
|
||||
|
||||
+4
-8
@@ -125,6 +125,10 @@ abstract class KotlinIrLinker(
|
||||
IrValueParameterSymbolImpl(
|
||||
descriptor as ParameterDescriptor? ?: WrappedReceiverParameterDescriptor()
|
||||
)
|
||||
KotlinIr.IrSymbolKind.PROPERTY_SYMBOL ->
|
||||
symbolTable.referenceProperty(
|
||||
descriptor as PropertyDescriptor? ?: WrappedPropertyDescriptor()
|
||||
)
|
||||
else -> TODO("Unexpected classifier symbol kind: ${proto.kind}")
|
||||
}
|
||||
|
||||
@@ -365,14 +369,6 @@ abstract class KotlinIrLinker(
|
||||
return symbol.owner as IrDeclaration
|
||||
}
|
||||
|
||||
override fun findDeserializedDeclaration(propertyDescriptor: PropertyDescriptor): IrProperty? {
|
||||
val topLevelDesecriptor = findDeserializedDeclarationForDescriptor(propertyDescriptor)
|
||||
if (topLevelDesecriptor == null) return null
|
||||
|
||||
return symbolTable.propertyTable[propertyDescriptor]
|
||||
?: error("findDeserializedDeclaration: property descriptor $propertyDescriptor} is not present in propertyTable after deserialization}")
|
||||
}
|
||||
|
||||
// TODO: This is Native specific. Eliminate me.
|
||||
override fun declareForwardDeclarations() {
|
||||
if (forwardModuleDescriptor == null) return
|
||||
|
||||
Reference in New Issue
Block a user