@Override
  public PsiField @NotNull [] getFields() {
    if (null == myFields) {
      Collection<PsiField> generatedFields;
      DumbService dumbService = DumbService.getInstance(getProject());
      if (dumbService.isDumb() && !dumbService.isAlternativeResolveEnabled()) {
        generatedFields = dumbService.computeWithAlternativeResolveEnabled(
          () -> fieldSupplier.apply(this)
        );
      }
      else {
        generatedFields = fieldSupplier.apply(this);
      }
      myFields = generatedFields.toArray(PsiField.EMPTY_ARRAY);
      fieldSupplier = c -> Collections.emptyList();
    }
    return myFields;
  }
@Override
  public PsiField @NotNull [] getFields()