private static void reportOutOfRunVisitorInfos(int fromIndex,
                                                 @NotNull PsiElement fakePsiElement,
                                                 @NotNull HighlightInfoHolder holder,
                                                 @NotNull HighlightVisitor visitor,
                                                 @NotNull TriConsumer<Object, ? super PsiElement, ? super List<? extends HighlightInfo>> resultSink) {
    List<HighlightInfo> newInfos;
    if (holder.size() > fromIndex) {
      newInfos = new ArrayList<>(holder.size() - fromIndex);
      for (int i = fromIndex; i < holder.size(); i++) {
        HighlightInfo info = holder.get(i);
        newInfos.add(info);
      }
    }
    else {
      newInfos = List.of();
    }
    resultSink.accept(visitor.getClass(), fakePsiElement, newInfos);
  }
private static void reportOutOfRunVisitorInfos(int fromIndex,
                                                 @NotNull PsiElement fakePsiElement,
                                                 @NotNull HighlightInfoHolder holder,
                                                 @NotNull HighlightVisitor visitor,
                                                 @NotNull TriConsumer<Object, ? super PsiElement, ? super List<? extends HighlightInfo>> resultSink)