Do not try to create view of suspend function descriptor on IR BE
Keep container source in wrapped descriptor
This commit is contained in:
+1
-1
@@ -391,7 +391,7 @@ fun createMethodNodeForSuspendCoroutineUninterceptedOrReturn(
|
||||
typeMapper: KotlinTypeMapper,
|
||||
languageVersionSettings: LanguageVersionSettings
|
||||
): MethodNode {
|
||||
assert(functionDescriptor.isBuiltInSuspendCoroutineUninterceptedOrReturnInJvm(languageVersionSettings)) {
|
||||
assert(functionDescriptor.isBuiltInSuspendCoroutineUninterceptedOrReturn(languageVersionSettings)) {
|
||||
"functionDescriptor must be kotlin.coroutines.intrinsics.suspendCoroutineUninterceptedOrReturn"
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.codegen.inline
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.isBuiltInIntercepted
|
||||
import org.jetbrains.kotlin.backend.common.isBuiltInSuspendCoroutineUninterceptedOrReturn
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.codegen.AsmUtil
|
||||
import org.jetbrains.kotlin.codegen.ExpressionCodegen
|
||||
@@ -48,7 +49,7 @@ internal fun generateInlineIntrinsic(
|
||||
createMethodNodeForIntercepted(descriptor, typeMapper, languageVersionSettings)
|
||||
descriptor.isBuiltInCoroutineContext(languageVersionSettings) ->
|
||||
createMethodNodeForCoroutineContext(descriptor, languageVersionSettings)
|
||||
descriptor.isBuiltInSuspendCoroutineUninterceptedOrReturnInJvm(languageVersionSettings) ->
|
||||
descriptor.isBuiltInSuspendCoroutineUninterceptedOrReturn(languageVersionSettings) ->
|
||||
createMethodNodeForSuspendCoroutineUninterceptedOrReturn(descriptor, typeMapper, languageVersionSettings)
|
||||
descriptor.isBuiltinAlwaysEnabledAssert() ->
|
||||
createMethodNodeForAlwaysEnabledAssert(descriptor, typeMapper)
|
||||
|
||||
@@ -172,7 +172,7 @@ class KotlinTypeMapper @JvmOverloads constructor(
|
||||
return Type.VOID_TYPE
|
||||
}
|
||||
|
||||
if (descriptor.isSuspendFunctionNotSuspensionView()) {
|
||||
if (descriptor.isSuspendFunctionNotSuspensionView() && !isIrBackend) {
|
||||
return mapReturnType(
|
||||
getOrCreateJvmSuspendFunctionView(descriptor as SimpleFunctionDescriptor, isReleaseCoroutines),
|
||||
sw
|
||||
@@ -733,7 +733,7 @@ class KotlinTypeMapper @JvmOverloads constructor(
|
||||
return mapSignature(f.callableFromObject, kind, skipGenericSignature)
|
||||
}
|
||||
|
||||
if (f.isSuspendFunctionNotSuspensionView()) {
|
||||
if (f.isSuspendFunctionNotSuspensionView() && !isIrBackend) {
|
||||
return mapSignature(
|
||||
getOrCreateJvmSuspendFunctionView(f, isReleaseCoroutines), kind,
|
||||
skipGenericSignature
|
||||
@@ -1315,10 +1315,6 @@ class KotlinTypeMapper @JvmOverloads constructor(
|
||||
return descriptor.containingDeclaration.name.asString()
|
||||
}
|
||||
|
||||
if (descriptor.containingDeclaration.fqNameSafe.asString() == "kotlin.coroutines.intrinsics") {
|
||||
return "kotlin.coroutines.IntrinsicsKt" // TODO: why this change is needed in JVM_IR?
|
||||
}
|
||||
|
||||
if (directMember is FictitiousArrayConstructor) {
|
||||
return "kotlin.Array"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user