protected void exportResults(CommonProblemDescriptor @NotNull [] descriptors,
                               @NotNull RefEntity refEntity,
                               @NotNull BiConsumer<? super Element, ? super CommonProblemDescriptor> problemSink,
                               @NotNull Predicate<? super CommonProblemDescriptor> isDescriptorExcluded) {
    final List<ProblemDescriptorKey> keys = Arrays
      .stream(descriptors)
      .filter(desc -> !isDescriptorExcluded.test(desc))
      .map(desc -> new ProblemDescriptorKey(desc))
      .sorted()
      .toList();

    for (ProblemDescriptorKey key : keys) {
      final var descriptor = key.descriptor;
      Element element = null;
      try {
        element = refEntity.getRefManager().export(refEntity, key.lineNumber);
      }
      catch (ProcessCanceledException e) {
        throw e;
      }
      catch (Throwable e) {
        LOG.error(e);
      }
      if (element == null) return;
      exportResult(refEntity, descriptor, element);
      problemSink.accept(element, descriptor);
    }
  }
protected void exportResults(CommonProblemDescriptor @NotNull [] descriptors,
                               @NotNull RefEntity refEntity,
                               @NotNull BiConsumer<? super Element, ? super CommonProblemDescriptor> problemSink,
                               @NotNull Predicate<? super CommonProblemDescriptor> isDescriptorExcluded)