diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java index fff5f9509de..1d772e344eb 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java @@ -2322,7 +2322,8 @@ public class ExpressionCodegen extends JetVisitor implem @NotNull CallGenerator callGenerator, @NotNull ArgumentGenerator argumentGenerator ) { - StackValue.SafeCall safeCallReceiver = receiver instanceof StackValue.SafeCall ? (StackValue.SafeCall) receiver : null; + callableMethod.beforeParameterGeneration(v, null); + if (!(resolvedCall.getResultingDescriptor() instanceof ConstructorDescriptor)) { // otherwise already receiver = StackValue.receiver(resolvedCall, receiver, this, callableMethod); @@ -2334,15 +2335,7 @@ public class ExpressionCodegen extends JetVisitor implem } } - if (safeCallReceiver != null) { - //justCoerce - receiver.put(receiver.type, v); - callableMethod.beforeParameterGeneration(v, StackValue.onStack(receiver.type)); - } - else { - callableMethod.beforeParameterGeneration(v, null); - receiver.put(receiver.type, v); - } + receiver.put(receiver.type, v); } callGenerator.putHiddenParams();