@Override
  protected UsageInfo @NotNull [] findUsages() {
    List<UsageInfo> usages = new SmartList<>();
    for (var psiField : myRecordCandidate.getFieldAccessors().keySet()) {
      if (!psiField.hasModifierProperty(PRIVATE)) {
        usages.add(new FieldUsageInfo(psiField));
      }
    }

    List<FieldAccessorCandidate> accessorsToRename = getAccessorsToRename();

    for (var fieldAccessorCandidate : accessorsToRename) {
      String backingFieldName = fieldAccessorCandidate.getBackingField().getName();

      List<PsiMethod> methods = substituteWithSuperMethodsIfPossible(fieldAccessorCandidate.getAccessor());
      methods.forEach(method -> {
        UsageInfo[] methodUsages = RenameUtil.findUsages(method, backingFieldName, false, false, myAllRenames);
        usages.addAll(Arrays.asList(methodUsages));
      });
    }

    for (var fieldAccessorCandidate : accessorsToRename) {
      String backingFieldName = fieldAccessorCandidate.getBackingField().getName();
      usages.add(new RenameMethodUsageInfo(fieldAccessorCandidate.getAccessor(), backingFieldName));
    }

    if (myShowAffectedMembers) {
      usages.addAll(findConflicts(myRecordCandidate));
    }
    return usages.toArray(UsageInfo.EMPTY_ARRAY);
  }
@Override
  protected UsageInfo @NotNull [] findUsages()