@Override
  public Object @NotNull [] getCompletionVariants(String completionPrefix, PsiElement location, @NotNull ProcessingContext context) {
    final List<Object> result = new ArrayList<>();
    Collections.addAll(result, super.getCompletionVariants(completionPrefix, location, context));

    for (String field : myFields.keySet()) {
      result.add(LookupElementBuilder.create(field).withIcon(IconManager.getInstance().getPlatformIcon(com.intellij.ui.PlatformIcons.Field)));
    }

    if (completionPrefix == null) {
      final Condition<String> nameFilter = NAMEDTUPLE_SPECIAL_ATTRIBUTES::contains;
      final CompletionVariantsProcessor processor =
        new CompletionVariantsProcessor(location, null, nameFilter, false, context.get(CTX_SUPPRESS_PARENTHESES) != null);

      myClass.processClassLevelDeclarations(processor);

      result.addAll(processor.getResultList());
    }

    return ArrayUtil.toObjectArray(result);
  }
@Override
  public Object @NotNull [] getCompletionVariants(String completionPrefix, PsiElement location, @NotNull ProcessingContext context)