diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java index a3dd3fcc84b..d71e8272047 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java @@ -52,7 +52,6 @@ import java.util.List; import static org.jetbrains.jet.lang.diagnostics.Errors.*; import static org.jetbrains.jet.lang.resolve.BindingContext.*; import static org.jetbrains.jet.lang.resolve.DescriptorUtils.getStaticNestedClassesScope; - import static org.jetbrains.jet.lang.types.TypeUtils.NO_EXPECTED_TYPE; public class CallExpressionResolver { @@ -191,7 +190,7 @@ public class CallExpressionResolver { @Nullable private ResolvedCallWithTrace getResolvedCallForFunction( - @NotNull Call call, @NotNull JetExpression callExpression, @NotNull ReceiverValue receiver, + @NotNull Call call, @NotNull JetExpression callExpression, @NotNull ResolutionContext context, @NotNull ResolveMode resolveMode, @NotNull ResolutionResultsCache resolutionResultsCache, @NotNull boolean[] result ) { @@ -199,7 +198,7 @@ public class CallExpressionResolver { OverloadResolutionResultsImpl results = callResolver.resolveFunctionCall( BasicCallResolutionContext.create(context, call, resolveMode, resolutionResultsCache)); if (!results.isNothing()) { - checkSuper(receiver, results, context.trace, callExpression); + checkSuper(call.getExplicitReceiver(), results, context.trace, callExpression); result[0] = true; if (results.isSingleResult() && resolveMode == ResolveMode.TOP_LEVEL_CALL) { if (!CallResolverUtil.hasInferredReturnType(results.getResultingCall())) return null; @@ -269,8 +268,7 @@ public class CallExpressionResolver { Call call = CallMaker.makeCall(nameExpression, receiver, callOperationNode, nameExpression, Collections.emptyList()); TemporaryBindingTrace traceForFunction = TemporaryBindingTrace.create(context.trace, "trace to resolve as function", nameExpression); ResolvedCall resolvedCall = getResolvedCallForFunction( - call, nameExpression, receiver, context, ResolveMode.TOP_LEVEL_CALL, - ResolutionResultsCache.create(), result); + call, nameExpression, context, ResolveMode.TOP_LEVEL_CALL, ResolutionResultsCache.create(), result); if (result[0]) { FunctionDescriptor functionDescriptor = resolvedCall != null ? resolvedCall.getResultingDescriptor() : null; traceForFunction.commit(); @@ -285,7 +283,7 @@ public class CallExpressionResolver { } @NotNull - public JetTypeInfo getCallExpressionTypeInfo( + public JetTypeInfo getCallExpressionTypeInfo( @NotNull JetCallExpression callExpression, @NotNull ReceiverValue receiver, @Nullable ASTNode callOperationNode, @NotNull ResolutionContext context, @NotNull ResolveMode resolveMode, @NotNull ResolutionResultsCache resolutionResultsCache @@ -299,7 +297,7 @@ public class CallExpressionResolver { } @NotNull - public JetTypeInfo getCallExpressionTypeInfoWithoutFinalTypeCheck( + public JetTypeInfo getCallExpressionTypeInfoWithoutFinalTypeCheck( @NotNull JetCallExpression callExpression, @NotNull ReceiverValue receiver, @Nullable ASTNode callOperationNode, @NotNull ResolutionContext context, @NotNull ResolveMode resolveMode, @NotNull ResolutionResultsCache resolutionResultsCache @@ -309,7 +307,7 @@ public class CallExpressionResolver { TemporaryBindingTrace traceForFunction = TemporaryBindingTrace.create(context.trace, "trace to resolve as function call", callExpression); ResolvedCallWithTrace resolvedCall = getResolvedCallForFunction( - call, callExpression, receiver, context.replaceBindingTrace(traceForFunction), resolveMode, resolutionResultsCache, result); + call, callExpression, context.replaceBindingTrace(traceForFunction), resolveMode, resolutionResultsCache, result); if (result[0]) { FunctionDescriptor functionDescriptor = resolvedCall != null ? resolvedCall.getResultingDescriptor() : null; traceForFunction.commit();