Move coroutine intrinsics to kotlin.coroutine.intrinsics package

Also rename val SUSPENDED to SUSPENDED_MARKER

 #KT-15698 Fixed
This commit is contained in:
Denis Zharkov
2017-01-13 15:43:50 +03:00
parent e0fa11b0c1
commit 2cb9d3a8ad
119 changed files with 446 additions and 348 deletions
@@ -19,12 +19,24 @@ package org.jetbrains.kotlin.backend.common
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.DescriptorEquivalenceForOverrides
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
val SUSPEND_WITH_CURRENT_CONTINUATION_NAME = Name.identifier("suspendWithCurrentContinuation")
val SUSPEND_COROUTINE_OR_RETURN_NAME = Name.identifier("suspendCoroutineOrReturn")
val CONTINUATION_RESUME_METHOD_NAME = Name.identifier("resume")
val SUSPENDED_MARKER_NAME = Name.identifier("SUSPENDED_MARKER")
fun FunctionDescriptor.getBuiltInSuspendWithCurrentContinuation() =
builtIns.builtInsCoroutinePackageFragment.getMemberScope()
.getContributedFunctions(SUSPEND_WITH_CURRENT_CONTINUATION_NAME, NoLookupLocation.FROM_BACKEND)
fun FunctionDescriptor.isBuiltInSuspendCoroutineOrReturn(): Boolean {
if (name != SUSPEND_COROUTINE_OR_RETURN_NAME) return false
val originalDeclaration = getBuiltInSuspendCoroutineOrReturn() ?: return false
return DescriptorEquivalenceForOverrides.areEquivalent(
originalDeclaration, this
)
}
fun FunctionDescriptor.getBuiltInSuspendCoroutineOrReturn() =
builtIns.builtInsCoroutineIntrinsicsPackageFragment.getMemberScope()
.getContributedFunctions(SUSPEND_COROUTINE_OR_RETURN_NAME, NoLookupLocation.FROM_BACKEND)
.singleOrNull()