[IR] Transformed InlineFunctionResolver into abstract class

#KT-64807
This commit is contained in:
Ivan Kylchik
2024-02-07 19:10:18 +01:00
committed by Space Team
parent 30b63e4843
commit 91f818ba5a
@@ -38,14 +38,14 @@ import org.jetbrains.kotlin.ir.visitors.*
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.util.OperatorNameConventions import org.jetbrains.kotlin.util.OperatorNameConventions
interface InlineFunctionResolver { abstract class InlineFunctionResolver {
fun getFunctionDeclaration(symbol: IrFunctionSymbol): IrFunction = symbol.owner open fun getFunctionDeclaration(symbol: IrFunctionSymbol): IrFunction = symbol.owner
fun shouldExcludeFunctionFromInlining(symbol: IrFunctionSymbol): Boolean { open fun shouldExcludeFunctionFromInlining(symbol: IrFunctionSymbol): Boolean {
return Symbols.isLateinitIsInitializedPropertyGetter(symbol) || Symbols.isTypeOfIntrinsic(symbol) return Symbols.isLateinitIsInitializedPropertyGetter(symbol) || Symbols.isTypeOfIntrinsic(symbol)
} }
companion object { companion object {
val TRIVIAL = object : InlineFunctionResolver {} val TRIVIAL = object : InlineFunctionResolver() {}
} }
} }
@@ -55,7 +55,7 @@ fun IrFunction.isBuiltInSuspendCoroutineUninterceptedOrReturn(): Boolean =
StandardNames.COROUTINES_INTRINSICS_PACKAGE_FQ_NAME StandardNames.COROUTINES_INTRINSICS_PACKAGE_FQ_NAME
) )
open class InlineFunctionResolverReplacingCoroutineIntrinsics(open val context: CommonBackendContext) : InlineFunctionResolver { open class InlineFunctionResolverReplacingCoroutineIntrinsics(open val context: CommonBackendContext) : InlineFunctionResolver() {
override fun getFunctionDeclaration(symbol: IrFunctionSymbol): IrFunction { override fun getFunctionDeclaration(symbol: IrFunctionSymbol): IrFunction {
val function = symbol.owner val function = symbol.owner
// TODO: Remove these hacks when coroutine intrinsics are fixed. // TODO: Remove these hacks when coroutine intrinsics are fixed.