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:
Svetlana Isakova
2013-08-16 18:49:17 +04:00
parent 30b0a72c6b
commit 7fce75bc1f
2 changed files with 5 additions and 13 deletions
@@ -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());