diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallTransformer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallTransformer.java index ab485aad1ad..4f38c12154f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallTransformer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallTransformer.java @@ -119,7 +119,7 @@ public class CallTransformer { CallCandidateResolutionContext contextWithoutReceiver = createContextWithChainedTrace( candidateWithoutReceiver, variableCallWithoutReceiver, candidateTrace, task); - contextWithoutReceiver.receiverForVariableAsFunctionSecondCall = variableCall.getExplicitReceiver(); + contextWithoutReceiver.explicitExtensionReceiverForInvoke = variableCall.getExplicitReceiver(); return Lists.newArrayList(contextWithReceiver, contextWithoutReceiver); } @@ -192,7 +192,7 @@ public class CallTransformer { final ResolvedCallWithTrace variableResolvedCall = (ResolvedCallWithTrace)context.candidateCall; - Call functionCall = new CallForImplicitInvoke(context.receiverForVariableAsFunctionSecondCall, task, returnType); + Call functionCall = new CallForImplicitInvoke(context.explicitExtensionReceiverForInvoke, task, returnType); DelegatingBindingTrace variableCallTrace = context.candidateCall.getTrace(); BasicCallResolutionContext basicCallResolutionContext = BasicCallResolutionContext.create( @@ -215,33 +215,33 @@ public class CallTransformer { public static class CallForImplicitInvoke extends DelegatingCall { final Call outerCall; - final ReceiverValue receiverForVariableAsFunctionSecondCall; - final ExpressionReceiver receiverFromVariable; - final JetSimpleNameExpression invokeExpression; + final ReceiverValue explicitExtensionReceiver; + final ExpressionReceiver calleeExpressionAsThisObject; + final JetSimpleNameExpression fakeInvokeExpression; - private CallForImplicitInvoke(ReceiverValue receiverForVariableAsFunctionSecondCall, + private CallForImplicitInvoke(ReceiverValue explicitExtensionReceiver, ResolutionTask task, JetType returnType) { super(task.call); this.outerCall = task.call; - this.receiverForVariableAsFunctionSecondCall = receiverForVariableAsFunctionSecondCall; - this.receiverFromVariable = new ExpressionReceiver(task.reference, returnType); - this.invokeExpression = (JetSimpleNameExpression) JetPsiFactory.createExpression(task.call.getCallElement().getProject(), "invoke"); + this.explicitExtensionReceiver = explicitExtensionReceiver; + this.calleeExpressionAsThisObject = new ExpressionReceiver(task.reference, returnType); + this.fakeInvokeExpression = (JetSimpleNameExpression) JetPsiFactory.createExpression(task.call.getCallElement().getProject(), "invoke"); } @NotNull @Override public ReceiverValue getExplicitReceiver() { - return receiverForVariableAsFunctionSecondCall; + return explicitExtensionReceiver; } @NotNull @Override public ReceiverValue getThisObject() { - return receiverFromVariable; + return calleeExpressionAsThisObject; } @Override public JetExpression getCalleeExpression() { - return invokeExpression; + return fakeInvokeExpression; } @NotNull @@ -254,7 +254,7 @@ public class CallTransformer { return list; } } - return invokeExpression; + return fakeInvokeExpression; } @NotNull diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/context/CallCandidateResolutionContext.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/context/CallCandidateResolutionContext.java index 16c036a8abd..bc5febb5964 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/context/CallCandidateResolutionContext.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/context/CallCandidateResolutionContext.java @@ -34,7 +34,7 @@ import org.jetbrains.jet.lang.types.expressions.LabelResolver; public final class CallCandidateResolutionContext extends CallResolutionContext> { public final ResolvedCallImpl candidateCall; public final TracingStrategy tracing; - public ReceiverValue receiverForVariableAsFunctionSecondCall = ReceiverValue.NO_RECEIVER; + public ReceiverValue explicitExtensionReceiverForInvoke = ReceiverValue.NO_RECEIVER; private CallCandidateResolutionContext( @NotNull ResolvedCallImpl candidateCall,