aaron.ballman added inline comments.

================
Comment at: clang/include/clang/ASTMatchers/ASTMatchersInternal.h:88
+/// can be useful for cases like debugging matchers.
+template <typename T> std::string makeMatcherNameFromType() {
+  return "Matcher<T>";
----------------
ymandel wrote:
> Please note in the comments that this function template is specialized below 
> to cover most (all) of the AST. So, the default string here should only very 
> rarely (never?) be used.
Should we be asserting that we never use it so that we can have 100% coverage 
up front and rely on the assertion to catch later issues?


================
Comment at: clang/include/clang/ASTMatchers/ASTMatchersInternal.h:90
+/// here should rarely be used.
+template <typename T> std::string makeMatcherNameFromType() {
+  return "Matcher<T>";
----------------
Does the return type need to be `std::string` instead of `StringRef`? It looks 
like everything is returning a string literal.


================
Comment at: clang/include/clang/ASTMatchers/ASTMatchersInternal.h:578
+  /// If the name is already set, then \c MatcherName overrides it.
+  DynTypedMatcher withMatcherName(std::string MatcherName) const;
+
----------------
Is there a need for this to accept a `std::string` as opposed to `StringRef`?


================
Comment at: clang/lib/ASTMatchers/ASTMatchersInternal.cpp:131
 private:
+  const std::string MatcherName;
   std::vector<DynTypedMatcher> InnerMatchers;
----------------
FWIW, this is the only place I was expecting to see a std::string (places where 
it's needed for long-term storage).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D113917

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

Reply via email to