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)); }