FIR: Extract FirTypeScope.getDirectOverridden*

This commit is contained in:
Denis Zharkov
2020-09-09 14:26:24 +03:00
parent 73c6eb2793
commit 11bc0e3225
2 changed files with 35 additions and 23 deletions
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.scopes
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.name.Name
@@ -129,3 +130,26 @@ inline fun FirTypeScope.processDirectlyOverriddenProperties(
): ProcessorAction = processDirectOverriddenPropertiesWithBaseScope(propertySymbol) { overridden, _ ->
processor(overridden)
}
fun FirTypeScope.getDirectOverriddenFunctions(function: FirNamedFunctionSymbol): List<FirNamedFunctionSymbol> {
val overriddenFunctions = mutableSetOf<FirNamedFunctionSymbol>()
processDirectlyOverriddenFunctions(function) {
if (it !is FirNamedFunctionSymbol) return@processDirectlyOverriddenFunctions ProcessorAction.NEXT
overriddenFunctions.add(it)
ProcessorAction.NEXT
}
return overriddenFunctions.toList()
}
fun FirTypeScope.getDirectOverriddenProperties(property: FirPropertySymbol): List<FirPropertySymbol> {
val overriddenProperties = mutableSetOf<FirPropertySymbol>()
processDirectlyOverriddenProperties(property) {
overriddenProperties.add(it)
ProcessorAction.NEXT
}
return overriddenProperties.toList()
}