IR: make IrClassReference.classType mutable

This commit is contained in:
Georgy Bronnikov
2020-09-22 15:52:26 +03:00
parent 9d22ef948c
commit 83ee705c0a
3 changed files with 8 additions and 6 deletions
@@ -21,5 +21,5 @@ import org.jetbrains.kotlin.ir.types.IrType
abstract class IrClassReference : IrDeclarationReference() {
abstract override val symbol: IrClassifierSymbol
abstract val classType: IrType
abstract var classType: IrType
}
@@ -26,7 +26,7 @@ class IrClassReferenceImpl(
override val endOffset: Int,
override var type: IrType,
override val symbol: IrClassifierSymbol,
override val classType: IrType
override var classType: IrType
) : IrClassReference() {
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
visitor.visitClassReference(this, data)
@@ -7,10 +7,7 @@ package org.jetbrains.kotlin.ir.util
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrExpression
import org.jetbrains.kotlin.ir.expressions.IrMemberAccessExpression
import org.jetbrains.kotlin.ir.expressions.IrTypeOperatorCall
import org.jetbrains.kotlin.ir.expressions.IrVararg
import org.jetbrains.kotlin.ir.expressions.*
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
import org.jetbrains.kotlin.ir.visitors.acceptVoid
@@ -88,4 +85,9 @@ private class RemapTypesHelper(private val typeRemapper: TypeRemapper) : IrEleme
expression.varargElementType = typeRemapper.remapType(expression.varargElementType)
super.visitVararg(expression)
}
override fun visitClassReference(expression: IrClassReference) {
expression.classType = typeRemapper.remapType(expression.classType)
super.visitClassReference(expression)
}
}