diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt index 336188dff68..dfc57f6204b 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.backend.generators.AnnotationGenerator import org.jetbrains.kotlin.fir.backend.generators.CallAndReferenceGenerator import org.jetbrains.kotlin.fir.backend.generators.FakeOverrideGenerator import org.jetbrains.kotlin.fir.backend.evaluate.IrConstTransformer +import org.jetbrains.kotlin.fir.backend.evaluate.evaluateConstants import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor import org.jetbrains.kotlin.fir.psi @@ -241,9 +242,7 @@ class Fir2IrConverter( descriptor.owner.parent = parentClass ?: continue } - irModuleFragment.files.forEach { - it.transformChildren(IrConstTransformer(irModuleFragment), null) - } + evaluateConstants(irModuleFragment) return Fir2IrResult(irModuleFragment, symbolTable, sourceManager, components) } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/evaluate/IrConstTransformer.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/evaluate/IrConstTransformer.kt index 2ae94e487cd..cc1af1b9821 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/evaluate/IrConstTransformer.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/evaluate/IrConstTransformer.kt @@ -23,6 +23,10 @@ import org.jetbrains.kotlin.ir.types.isArray import org.jetbrains.kotlin.ir.types.typeOrNull import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid +fun evaluateConstants(irModuleFragment: IrModuleFragment) { + irModuleFragment.files.forEach { it.transformChildren(IrConstTransformer(irModuleFragment), null) } +} + //TODO create abstract class that will be common for this and lowering class IrConstTransformer(irModuleFragment: IrModuleFragment) : IrElementTransformerVoid() { private val interpreter = IrInterpreter(irModuleFragment)