From 9ac2da8c9618ed3fcf96fa26e62e9cdb3e8f2b52 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Tue, 9 Feb 2016 14:19:57 +0300 Subject: [PATCH] Optimize 'setResultingSubstitutor' Replace Map with plain List, use parameter's index as a key --- .../kotlin/resolve/calls/model/ResolvedCallImpl.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ResolvedCallImpl.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ResolvedCallImpl.java index ecfde15fc81..0c04178b253 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ResolvedCallImpl.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/model/ResolvedCallImpl.java @@ -194,10 +194,7 @@ public class ResolvedCallImpl implements MutableRe } } - Map substitutedParametersMap = Maps.newHashMap(); - for (ValueParameterDescriptor valueParameterDescriptor : resultingDescriptor.getValueParameters()) { - substitutedParametersMap.put(valueParameterDescriptor.getOriginal(), valueParameterDescriptor); - } + List substitutedParameters = resultingDescriptor.getValueParameters(); Collection> valueArgumentsBeforeSubstitution = new SmartList>(valueArguments.entrySet()); @@ -205,7 +202,7 @@ public class ResolvedCallImpl implements MutableRe valueArguments.clear(); for (Map.Entry entry : valueArgumentsBeforeSubstitution) { - ValueParameterDescriptor substitutedVersion = substitutedParametersMap.get(entry.getKey().getOriginal()); + ValueParameterDescriptor substitutedVersion = substitutedParameters.get(entry.getKey().getIndex()); assert substitutedVersion != null : entry.getKey(); valueArguments.put(substitutedVersion, entry.getValue()); } @@ -217,7 +214,7 @@ public class ResolvedCallImpl implements MutableRe for (Map.Entry entry : unsubstitutedArgumentMappings) { ArgumentMatchImpl argumentMatch = entry.getValue(); ValueParameterDescriptor valueParameterDescriptor = argumentMatch.getValueParameter(); - ValueParameterDescriptor substitutedVersion = substitutedParametersMap.get(valueParameterDescriptor.getOriginal()); + ValueParameterDescriptor substitutedVersion = substitutedParameters.get(valueParameterDescriptor.getIndex()); assert substitutedVersion != null : valueParameterDescriptor; argumentToParameterMap.put(entry.getKey(), argumentMatch.replaceValueParameter(substitutedVersion)); }