Optimize 'setResultingSubstitutor'
Replace Map with plain List, use parameter's index as a key
This commit is contained in:
+3
-6
@@ -194,10 +194,7 @@ public class ResolvedCallImpl<D extends CallableDescriptor> implements MutableRe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<ValueParameterDescriptor, ValueParameterDescriptor> substitutedParametersMap = Maps.newHashMap();
|
List<ValueParameterDescriptor> substitutedParameters = resultingDescriptor.getValueParameters();
|
||||||
for (ValueParameterDescriptor valueParameterDescriptor : resultingDescriptor.getValueParameters()) {
|
|
||||||
substitutedParametersMap.put(valueParameterDescriptor.getOriginal(), valueParameterDescriptor);
|
|
||||||
}
|
|
||||||
|
|
||||||
Collection<Map.Entry<ValueParameterDescriptor, ResolvedValueArgument>> valueArgumentsBeforeSubstitution =
|
Collection<Map.Entry<ValueParameterDescriptor, ResolvedValueArgument>> valueArgumentsBeforeSubstitution =
|
||||||
new SmartList<Map.Entry<ValueParameterDescriptor, ResolvedValueArgument>>(valueArguments.entrySet());
|
new SmartList<Map.Entry<ValueParameterDescriptor, ResolvedValueArgument>>(valueArguments.entrySet());
|
||||||
@@ -205,7 +202,7 @@ public class ResolvedCallImpl<D extends CallableDescriptor> implements MutableRe
|
|||||||
valueArguments.clear();
|
valueArguments.clear();
|
||||||
|
|
||||||
for (Map.Entry<ValueParameterDescriptor, ResolvedValueArgument> entry : valueArgumentsBeforeSubstitution) {
|
for (Map.Entry<ValueParameterDescriptor, ResolvedValueArgument> entry : valueArgumentsBeforeSubstitution) {
|
||||||
ValueParameterDescriptor substitutedVersion = substitutedParametersMap.get(entry.getKey().getOriginal());
|
ValueParameterDescriptor substitutedVersion = substitutedParameters.get(entry.getKey().getIndex());
|
||||||
assert substitutedVersion != null : entry.getKey();
|
assert substitutedVersion != null : entry.getKey();
|
||||||
valueArguments.put(substitutedVersion, entry.getValue());
|
valueArguments.put(substitutedVersion, entry.getValue());
|
||||||
}
|
}
|
||||||
@@ -217,7 +214,7 @@ public class ResolvedCallImpl<D extends CallableDescriptor> implements MutableRe
|
|||||||
for (Map.Entry<ValueArgument, ArgumentMatchImpl> entry : unsubstitutedArgumentMappings) {
|
for (Map.Entry<ValueArgument, ArgumentMatchImpl> entry : unsubstitutedArgumentMappings) {
|
||||||
ArgumentMatchImpl argumentMatch = entry.getValue();
|
ArgumentMatchImpl argumentMatch = entry.getValue();
|
||||||
ValueParameterDescriptor valueParameterDescriptor = argumentMatch.getValueParameter();
|
ValueParameterDescriptor valueParameterDescriptor = argumentMatch.getValueParameter();
|
||||||
ValueParameterDescriptor substitutedVersion = substitutedParametersMap.get(valueParameterDescriptor.getOriginal());
|
ValueParameterDescriptor substitutedVersion = substitutedParameters.get(valueParameterDescriptor.getIndex());
|
||||||
assert substitutedVersion != null : valueParameterDescriptor;
|
assert substitutedVersion != null : valueParameterDescriptor;
|
||||||
argumentToParameterMap.put(entry.getKey(), argumentMatch.replaceValueParameter(substitutedVersion));
|
argumentToParameterMap.put(entry.getKey(), argumentMatch.replaceValueParameter(substitutedVersion));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user