ymandel marked 12 inline comments as done.
ymandel added a comment.

In D69613#1730238 <https://reviews.llvm.org/D69613#1730238>, @ymandel wrote:

> In D69613#1729703 <https://reviews.llvm.org/D69613#1729703>, @gribozavr2 
> wrote:
>
> > I see. Some decoupling is desirable, I agree. Maybe move `StencilInterface` 
> > and `Stencil` into a separate header that `RewriteRule` can depend on, and 
> > then define the library of stencils in another header?
>
>
> This sounds good. I'll put together a (stacked) revision to do this. It seems 
> worth doing separately given that it will involve a substantial to the 
> RewriteRule library & tests.


In order to keep the client unaffected by the change, I reinstated a simple 
Stencil class to wrap the shared_ptr and provide the call operator.  This means 
that the code is now backwards compatible and forwards compatible (to the 
change we've discussed in RewriteRule to be stencil-aware).  This was simpler 
than adding temporary(?) overloads in `RewriteRule.h` for every function with a 
`TextGenerator` argument.

I included an overload of `operator->` so that we can collapse it back to just 
a type alias.



================
Comment at: clang/include/clang/Tooling/Transformer/Stencil.h:155
+template <typename... Ts> MatchConsumer<std::string> stencil(Ts &&... Parts) {
+  Stencil S = cat(std::forward<Ts>(Parts)...);
+  return [S](const ast_matchers::MatchFinder::MatchResult &R) {
----------------
gribozavr2 wrote:
> I'm not sure the convenience of being able to avoid to say "cat(...)" at the 
> callsite is worth the API complexity. In other words, my suggestion is to 
> make this function take a single stencil.
Based on discussion, removed this entirely.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69613/new/

https://reviews.llvm.org/D69613



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to