[FIR] Filter duplicates in KtSymbolDeclarationOverridesProvider's output
^KT-54430
This commit is contained in:
committed by
Space Team
parent
cac612f967
commit
f7dea5bd70
+2
-2
@@ -27,12 +27,12 @@ internal class KtFe10SymbolDeclarationOverridesProvider(
|
|||||||
|
|
||||||
override fun <T : KtSymbol> getAllOverriddenSymbols(callableSymbol: T): List<KtCallableSymbol> {
|
override fun <T : KtSymbol> getAllOverriddenSymbols(callableSymbol: T): List<KtCallableSymbol> {
|
||||||
val descriptor = getSymbolDescriptor(callableSymbol) as? CallableMemberDescriptor ?: return emptyList()
|
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> {
|
override fun <T : KtSymbol> getDirectlyOverriddenSymbols(callableSymbol: T): List<KtCallableSymbol> {
|
||||||
val descriptor = getSymbolDescriptor(callableSymbol) as? CallableMemberDescriptor ?: return emptyList()
|
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(
|
private fun getOverriddenDescriptors(
|
||||||
|
|||||||
+2
-2
@@ -42,7 +42,7 @@ internal class KtFirSymbolDeclarationOverridesProvider(
|
|||||||
overriddenDeclaration.symbol.collectIntersectionOverridesSymbolsTo(overriddenElement)
|
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> {
|
override fun <T : KtSymbol> getDirectlyOverriddenSymbols(callableSymbol: T): List<KtCallableSymbol> {
|
||||||
@@ -53,7 +53,7 @@ internal class KtFirSymbolDeclarationOverridesProvider(
|
|||||||
overriddenDeclaration.symbol.collectIntersectionOverridesSymbolsTo(overriddenElement)
|
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) {
|
private fun FirTypeScope.processCallableByName(declaration: FirDeclaration) = when (declaration) {
|
||||||
|
|||||||
Reference in New Issue
Block a user