From 7fce75bc1f8cf33ed683c243eb3c742c9417eb65 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Fri, 16 Aug 2013 18:49:17 +0400 Subject: [PATCH] removed unnecessary parameter resolve argument without temporary trace (it's resolved and put to call trace in the beginning anyway) --- .../jet/lang/resolve/calls/ArgumentTypeResolver.java | 9 ++------- .../jet/lang/resolve/calls/CandidateResolver.java | 9 +++------ 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ArgumentTypeResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ArgumentTypeResolver.java index fba6f538d67..ab64f4b0437 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ArgumentTypeResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ArgumentTypeResolver.java @@ -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 diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CandidateResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CandidateResolver.java index 342c9000b14..6bae36483f6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CandidateResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CandidateResolver.java @@ -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());