diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/ir/JvmIrTypeUtils.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/ir/JvmIrTypeUtils.kt index b593b5b8dd8..5fe58d4826e 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/ir/JvmIrTypeUtils.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/ir/JvmIrTypeUtils.kt @@ -131,10 +131,15 @@ fun IrType.eraseToScope(scopeOwner: IrTypeParametersContainer): IrType = fun IrType.eraseToScope(visibleTypeParameters: Set): IrType { require(this is IrSimpleType) { error("Unexpected IrType kind: ${render()}") } return when (classifier) { - is IrClassSymbol -> IrSimpleTypeImpl( - classifier, hasQuestionMark, arguments.map { it.eraseToScope(visibleTypeParameters) }, annotations - ) - is IrTypeParameterSymbol -> if (classifier.owner in visibleTypeParameters) this else upperBound + is IrClassSymbol -> + IrSimpleTypeImpl( + classifier, hasQuestionMark, arguments.map { it.eraseToScope(visibleTypeParameters) }, annotations + ) + is IrTypeParameterSymbol -> + if (classifier.owner in visibleTypeParameters) + this + else + upperBound.withHasQuestionMark(this.hasQuestionMark) else -> error("unknown IrType classifier kind: ${classifier.owner.render()}") } }