[FIR] Implement CONFLICTING_INHERITED_MEMBERS diagnostic
This commit is contained in:
committed by
teamcityserver
parent
78519f851e
commit
3f7d050f8f
+9
@@ -1700,6 +1700,15 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.CONFLICTING_INHERITED_MEMBERS) { firDiagnostic ->
|
||||
ConflictingInheritedMembersImpl(
|
||||
firDiagnostic.a.map { firCallableDeclaration ->
|
||||
firSymbolBuilder.callableBuilder.buildCallableSymbol(firCallableDeclaration as FirCallableDeclaration)
|
||||
},
|
||||
firDiagnostic as FirPsiDiagnostic<*>,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.ABSTRACT_MEMBER_NOT_IMPLEMENTED) { firDiagnostic ->
|
||||
AbstractMemberNotImplementedImpl(
|
||||
firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.a),
|
||||
|
||||
+5
@@ -1207,6 +1207,11 @@ sealed class KtFirDiagnostic<PSI: PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
abstract val baseDeclaration: KtCallableSymbol
|
||||
}
|
||||
|
||||
abstract class ConflictingInheritedMembers : KtFirDiagnostic<KtClassOrObject>() {
|
||||
override val diagnosticClass get() = ConflictingInheritedMembers::class
|
||||
abstract val conflictingDeclarations: List<KtCallableSymbol>
|
||||
}
|
||||
|
||||
abstract class AbstractMemberNotImplemented : KtFirDiagnostic<KtClassOrObject>() {
|
||||
override val diagnosticClass get() = AbstractMemberNotImplemented::class
|
||||
abstract val classOrObject: KtClassLikeSymbol
|
||||
|
||||
+8
@@ -1937,6 +1937,14 @@ internal class VarOverriddenByValByDelegationImpl(
|
||||
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
internal class ConflictingInheritedMembersImpl(
|
||||
override val conflictingDeclarations: List<KtCallableSymbol>,
|
||||
firDiagnostic: FirPsiDiagnostic<*>,
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.ConflictingInheritedMembers(), KtAbstractFirDiagnostic<KtClassOrObject> {
|
||||
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
internal class AbstractMemberNotImplementedImpl(
|
||||
override val classOrObject: KtClassLikeSymbol,
|
||||
override val missingDeclaration: KtCallableSymbol,
|
||||
|
||||
Reference in New Issue
Block a user