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