diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java index e549a1ac218..3c51a44d0fa 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java @@ -2945,8 +2945,8 @@ public class ExpressionCodegen extends KtVisitor impleme if (isSuspensionPoint && isSafeCallOrOnStack) { boolean bothReceivers = receiver instanceof StackValue.CallReceiver - && ((StackValue.CallReceiver) receiver).getDispatchReceiver() != null - && ((StackValue.CallReceiver) receiver).getExtensionReceiver() != null; + && ((StackValue.CallReceiver) receiver).getDispatchReceiver().type.getSort() != Type.VOID + && ((StackValue.CallReceiver) receiver).getExtensionReceiver().type.getSort() != Type.VOID; Type firstReceiverType = bothReceivers ? ((StackValue.CallReceiver) receiver).getDispatchReceiver().type diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java index 503771c1236..4fce9cdc44a 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java @@ -1597,10 +1597,12 @@ public abstract class StackValue { AsmUtil.dup(v, extensionReceiver.type, dispatchReceiver.type); } + @NotNull public StackValue getDispatchReceiver() { return dispatchReceiver; } + @NotNull public StackValue getExtensionReceiver() { return extensionReceiver; }