diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt index a3eb9cfdb64..31776d84647 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt @@ -232,19 +232,18 @@ class FirTypeIntersectionScope private constructor( super.processClassifiersByNameWithSubstitution(name, processor) } + @Suppress("UNCHECKED_CAST") + private fun getDirectOverriddenSymbols(functionSymbol: FirFunctionSymbol<*>): Collection> = + overriddenSymbols[functionSymbol].orEmpty() as Collection> + override fun processOverriddenFunctionsWithDepth( functionSymbol: FirFunctionSymbol<*>, processor: (FirFunctionSymbol<*>, Int) -> ProcessorAction ): ProcessorAction { - @Suppress("UNCHECKED_CAST") - val directOverriddenSymbols = - overriddenSymbols[functionSymbol] as Collection>? - ?: return ProcessorAction.NEXT - - for (directOverridden in directOverriddenSymbols) { + for (directOverridden in getDirectOverriddenSymbols(functionSymbol)) { + if (!processor(directOverridden, 0)) return ProcessorAction.STOP // TODO: Preserve the scope where directOverridden came from for (scope in scopes) { - if (!processor(directOverridden, 0)) return ProcessorAction.STOP if (!scope.processOverriddenFunctionsWithDepth(directOverridden) { symbol, depth -> processor(symbol, depth) }