[IR] Try to tun IrInterpreterKCallableNamePreprocessor only once

#KT-58923 Fixed
This commit is contained in:
Ivan Kylchik
2023-05-30 00:23:33 +02:00
committed by Space Team
parent a6a389933d
commit 0e2b348fa0
3 changed files with 19 additions and 5 deletions
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.ir.interpreter.IrInterpreterEnvironment
import org.jetbrains.kotlin.ir.interpreter.checker.EvaluationMode
import org.jetbrains.kotlin.ir.interpreter.transformer.preprocessForConstTransformer
import org.jetbrains.kotlin.ir.interpreter.transformer.runConstOptimizations
import org.jetbrains.kotlin.ir.interpreter.transformer.transformConst
class ConstEvaluationLowering(
val context: CommonBackendContext,
@@ -33,7 +34,9 @@ class ConstEvaluationLowering(
private val mode = EvaluationMode.ONLY_INTRINSIC_CONST
override fun lower(irFile: IrFile) {
irFile.runConstOptimizations(
val useFir = context.configuration[CommonConfigurationKeys.USE_FIR] == true
val preprocessedFile = if (useFir) irFile else irFile.preprocessForConstTransformer(interpreter, mode)
preprocessedFile.runConstOptimizations(
interpreter, mode, evaluatedConstTracker, inlineConstTracker, onWarning, onError, suppressErrors
)
}