IR: handle IrVararg.varargElementType in RemapTypes
This commit is contained in:
@@ -148,6 +148,11 @@ class ScopeValidator(
|
||||
super.visitClassReference(expression)
|
||||
}
|
||||
|
||||
override fun visitVararg(expression: IrVararg) {
|
||||
visitTypeAccess(expression, expression.varargElementType)
|
||||
super.visitVararg(expression)
|
||||
}
|
||||
|
||||
override fun visitExpression(expression: IrExpression) {
|
||||
visitTypeAccess(expression, expression.type)
|
||||
super.visitExpression(expression)
|
||||
|
||||
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||
interface IrVarargElement : IrElement
|
||||
|
||||
abstract class IrVararg : IrExpression() {
|
||||
abstract val varargElementType: IrType
|
||||
abstract var varargElementType: IrType
|
||||
|
||||
abstract val elements: List<IrVarargElement>
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ class IrVarargImpl(
|
||||
override val startOffset: Int,
|
||||
override val endOffset: Int,
|
||||
override var type: IrType,
|
||||
override val varargElementType: IrType
|
||||
override var varargElementType: IrType
|
||||
) : IrVararg() {
|
||||
constructor(
|
||||
startOffset: Int,
|
||||
|
||||
@@ -10,6 +10,7 @@ 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.visitors.IrElementVisitorVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptVoid
|
||||
@@ -83,4 +84,8 @@ private class RemapTypesHelper(private val typeRemapper: TypeRemapper) : IrEleme
|
||||
super.visitTypeOperator(expression)
|
||||
}
|
||||
|
||||
override fun visitVararg(expression: IrVararg) {
|
||||
expression.varargElementType = typeRemapper.remapType(expression.varargElementType)
|
||||
super.visitVararg(expression)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user