use 'BasicCallResolutionContext.create' instead of 'toCallResolutionContext'
from ResolutionContext
This commit is contained in:
+4
-2
@@ -25,6 +25,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
|
|||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
import org.jetbrains.jet.lang.resolve.TemporaryBindingTrace;
|
import org.jetbrains.jet.lang.resolve.TemporaryBindingTrace;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo;
|
import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo;
|
||||||
|
import org.jetbrains.jet.lang.resolve.calls.context.BasicCallResolutionContext;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.context.TypeInfoForCall;
|
import org.jetbrains.jet.lang.resolve.calls.context.TypeInfoForCall;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.context.ResolutionContext;
|
import org.jetbrains.jet.lang.resolve.calls.context.ResolutionContext;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
||||||
@@ -153,7 +154,8 @@ public class CallExpressionResolver {
|
|||||||
) {
|
) {
|
||||||
|
|
||||||
CallResolver callResolver = expressionTypingServices.getCallResolver();
|
CallResolver callResolver = expressionTypingServices.getCallResolver();
|
||||||
OverloadResolutionResults<FunctionDescriptor> results = callResolver.resolveFunctionCall(context.toCallResolutionContext(call, resolveMode));
|
OverloadResolutionResults<FunctionDescriptor> results = callResolver.resolveFunctionCall(
|
||||||
|
BasicCallResolutionContext.create(context, call, resolveMode));
|
||||||
if (!results.isNothing()) {
|
if (!results.isNothing()) {
|
||||||
checkSuper(receiver, results, context.trace, callExpression);
|
checkSuper(receiver, results, context.trace, callExpression);
|
||||||
result[0] = true;
|
result[0] = true;
|
||||||
@@ -177,7 +179,7 @@ public class CallExpressionResolver {
|
|||||||
CallResolver callResolver = expressionTypingServices.getCallResolver();
|
CallResolver callResolver = expressionTypingServices.getCallResolver();
|
||||||
Call call = CallMaker.makePropertyCall(receiver, callOperationNode, nameExpression);
|
Call call = CallMaker.makePropertyCall(receiver, callOperationNode, nameExpression);
|
||||||
OverloadResolutionResults<VariableDescriptor> resolutionResult = callResolver.resolveSimpleProperty(
|
OverloadResolutionResults<VariableDescriptor> resolutionResult = callResolver.resolveSimpleProperty(
|
||||||
context.replaceBindingTrace(traceForVariable).toCallResolutionContext(call, ResolveMode.NORMAL));
|
BasicCallResolutionContext.create(context.replaceBindingTrace(traceForVariable), call, ResolveMode.NORMAL));
|
||||||
if (!resolutionResult.isNothing()) {
|
if (!resolutionResult.isNothing()) {
|
||||||
traceForVariable.commit();
|
traceForVariable.commit();
|
||||||
checkSuper(receiver, resolutionResult, context.trace, nameExpression);
|
checkSuper(receiver, resolutionResult, context.trace, nameExpression);
|
||||||
|
|||||||
+4
@@ -36,6 +36,10 @@ public class BasicCallResolutionContext extends CallResolutionContext<BasicCallR
|
|||||||
) {
|
) {
|
||||||
return new BasicCallResolutionContext(trace, scope, call, expectedType, dataFlowInfo, resolveMode, namespacesAllowed);
|
return new BasicCallResolutionContext(trace, scope, call, expectedType, dataFlowInfo, resolveMode, namespacesAllowed);
|
||||||
}
|
}
|
||||||
|
@NotNull
|
||||||
|
public static BasicCallResolutionContext create(@NotNull ResolutionContext context, @NotNull Call call, @NotNull ResolveMode resolveMode) {
|
||||||
|
return create(context.trace, context.scope, call, context.expectedType, context.dataFlowInfo, resolveMode, context.namespacesAllowed);
|
||||||
|
}
|
||||||
|
|
||||||
private BasicCallResolutionContext(
|
private BasicCallResolutionContext(
|
||||||
BindingTrace trace, JetScope scope, Call call, JetType expectedType, DataFlowInfo dataFlowInfo, ResolveMode resolveMode, boolean namespacesAllowed
|
BindingTrace trace, JetScope scope, Call call, JetType expectedType, DataFlowInfo dataFlowInfo, ResolveMode resolveMode, boolean namespacesAllowed
|
||||||
|
|||||||
-5
@@ -86,9 +86,4 @@ public abstract class ResolutionContext<Context extends ResolutionContext> {
|
|||||||
if (newScope == scope) return self();
|
if (newScope == scope) return self();
|
||||||
return create(trace, newScope, dataFlowInfo, expectedType, namespacesAllowed);
|
return create(trace, newScope, dataFlowInfo, expectedType, namespacesAllowed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public BasicCallResolutionContext toCallResolutionContext(@NotNull Call call, @NotNull ResolveMode resolveMode) {
|
|
||||||
return BasicCallResolutionContext.create(trace, scope, call, expectedType, dataFlowInfo, resolveMode, namespacesAllowed);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
+3
-1
@@ -22,6 +22,7 @@ import org.jetbrains.jet.lang.psi.Call;
|
|||||||
import org.jetbrains.jet.lang.psi.JetReferenceExpression;
|
import org.jetbrains.jet.lang.psi.JetReferenceExpression;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo;
|
import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo;
|
||||||
|
import org.jetbrains.jet.lang.resolve.calls.context.BasicCallResolutionContext;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.context.ResolutionContext;
|
import org.jetbrains.jet.lang.resolve.calls.context.ResolutionContext;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.context.ResolveMode;
|
import org.jetbrains.jet.lang.resolve.calls.context.ResolveMode;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.results.OverloadResolutionResults;
|
import org.jetbrains.jet.lang.resolve.calls.results.OverloadResolutionResults;
|
||||||
@@ -104,6 +105,7 @@ public class ExpressionTypingContext extends ResolutionContext<ExpressionTypingC
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public OverloadResolutionResults<FunctionDescriptor> resolveCallWithGivenName(@NotNull Call call, @NotNull JetReferenceExpression functionReference, @NotNull Name name) {
|
public OverloadResolutionResults<FunctionDescriptor> resolveCallWithGivenName(@NotNull Call call, @NotNull JetReferenceExpression functionReference, @NotNull Name name) {
|
||||||
return expressionTypingServices.getCallResolver().resolveCallWithGivenName(toCallResolutionContext(call, ResolveMode.NORMAL), functionReference, name);
|
return expressionTypingServices.getCallResolver().resolveCallWithGivenName(
|
||||||
|
BasicCallResolutionContext.create(this, call, ResolveMode.NORMAL), functionReference, name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user