@Override
  public UsageInfo @NotNull [] findUsages() {
    myRenamers.clear();
    List<UsageInfo> result = new ArrayList<>();

    for (PsiElement element : new ArrayList<>(myAllRenames.keySet())) {
      if (element == null) {
        LOG.error("primary: " + myPrimaryElement + "; renamers: " + myRenamers);
        continue;
      }

      String newName = myAllRenames.get(element);
      UsageInfo[] usages = RenameUtil.findUsages(element, newName, myRefactoringScope,
                                                 mySearchInComments, mySearchTextOccurrences, myAllRenames);
      List<UsageInfo> usagesList = Arrays.asList(usages);
      result.addAll(usagesList);

      for (AutomaticRenamerFactory factory : myRenamerFactories) {
        if (factory.isApplicable(element)) {
          myRenamers.add(factory.createRenamer(element, newName, usagesList));
        }
      }

      for (AutomaticRenamerFactory factory : AutomaticRenamerFactory.EP_NAME.getExtensionList()) {
        if (factory.getOptionName() == null && factory.isApplicable(element)) {
          myRenamers.add(factory.createRenamer(element, newName, usagesList));
        }
      }
    }

    UsageInfo[] usageInfos = result.toArray(UsageInfo.EMPTY_ARRAY);
    usageInfos = UsageViewUtil.removeDuplicatedUsages(usageInfos);
    return usageInfos;
  }
@Override
  public UsageInfo @NotNull [] findUsages()