From 8eabaff29e167fdb54825ca03a51691c82305a90 Mon Sep 17 00:00:00 2001 From: "marat.akhin" Date: Thu, 13 Jul 2023 10:01:16 +0200 Subject: [PATCH] [IR] Support IrStarProjection in TypeArgumentMarker.replaceType --- .../org/jetbrains/kotlin/ir/types/IrTypeSystemContext.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrTypeSystemContext.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrTypeSystemContext.kt index 59e52ff08c5..5f4463887ca 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrTypeSystemContext.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrTypeSystemContext.kt @@ -140,8 +140,13 @@ interface IrTypeSystemContext : TypeSystemContext, TypeSystemCommonSuperTypesCon override fun TypeArgumentMarker.getVariance(): TypeVariance = (this as? IrTypeProjection)?.variance?.convertVariance() ?: TypeVariance.OUT - override fun TypeArgumentMarker.replaceType(newType: KotlinTypeMarker): TypeArgumentMarker = - IrTypeProjectionImpl(newType as IrType, (this as IrTypeProjection).variance) + override fun TypeArgumentMarker.replaceType(newType: KotlinTypeMarker): TypeArgumentMarker { + require(this is IrTypeArgument) + return when (this) { + is IrStarProjection -> this + is IrTypeProjection -> IrTypeProjectionImpl(newType as IrType, this.variance) + } + } override fun TypeArgumentMarker.getType() = (this as IrTypeProjection).type