private Object[] lookupFields(@NotNull ReflectiveClass ownerClass, Predicate<? super PsiField> filter) {
    final Set<String> uniqueNames = new HashSet<>();
    return Arrays.stream(ownerClass.getPsiClass().getAllFields())
      .filter(field -> field != null &&
                       (field.getContainingClass() == ownerClass.getPsiClass() || !field.hasModifierProperty(PsiModifier.PRIVATE)) &&
                       uniqueNames.add(field.getName()))
      .filter(filter)
      .sorted(Comparator.comparing((PsiField field) -> isPublic(field) ? 0 : 1).thenComparing(PsiField::getName))
      .map(field -> withPriority(JavaLookupElementBuilder.forField(field).withInsertHandler(this), isPublic(field)))
      .toArray();
  }
private Object[] lookupFields(@NotNull ReflectiveClass ownerClass, Predicate<? super PsiField> filter)