[FIR] Add support for OVERRIDE_CANNOT_BE_STATIC diagnostic

This commit is contained in:
Nikolay Lunyak
2021-07-28 19:54:54 +03:00
parent 5607be3920
commit 276bfd9305
11 changed files with 99 additions and 7 deletions
@@ -3664,6 +3664,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirJvmErrors.OVERRIDE_CANNOT_BE_STATIC) { firDiagnostic ->
OverrideCannotBeStaticImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirJvmErrors.INAPPLICABLE_JVM_NAME) { firDiagnostic ->
InapplicableJvmNameImpl(
firDiagnostic as FirPsiDiagnostic,
@@ -2550,6 +2550,10 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = IllegalJavaLangRecordSupertype::class
}
abstract class OverrideCannotBeStatic : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = OverrideCannotBeStatic::class
}
abstract class InapplicableJvmName : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = InapplicableJvmName::class
}
@@ -4138,6 +4138,13 @@ internal class IllegalJavaLangRecordSupertypeImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class OverrideCannotBeStaticImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.OverrideCannotBeStatic(), KtAbstractFirDiagnostic<PsiElement> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class InapplicableJvmNameImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,