Refactoring: made 'resolveFunctionCall' return OverloadResolutionResults
not OverloadResolutionResultsImpl
This commit is contained in:
committed by
Andrey Breslav
parent
9c21fb3b1f
commit
8f1c7aa8f6
+3
-3
@@ -227,13 +227,13 @@ public class CallExpressionResolver {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ResolvedCallWithTrace<FunctionDescriptor> getResolvedCallForFunction(
|
||||
public ResolvedCall<FunctionDescriptor> getResolvedCallForFunction(
|
||||
@NotNull Call call, @NotNull JetExpression callExpression,
|
||||
@NotNull ResolutionContext context, @NotNull CheckValueArgumentsMode checkArguments,
|
||||
@NotNull boolean[] result
|
||||
) {
|
||||
CallResolver callResolver = expressionTypingServices.getCallResolver();
|
||||
OverloadResolutionResultsImpl<FunctionDescriptor> results = callResolver.resolveFunctionCall(
|
||||
OverloadResolutionResults<FunctionDescriptor> 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<FunctionDescriptor> resolvedCall = getResolvedCallForFunction(
|
||||
ResolvedCall<FunctionDescriptor> resolvedCall = getResolvedCallForFunction(
|
||||
call, callExpression, context.replaceTraceAndCache(temporaryForFunction),
|
||||
CheckValueArgumentsMode.ENABLED, result);
|
||||
if (result[0]) {
|
||||
|
||||
@@ -192,7 +192,7 @@ public class CallResolver {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
/*package*/ OverloadResolutionResultsImpl<FunctionDescriptor> resolveFunctionCall(@NotNull BasicCallResolutionContext context) {
|
||||
public OverloadResolutionResults<FunctionDescriptor> 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<FunctionDescriptor>)
|
||||
resolveCallForInvoke(context.replaceCall(call), tracingForInvoke);
|
||||
return resolveCallForInvoke(context.replaceCall(call), tracingForInvoke);
|
||||
}
|
||||
else {
|
||||
// checkTypesWithNoCallee(trace, scope, call);
|
||||
return checkArgumentTypesAndFail(context);
|
||||
}
|
||||
}
|
||||
|
||||
+5
-4
@@ -42,17 +42,18 @@ public class OverloadResolutionResultsUtil {
|
||||
@NotNull OverloadResolutionResults<D> results,
|
||||
@NotNull ContextDependency contextDependency
|
||||
) {
|
||||
ResolvedCall<D> resultingCall = getResultingCall((OverloadResolutionResultsImpl<D>) results, contextDependency);
|
||||
ResolvedCall<D> resultingCall = getResultingCall(results, contextDependency);
|
||||
return resultingCall != null ? resultingCall.getResultingDescriptor().getReturnType() : null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static <D extends CallableDescriptor> ResolvedCallWithTrace<D> getResultingCall(
|
||||
@NotNull OverloadResolutionResultsImpl<D> results,
|
||||
public static <D extends CallableDescriptor> ResolvedCall<D> getResultingCall(
|
||||
@NotNull OverloadResolutionResults<D> results,
|
||||
@NotNull ContextDependency contextDependency
|
||||
) {
|
||||
if (results.isSingleResult() && contextDependency == ContextDependency.INDEPENDENT) {
|
||||
if (!results.getResultingCall().getCallToCompleteTypeArgumentInference().hasInferredReturnType()) {
|
||||
ResolvedCall<D> resultingCall = results.getResultingCall();
|
||||
if (!((ResolvedCallWithTrace<D>)resultingCall).getCallToCompleteTypeArgumentInference().hasInferredReturnType()) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -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<FunctionDescriptor> function = components.expressionTypingServices.getCallExpressionResolver()
|
||||
ResolvedCall<FunctionDescriptor> function = components.expressionTypingServices.getCallExpressionResolver()
|
||||
.getResolvedCallForFunction(call, reference, contextForResolve, CheckValueArgumentsMode.DISABLED, result);
|
||||
if (!result[0]) return null;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user