IR: make IrValueParameter.varargElementType mutable
This commit is contained in:
+1
-1
@@ -36,7 +36,7 @@ class IrValueParameterImpl(
|
|||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val index: Int,
|
override val index: Int,
|
||||||
override var type: IrType,
|
override var type: IrType,
|
||||||
override val varargElementType: IrType?,
|
override var varargElementType: IrType?,
|
||||||
override val isCrossinline: Boolean,
|
override val isCrossinline: Boolean,
|
||||||
override val isNoinline: Boolean,
|
override val isNoinline: Boolean,
|
||||||
override val isHidden: Boolean = false
|
override val isHidden: Boolean = false
|
||||||
|
|||||||
+10
-1
@@ -38,7 +38,7 @@ internal class PersistentIrValueParameter(
|
|||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val index: Int,
|
override val index: Int,
|
||||||
type: IrType,
|
type: IrType,
|
||||||
override val varargElementType: IrType?,
|
varargElementType: IrType?,
|
||||||
override val isCrossinline: Boolean,
|
override val isCrossinline: Boolean,
|
||||||
override val isNoinline: Boolean,
|
override val isNoinline: Boolean,
|
||||||
override val isHidden: Boolean = false
|
override val isHidden: Boolean = false
|
||||||
@@ -87,4 +87,13 @@ internal class PersistentIrValueParameter(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override var varargElementTypeField: IrType? = varargElementType
|
||||||
|
|
||||||
|
override var varargElementType: IrType?
|
||||||
|
get() = getCarrier().varargElementTypeField
|
||||||
|
set(v) {
|
||||||
|
if (varargElementType !== v) {
|
||||||
|
setCarrier().varargElementTypeField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -14,10 +14,11 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
internal interface ValueParameterCarrier : DeclarationCarrier {
|
internal interface ValueParameterCarrier : DeclarationCarrier {
|
||||||
var defaultValueField: IrExpressionBody?
|
var defaultValueField: IrExpressionBody?
|
||||||
var typeField: IrType
|
var typeField: IrType
|
||||||
|
var varargElementTypeField: IrType?
|
||||||
|
|
||||||
override fun clone(): ValueParameterCarrier {
|
override fun clone(): ValueParameterCarrier {
|
||||||
return ValueParameterCarrierImpl(
|
return ValueParameterCarrierImpl(
|
||||||
lastModified, parentField, originField, annotationsField, defaultValueField, typeField
|
lastModified, parentField, originField, annotationsField, defaultValueField, typeField, varargElementTypeField
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -29,4 +30,5 @@ internal class ValueParameterCarrierImpl(
|
|||||||
override var annotationsField: List<IrConstructorCall>,
|
override var annotationsField: List<IrConstructorCall>,
|
||||||
override var defaultValueField: IrExpressionBody?,
|
override var defaultValueField: IrExpressionBody?,
|
||||||
override var typeField: IrType,
|
override var typeField: IrType,
|
||||||
|
override var varargElementTypeField: IrType?,
|
||||||
) : ValueParameterCarrier
|
) : ValueParameterCarrier
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ abstract class IrValueParameter : IrValueDeclaration(), IrSymbolDeclaration<IrVa
|
|||||||
abstract override val descriptor: ParameterDescriptor
|
abstract override val descriptor: ParameterDescriptor
|
||||||
|
|
||||||
abstract val index: Int
|
abstract val index: Int
|
||||||
abstract val varargElementType: IrType?
|
abstract var varargElementType: IrType?
|
||||||
abstract val isCrossinline: Boolean
|
abstract val isCrossinline: Boolean
|
||||||
abstract val isNoinline: Boolean
|
abstract val isNoinline: Boolean
|
||||||
// if true parameter is not included into IdSignature.
|
// if true parameter is not included into IdSignature.
|
||||||
|
|||||||
Reference in New Issue
Block a user