[clang] 12251c6 - Correct documentation for the refersToType AST matcher

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 20 12:37:23 PST 2023


Author: Aaron Ballman
Date: 2023-01-20T15:36:57-05:00
New Revision: 12251c64548785cb70b09ffd3ba91f639660341f

URL: https://github.com/llvm/llvm-project/commit/12251c64548785cb70b09ffd3ba91f639660341f
DIFF: https://github.com/llvm/llvm-project/commit/12251c64548785cb70b09ffd3ba91f639660341f.diff

LOG: Correct documentation for the refersToType AST matcher

The docs used a nonexisting matcher that caused some confusion. It has
now been replaced with the correct syntax.

Fixes #58044

Added: 
    

Modified: 
    clang/docs/LibASTMatchersReference.html
    clang/include/clang/ASTMatchers/ASTMatchers.h

Removed: 
    


################################################################################
diff  --git a/clang/docs/LibASTMatchersReference.html b/clang/docs/LibASTMatchersReference.html
index a67b384d537b8..571dfc3f21b81 100644
--- a/clang/docs/LibASTMatchersReference.html
+++ b/clang/docs/LibASTMatchersReference.html
@@ -9578,9 +9578,9 @@ <h2 id="traversal-matchers">AST Traversal Matchers</h2>
   struct X {};
   template<typename T> struct A {};
   A<X> a;
-classTemplateSpecializationDecl(hasAnyTemplateArgument(
-    refersToType(class(hasName("X")))))
-  matches the specialization A<X>
+classTemplateSpecializationDecl(hasAnyTemplateArgument(refersToType(
+  recordType(hasDeclaration(recordDecl(hasName("X")))))))
+matches the specialization of struct A generated by A<X>.
 </pre></td></tr>
 
 

diff  --git a/clang/include/clang/ASTMatchers/ASTMatchers.h b/clang/include/clang/ASTMatchers/ASTMatchers.h
index baedc890881c6..98b727e6940b5 100644
--- a/clang/include/clang/ASTMatchers/ASTMatchers.h
+++ b/clang/include/clang/ASTMatchers/ASTMatchers.h
@@ -1102,9 +1102,9 @@ AST_POLYMORPHIC_MATCHER_P(
 ///   template<typename T> struct A {};
 ///   A<X> a;
 /// \endcode
-/// classTemplateSpecializationDecl(hasAnyTemplateArgument(
-///     refersToType(class(hasName("X")))))
-///   matches the specialization \c A<X>
+/// classTemplateSpecializationDecl(hasAnyTemplateArgument(refersToType(
+///   recordType(hasDeclaration(recordDecl(hasName("X")))))))
+/// matches the specialization of \c struct A generated by \c A<X>.
 AST_MATCHER_P(TemplateArgument, refersToType,
               internal::Matcher<QualType>, InnerMatcher) {
   if (Node.getKind() != TemplateArgument::Type)


        


More information about the cfe-commits mailing list