diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompileTimeConstantProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompileTimeConstantProvider.kt index 4e51b9fd195..b5f73c67e38 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompileTimeConstantProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompileTimeConstantProvider.kt @@ -25,7 +25,7 @@ internal class KtFirCompileTimeConstantProvider( override fun evaluate(expression: KtExpression): KtConstantValue? = withValidityAssertion { when (val fir = expression.getOrBuildFir(firResolveState)) { is FirExpression -> { - FirCompileTimeConstantEvaluator().evaluate(fir)?.let { KtFirConstantValueConverter.toConstantValue(it) } + FirCompileTimeConstantEvaluator.evaluate(fir)?.let { KtFirConstantValueConverter.toConstantValue(it) } ?: KtFirConstantValueConverter.toConstantValue(fir, firResolveState.rootModuleSession) } else -> throwUnexpectedFirElementError(fir, expression) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/evaluate/FirCompileTimeConstantEvaluator.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/evaluate/FirCompileTimeConstantEvaluator.kt index 47739f61f25..e93e28f6fe2 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/evaluate/FirCompileTimeConstantEvaluator.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/evaluate/FirCompileTimeConstantEvaluator.kt @@ -26,7 +26,7 @@ import org.jetbrains.kotlin.types.ConstantValueKind * An evaluator that transform numeric operation, such as div, into compile-time constant iff involved operands, such as explicit receiver * and the argument, are compile-time constant as well. */ -internal class FirCompileTimeConstantEvaluator { +internal object FirCompileTimeConstantEvaluator { // TODO: Handle boolean operators, const property loading, class reference, array, annotation values, etc. fun evaluate(expression: FirExpression): FirConstExpression<*>? =