diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt index e8a9ceddedf..20f71da3b09 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.backend.common.ir.getNonDefaultAdditionalStatementsF import org.jetbrains.kotlin.backend.common.ir.getOriginalStatementsFromInlinedBlock import org.jetbrains.kotlin.backend.common.lower.BOUND_RECEIVER_PARAMETER import org.jetbrains.kotlin.backend.common.lower.LoweredStatementOrigins -import org.jetbrains.kotlin.backend.common.lower.inline.isBuiltInSuspendCoroutineUninterceptedOrReturn import org.jetbrains.kotlin.backend.jvm.* import org.jetbrains.kotlin.backend.jvm.intrinsics.IntrinsicMethod import org.jetbrains.kotlin.backend.jvm.intrinsics.JavaClassProperty @@ -51,7 +50,6 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.ir.visitors.acceptVoid -import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.resolve.jvm.AsmTypes import org.jetbrains.kotlin.resolve.jvm.AsmTypes.JAVA_STRING_TYPE import org.jetbrains.kotlin.resolve.jvm.AsmTypes.OBJECT_TYPE diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/ir/IrInlineReferenceLocator.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/ir/IrInlineReferenceLocator.kt index 7065e85be93..dbba5fa7899 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/ir/IrInlineReferenceLocator.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/ir/IrInlineReferenceLocator.kt @@ -5,15 +5,15 @@ package org.jetbrains.kotlin.backend.jvm.ir -import org.jetbrains.kotlin.backend.common.lower.inline.isBuiltInSuspendCoroutineUninterceptedOrReturn -import org.jetbrains.kotlin.backend.common.lower.inline.isBuiltInSuspendCoroutine -import org.jetbrains.kotlin.ir.util.inlineDeclaration -import org.jetbrains.kotlin.ir.util.isFunctionInlining import org.jetbrains.kotlin.backend.jvm.JvmBackendContext import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.* +import org.jetbrains.kotlin.ir.util.inlineDeclaration +import org.jetbrains.kotlin.ir.util.isBuiltInSuspendCoroutine +import org.jetbrains.kotlin.ir.util.isBuiltInSuspendCoroutineUninterceptedOrReturn +import org.jetbrains.kotlin.ir.util.isFunctionInlining import org.jetbrains.kotlin.ir.visitors.IrElementVisitor /** diff --git a/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt b/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt index 9f5bc085516..17c2900bf45 100644 --- a/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt +++ b/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt @@ -18,7 +18,6 @@ import org.jetbrains.kotlin.backend.common.lower.LoweredStatementOrigins.INLINED import org.jetbrains.kotlin.backend.common.lower.LoweredStatementOrigins.INLINED_FUNCTION_REFERENCE import org.jetbrains.kotlin.backend.common.lower.at import org.jetbrains.kotlin.backend.common.lower.createIrBuilder -import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.ir.IrElement @@ -60,15 +59,6 @@ abstract class InlineFunctionResolver { } } -fun IrFunction.isBuiltInSuspendCoroutine(): Boolean = - isTopLevelInPackage("suspendCoroutine", StandardNames.COROUTINES_PACKAGE_FQ_NAME) - -fun IrFunction.isBuiltInSuspendCoroutineUninterceptedOrReturn(): Boolean = - isTopLevelInPackage( - "suspendCoroutineUninterceptedOrReturn", - StandardNames.COROUTINES_INTRINSICS_PACKAGE_FQ_NAME - ) - open class InlineFunctionResolverReplacingCoroutineIntrinsics(open val context: CommonBackendContext) : InlineFunctionResolver() { override fun getFunctionDeclaration(symbol: IrFunctionSymbol): IrFunction? { val function = super.getFunctionDeclaration(symbol) ?: return null diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt index f7466dcd13a..abc651f98f4 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.ir.util +import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.ir.* import org.jetbrains.kotlin.ir.declarations.* @@ -324,3 +325,12 @@ fun IrClassSymbol.getPropertySetter(name: String): IrSimpleFunctionSymbol? = own fun filterOutAnnotations(fqName: FqName, annotations: List): List { return annotations.filterNot { it.annotationClass.hasEqualFqName(fqName) } } + +fun IrFunction.isBuiltInSuspendCoroutine(): Boolean = + isTopLevelInPackage("suspendCoroutine", StandardNames.COROUTINES_PACKAGE_FQ_NAME) + +fun IrFunction.isBuiltInSuspendCoroutineUninterceptedOrReturn(): Boolean = + isTopLevelInPackage( + "suspendCoroutineUninterceptedOrReturn", + StandardNames.COROUTINES_INTRINSICS_PACKAGE_FQ_NAME + ) \ No newline at end of file