[PL] Optimization: Avoid excessive type checks in IR type operators

This commit is contained in:
Dmitriy Dolovov
2023-05-17 16:56:22 +02:00
committed by Space Team
parent 00e8dc1c39
commit 7f4d9ddde5
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
import org.jetbrains.kotlin.utils.addIfNotNull
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
import org.jetbrains.kotlin.utils.compact
import java.util.*
import kotlin.properties.Delegates
@@ -479,7 +480,7 @@ internal class PartiallyLinkedIrTreePatcher(
}
override fun visitTypeOperator(expression: IrTypeOperatorCall) = expression.maybeThrowLinkageError {
checkExpressionType(typeOperand)
(typeOperand !== type).ifTrue { checkExpressionType(typeOperand) }
}
override fun visitDeclarationReference(expression: IrDeclarationReference) = expression.maybeThrowLinkageError {