[FIR JS] Report JS_MODULE-related diagnostics

This commit is contained in:
Nikolay Lunyak
2023-01-03 14:27:37 +02:00
committed by Space Team
parent f422a3a4e8
commit 0426f35684
20 changed files with 210 additions and 43 deletions
@@ -982,6 +982,24 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirJsErrors.JS_MODULE_PROHIBITED_ON_VAR) { firDiagnostic ->
JsModuleProhibitedOnVarImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirJsErrors.JS_MODULE_PROHIBITED_ON_NON_NATIVE) { firDiagnostic ->
JsModuleProhibitedOnNonNativeImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirJsErrors.NESTED_JS_MODULE_PROHIBITED) { firDiagnostic ->
NestedJsModuleProhibitedImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirErrors.OPT_IN_USAGE) { firDiagnostic ->
OptInUsageImpl(
firDiagnostic.a,
@@ -707,6 +707,18 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = WrongJsQualifier::class
}
abstract class JsModuleProhibitedOnVar : KtFirDiagnostic<KtElement>() {
override val diagnosticClass get() = JsModuleProhibitedOnVar::class
}
abstract class JsModuleProhibitedOnNonNative : KtFirDiagnostic<KtElement>() {
override val diagnosticClass get() = JsModuleProhibitedOnNonNative::class
}
abstract class NestedJsModuleProhibited : KtFirDiagnostic<KtElement>() {
override val diagnosticClass get() = NestedJsModuleProhibited::class
}
abstract class OptInUsage : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = OptInUsage::class
abstract val optInMarkerFqName: FqName
@@ -849,6 +849,21 @@ internal class WrongJsQualifierImpl(
override val token: KtLifetimeToken,
) : KtFirDiagnostic.WrongJsQualifier(), KtAbstractFirDiagnostic<KtElement>
internal class JsModuleProhibitedOnVarImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,
) : KtFirDiagnostic.JsModuleProhibitedOnVar(), KtAbstractFirDiagnostic<KtElement>
internal class JsModuleProhibitedOnNonNativeImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,
) : KtFirDiagnostic.JsModuleProhibitedOnNonNative(), KtAbstractFirDiagnostic<KtElement>
internal class NestedJsModuleProhibitedImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,
) : KtFirDiagnostic.NestedJsModuleProhibited(), KtAbstractFirDiagnostic<KtElement>
internal class OptInUsageImpl(
override val optInMarkerFqName: FqName,
override val message: String,