ilya-biryukov marked an inline comment as not done. ilya-biryukov added inline comments.
================ Comment at: clang/unittests/Tooling/Syntax/TreeTest.cpp:57 + return nullptr; +} + ---------------- gribozavr2 wrote: > Seems like these first/last helpers should be methods on `syntax::Node`. Good point. Done. ================ Comment at: clang/unittests/Tooling/Syntax/TreeTest.cpp:66 + syntax::Leaf *Last = lastLeaf(T); + return llvm::makeArrayRef(First->token(), Last->token() + 1); +} ---------------- gribozavr2 wrote: > The first and the last tokens are not necessarily from the same buffer... They are for nodes with `isOriginal() == true`. I've added an assertion. Exactly the reason why this method is not a good fit for public API, but ok to have in tests. ================ Comment at: clang/unittests/Tooling/Syntax/TreeTest.cpp:528 +void test() { + HALF_IF HALF_IF_2 else {} +})cpp", ---------------- gribozavr2 wrote: > Could you also do something like: > > ``` > #define OPEN { > #define CLOSE } > > void test1() { > OPEN > 1; > CLOSE > } > void test1() { > OPEN > 1; > } > } > ``` Funnily enough, this causes an assertion failure, because binary-searching with `isBeforeInTranslationUnit` finds `{` expanded from `OPEN` instead of `1` when building a syntax tree. I'll make use of a hash table for searching tokens by location and add the test in the follow-up patch. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64573/new/ https://reviews.llvm.org/D64573 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits