IR: make IrValueParameter.varargElementType mutable
This commit is contained in:
+1
-1
@@ -36,7 +36,7 @@ class IrValueParameterImpl(
|
||||
override val name: Name,
|
||||
override val index: Int,
|
||||
override var type: IrType,
|
||||
override val varargElementType: IrType?,
|
||||
override var varargElementType: IrType?,
|
||||
override val isCrossinline: Boolean,
|
||||
override val isNoinline: Boolean,
|
||||
override val isHidden: Boolean = false
|
||||
|
||||
+10
-1
@@ -38,7 +38,7 @@ internal class PersistentIrValueParameter(
|
||||
override val name: Name,
|
||||
override val index: Int,
|
||||
type: IrType,
|
||||
override val varargElementType: IrType?,
|
||||
varargElementType: IrType?,
|
||||
override val isCrossinline: Boolean,
|
||||
override val isNoinline: Boolean,
|
||||
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 {
|
||||
var defaultValueField: IrExpressionBody?
|
||||
var typeField: IrType
|
||||
var varargElementTypeField: IrType?
|
||||
|
||||
override fun clone(): ValueParameterCarrier {
|
||||
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 defaultValueField: IrExpressionBody?,
|
||||
override var typeField: IrType,
|
||||
override var varargElementTypeField: IrType?,
|
||||
) : ValueParameterCarrier
|
||||
|
||||
@@ -29,7 +29,7 @@ abstract class IrValueParameter : IrValueDeclaration(), IrSymbolDeclaration<IrVa
|
||||
abstract override val descriptor: ParameterDescriptor
|
||||
|
||||
abstract val index: Int
|
||||
abstract val varargElementType: IrType?
|
||||
abstract var varargElementType: IrType?
|
||||
abstract val isCrossinline: Boolean
|
||||
abstract val isNoinline: Boolean
|
||||
// if true parameter is not included into IdSignature.
|
||||
|
||||
Reference in New Issue
Block a user