removed unnecessary parameter
resolve argument without temporary trace (it's resolved and put to call trace in the beginning anyway)
This commit is contained in:
+2
-7
@@ -161,8 +161,7 @@ public class ArgumentTypeResolver {
|
||||
public JetTypeInfo getArgumentTypeInfo(
|
||||
@Nullable JetExpression expression,
|
||||
@NotNull CallResolutionContext<?> context,
|
||||
@NotNull ResolveArgumentsMode resolveArgumentsMode,
|
||||
@Nullable TemporaryBindingTrace traceToCommitForCall
|
||||
@NotNull ResolveArgumentsMode resolveArgumentsMode
|
||||
) {
|
||||
if (expression == null) {
|
||||
return JetTypeInfo.create(null, context.dataFlowInfo);
|
||||
@@ -176,12 +175,8 @@ public class ArgumentTypeResolver {
|
||||
}
|
||||
ResolutionContext newContext = context.replaceExpectedType(TypeUtils.UNKNOWN_EXPECTED_TYPE).replaceContextDependency(
|
||||
ContextDependency.DEPENDENT);
|
||||
JetTypeInfo result = expressionTypingServices.getTypeInfo(expression, newContext);
|
||||
|
||||
if (traceToCommitForCall != null) {
|
||||
traceToCommitForCall.commit();
|
||||
}
|
||||
return result;
|
||||
return expressionTypingServices.getTypeInfo(expression, newContext);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -657,15 +657,12 @@ public class CandidateResolver {
|
||||
JetType effectiveExpectedType = getEffectiveExpectedType(valueParameterDescriptor, valueArgument);
|
||||
JetExpression argumentExpression = valueArgument.getArgumentExpression();
|
||||
|
||||
TemporaryBindingTrace traceToResolveArgument = TemporaryBindingTrace.create(
|
||||
context.trace, "transient trace to resolve argument", argumentExpression);
|
||||
JetType expectedType = substitutor.substitute(effectiveExpectedType, Variance.INVARIANT);
|
||||
DataFlowInfo dataFlowInfoForArgument = context.candidateCall.getDataFlowInfoForArguments().getInfo(valueArgument);
|
||||
CallResolutionContext<?> newContext = context.replaceBindingTrace(traceToResolveArgument)
|
||||
.replaceExpectedType(expectedType).replaceDataFlowInfo(dataFlowInfoForArgument);
|
||||
CallResolutionContext<?> newContext = context.replaceExpectedType(expectedType).replaceDataFlowInfo(dataFlowInfoForArgument);
|
||||
|
||||
JetTypeInfo typeInfoForCall = argumentTypeResolver.getArgumentTypeInfo(
|
||||
argumentExpression, newContext, resolveFunctionArgumentBodies, traceToResolveArgument);
|
||||
argumentExpression, newContext, resolveFunctionArgumentBodies);
|
||||
context.candidateCall.getDataFlowInfoForArguments().updateInfo(valueArgument, typeInfoForCall.getDataFlowInfo());
|
||||
|
||||
JetType type = updateResultTypeForSmartCasts(typeInfoForCall.getType(), argumentExpression, dataFlowInfoForArgument, context.trace);
|
||||
@@ -771,7 +768,7 @@ public class CandidateResolver {
|
||||
CallResolutionContext<?> newContext = context.replaceDataFlowInfo(infoForArguments.getInfo(argument))
|
||||
.replaceBindingTrace(trace).replaceExpectedType(expectedType);
|
||||
JetTypeInfo typeInfoForCall = argumentTypeResolver.getArgumentTypeInfo(
|
||||
expression, newContext, resolveFunctionArgumentBodies, null);
|
||||
expression, newContext, resolveFunctionArgumentBodies);
|
||||
JetType type = typeInfoForCall.getType();
|
||||
infoForArguments.updateInfo(argument, typeInfoForCall.getDataFlowInfo());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user