[FIR] Add support for JVM_STATIC_ON_EXTERNAL_IN_INTERFACE diagnostic

This commit is contained in:
Nikolay Lunyak
2021-08-02 15:40:15 +03:00
parent 7006426304
commit 2a2c92d8b3
10 changed files with 38 additions and 15 deletions
@@ -3694,6 +3694,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirJvmErrors.JVM_STATIC_ON_EXTERNAL_IN_INTERFACE) { firDiagnostic ->
JvmStaticOnExternalInInterfaceImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirJvmErrors.INAPPLICABLE_JVM_NAME) { firDiagnostic ->
InapplicableJvmNameImpl(
firDiagnostic as FirPsiDiagnostic,
@@ -2570,6 +2570,10 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = JvmStaticOnConstOrJvmField::class
}
abstract class JvmStaticOnExternalInInterface : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = JvmStaticOnExternalInInterface::class
}
abstract class InapplicableJvmName : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = InapplicableJvmName::class
}
@@ -4173,6 +4173,13 @@ internal class JvmStaticOnConstOrJvmFieldImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class JvmStaticOnExternalInInterfaceImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.JvmStaticOnExternalInInterface(), KtAbstractFirDiagnostic<PsiElement> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class InapplicableJvmNameImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,