[FIR] Filter duplicates in KtSymbolDeclarationOverridesProvider's output

^KT-54430
This commit is contained in:
Artem Vasilev
2023-03-02 17:53:14 +01:00
committed by Space Team
parent cac612f967
commit f7dea5bd70
2 changed files with 4 additions and 4 deletions
@@ -27,12 +27,12 @@ internal class KtFe10SymbolDeclarationOverridesProvider(
override fun <T : KtSymbol> getAllOverriddenSymbols(callableSymbol: T): List<KtCallableSymbol> {
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 <T : KtSymbol> getDirectlyOverriddenSymbols(callableSymbol: T): List<KtCallableSymbol> {
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(
@@ -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 <T : KtSymbol> getDirectlyOverriddenSymbols(callableSymbol: T): List<KtCallableSymbol> {
@@ -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) {