Unify API of FirScope.processClassifiersByName (use ProcessorAction)

This commit is contained in:
Mikhail Glukhikh
2019-10-21 18:13:31 +03:00
parent d886d48cf0
commit 17b966daaa
11 changed files with 51 additions and 56 deletions
@@ -6,22 +6,17 @@
package org.jetbrains.kotlin.fir.scopes
import org.jetbrains.kotlin.fir.scopes.ProcessorAction.NEXT
import org.jetbrains.kotlin.fir.scopes.ProcessorAction.STOP
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.name.Name
abstract class FirScope {
@Deprecated(
"obsolete",
replaceWith = ReplaceWith("processClassifiersByNameWithAction(name, position) { if (processor()) ProcessorAction.NEXT else ProcessorAction.STOP }.next()")
)
open fun processClassifiersByName(
name: Name,
position: FirPosition,
processor: (FirClassifierSymbol<*>) -> Boolean
): Boolean = true
processor: (FirClassifierSymbol<*>) -> ProcessorAction
): ProcessorAction = NEXT
open fun processFunctionsByName(
name: Name,
@@ -35,18 +30,6 @@ abstract class FirScope {
): ProcessorAction = NEXT
}
inline fun FirScope.processClassifiersByNameWithAction(
name: Name,
position: FirPosition,
crossinline processor: (FirClassifierSymbol<*>) -> ProcessorAction
): ProcessorAction {
val result = processClassifiersByName(name, position) {
processor(it).next()
}
return if (result) NEXT else STOP
}
enum class FirPosition(val allowTypeParameters: Boolean = true) {
SUPER_TYPE_OR_EXPANSION(allowTypeParameters = false),
OTHER