[FIR JS] Generate diagnostic componentss for JS FIR FE checks
Generate components for JS_NAME_CLASH and JS_FAKE_NAME_CLASH ^KT-59425 Related ^KT-59370 Related
This commit is contained in:
committed by
Space Team
parent
f5307173b5
commit
5ac277d058
+21
@@ -1326,6 +1326,27 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirJsErrors.JS_NAME_CLASH) { firDiagnostic ->
|
||||
JsNameClashImpl(
|
||||
firDiagnostic.a,
|
||||
firDiagnostic.b.map { firBasedSymbol ->
|
||||
firSymbolBuilder.buildSymbol(firBasedSymbol)
|
||||
},
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirJsErrors.JS_FAKE_NAME_CLASH) { firDiagnostic ->
|
||||
JsFakeNameClashImpl(
|
||||
firDiagnostic.a,
|
||||
firSymbolBuilder.buildSymbol(firDiagnostic.b),
|
||||
firDiagnostic.c.map { firBasedSymbol ->
|
||||
firSymbolBuilder.buildSymbol(firBasedSymbol)
|
||||
},
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.OPT_IN_USAGE) { firDiagnostic ->
|
||||
OptInUsageImpl(
|
||||
firDiagnostic.a,
|
||||
|
||||
+13
@@ -956,6 +956,19 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = NameContainsIllegalChars::class
|
||||
}
|
||||
|
||||
interface JsNameClash : KtFirDiagnostic<KtElement> {
|
||||
override val diagnosticClass get() = JsNameClash::class
|
||||
val name: String
|
||||
val existing: List<KtSymbol>
|
||||
}
|
||||
|
||||
interface JsFakeNameClash : KtFirDiagnostic<KtElement> {
|
||||
override val diagnosticClass get() = JsFakeNameClash::class
|
||||
val name: String
|
||||
val override: KtSymbol
|
||||
val existing: List<KtSymbol>
|
||||
}
|
||||
|
||||
interface OptInUsage : KtFirDiagnostic<PsiElement> {
|
||||
override val diagnosticClass get() = OptInUsage::class
|
||||
val optInMarkerFqName: FqName
|
||||
|
||||
+15
@@ -1148,6 +1148,21 @@ internal class NameContainsIllegalCharsImpl(
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtElement>(firDiagnostic, token), KtFirDiagnostic.NameContainsIllegalChars
|
||||
|
||||
internal class JsNameClashImpl(
|
||||
override val name: String,
|
||||
override val existing: List<KtSymbol>,
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtElement>(firDiagnostic, token), KtFirDiagnostic.JsNameClash
|
||||
|
||||
internal class JsFakeNameClashImpl(
|
||||
override val name: String,
|
||||
override val override: KtSymbol,
|
||||
override val existing: List<KtSymbol>,
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtElement>(firDiagnostic, token), KtFirDiagnostic.JsFakeNameClash
|
||||
|
||||
internal class OptInUsageImpl(
|
||||
override val optInMarkerFqName: FqName,
|
||||
override val message: String,
|
||||
|
||||
Reference in New Issue
Block a user