IR: make IrField.type mutable
This commit is contained in:
+1
-1
@@ -33,7 +33,7 @@ class IrFieldImpl(
|
|||||||
override var origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrFieldSymbol,
|
override val symbol: IrFieldSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val type: IrType,
|
override var type: IrType,
|
||||||
override var visibility: DescriptorVisibility,
|
override var visibility: DescriptorVisibility,
|
||||||
override val isFinal: Boolean,
|
override val isFinal: Boolean,
|
||||||
override val isExternal: Boolean,
|
override val isExternal: Boolean,
|
||||||
|
|||||||
+11
-1
@@ -35,7 +35,7 @@ internal class PersistentIrField(
|
|||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrFieldSymbol,
|
override val symbol: IrFieldSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val type: IrType,
|
type: IrType,
|
||||||
override var visibility: DescriptorVisibility,
|
override var visibility: DescriptorVisibility,
|
||||||
override val isFinal: Boolean,
|
override val isFinal: Boolean,
|
||||||
override val isExternal: Boolean,
|
override val isExternal: Boolean,
|
||||||
@@ -94,4 +94,14 @@ internal class PersistentIrField(
|
|||||||
setCarrier().metadataField = v
|
setCarrier().metadataField = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override var typeField: IrType = type
|
||||||
|
|
||||||
|
override var type: IrType
|
||||||
|
get() = getCarrier().typeField
|
||||||
|
set(v) {
|
||||||
|
if (type !== v) {
|
||||||
|
setCarrier().typeField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -11,8 +11,10 @@ import org.jetbrains.kotlin.ir.declarations.MetadataSource
|
|||||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
||||||
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
|
|
||||||
internal interface FieldCarrier : DeclarationCarrier {
|
internal interface FieldCarrier : DeclarationCarrier {
|
||||||
|
var typeField: IrType
|
||||||
var initializerField: IrExpressionBody?
|
var initializerField: IrExpressionBody?
|
||||||
var correspondingPropertySymbolField: IrPropertySymbol?
|
var correspondingPropertySymbolField: IrPropertySymbol?
|
||||||
var metadataField: MetadataSource?
|
var metadataField: MetadataSource?
|
||||||
@@ -23,6 +25,7 @@ internal interface FieldCarrier : DeclarationCarrier {
|
|||||||
parentField,
|
parentField,
|
||||||
originField,
|
originField,
|
||||||
annotationsField,
|
annotationsField,
|
||||||
|
typeField,
|
||||||
initializerField,
|
initializerField,
|
||||||
correspondingPropertySymbolField,
|
correspondingPropertySymbolField,
|
||||||
metadataField
|
metadataField
|
||||||
@@ -35,6 +38,7 @@ internal class FieldCarrierImpl(
|
|||||||
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 initializerField: IrExpressionBody?,
|
override var initializerField: IrExpressionBody?,
|
||||||
override var correspondingPropertySymbolField: IrPropertySymbol?,
|
override var correspondingPropertySymbolField: IrPropertySymbol?,
|
||||||
override var metadataField: MetadataSource?
|
override var metadataField: MetadataSource?
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ abstract class IrField :
|
|||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
abstract override val descriptor: PropertyDescriptor
|
abstract override val descriptor: PropertyDescriptor
|
||||||
|
|
||||||
abstract val type: IrType
|
abstract var type: IrType
|
||||||
abstract val isFinal: Boolean
|
abstract val isFinal: Boolean
|
||||||
abstract val isExternal: Boolean
|
abstract val isExternal: Boolean
|
||||||
abstract val isStatic: Boolean
|
abstract val isStatic: Boolean
|
||||||
|
|||||||
Reference in New Issue
Block a user