Remove suspendCoroutineOrReturn intrinsic from compiler

#KT-21240: Fixed

Also, change logic of intrinsics check.

 #KT-23438: Fixed
This commit is contained in:
Ilmir Usmanov
2018-07-06 19:06:54 +03:00
parent f766b2c473
commit bc4a7aec76
8 changed files with 21 additions and 114 deletions
@@ -496,7 +496,7 @@ public class JsInliner extends JsVisitorWithContextImpl {
@NotNull LanguageVersionSettings languageVersionSettings
) {
if (!(descriptor instanceof FunctionDescriptor)) return false;
return CommonCoroutineCodegenUtilKt.isBuiltInSuspendCoroutineOrReturn(
return CommonCoroutineCodegenUtilKt.isBuiltInSuspendCoroutineUninterceptedOrReturn(
(FunctionDescriptor) descriptor.getOriginal(), languageVersionSettings
);
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.js.translate.reference
import org.jetbrains.kotlin.backend.common.isBuiltInSuspendCoroutineOrReturn
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.PrimitiveType
import org.jetbrains.kotlin.builtins.functions.FunctionInvokeDescriptor
@@ -153,12 +152,7 @@ class CallArgumentTranslator private constructor(
val callableDescriptor = resolvedCall.resultingDescriptor
if (callableDescriptor is FunctionDescriptor && callableDescriptor.isSuspend) {
var continuationArg: JsExpression = TranslationUtils.translateContinuationArgument(context())
if (callableDescriptor.original.isBuiltInSuspendCoroutineOrReturn(context.languageVersionSettings)) {
val facadeName = context().getNameForDescriptor(TranslationUtils.getCoroutineProperty(context(), "facade"))
continuationArg = JsAstUtils.pureFqn(facadeName, continuationArg)
}
result.add(continuationArg)
result.add(TranslationUtils.translateContinuationArgument(context()))
}
removeLastUndefinedArguments(result)