[FIR] Fix error message for CONFLICTING_INHERITED_MEMBERS

This commit is contained in:
Dmitriy Novozhilov
2022-02-02 10:54:30 +03:00
parent ee1a842b6c
commit e544c404b9
7 changed files with 8 additions and 3 deletions
@@ -2091,7 +2091,8 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
}
add(FirErrors.CONFLICTING_INHERITED_MEMBERS) { firDiagnostic ->
ConflictingInheritedMembersImpl(
firDiagnostic.a.map { firCallableSymbol ->
firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.a),
firDiagnostic.b.map { firCallableSymbol ->
firSymbolBuilder.callableBuilder.buildCallableSymbol(firCallableSymbol)
},
firDiagnostic as KtPsiDiagnostic,
@@ -1492,6 +1492,7 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
abstract class ConflictingInheritedMembers : KtFirDiagnostic<KtClassOrObject>() {
override val diagnosticClass get() = ConflictingInheritedMembers::class
abstract val owner: KtClassLikeSymbol
abstract val conflictingDeclarations: List<KtCallableSymbol>
}
@@ -1788,6 +1788,7 @@ internal class VarOverriddenByValByDelegationImpl(
) : KtFirDiagnostic.VarOverriddenByValByDelegation(), KtAbstractFirDiagnostic<KtClassOrObject>
internal class ConflictingInheritedMembersImpl(
override val owner: KtClassLikeSymbol,
override val conflictingDeclarations: List<KtCallableSymbol>,
override val firDiagnostic: KtPsiDiagnostic,
override val token: ValidityToken,
@@ -751,6 +751,7 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") {
}
val CONFLICTING_INHERITED_MEMBERS by error<KtClassOrObject>(PositioningStrategy.DECLARATION_NAME) {
parameter<FirClassSymbol<*>>("owner")
parameter<List<FirCallableSymbol<*>>>("conflictingDeclarations")
}
@@ -428,7 +428,7 @@ object FirErrors {
val RETURN_TYPE_MISMATCH_BY_DELEGATION by error2<KtClassOrObject, FirCallableSymbol<*>, FirCallableSymbol<*>>(SourceElementPositioningStrategies.DECLARATION_NAME)
val PROPERTY_TYPE_MISMATCH_BY_DELEGATION by error2<KtClassOrObject, FirCallableSymbol<*>, FirCallableSymbol<*>>(SourceElementPositioningStrategies.DECLARATION_NAME)
val VAR_OVERRIDDEN_BY_VAL_BY_DELEGATION by error2<KtClassOrObject, FirCallableSymbol<*>, FirCallableSymbol<*>>(SourceElementPositioningStrategies.DECLARATION_NAME)
val CONFLICTING_INHERITED_MEMBERS by error1<KtClassOrObject, List<FirCallableSymbol<*>>>(SourceElementPositioningStrategies.DECLARATION_NAME)
val CONFLICTING_INHERITED_MEMBERS by error2<KtClassOrObject, FirClassSymbol<*>, List<FirCallableSymbol<*>>>(SourceElementPositioningStrategies.DECLARATION_NAME)
val ABSTRACT_MEMBER_NOT_IMPLEMENTED by error2<KtClassOrObject, FirClassSymbol<*>, FirCallableSymbol<*>>(SourceElementPositioningStrategies.DECLARATION_NAME)
val ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED by error2<KtClassOrObject, FirClassSymbol<*>, FirCallableSymbol<*>>(SourceElementPositioningStrategies.DECLARATION_NAME)
val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER by deprecationError2<KtClassOrObject, FirClassSymbol<*>, FirCallableSymbol<*>>(ProhibitInvisibleAbstractMethodsInSuperclasses, SourceElementPositioningStrategies.DECLARATION_NAME)
@@ -218,7 +218,7 @@ object FirImplementationMismatchChecker : FirClassChecker() {
}
clashes.forEach {
reporter.reportOn(containingClass.source, FirErrors.CONFLICTING_INHERITED_MEMBERS, it.toList(), context)
reporter.reportOn(containingClass.source, FirErrors.CONFLICTING_INHERITED_MEMBERS, containingClass.symbol, it.toList(), context)
}
}
@@ -1353,6 +1353,7 @@ object FirErrorsDefaultMessages : BaseDiagnosticRendererFactory() {
map.put(
CONFLICTING_INHERITED_MEMBERS,
"{0} inherits conflicting members: {1}",
DECLARATION_NAME,
commaSeparated(DECLARATION_NAME)
)