diff --git a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/compilerPipeline.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/compilerPipeline.kt index 55a6f9f7105..4f4af30528c 100644 --- a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/compilerPipeline.kt +++ b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/klib/compilerPipeline.kt @@ -209,6 +209,7 @@ fun transformFirToIr( linkViaSignatures = false, evaluatedConstTracker = moduleStructure.compilerConfiguration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), + inlineConstTracker = null, ), IrGenerationExtension.getInstances(moduleStructure.project), signatureComposer = DescriptorSignatureComposerStub(JsManglerDesc), diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt index 530878a21d1..3fb27549467 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt @@ -159,6 +159,7 @@ object FirKotlinToJvmBytecodeCompiler { linkViaSignatures = moduleConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES), evaluatedConstTracker = moduleConfiguration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), + inlineConstTracker = moduleConfiguration[CommonConfigurationKeys.INLINE_CONST_TRACKER], ) val fir2IrAndIrActualizerResult = firResult.convertToIrAndActualizeForJvm( fir2IrExtensions, diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/pipeline/compilerPipeline.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/pipeline/compilerPipeline.kt index 28aac1ece8d..f1a132a0ca7 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/pipeline/compilerPipeline.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/pipeline/compilerPipeline.kt @@ -179,6 +179,7 @@ fun convertAnalyzedFirToIr( linkViaSignatures = input.configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES), evaluatedConstTracker = input.configuration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), + inlineConstTracker = input.configuration[CommonConfigurationKeys.INLINE_CONST_TRACKER], ) val (irModuleFragment, components, pluginContext, irActualizedResult) = analysisResults.convertToIrAndActualizeForJvm( diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConfiguration.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConfiguration.kt index d88253799fd..75f47a6f819 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConfiguration.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConfiguration.kt @@ -18,9 +18,11 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.constant.EvaluatedConstTracker +import org.jetbrains.kotlin.incremental.components.InlineConstTracker data class Fir2IrConfiguration( val languageVersionSettings: LanguageVersionSettings, val linkViaSignatures: Boolean, val evaluatedConstTracker: EvaluatedConstTracker, + val inlineConstTracker: InlineConstTracker?, ) 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 6766e36ac27..49ec0007d41 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 @@ -431,7 +431,12 @@ class Fir2IrConverter( val interpreter = IrInterpreter(IrInterpreterEnvironment(irModuleFragment.irBuiltins, configuration)) val mode = if (intrinsicConstEvaluation) EvaluationMode.ONLY_INTRINSIC_CONST else EvaluationMode.ONLY_BUILTINS irModuleFragment.files.forEach { - it.transformConst(interpreter, mode = mode, evaluatedConstTracker = fir2IrConfiguration.evaluatedConstTracker) + it.transformConst( + interpreter, + mode = mode, + evaluatedConstTracker = fir2IrConfiguration.evaluatedConstTracker, + inlineConstTracker = fir2IrConfiguration.inlineConstTracker, + ) } } diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerRunner.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerRunner.kt index 5d835b374bf..1a62b372069 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerRunner.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerRunner.kt @@ -277,6 +277,7 @@ open class IncrementalFirJvmCompilerRunner( linkViaSignatures = false, evaluatedConstTracker = configuration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), + inlineConstTracker = configuration[CommonConfigurationKeys.INLINE_CONST_TRACKER], ) val irGenerationExtensions = (projectEnvironment as? VfsBasedProjectEnvironment)?.project?.let { IrGenerationExtension.getInstances(it) }.orEmpty() diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/ConstEvaluationLowering.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/ConstEvaluationLowering.kt index 1d22369b462..933bf7e7704 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/ConstEvaluationLowering.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/ConstEvaluationLowering.kt @@ -26,10 +26,14 @@ class ConstEvaluationLowering( ) : FileLoweringPass { private val interpreter = IrInterpreter(IrInterpreterEnvironment(context.irBuiltIns, configuration), emptyMap()) private val evaluatedConstTracker = context.configuration[CommonConfigurationKeys.EVALUATED_CONST_TRACKER] + private val inlineConstTracker = context.configuration[CommonConfigurationKeys.INLINE_CONST_TRACKER] override fun lower(irFile: IrFile) { irFile.transformConst( - interpreter, mode = EvaluationMode.ONLY_INTRINSIC_CONST, evaluatedConstTracker, onWarning, onError, suppressErrors + interpreter, + mode = EvaluationMode.ONLY_INTRINSIC_CONST, + evaluatedConstTracker, inlineConstTracker, + onWarning, onError, suppressErrors ) } } diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/ConstLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/ConstLowering.kt index dc6703844c8..4f9542a7157 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/ConstLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/ConstLowering.kt @@ -12,10 +12,10 @@ import org.jetbrains.kotlin.backend.jvm.JvmBackendContext import org.jetbrains.kotlin.backend.jvm.ir.constantValue import org.jetbrains.kotlin.config.CommonConfigurationKeys import org.jetbrains.kotlin.incremental.components.InlineConstTracker -import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.expressions.* -import org.jetbrains.kotlin.ir.util.classId -import org.jetbrains.kotlin.ir.util.parentAsClass +import org.jetbrains.kotlin.ir.declarations.IrField +import org.jetbrains.kotlin.ir.declarations.IrFile +import org.jetbrains.kotlin.ir.expressions.IrConst +import org.jetbrains.kotlin.ir.interpreter.transformer.reportOnIr import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid internal val constPhase1 = makeIrFilePhase( @@ -40,14 +40,6 @@ class ConstLowering(val context: JvmBackendContext) : FileLoweringPass { private class JvmInlineConstTransformer(val irFile: IrFile, val inlineConstTracker: InlineConstTracker?) : InlineConstTransformer() { override val IrField.constantInitializer get() = constantValue() override fun reportInlineConst(field: IrField, value: IrConst<*>) { - if (inlineConstTracker == null) return - if (field.origin != IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB) return - - val path = irFile.path - val owner = field.parentAsClass.classId?.asString()?.replace(".", "$")?.replace("/", ".") ?: return - val name = field.name.asString() - val constType = value.kind.asString - - inlineConstTracker.report(path, owner, name, constType) + inlineConstTracker?.reportOnIr(irFile, field, value) } } \ No newline at end of file diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstAnnotationTransformer.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstAnnotationTransformer.kt index b57d8880d00..3f00114285f 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstAnnotationTransformer.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstAnnotationTransformer.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.ir.interpreter.transformer import org.jetbrains.kotlin.constant.EvaluatedConstTracker +import org.jetbrains.kotlin.incremental.components.InlineConstTracker import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrAnnotationContainer import org.jetbrains.kotlin.ir.declarations.IrFile @@ -25,10 +26,11 @@ internal abstract class IrConstAnnotationTransformer( mode: EvaluationMode, checker: IrInterpreterChecker, evaluatedConstTracker: EvaluatedConstTracker?, + inlineConstTracker: InlineConstTracker?, onWarning: (IrFile, IrElement, IrErrorExpression) -> Unit, onError: (IrFile, IrElement, IrErrorExpression) -> Unit, suppressExceptions: Boolean, -) : IrConstTransformer(interpreter, irFile, mode, checker, evaluatedConstTracker, onWarning, onError, suppressExceptions) { +) : IrConstTransformer(interpreter, irFile, mode, checker, evaluatedConstTracker, inlineConstTracker, onWarning, onError, suppressExceptions) { protected fun transformAnnotations(annotationContainer: IrAnnotationContainer) { annotationContainer.annotations.forEach { annotation -> transformAnnotation(annotation) diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstDeclarationAnnotationTransformer.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstDeclarationAnnotationTransformer.kt index 2f68f094427..a83e7e21bbb 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstDeclarationAnnotationTransformer.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstDeclarationAnnotationTransformer.kt @@ -6,17 +6,15 @@ package org.jetbrains.kotlin.ir.interpreter.transformer import org.jetbrains.kotlin.constant.EvaluatedConstTracker -import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.incremental.components.InlineConstTracker import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrStatement -import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrDeclarationBase import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.expressions.IrErrorExpression import org.jetbrains.kotlin.ir.interpreter.IrInterpreter import org.jetbrains.kotlin.ir.interpreter.checker.EvaluationMode import org.jetbrains.kotlin.ir.interpreter.checker.IrInterpreterChecker -import org.jetbrains.kotlin.ir.util.primaryConstructor internal class IrConstDeclarationAnnotationTransformer( interpreter: IrInterpreter, @@ -24,10 +22,11 @@ internal class IrConstDeclarationAnnotationTransformer( mode: EvaluationMode, checker: IrInterpreterChecker, evaluatedConstTracker: EvaluatedConstTracker?, + inlineConstTracker: InlineConstTracker?, onWarning: (IrFile, IrElement, IrErrorExpression) -> Unit, onError: (IrFile, IrElement, IrErrorExpression) -> Unit, suppressExceptions: Boolean, -) : IrConstAnnotationTransformer(interpreter, irFile, mode, checker, evaluatedConstTracker, onWarning, onError, suppressExceptions) { +) : IrConstAnnotationTransformer(interpreter, irFile, mode, checker, evaluatedConstTracker, inlineConstTracker, onWarning, onError, suppressExceptions) { override fun visitFile(declaration: IrFile, data: Nothing?): IrFile { transformAnnotations(declaration) return super.visitFile(declaration, data) diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstExpressionTransformer.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstExpressionTransformer.kt index dc8f5a28014..1ac26ff60a5 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstExpressionTransformer.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstExpressionTransformer.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.ir.interpreter.transformer import org.jetbrains.kotlin.constant.EvaluatedConstTracker import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.incremental.components.InlineConstTracker import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.declarations.* @@ -26,10 +27,11 @@ internal class IrConstExpressionTransformer( mode: EvaluationMode, checker: IrInterpreterChecker, evaluatedConstTracker: EvaluatedConstTracker?, + inlineConstTracker: InlineConstTracker?, onWarning: (IrFile, IrElement, IrErrorExpression) -> Unit, onError: (IrFile, IrElement, IrErrorExpression) -> Unit, suppressExceptions: Boolean, -) : IrConstTransformer(interpreter, irFile, mode, checker, evaluatedConstTracker, onWarning, onError, suppressExceptions) { +) : IrConstTransformer(interpreter, irFile, mode, checker, evaluatedConstTracker, inlineConstTracker, onWarning, onError, suppressExceptions) { private var inAnnotation: Boolean = false private inline fun visitAnnotationClass(crossinline block: () -> T): T { diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstTransformer.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstTransformer.kt index 67df88c1f70..ee7aa1e9216 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstTransformer.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstTransformer.kt @@ -7,26 +7,28 @@ package org.jetbrains.kotlin.ir.interpreter.transformer import org.jetbrains.kotlin.constant.ErrorValue import org.jetbrains.kotlin.constant.EvaluatedConstTracker +import org.jetbrains.kotlin.incremental.components.InlineConstTracker import org.jetbrains.kotlin.ir.IrElement -import org.jetbrains.kotlin.ir.declarations.IrFile -import org.jetbrains.kotlin.ir.declarations.nameWithPackage -import org.jetbrains.kotlin.ir.expressions.IrConst -import org.jetbrains.kotlin.ir.expressions.IrErrorExpression -import org.jetbrains.kotlin.ir.expressions.IrExpression +import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl import org.jetbrains.kotlin.ir.interpreter.IrInterpreter import org.jetbrains.kotlin.ir.interpreter.IrInterpreterConfiguration import org.jetbrains.kotlin.ir.interpreter.checker.* import org.jetbrains.kotlin.ir.interpreter.preprocessor.IrInterpreterKCallableNamePreprocessor import org.jetbrains.kotlin.ir.interpreter.preprocessor.IrInterpreterPreprocessorData +import org.jetbrains.kotlin.ir.interpreter.property import org.jetbrains.kotlin.ir.interpreter.toConstantValue +import org.jetbrains.kotlin.ir.util.classId import org.jetbrains.kotlin.ir.util.dump +import org.jetbrains.kotlin.ir.util.parentAsClass import org.jetbrains.kotlin.ir.visitors.IrElementTransformer fun IrFile.transformConst( interpreter: IrInterpreter, mode: EvaluationMode, evaluatedConstTracker: EvaluatedConstTracker? = null, + inlineConstTracker: InlineConstTracker? = null, onWarning: (IrFile, IrElement, IrErrorExpression) -> Unit = { _, _, _ -> }, onError: (IrFile, IrElement, IrErrorExpression) -> Unit = { _, _, _ -> }, suppressExceptions: Boolean = false, @@ -43,13 +45,13 @@ fun IrFile.transformConst( checkers.fold(preprocessedFile) { file, checker -> val irConstExpressionTransformer = IrConstExpressionTransformer( - interpreter, file, mode, checker, evaluatedConstTracker, onWarning, onError, suppressExceptions + interpreter, file, mode, checker, evaluatedConstTracker, inlineConstTracker, onWarning, onError, suppressExceptions ) val irConstDeclarationAnnotationTransformer = IrConstDeclarationAnnotationTransformer( - interpreter, file, mode, checker, evaluatedConstTracker, onWarning, onError, suppressExceptions + interpreter, file, mode, checker, evaluatedConstTracker, inlineConstTracker, onWarning, onError, suppressExceptions ) val irConstTypeAnnotationTransformer = IrConstTypeAnnotationTransformer( - interpreter, file, mode, checker, evaluatedConstTracker, onWarning, onError, suppressExceptions + interpreter, file, mode, checker, evaluatedConstTracker, inlineConstTracker, onWarning, onError, suppressExceptions ) file.transform(irConstExpressionTransformer, null) file.transform(irConstDeclarationAnnotationTransformer, null) @@ -64,7 +66,8 @@ internal abstract class IrConstTransformer( private val irFile: IrFile, private val mode: EvaluationMode, private val checker: IrInterpreterChecker, - private val evaluatedConstTracker: EvaluatedConstTracker? = null, + private val evaluatedConstTracker: EvaluatedConstTracker?, + private val inlineConstTracker: InlineConstTracker?, private val onWarning: (IrFile, IrElement, IrErrorExpression) -> Unit, private val onError: (IrFile, IrElement, IrErrorExpression) -> Unit, private val suppressExceptions: Boolean, @@ -117,6 +120,28 @@ internal abstract class IrConstTransformer( constant = if (result is IrErrorExpression) ErrorValue.create(result.description) else (result as IrConst<*>).toConstantValue() ) + + if (result is IrConst<*>) { + val field = when (this) { + is IrGetField -> this.symbol.owner + is IrCall -> this.symbol.owner.property?.backingField + else -> null + } + + if (field != null) inlineConstTracker?.reportOnIr(irFile, field, result) + } + return if (failAsError) result.reportIfError(this) else result.warningIfError(this) } } + +fun InlineConstTracker.reportOnIr(irFile: IrFile, field: IrField, value: IrConst<*>) { + if (field.origin != IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB) return + + val path = irFile.path + val owner = field.parentAsClass.classId?.asString()?.replace(".", "$")?.replace("/", ".") ?: return + val name = field.name.asString() + val constType = value.kind.asString + + report(path, owner, name, constType) +} diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstTypeAnnotationTransformer.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstTypeAnnotationTransformer.kt index 76eabc300e7..3b9d91465c5 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstTypeAnnotationTransformer.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/transformer/IrConstTypeAnnotationTransformer.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.ir.interpreter.transformer import org.jetbrains.kotlin.constant.EvaluatedConstTracker +import org.jetbrains.kotlin.incremental.components.InlineConstTracker import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.expressions.IrErrorExpression @@ -23,10 +24,11 @@ internal class IrConstTypeAnnotationTransformer( mode: EvaluationMode, checker: IrInterpreterChecker, evaluatedConstTracker: EvaluatedConstTracker?, + inlineConstTracker: InlineConstTracker?, onWarning: (IrFile, IrElement, IrErrorExpression) -> Unit, onError: (IrFile, IrElement, IrErrorExpression) -> Unit, suppressExceptions: Boolean, -) : IrConstAnnotationTransformer(interpreter, irFile, mode, checker, evaluatedConstTracker, onWarning, onError, suppressExceptions), +) : IrConstAnnotationTransformer(interpreter, irFile, mode, checker, evaluatedConstTracker, inlineConstTracker, onWarning, onError, suppressExceptions), IrTypeTransformerVoid { override fun transformType(container: IrElement, type: Type, data: Nothing?): Type { diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt index 15ae4956b1e..f017b896cfe 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt @@ -175,6 +175,7 @@ fun AbstractFirAnalyzerFacade.convertToJsIr( linkViaSignatures = generateSignatures, evaluatedConstTracker = configuration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), + inlineConstTracker = null, ) return Fir2IrConverter.createModuleFragmentWithSignaturesIfNeeded( session, scopeSession, firFiles.toList(), diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt index 26f04b93790..d09bcd81a93 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt @@ -302,6 +302,7 @@ open class FirFrontendFacade( linkViaSignatures = compilerConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES), evaluatedConstTracker = compilerConfiguration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), + inlineConstTracker = compilerConfiguration[CommonConfigurationKeys.INLINE_CONST_TRACKER], ), ktFiles, lightTreeFiles, diff --git a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/GenerationUtils.kt b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/GenerationUtils.kt index 6f914706b98..cabd050b0be 100644 --- a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/GenerationUtils.kt +++ b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/GenerationUtils.kt @@ -127,6 +127,7 @@ object GenerationUtils { linkViaSignatures = configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES), evaluatedConstTracker = configuration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), + inlineConstTracker = configuration[CommonConfigurationKeys.INLINE_CONST_TRACKER], ), files, emptyList(), diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt index 5f400527a29..456b4123efd 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt @@ -80,6 +80,7 @@ internal fun PhaseContext.fir2Ir( linkViaSignatures = false, evaluatedConstTracker = configuration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), + inlineConstTracker = null, ), IrGenerationExtension.getInstances(config.project), signatureComposer = DescriptorSignatureComposerStub(KonanManglerDesc),