[FIR] Add support for JVM_STATIC_NOT_IN_OBJECT_OR_COMPANION diagnostic

This commit is contained in:
Nikolay Lunyak
2021-07-29 16:03:03 +03:00
parent 276bfd9305
commit c2e5583780
19 changed files with 138 additions and 48 deletions
@@ -3670,6 +3670,18 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirJvmErrors.JVM_STATIC_NOT_IN_OBJECT_OR_CLASS_COMPANION) { firDiagnostic ->
JvmStaticNotInObjectOrClassCompanionImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirJvmErrors.JVM_STATIC_NOT_IN_OBJECT_OR_COMPANION) { firDiagnostic ->
JvmStaticNotInObjectOrCompanionImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirJvmErrors.INAPPLICABLE_JVM_NAME) { firDiagnostic ->
InapplicableJvmNameImpl(
firDiagnostic as FirPsiDiagnostic,
@@ -2554,6 +2554,14 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = OverrideCannotBeStatic::class
}
abstract class JvmStaticNotInObjectOrClassCompanion : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = JvmStaticNotInObjectOrClassCompanion::class
}
abstract class JvmStaticNotInObjectOrCompanion : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = JvmStaticNotInObjectOrCompanion::class
}
abstract class InapplicableJvmName : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = InapplicableJvmName::class
}
@@ -4145,6 +4145,20 @@ internal class OverrideCannotBeStaticImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class JvmStaticNotInObjectOrClassCompanionImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.JvmStaticNotInObjectOrClassCompanion(), KtAbstractFirDiagnostic<PsiElement> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class JvmStaticNotInObjectOrCompanionImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.JvmStaticNotInObjectOrCompanion(), KtAbstractFirDiagnostic<PsiElement> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class InapplicableJvmNameImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,