[FIR] Add a modifiers diagnostic for the backing field

This commit is contained in:
Nikolay Lunyak
2021-08-16 13:07:10 +03:00
committed by TeamCityServer
parent d4d43b9907
commit 47abdf2de1
8 changed files with 111 additions and 0 deletions
@@ -2430,6 +2430,20 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.INAPPLICABLE_BACKING_FIELD_VISIBILITY) { firDiagnostic ->
InapplicableBackingFieldVisibilityImpl(
firDiagnostic.a,
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.INAPPLICABLE_BACKING_FIELD_MODIFIER) { firDiagnostic ->
InapplicableBackingFieldModifierImpl(
firDiagnostic.a,
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.ABSTRACT_PROPERTY_IN_PRIMARY_CONSTRUCTOR_PARAMETERS) { firDiagnostic ->
AbstractPropertyInPrimaryConstructorParametersImpl(
firDiagnostic as FirPsiDiagnostic,
@@ -1719,6 +1719,16 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = PropertyMustHaveSetter::class
}
abstract class InapplicableBackingFieldVisibility : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = InapplicableBackingFieldVisibility::class
abstract val modifier: KtModifierKeywordToken
}
abstract class InapplicableBackingFieldModifier : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = InapplicableBackingFieldModifier::class
abstract val modifier: KtModifierKeywordToken
}
abstract class AbstractPropertyInPrimaryConstructorParameters : KtFirDiagnostic<KtModifierListOwner>() {
override val diagnosticClass get() = AbstractPropertyInPrimaryConstructorParameters::class
}
@@ -2788,6 +2788,22 @@ internal class LocalVariableWithTypeParametersImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class InapplicableBackingFieldVisibilityImpl(
override val modifier: KtModifierKeywordToken,
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.InapplicableBackingFieldVisibility(), KtAbstractFirDiagnostic<PsiElement> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class InapplicableBackingFieldModifierImpl(
override val modifier: KtModifierKeywordToken,
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.InapplicableBackingFieldModifier(), KtAbstractFirDiagnostic<PsiElement> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class ExpectedDeclarationWithBodyImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,