[FIR JS] Report WRONG_JS_QUALIFIER for the argument of JsQualifier

This commit is contained in:
Nikolay Lunyak
2023-01-03 13:38:57 +02:00
committed by Space Team
parent 73c89a5d9d
commit f422a3a4e8
21 changed files with 139 additions and 31 deletions
@@ -10,10 +10,11 @@ import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.JVM_DIAGNOSTICS_L
import java.nio.file.Paths
import org.jetbrains.kotlin.analysis.api.fir.generator.DiagnosticClassGenerator.generate
import org.jetbrains.kotlin.fir.builder.SYNTAX_DIAGNOSTIC_LIST
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.JS_DIAGNOSTICS_LIST
fun main() {
val rootPath = Paths.get("analysis/analysis-api-fir/src").toAbsolutePath()
val packageName = "org.jetbrains.kotlin.analysis.api.fir.diagnostics"
val diagnostics = DIAGNOSTICS_LIST + JVM_DIAGNOSTICS_LIST + SYNTAX_DIAGNOSTIC_LIST
val diagnostics = DIAGNOSTICS_LIST + JVM_DIAGNOSTICS_LIST + JS_DIAGNOSTICS_LIST + SYNTAX_DIAGNOSTIC_LIST
generate(rootPath, diagnostics, packageName)
}
@@ -976,6 +976,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirJsErrors.WRONG_JS_QUALIFIER) { firDiagnostic ->
WrongJsQualifierImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirErrors.OPT_IN_USAGE) { firDiagnostic ->
OptInUsageImpl(
firDiagnostic.a,
@@ -703,6 +703,10 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
abstract val typeFromTypesPhase: KtType
}
abstract class WrongJsQualifier : KtFirDiagnostic<KtElement>() {
override val diagnosticClass get() = WrongJsQualifier::class
}
abstract class OptInUsage : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = OptInUsage::class
abstract val optInMarkerFqName: FqName
@@ -844,6 +844,11 @@ internal class PluginAnnotationAmbiguityImpl(
override val token: KtLifetimeToken,
) : KtFirDiagnostic.PluginAnnotationAmbiguity(), KtAbstractFirDiagnostic<PsiElement>
internal class WrongJsQualifierImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,
) : KtFirDiagnostic.WrongJsQualifier(), KtAbstractFirDiagnostic<KtElement>
internal class OptInUsageImpl(
override val optInMarkerFqName: FqName,
override val message: String,
+1
View File
@@ -14,6 +14,7 @@ dependencies {
compileOnly(project(":compiler:psi"))
compileOnly(project(":core:compiler.common"))
compileOnly(project(":core:compiler.common.jvm"))
compileOnly(project(":core:compiler.common.js"))
implementation(project(":analysis:analysis-internal-utils"))
implementation(project(":analysis:analysis-api-providers"))
implementation(project(":analysis:kt-references"))