IR: make IrTypeParameter.superTypes persistent mutable field
This commit is contained in:
+9
-1
@@ -62,5 +62,13 @@ internal class PersistentIrTypeParameter(
|
||||
override val descriptor: TypeParameterDescriptor
|
||||
get() = symbol.descriptor
|
||||
|
||||
override val superTypes: MutableList<IrType> = SmartList()
|
||||
override var superTypesField: List<IrType> = emptyList()
|
||||
|
||||
override var superTypes: List<IrType>
|
||||
get() = getCarrier().superTypesField
|
||||
set(v) {
|
||||
if (superTypes !== v) {
|
||||
setCarrier().superTypesField = v
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
-2
@@ -8,10 +8,13 @@ package org.jetbrains.kotlin.ir.declarations.persistent.carriers
|
||||
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.types.IrType
|
||||
|
||||
internal interface TypeParameterCarrier : DeclarationCarrier {
|
||||
var superTypesField: List<IrType>
|
||||
|
||||
override fun clone(): TypeParameterCarrier {
|
||||
return TypeParameterCarrierImpl(lastModified, parentField, originField, annotationsField)
|
||||
return TypeParameterCarrierImpl(lastModified, parentField, originField, annotationsField, superTypesField)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,5 +22,6 @@ internal class TypeParameterCarrierImpl(
|
||||
override val lastModified: Int,
|
||||
override var parentField: IrDeclarationParent?,
|
||||
override var originField: IrDeclarationOrigin,
|
||||
override var annotationsField: List<IrConstructorCall>
|
||||
override var annotationsField: List<IrConstructorCall>,
|
||||
override var superTypesField: List<IrType>,
|
||||
) : TypeParameterCarrier
|
||||
|
||||
Reference in New Issue
Block a user