njames93 added a comment.

Theres definitely scope to improve this in follow ups.
We could support this for template methods and classes

  template <typename T> struct A {
    void [[Foo]]() {}
    template<typename U> void [[Bar]]() {}
  };
  
  // Both ranges transformed to
  template <typename T> struct A {
    void Foo();
    template<typename U> void Bar();
  };
  
  template <typename T>
  void A<T>::Foo() {}
  
  template <typename T>
  template <typename U>
  void A<T>::Bar<U>() {}

In D147808 <https://reviews.llvm.org/D147808> The restriction only only 
applying the tweak for non trivial member functions could be removed when 
making a non cross file edit.

We could also employ a better insertion point logic for these tweaks as we have 
the full AST for the file where the function is to be inserted.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D148423

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

Reply via email to