IR: make IrLocaldelegatedProperty.type mutable
This commit is contained in:
+1
-1
@@ -30,7 +30,7 @@ class IrLocalDelegatedPropertyImpl(
|
||||
override var origin: IrDeclarationOrigin,
|
||||
override val symbol: IrLocalDelegatedPropertySymbol,
|
||||
override val name: Name,
|
||||
override val type: IrType,
|
||||
override var type: IrType,
|
||||
override val isVar: Boolean
|
||||
) : IrLocalDelegatedProperty() {
|
||||
init {
|
||||
|
||||
+11
-1
@@ -33,7 +33,7 @@ internal class PersistentIrLocalDelegatedProperty(
|
||||
origin: IrDeclarationOrigin,
|
||||
override val symbol: IrLocalDelegatedPropertySymbol,
|
||||
override val name: Name,
|
||||
override val type: IrType,
|
||||
type: IrType,
|
||||
override val isVar: Boolean
|
||||
) :
|
||||
PersistentIrDeclarationBase<LocalDelegatedPropertyCarrier>,
|
||||
@@ -58,6 +58,16 @@ internal class PersistentIrLocalDelegatedProperty(
|
||||
override val descriptor: VariableDescriptorWithAccessors
|
||||
get() = symbol.descriptor
|
||||
|
||||
override var typeField: IrType = type
|
||||
|
||||
override var type: IrType
|
||||
get() = getCarrier().typeField
|
||||
set(v) {
|
||||
if (getCarrier().typeField !== v) {
|
||||
setCarrier().typeField = v
|
||||
}
|
||||
}
|
||||
|
||||
override var delegateField: IrVariable? = null
|
||||
|
||||
override var delegate: IrVariable
|
||||
|
||||
+4
@@ -7,8 +7,10 @@ package org.jetbrains.kotlin.ir.declarations.persistent.carriers
|
||||
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
|
||||
internal interface LocalDelegatedPropertyCarrier : DeclarationCarrier {
|
||||
var typeField: IrType
|
||||
var delegateField: IrVariable?
|
||||
var getterField: IrFunction?
|
||||
var setterField: IrFunction?
|
||||
@@ -20,6 +22,7 @@ internal interface LocalDelegatedPropertyCarrier : DeclarationCarrier {
|
||||
parentField,
|
||||
originField,
|
||||
annotationsField,
|
||||
typeField,
|
||||
delegateField,
|
||||
getterField,
|
||||
setterField,
|
||||
@@ -33,6 +36,7 @@ internal class LocalDelegatedPropertyCarrierImpl(
|
||||
override var parentField: IrDeclarationParent?,
|
||||
override var originField: IrDeclarationOrigin,
|
||||
override var annotationsField: List<IrConstructorCall>,
|
||||
override var typeField: IrType,
|
||||
override var delegateField: IrVariable?,
|
||||
override var getterField: IrFunction?,
|
||||
override var setterField: IrFunction?,
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ abstract class IrLocalDelegatedProperty :
|
||||
abstract override val descriptor: VariableDescriptorWithAccessors
|
||||
abstract override val symbol: IrLocalDelegatedPropertySymbol
|
||||
|
||||
abstract val type: IrType
|
||||
abstract var type: IrType
|
||||
abstract val isVar: Boolean
|
||||
|
||||
abstract var delegate: IrVariable
|
||||
|
||||
Reference in New Issue
Block a user