gribozavr2 added inline comments.
================ Comment at: clang/include/clang/Tooling/Transformer/RewriteRule.h:388 +llvm::Expected<SmallVector<Edit, 1>> +rewriteDescendants(const Decl &Node, RewriteRule Rule, + const ast_matchers::MatchFinder::MatchResult &Result); ---------------- ymandel wrote: > gribozavr2 wrote: > > I agree that these functions provide very useful functionality, however I > > feel uneasy about putting a function that returns an `EditGenerator` and a > > function that actually executes the refactoring into the same overload set. > > The first is a part of a DSL, the second is a regular function. Do you > > think this is a problem worth solving? > > > > IDK what exactly to suggest though. A namespace for DSL functions like we > > have in AST matchers? > That's a really good point. These new functions are definitely a part of an > (implicit) lower-level library that improves manipulation of the AST > directly. We don't have any appropriate library yet for this -- SourceCode > is in this spirit but even simpler than RewriteRule, which in fact depends on > it. > > For now, I'll put these in the `detail` which is (in some sense) the > collection of low level functions for which we need to solve this same > problem. WDYT? (I wasn't quite clear about the comparison with ast matchers, > since both the matchers DSL and the `match` functions (on which this is > loosely based) are in the same namespace). > I wasn't quite clear about the comparison with ast matchers, since both the > matchers DSL and the match functions (on which this is loosely based) are in > the same namespace Oh right -- I mistakenly thought that `clang::ast_matchers` only contains the DSL. I think your choice to put functions into `detail` looks good. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87031/new/ https://reviews.llvm.org/D87031 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits