From f7dea5bd70135f3f9c42ec573c2e755d6655dd4c Mon Sep 17 00:00:00 2001 From: Artem Vasilev Date: Thu, 2 Mar 2023 17:53:14 +0100 Subject: [PATCH] [FIR] Filter duplicates in KtSymbolDeclarationOverridesProvider's output ^KT-54430 --- .../components/KtFe10SymbolDeclarationOverridesProvider.kt | 4 ++-- .../fir/components/KtFirSymbolDeclarationOverridesProvider.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10SymbolDeclarationOverridesProvider.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10SymbolDeclarationOverridesProvider.kt index a3380c1de3e..a37306ddaf4 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10SymbolDeclarationOverridesProvider.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10SymbolDeclarationOverridesProvider.kt @@ -27,12 +27,12 @@ internal class KtFe10SymbolDeclarationOverridesProvider( override fun getAllOverriddenSymbols(callableSymbol: T): List { val descriptor = getSymbolDescriptor(callableSymbol) as? CallableMemberDescriptor ?: return emptyList() - return getOverriddenDescriptors(descriptor, true).mapNotNull { it.toKtCallableSymbol(analysisContext) } + return getOverriddenDescriptors(descriptor, true).mapNotNull { it.toKtCallableSymbol(analysisContext) }.distinct() } override fun getDirectlyOverriddenSymbols(callableSymbol: T): List { val descriptor = getSymbolDescriptor(callableSymbol) as? CallableMemberDescriptor ?: return emptyList() - return getOverriddenDescriptors(descriptor, false).mapNotNull { it.toKtCallableSymbol(analysisContext) } + return getOverriddenDescriptors(descriptor, false).mapNotNull { it.toKtCallableSymbol(analysisContext) }.distinct() } private fun getOverriddenDescriptors( diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolDeclarationOverridesProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolDeclarationOverridesProvider.kt index 44fd6a56405..f46582ce942 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolDeclarationOverridesProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolDeclarationOverridesProvider.kt @@ -42,7 +42,7 @@ internal class KtFirSymbolDeclarationOverridesProvider( overriddenDeclaration.symbol.collectIntersectionOverridesSymbolsTo(overriddenElement) } } - return overriddenElement.map { analysisSession.firSymbolBuilder.callableBuilder.buildCallableSymbol(it) } + return overriddenElement.map { analysisSession.firSymbolBuilder.callableBuilder.buildCallableSymbol(it) }.distinct() } override fun getDirectlyOverriddenSymbols(callableSymbol: T): List { @@ -53,7 +53,7 @@ internal class KtFirSymbolDeclarationOverridesProvider( overriddenDeclaration.symbol.collectIntersectionOverridesSymbolsTo(overriddenElement) } } - return overriddenElement.map { analysisSession.firSymbolBuilder.callableBuilder.buildCallableSymbol(it) } + return overriddenElement.map { analysisSession.firSymbolBuilder.callableBuilder.buildCallableSymbol(it) }.distinct() } private fun FirTypeScope.processCallableByName(declaration: FirDeclaration) = when (declaration) {