public static <T> void diffTrees(@NotNull ASTNode oldRoot,
                                   @NotNull DiffTreeChangeBuilder<ASTNode, T> builder,
                                   @NotNull ShallowNodeComparator<ASTNode, T> comparator,
                                   @NotNull FlyweightCapableTreeStructure<T> newTreeStructure,
                                   @NotNull ProgressIndicator indicator,
                                   @NotNull CharSequence lastCommittedText) {
    DiffTree.diff(createInterruptibleASTStructure(oldRoot, indicator), newTreeStructure, comparator, builder, lastCommittedText);
  }
public static <T> void diffTrees(@NotNull ASTNode oldRoot,
                                   @NotNull DiffTreeChangeBuilder<ASTNode, T> builder,
                                   @NotNull ShallowNodeComparator<ASTNode, T> comparator,
                                   @NotNull FlyweightCapableTreeStructure<T> newTreeStructure,
                                   @NotNull ProgressIndicator indicator,
                                   @NotNull CharSequence lastCommittedText)