void (UsageInfo[] usages, IntroduceParameterData data) { PsiManager manager = PsiManager.getInstance(data.getProject()); List<UsageInfo> methodUsages = new ArrayList<>(); for (UsageInfo usage : usages) { if (usage instanceof InternalUsageInfo) continue; if (usage instanceof DefaultConstructorImplicitUsageInfo) { addSuperCall(usage, usages, data); } else if (usage instanceof NoConstructorClassUsageInfo) { addDefaultConstructor(usage, usages, data); } else { PsiElement element = usage.getElement(); if (element instanceof PsiMethod) { if (!manager.areElementsEquivalent(element, data.getMethodToReplaceIn())) { methodUsages.add(usage); } } else if (!data.isGenerateDelegate()) { changeExternalUsage(usage, usages, data); } } } for (UsageInfo usage : methodUsages) { changeMethodSignatureAndResolveFieldConflicts(usage, usages, data); } }