FIR IDE: make compile-time constant evaluator an object
because it doesn't have any states.
This commit is contained in:
committed by
Ilya Kirillov
parent
414881403b
commit
d3d3aeacb4
+1
-1
@@ -25,7 +25,7 @@ internal class KtFirCompileTimeConstantProvider(
|
|||||||
override fun evaluate(expression: KtExpression): KtConstantValue? = withValidityAssertion {
|
override fun evaluate(expression: KtExpression): KtConstantValue? = withValidityAssertion {
|
||||||
when (val fir = expression.getOrBuildFir(firResolveState)) {
|
when (val fir = expression.getOrBuildFir(firResolveState)) {
|
||||||
is FirExpression -> {
|
is FirExpression -> {
|
||||||
FirCompileTimeConstantEvaluator().evaluate(fir)?.let { KtFirConstantValueConverter.toConstantValue(it) }
|
FirCompileTimeConstantEvaluator.evaluate(fir)?.let { KtFirConstantValueConverter.toConstantValue(it) }
|
||||||
?: KtFirConstantValueConverter.toConstantValue(fir, firResolveState.rootModuleSession)
|
?: KtFirConstantValueConverter.toConstantValue(fir, firResolveState.rootModuleSession)
|
||||||
}
|
}
|
||||||
else -> throwUnexpectedFirElementError(fir, expression)
|
else -> throwUnexpectedFirElementError(fir, expression)
|
||||||
|
|||||||
+1
-1
@@ -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
|
* 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.
|
* 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.
|
// TODO: Handle boolean operators, const property loading, class reference, array, annotation values, etc.
|
||||||
fun evaluate(expression: FirExpression): FirConstExpression<*>? =
|
fun evaluate(expression: FirExpression): FirConstExpression<*>? =
|
||||||
|
|||||||
Reference in New Issue
Block a user