[FIR] Support MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES

^KT-59408 Fixed
This commit is contained in:
Nikolay Lunyak
2023-07-17 14:50:12 +03:00
committed by Space Team
parent 9850987415
commit 61448531cb
21 changed files with 146 additions and 31 deletions
@@ -2502,6 +2502,20 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES) { firDiagnostic ->
MultipleDefaultsInheritedFromSupertypesImpl(
firSymbolBuilder.buildSymbol(firDiagnostic.a),
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirErrors.MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE) { firDiagnostic ->
MultipleDefaultsInheritedFromSupertypesWhenNoExplicitOverrideImpl(
firSymbolBuilder.buildSymbol(firDiagnostic.a),
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirErrors.OVERRIDING_FINAL_MEMBER) { firDiagnostic ->
OverridingFinalMemberImpl(
firSymbolBuilder.callableBuilder.buildCallableSymbol(firDiagnostic.a),
@@ -1778,6 +1778,16 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
val containingClassName: Name
}
interface MultipleDefaultsInheritedFromSupertypes : KtFirDiagnostic<KtElement> {
override val diagnosticClass get() = MultipleDefaultsInheritedFromSupertypes::class
val valueParameter: KtSymbol
}
interface MultipleDefaultsInheritedFromSupertypesWhenNoExplicitOverride : KtFirDiagnostic<KtElement> {
override val diagnosticClass get() = MultipleDefaultsInheritedFromSupertypesWhenNoExplicitOverride::class
val valueParameter: KtSymbol
}
interface OverridingFinalMember : KtFirDiagnostic<KtNamedDeclaration> {
override val diagnosticClass get() = OverridingFinalMember::class
val overriddenDeclaration: KtCallableSymbol
@@ -2136,6 +2136,18 @@ internal class CannotChangeAccessPrivilegeImpl(
token: KtLifetimeToken,
) : KtAbstractFirDiagnostic<KtModifierListOwner>(firDiagnostic, token), KtFirDiagnostic.CannotChangeAccessPrivilege
internal class MultipleDefaultsInheritedFromSupertypesImpl(
override val valueParameter: KtSymbol,
firDiagnostic: KtPsiDiagnostic,
token: KtLifetimeToken,
) : KtAbstractFirDiagnostic<KtElement>(firDiagnostic, token), KtFirDiagnostic.MultipleDefaultsInheritedFromSupertypes
internal class MultipleDefaultsInheritedFromSupertypesWhenNoExplicitOverrideImpl(
override val valueParameter: KtSymbol,
firDiagnostic: KtPsiDiagnostic,
token: KtLifetimeToken,
) : KtAbstractFirDiagnostic<KtElement>(firDiagnostic, token), KtFirDiagnostic.MultipleDefaultsInheritedFromSupertypesWhenNoExplicitOverride
internal class OverridingFinalMemberImpl(
override val overriddenDeclaration: KtCallableSymbol,
override val containingClassName: Name,