Force boxing kotlin.Result return type of suspend functions
#KT-40843 Fixed
This commit is contained in:
@@ -52,10 +52,7 @@ import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression
|
||||
import org.jetbrains.kotlin.resolve.calls.model.DefaultValueArgument
|
||||
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.calls.model.VarargValueArgument
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.classId
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.isPublishedApi
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.*
|
||||
import org.jetbrains.kotlin.resolve.jvm.AsmTypes.DEFAULT_CONSTRUCTOR_MARKER
|
||||
import org.jetbrains.kotlin.resolve.jvm.AsmTypes.OBJECT_TYPE
|
||||
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
||||
@@ -385,6 +382,11 @@ class KotlinTypeMapper @JvmOverloads constructor(
|
||||
return functionDescriptor.builtIns.nullableAnyType
|
||||
}
|
||||
|
||||
// Force boxing for Result type, otherwise, the coroutines machinery will break
|
||||
if (originalReturnType.constructor.declarationDescriptor?.fqNameSafe == RESULT_FQ_NAME) {
|
||||
return functionDescriptor.builtIns.nullableAnyType
|
||||
}
|
||||
|
||||
// Don't box other inline classes
|
||||
return originalReturnType
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user