From 8f1c7aa8f6206c708e633b5baa9dee47e8abb0cd Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Thu, 20 Mar 2014 16:34:40 +0400 Subject: [PATCH] Refactoring: made 'resolveFunctionCall' return OverloadResolutionResults not OverloadResolutionResultsImpl --- .../jet/lang/resolve/calls/CallExpressionResolver.java | 6 +++--- .../jetbrains/jet/lang/resolve/calls/CallResolver.java | 6 ++---- .../calls/results/OverloadResolutionResultsUtil.java | 9 +++++---- .../types/expressions/BasicExpressionTypingVisitor.java | 2 +- 4 files changed, 11 insertions(+), 12 deletions(-) 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 5661e7c53b3..2b35a885b97 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 @@ -227,13 +227,13 @@ public class CallExpressionResolver { } @Nullable - public ResolvedCallWithTrace getResolvedCallForFunction( + public ResolvedCall getResolvedCallForFunction( @NotNull Call call, @NotNull JetExpression callExpression, @NotNull ResolutionContext context, @NotNull CheckValueArgumentsMode checkArguments, @NotNull boolean[] result ) { CallResolver callResolver = expressionTypingServices.getCallResolver(); - OverloadResolutionResultsImpl results = callResolver.resolveFunctionCall( + OverloadResolutionResults results = callResolver.resolveFunctionCall( BasicCallResolutionContext.create(context, call, checkArguments)); if (!results.isNothing()) { checkSuper(call.getExplicitReceiver(), results, context.trace, callExpression); @@ -343,7 +343,7 @@ public class CallExpressionResolver { TemporaryTraceAndCache temporaryForFunction = TemporaryTraceAndCache.create( context, "trace to resolve as function call", callExpression); - ResolvedCallWithTrace resolvedCall = getResolvedCallForFunction( + ResolvedCall resolvedCall = getResolvedCallForFunction( call, callExpression, context.replaceTraceAndCache(temporaryForFunction), CheckValueArgumentsMode.ENABLED, result); if (result[0]) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java index e23880d8b42..690fc864fd6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java @@ -192,7 +192,7 @@ public class CallResolver { } @NotNull - /*package*/ OverloadResolutionResultsImpl resolveFunctionCall(@NotNull BasicCallResolutionContext context) { + public OverloadResolutionResults resolveFunctionCall(@NotNull BasicCallResolutionContext context) { ProgressIndicatorProvider.checkCanceled(); @@ -291,11 +291,9 @@ public class CallResolver { Call call = new CallTransformer.CallForImplicitInvoke( context.call.getExplicitReceiver(), expressionReceiver, context.call); TracingStrategyForInvoke tracingForInvoke = new TracingStrategyForInvoke(calleeExpression, call, calleeType); - return (OverloadResolutionResultsImpl) - resolveCallForInvoke(context.replaceCall(call), tracingForInvoke); + return resolveCallForInvoke(context.replaceCall(call), tracingForInvoke); } else { -// checkTypesWithNoCallee(trace, scope, call); return checkArgumentTypesAndFail(context); } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/results/OverloadResolutionResultsUtil.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/results/OverloadResolutionResultsUtil.java index 350dde5aa1a..6ea026fce55 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/results/OverloadResolutionResultsUtil.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/results/OverloadResolutionResultsUtil.java @@ -42,17 +42,18 @@ public class OverloadResolutionResultsUtil { @NotNull OverloadResolutionResults results, @NotNull ContextDependency contextDependency ) { - ResolvedCall resultingCall = getResultingCall((OverloadResolutionResultsImpl) results, contextDependency); + ResolvedCall resultingCall = getResultingCall(results, contextDependency); return resultingCall != null ? resultingCall.getResultingDescriptor().getReturnType() : null; } @Nullable - public static ResolvedCallWithTrace getResultingCall( - @NotNull OverloadResolutionResultsImpl results, + public static ResolvedCall getResultingCall( + @NotNull OverloadResolutionResults results, @NotNull ContextDependency contextDependency ) { if (results.isSingleResult() && contextDependency == ContextDependency.INDEPENDENT) { - if (!results.getResultingCall().getCallToCompleteTypeArgumentInference().hasInferredReturnType()) { + ResolvedCall resultingCall = results.getResultingCall(); + if (!((ResolvedCallWithTrace)resultingCall).getCallToCompleteTypeArgumentInference().hasInferredReturnType()) { return null; } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java index 4103e3b8476..6b8855a4b41 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java @@ -565,7 +565,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { TemporaryBindingTrace trace = TemporaryBindingTrace.create(context.trace, "trace to resolve as function", reference); ExpressionTypingContext contextForResolve = context.replaceBindingTrace(trace).replaceExpectedType(NO_EXPECTED_TYPE); - ResolvedCallWithTrace function = components.expressionTypingServices.getCallExpressionResolver() + ResolvedCall function = components.expressionTypingServices.getCallExpressionResolver() .getResolvedCallForFunction(call, reference, contextForResolve, CheckValueArgumentsMode.DISABLED, result); if (!result[0]) return null;