[JS FIR] Generate FIR checker components
Generate components for JSCODE_ARGUMENT_NON_CONST_EXPRESSION ^KT-59435
This commit is contained in:
committed by
Space Team
parent
720fe2ac89
commit
2d934f6357
+6
@@ -5651,6 +5651,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirJsErrors.JSCODE_ARGUMENT_NON_CONST_EXPRESSION) { firDiagnostic ->
|
||||
JscodeArgumentNonConstExpressionImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirSyntaxErrors.SYNTAX) { firDiagnostic ->
|
||||
SyntaxImpl(
|
||||
firDiagnostic.a,
|
||||
|
||||
+4
@@ -3929,6 +3929,10 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
val operation: String
|
||||
}
|
||||
|
||||
interface JscodeArgumentNonConstExpression : KtFirDiagnostic<KtElement> {
|
||||
override val diagnosticClass get() = JscodeArgumentNonConstExpression::class
|
||||
}
|
||||
|
||||
interface Syntax : KtFirDiagnostic<PsiElement> {
|
||||
override val diagnosticClass get() = Syntax::class
|
||||
val message: String
|
||||
|
||||
+5
@@ -4748,6 +4748,11 @@ internal class WrongOperationWithDynamicImpl(
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtElement>(firDiagnostic, token), KtFirDiagnostic.WrongOperationWithDynamic
|
||||
|
||||
internal class JscodeArgumentNonConstExpressionImpl(
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtElement>(firDiagnostic, token), KtFirDiagnostic.JscodeArgumentNonConstExpression
|
||||
|
||||
internal class SyntaxImpl(
|
||||
override val message: String,
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
|
||||
+4
@@ -150,4 +150,8 @@ object JS_DIAGNOSTICS_LIST : DiagnosticList("FirJsErrors") {
|
||||
parameter<String>("operation")
|
||||
}
|
||||
}
|
||||
|
||||
val JSCODE by object : DiagnosticGroup("JsCode") {
|
||||
val JSCODE_ARGUMENT_NON_CONST_EXPRESSION by error<KtElement>()
|
||||
}
|
||||
}
|
||||
|
||||
+3
@@ -103,6 +103,9 @@ object FirJsErrors {
|
||||
val SPREAD_OPERATOR_IN_DYNAMIC_CALL by error0<KtElement>(SourceElementPositioningStrategies.SPREAD_OPERATOR)
|
||||
val WRONG_OPERATION_WITH_DYNAMIC by error1<KtElement, String>()
|
||||
|
||||
// JsCode
|
||||
val JSCODE_ARGUMENT_NON_CONST_EXPRESSION by error0<KtElement>()
|
||||
|
||||
init {
|
||||
RootDiagnosticRendererFactory.registerFactory(FirJsErrorsDefaultMessages)
|
||||
}
|
||||
|
||||
+2
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrors.ENUM_CLASS_I
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrors.EXTERNAL_INTERFACE_AS_REIFIED_TYPE_ARGUMENT
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrors.JS_EXTERNAL_INHERITORS_ONLY
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrors.INLINE_EXTERNAL_DECLARATION
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrors.JSCODE_ARGUMENT_NON_CONST_EXPRESSION
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrors.JS_BUILTIN_NAME_CLASH
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrors.JS_EXTERNAL_ARGUMENT
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrors.JS_MODULE_PROHIBITED_ON_NON_NATIVE
|
||||
@@ -247,5 +248,6 @@ object FirJsErrorsDefaultMessages : BaseDiagnosticRendererFactory() {
|
||||
"Exported declaration contains non-consumable identifier ''{0}'', which cannot be represented inside TS definitions and ESM.",
|
||||
CommonRenderers.STRING,
|
||||
)
|
||||
map.put(JSCODE_ARGUMENT_NON_CONST_EXPRESSION, "An argument for the 'js()' function must be a constant string expression.")
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -650,6 +650,7 @@ val FIR_NON_SUPPRESSIBLE_ERROR_NAMES: Set<String> = setOf(
|
||||
"PROPERTY_DELEGATION_BY_DYNAMIC",
|
||||
"SPREAD_OPERATOR_IN_DYNAMIC_CALL",
|
||||
"WRONG_OPERATION_WITH_DYNAMIC",
|
||||
"JSCODE_ARGUMENT_NON_CONST_EXPRESSION",
|
||||
"THROWS_LIST_EMPTY",
|
||||
"INCOMPATIBLE_THROWS_OVERRIDE",
|
||||
"INCOMPATIBLE_THROWS_INHERITED",
|
||||
|
||||
Reference in New Issue
Block a user