[FIR] Add new error diagnostic EVALUATION_ERROR

This diagnostic will be used to report errors from IR constant
evaluator.
This commit is contained in:
Ivan Kylchik
2023-07-17 12:28:02 +02:00
committed by Space Team
parent 84159596bd
commit 87b3d69d1b
2 changed files with 8 additions and 0 deletions
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.diagnostics.WhenMissingCase
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.model.*
import org.jetbrains.kotlin.fir.declarations.FirFunction
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.*
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.backend.common.BackendDiagnosticRenderers.SYMBOL_OWN
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.diagnostics.KtDiagnosticFactoryToRendererMap
import org.jetbrains.kotlin.diagnostics.SourceElementPositioningStrategies.ACTUAL_DECLARATION_NAME
import org.jetbrains.kotlin.diagnostics.error1
import org.jetbrains.kotlin.diagnostics.error2
import org.jetbrains.kotlin.diagnostics.error3
import org.jetbrains.kotlin.diagnostics.rendering.BaseDiagnosticRendererFactory
@@ -30,6 +31,7 @@ object CommonBackendErrors {
val MANY_IMPL_MEMBER_NOT_IMPLEMENTED by error2<PsiElement, String, String>()
val INCOMPATIBLE_MATCHING by error3<PsiElement, String, String, ExpectActualCompatibility.Incompatible<*>>()
val ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT by warning2<PsiElement, IrSymbol, IrSymbol>()
val EVALUATION_ERROR by error1<PsiElement, String>()
init {
RootDiagnosticRendererFactory.registerFactory(KtDefaultCommonBackendErrorMessages)
@@ -69,6 +71,11 @@ object KtDefaultCommonBackendErrorMessages : BaseDiagnosticRendererFactory() {
SYMBOL_OWNER_DECLARATION_FQ_NAME,
SYMBOL_OWNER_DECLARATION_FQ_NAME,
)
map.put(
CommonBackendErrors.EVALUATION_ERROR,
"Cannot evaluate constant expression: {0}",
STRING,
)
}
}