Make IrValueDeclaration.type mutable
This commit is contained in:
+12
-1
@@ -37,7 +37,7 @@ internal class PersistentIrValueParameter(
|
||||
override val symbol: IrValueParameterSymbol,
|
||||
override val name: Name,
|
||||
override val index: Int,
|
||||
override val type: IrType,
|
||||
type: IrType,
|
||||
override val varargElementType: IrType?,
|
||||
override val isCrossinline: Boolean,
|
||||
override val isNoinline: Boolean,
|
||||
@@ -76,4 +76,15 @@ internal class PersistentIrValueParameter(
|
||||
setCarrier().defaultValueField = v
|
||||
}
|
||||
}
|
||||
|
||||
override var typeField: IrType = type
|
||||
|
||||
override var type: IrType
|
||||
get() = getCarrier().typeField
|
||||
set(v) {
|
||||
if (type !== v) {
|
||||
setCarrier().typeField = v
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+7
-2
@@ -9,12 +9,16 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
|
||||
internal interface ValueParameterCarrier : DeclarationCarrier {
|
||||
var defaultValueField: IrExpressionBody?
|
||||
var typeField: IrType
|
||||
|
||||
override fun clone(): ValueParameterCarrier {
|
||||
return ValueParameterCarrierImpl(lastModified, parentField, originField, annotationsField, defaultValueField)
|
||||
return ValueParameterCarrierImpl(
|
||||
lastModified, parentField, originField, annotationsField, defaultValueField, typeField
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,5 +27,6 @@ internal class ValueParameterCarrierImpl(
|
||||
override var parentField: IrDeclarationParent?,
|
||||
override var originField: IrDeclarationOrigin,
|
||||
override var annotationsField: List<IrConstructorCall>,
|
||||
override var defaultValueField: IrExpressionBody?
|
||||
override var defaultValueField: IrExpressionBody?,
|
||||
override var typeField: IrType,
|
||||
) : ValueParameterCarrier
|
||||
|
||||
Reference in New Issue
Block a user