public static void processUsages(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);
    }
  }
public static void processUsages(UsageInfo[] usages, IntroduceParameterData data)