void (@NotNull Map<PsiLocalVariable, ClusterOfUsages> parameterDeclarations) { Map<PsiExpression, PsiLocalVariable> patternUsageToParameter = new HashMap<>(); for (Map.Entry<PsiLocalVariable, ClusterOfUsages> entry : parameterDeclarations.entrySet()) { PsiExpression usage = entry.getValue().myParameter.myPattern.getUsage(); patternUsageToParameter.put(usage, entry.getKey()); } for (Match match : myMatches) { List<ExtractedParameter> matchedParameters = match.getExtractedParameters(); for (ExtractedParameter matchedParameter : matchedParameters) { PsiLocalVariable localVariable = patternUsageToParameter.get(matchedParameter.myPattern.getUsage()); LOG.assertTrue(localVariable != null, "match local variable"); DuplicatesFinder.Parameter parameter = new DuplicatesFinder.Parameter(localVariable, matchedParameter.myType); boolean ok = match.putParameter(parameter, matchedParameter.myCandidate.getUsage()); LOG.assertTrue(ok, "put match parameter"); } } }