private @NotNull List<InlayUpdateInfo> getInlayUpdates(@NotNull List<? extends Inlay<?>> editorHints) {
    myEditor.putUserData(HINT_REMOVAL_DELAYED, Boolean.FALSE);

    List<InlayUpdateInfo> updates = new ArrayList<>();

    editorHints.forEach(editorHint -> {
      int offset = editorHint.getOffset();
      ParameterHintsPass.HintData newHint = findAndRemoveMatchingHint(offset, editorHint.isRelatedToPrecedingText(), myNewHints);
      if (!myForceImmediateUpdate && delayRemoval(editorHint)) {
        myEditor.putUserData(HINT_REMOVAL_DELAYED, Boolean.TRUE);
        return;
      }
      String newText = newHint == null ? null : newHint.presentationText;
      if (isPreserveHint(editorHint, newText)) return;
      updates.add(new InlayUpdateInfo(offset, editorHint, newHint));
    });

    myNewHints.keySet().forEach(offset -> {
      for (ParameterHintsPass.HintData hint : myNewHints.get(offset)) {
        updates.add(new InlayUpdateInfo(offset, null, hint));
      }
    });

    updates.sort(Comparator.comparing(update -> update.offset));
    return updates;
  }
private @NotNull List<InlayUpdateInfo> getInlayUpdates(@NotNull List<? extends Inlay<?>> editorHints)