On Fri, 22 Apr 2022 19:10:38 GMT, Jonathan Gibbons <j...@openjdk.org> wrote:
> Please review a moderately simple cleanup change, to eliminate using an > exception to terminate scanning a `Tree` or `DocTree` in > `(Doc)TreePath.getPath`. > > The change is to set a field with the intended result, and once that field is > set, do "best-effort" to eliminate any addition scanning. > > It is easy enough to stop scanning items in a list, but it is not practical > to totally stop scanning the subsequent sibling nodes, but we can > substantially reduce the cost of scanning those nodes, and can definitely > avoid scanning any children of those nodes. I think I'm mistaken: your version does all these things I thought it wasn't doing. What's the difference between it and Jan's version? Is it more responsive wrt termination when the target node is found? src/jdk.compiler/share/classes/com/sun/source/util/TreePath.java line 69: > 67: > 68: @Override > 69: public TreePath scan(TreePath path, Tree docTree) { The second parameter has nothing to do with `DocTree`. Copy-paste? ------------- PR: https://git.openjdk.java.net/jdk/pull/8369