From: Aaron Ballman Date: Fri, 22 Jan 2016 23:15:00 +0000 (+0000) Subject: Properly encode the < entity; it was missing the semicolon. Regenerating the AST... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4eb7bf8669f7f77e63651483450fabb60ad797e7;p=clang Properly encode the < entity; it was missing the semicolon. Regenerating the AST matcher reference after fixing the issue. Thanks to Richard for noticing the issue and bringing it to my attention! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@258579 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/LibASTMatchersReference.html b/docs/LibASTMatchersReference.html index 40a64f79f8..2bb6915e92 100644 --- a/docs/LibASTMatchersReference.html +++ b/docs/LibASTMatchersReference.html @@ -100,7 +100,7 @@ recordDecl(decl().bind("id"), hasName("::MyClass")) Return typeNameParameters -Matcher<CXXCtorInitializer>cxxCtorInitializerMatcher<CXXCtorInitializer>... +Matcher<CXXCtorInitializer>cxxCtorInitializerMatcher<CXXCtorInitializer>...
Matches constructor initializers.
 
 Examples matches i(42).
@@ -111,7 +111,7 @@ Examples matches i(42).
 
-Matcher<Decl>accessSpecDeclMatcher<AccessSpecDecl>... +Matcher<Decl>accessSpecDeclMatcher<AccessSpecDecl>...
Matches C++ access specifier declarations.
 
 Given
@@ -124,7 +124,7 @@ accessSpecDecl()
 
-Matcher<Decl>classTemplateDeclMatcher<ClassTemplateDecl>... +Matcher<Decl>classTemplateDeclMatcher<ClassTemplateDecl>...
Matches C++ class template declarations.
 
 Example matches Z
@@ -132,7 +132,7 @@ Example matches Z
 
-Matcher<Decl>classTemplateSpecializationDeclMatcher<ClassTemplateSpecializationDecl>... +Matcher<Decl>classTemplateSpecializationDeclMatcher<ClassTemplateSpecializationDecl>...
Matches C++ class template specializations.
 
 Given
@@ -144,7 +144,7 @@ classTemplateSpecializationDecl()
 
-Matcher<Decl>cxxConstructorDeclMatcher<CXXConstructorDecl>... +Matcher<Decl>cxxConstructorDeclMatcher<CXXConstructorDecl>...
Matches C++ constructor declarations.
 
 Example matches Foo::Foo() and Foo::Foo(int)
@@ -157,7 +157,7 @@ Example matches Foo::Foo() and Foo::Foo(int)
 
-Matcher<Decl>cxxConversionDeclMatcher<CXXConversionDecl>... +Matcher<Decl>cxxConversionDeclMatcher<CXXConversionDecl>...
Matches conversion operator declarations.
 
 Example matches the operator.
@@ -165,7 +165,7 @@ Example matches the operator.
 
-Matcher<Decl>cxxDestructorDeclMatcher<CXXDestructorDecl>... +Matcher<Decl>cxxDestructorDeclMatcher<CXXDestructorDecl>...
Matches explicit C++ destructor declarations.
 
 Example matches Foo::~Foo()
@@ -176,7 +176,7 @@ Example matches Foo::~Foo()
 
-Matcher<Decl>cxxMethodDeclMatcher<CXXMethodDecl>... +Matcher<Decl>cxxMethodDeclMatcher<CXXMethodDecl>...
Matches method declarations.
 
 Example matches y
@@ -184,7 +184,7 @@ Example matches y
 
-Matcher<Decl>cxxRecordDeclMatcher<CXXRecordDecl>... +Matcher<Decl>cxxRecordDeclMatcher<CXXRecordDecl>...
Matches C++ class declarations.
 
 Example matches X, Z
@@ -193,7 +193,7 @@ Example matches X, Z
 
-Matcher<Decl>declMatcher<Decl>... +Matcher<Decl>declMatcher<Decl>...
Matches declarations.
 
 Examples matches X, C, and the friend declaration inside C;
@@ -204,7 +204,7 @@ Examples matches X, C, and the friend declaration inside C;
 
-Matcher<Decl>declaratorDeclMatcher<DeclaratorDecl>... +Matcher<Decl>declaratorDeclMatcher<DeclaratorDecl>...
Matches declarator declarations (field, variable, function
 and non-type template parameter declarations).
 
@@ -215,7 +215,7 @@ declaratorDecl()
 
-Matcher<Decl>enumConstantDeclMatcher<EnumConstantDecl>... +Matcher<Decl>enumConstantDeclMatcher<EnumConstantDecl>...
Matches enum constants.
 
 Example matches A, B, C
@@ -225,7 +225,7 @@ Example matches A, B, C
 
-Matcher<Decl>enumDeclMatcher<EnumDecl>... +Matcher<Decl>enumDeclMatcher<EnumDecl>...
Matches enum declarations.
 
 Example matches X
@@ -235,7 +235,7 @@ Example matches X
 
-Matcher<Decl>fieldDeclMatcher<FieldDecl>... +Matcher<Decl>fieldDeclMatcher<FieldDecl>...
Matches field declarations.
 
 Given
@@ -245,7 +245,7 @@ fieldDecl()
 
-Matcher<Decl>friendDeclMatcher<FriendDecl>... +Matcher<Decl>friendDeclMatcher<FriendDecl>...
Matches friend declarations.
 
 Given
@@ -255,7 +255,7 @@ friendDecl()
 
-Matcher<Decl>functionDeclMatcher<FunctionDecl>... +Matcher<Decl>functionDeclMatcher<FunctionDecl>...
Matches function declarations.
 
 Example matches f
@@ -263,7 +263,7 @@ Example matches f
 
-Matcher<Decl>functionTemplateDeclMatcher<FunctionTemplateDecl>... +Matcher<Decl>functionTemplateDeclMatcher<FunctionTemplateDecl>...
Matches C++ function template declarations.
 
 Example matches f
@@ -271,7 +271,7 @@ Example matches f
 
-Matcher<Decl>linkageSpecDeclMatcher<LinkageSpecDecl>... +Matcher<Decl>linkageSpecDeclMatcher<LinkageSpecDecl>...
Matches a declaration of a linkage specification.
 
 Given
@@ -281,7 +281,7 @@ linkageSpecDecl()
 
-Matcher<Decl>namedDeclMatcher<NamedDecl>... +Matcher<Decl>namedDeclMatcher<NamedDecl>...
Matches a declaration of anything that could have a name.
 
 Example matches X, S, the anonymous union type, i, and U;
@@ -294,7 +294,7 @@ Example matches X, S, the anonymous union type, i, and U;
 
-Matcher<Decl>namespaceAliasDeclMatcher<NamespaceAliasDecl>... +Matcher<Decl>namespaceAliasDeclMatcher<NamespaceAliasDecl>...
Matches a declaration of a namespace alias.
 
 Given
@@ -305,7 +305,7 @@ namespaceAliasDecl()
 
-Matcher<Decl>namespaceDeclMatcher<NamespaceDecl>... +Matcher<Decl>namespaceDeclMatcher<NamespaceDecl>...
Matches a declaration of a namespace.
 
 Given
@@ -316,7 +316,7 @@ namespaceDecl()
 
-Matcher<Decl>nonTypeTemplateParmDeclMatcher<NonTypeTemplateParmDecl>... +Matcher<Decl>nonTypeTemplateParmDeclMatcher<NonTypeTemplateParmDecl>...
Matches non-type template parameter declarations.
 
 Given
@@ -326,7 +326,7 @@ nonTypeTemplateParmDecl()
 
-Matcher<Decl>objcInterfaceDeclMatcher<ObjCInterfaceDecl>... +Matcher<Decl>objcInterfaceDeclMatcher<ObjCInterfaceDecl>...
Matches Objective-C interface declarations.
 
 Example matches Foo
@@ -335,7 +335,7 @@ Example matches Foo
 
-Matcher<Decl>parmVarDeclMatcher<ParmVarDecl>... +Matcher<Decl>parmVarDeclMatcher<ParmVarDecl>...
Matches parameter variable declarations.
 
 Given
@@ -345,7 +345,7 @@ parmVarDecl()
 
-Matcher<Decl>recordDeclMatcher<RecordDecl>... +Matcher<Decl>recordDeclMatcher<RecordDecl>...
Matches class, struct, and union declarations.
 
 Example matches X, Z, U, and S
@@ -356,7 +356,7 @@ Example matches X, Z, U, and S
 
-Matcher<Decl>staticAssertDeclMatcher<StaticAssertDecl>... +Matcher<Decl>staticAssertDeclMatcher<StaticAssertDecl>...
Matches a C++ static_assert declaration.
 
 Example:
@@ -371,7 +371,7 @@ in
 
-Matcher<Decl>templateTypeParmDeclMatcher<TemplateTypeParmDecl>... +Matcher<Decl>templateTypeParmDeclMatcher<TemplateTypeParmDecl>...
Matches template type parameter declarations.
 
 Given
@@ -381,7 +381,7 @@ templateTypeParmDecl()
 
-Matcher<Decl>translationUnitDeclMatcher<TranslationUnitDecl>... +Matcher<Decl>translationUnitDeclMatcher<TranslationUnitDecl>...
Matches the top declaration context.
 
 Given
@@ -394,7 +394,7 @@ decl(hasDeclContext(translationUnitDecl()))
 
-Matcher<Decl>typedefDeclMatcher<TypedefDecl>... +Matcher<Decl>typedefDeclMatcher<TypedefDecl>...
Matches typedef declarations.
 
 Given
@@ -404,7 +404,7 @@ typedefDecl()
 
-Matcher<Decl>unresolvedUsingTypenameDeclMatcher<UnresolvedUsingTypenameDecl>... +Matcher<Decl>unresolvedUsingTypenameDeclMatcher<UnresolvedUsingTypenameDecl>...
Matches unresolved using value declarations that involve the
 typename.
 
@@ -420,7 +420,7 @@ unresolvedUsingTypenameDecl()
   matches using Base<T>::Foo 
-Matcher<Decl>unresolvedUsingValueDeclMatcher<UnresolvedUsingValueDecl>... +Matcher<Decl>unresolvedUsingValueDeclMatcher<UnresolvedUsingValueDecl>...
Matches unresolved using value declarations.
 
 Given
@@ -432,7 +432,7 @@ unresolvedUsingValueDecl()
   matches using X::x 
-Matcher<Decl>usingDeclMatcher<UsingDecl>... +Matcher<Decl>usingDeclMatcher<UsingDecl>...
Matches using declarations.
 
 Given
@@ -442,7 +442,7 @@ usingDecl()
   matches using X::x 
-Matcher<Decl>usingDirectiveDeclMatcher<UsingDirectiveDecl>... +Matcher<Decl>usingDirectiveDeclMatcher<UsingDirectiveDecl>...
Matches using namespace declarations.
 
 Given
@@ -452,7 +452,7 @@ usingDirectiveDecl()
   matches using namespace X 
-Matcher<Decl>valueDeclMatcher<ValueDecl>... +Matcher<Decl>valueDeclMatcher<ValueDecl>...
Matches any value declaration.
 
 Example matches A, B, C and F
@@ -461,7 +461,7 @@ Example matches A, B, C and F
 
-Matcher<Decl>varDeclMatcher<VarDecl>... +Matcher<Decl>varDeclMatcher<VarDecl>...
Matches variable declarations.
 
 Note: this does not match declarations of member variables, which are
@@ -472,12 +472,12 @@ Example matches a
 
-Matcher<NestedNameSpecifierLoc>nestedNameSpecifierLocMatcher<NestedNameSpecifierLoc>... +Matcher<NestedNameSpecifierLoc>nestedNameSpecifierLocMatcher<NestedNameSpecifierLoc>...
Same as nestedNameSpecifier but matches NestedNameSpecifierLoc.
 
-Matcher<NestedNameSpecifier>nestedNameSpecifierMatcher<NestedNameSpecifier>... +Matcher<NestedNameSpecifier>nestedNameSpecifierMatcher<NestedNameSpecifier>...
Matches nested name specifiers.
 
 Given
@@ -492,12 +492,12 @@ nestedNameSpecifier()
 
-Matcher<QualType>qualTypeMatcher<QualType>... +Matcher<QualType>qualTypeMatcher<QualType>...
Matches QualTypes in the clang AST.
 
-Matcher<Stmt>arraySubscriptExprMatcher<ArraySubscriptExpr>... +Matcher<Stmt>arraySubscriptExprMatcher<ArraySubscriptExpr>...
Matches array subscript expressions.
 
 Given
@@ -507,7 +507,7 @@ arraySubscriptExpr()
 
-Matcher<Stmt>asmStmtMatcher<AsmStmt>... +Matcher<Stmt>asmStmtMatcher<AsmStmt>...
Matches asm statements.
 
  int i = 100;
@@ -517,7 +517,7 @@ asmStmt()
 
-Matcher<Stmt>binaryOperatorMatcher<BinaryOperator>... +Matcher<Stmt>binaryOperatorMatcher<BinaryOperator>...
Matches binary operator expressions.
 
 Example matches a || b
@@ -525,7 +525,7 @@ Example matches a || b
 
-Matcher<Stmt>breakStmtMatcher<BreakStmt>... +Matcher<Stmt>breakStmtMatcher<BreakStmt>...
Matches break statements.
 
 Given
@@ -535,7 +535,7 @@ breakStmt()
 
-Matcher<Stmt>cStyleCastExprMatcher<CStyleCastExpr>... +Matcher<Stmt>cStyleCastExprMatcher<CStyleCastExpr>...
Matches a C-style cast expression.
 
 Example: Matches (int*) 2.2f in
@@ -543,7 +543,7 @@ Example: Matches (int*) 2.2f in
 
-Matcher<Stmt>callExprMatcher<CallExpr>... +Matcher<Stmt>callExprMatcher<CallExpr>...
Matches call expressions.
 
 Example matches x.y() and y()
@@ -553,7 +553,7 @@ Example matches x.y() and y()
 
-Matcher<Stmt>caseStmtMatcher<CaseStmt>... +Matcher<Stmt>caseStmtMatcher<CaseStmt>...
Matches case statements inside switch statements.
 
 Given
@@ -563,7 +563,7 @@ caseStmt()
 
-Matcher<Stmt>castExprMatcher<CastExpr>... +Matcher<Stmt>castExprMatcher<CastExpr>...
Matches any cast nodes of Clang's AST.
 
 Example: castExpr() matches each of the following:
@@ -576,7 +576,7 @@ but does not match
 
-Matcher<Stmt>characterLiteralMatcher<CharacterLiteral>... +Matcher<Stmt>characterLiteralMatcher<CharacterLiteral>...
Matches character literals (also matches wchar_t).
 
 Not matching Hex-encoded chars (e.g. 0x1234, which is a IntegerLiteral),
@@ -587,7 +587,7 @@ Example matches 'a', L'a'
 
-Matcher<Stmt>compoundLiteralExprMatcher<CompoundLiteralExpr>... +Matcher<Stmt>compoundLiteralExprMatcher<CompoundLiteralExpr>...
Matches compound (i.e. non-scalar) literals
 
 Example match: {1}, (1, 2)
@@ -595,7 +595,7 @@ Example match: {1}, (1, 2)
 
-Matcher<Stmt>compoundStmtMatcher<CompoundStmt>... +Matcher<Stmt>compoundStmtMatcher<CompoundStmt>...
Matches compound statements.
 
 Example matches '{}' and '{{}}'in 'for (;;) {{}}'
@@ -603,7 +603,7 @@ Example matches '{}' and '{{}}'in 'for (;;) {{}}'
 
-Matcher<Stmt>conditionalOperatorMatcher<ConditionalOperator>... +Matcher<Stmt>conditionalOperatorMatcher<ConditionalOperator>...
Matches conditional operator expressions.
 
 Example matches a ? b : c
@@ -611,7 +611,7 @@ Example matches a ? b : c
 
-Matcher<Stmt>continueStmtMatcher<ContinueStmt>... +Matcher<Stmt>continueStmtMatcher<ContinueStmt>...
Matches continue statements.
 
 Given
@@ -621,7 +621,7 @@ continueStmt()
 
-Matcher<Stmt>cudaKernelCallExprMatcher<CUDAKernelCallExpr>... +Matcher<Stmt>cudaKernelCallExprMatcher<CUDAKernelCallExpr>...
Matches CUDA kernel call expression.
 
 Example matches,
@@ -629,7 +629,7 @@ Example matches,
 
-Matcher<Stmt>cxxBindTemporaryExprMatcher<CXXBindTemporaryExpr>... +Matcher<Stmt>cxxBindTemporaryExprMatcher<CXXBindTemporaryExpr>...
Matches nodes where temporaries are created.
 
 Example matches FunctionTakesString(GetStringByValue())
@@ -639,7 +639,7 @@ Example matches FunctionTakesString(GetStringByValue())
 
-Matcher<Stmt>cxxBoolLiteralMatcher<CXXBoolLiteralExpr>... +Matcher<Stmt>cxxBoolLiteralMatcher<CXXBoolLiteralExpr>...
Matches bool literals.
 
 Example matches true
@@ -647,7 +647,7 @@ Example matches true
 
-Matcher<Stmt>cxxCatchStmtMatcher<CXXCatchStmt>... +Matcher<Stmt>cxxCatchStmtMatcher<CXXCatchStmt>...
Matches catch statements.
 
   try {} catch(int i) {}
@@ -656,7 +656,7 @@ cxxCatchStmt()
 
-Matcher<Stmt>cxxConstCastExprMatcher<CXXConstCastExpr>... +Matcher<Stmt>cxxConstCastExprMatcher<CXXConstCastExpr>...
Matches a const_cast expression.
 
 Example: Matches const_cast<int*>(&r) in
@@ -666,7 +666,7 @@ Example: Matches const_cast<int*>(&r) in
 
-Matcher<Stmt>cxxConstructExprMatcher<CXXConstructExpr>... +Matcher<Stmt>cxxConstructExprMatcher<CXXConstructExpr>...
Matches constructor call expressions (including implicit ones).
 
 Example matches string(ptr, n) and ptr within arguments of f
@@ -678,7 +678,7 @@ Example matches string(ptr, n) and ptr within arguments of f
 
-Matcher<Stmt>cxxDefaultArgExprMatcher<CXXDefaultArgExpr>... +Matcher<Stmt>cxxDefaultArgExprMatcher<CXXDefaultArgExpr>...
Matches the value of a default argument at the call site.
 
 Example matches the CXXDefaultArgExpr placeholder inserted for the
@@ -689,7 +689,7 @@ Example matches the CXXDefaultArgExpr placeholder inserted for the
 
-Matcher<Stmt>cxxDeleteExprMatcher<CXXDeleteExpr>... +Matcher<Stmt>cxxDeleteExprMatcher<CXXDeleteExpr>...
Matches delete expressions.
 
 Given
@@ -699,7 +699,7 @@ cxxDeleteExpr()
 
-Matcher<Stmt>cxxDynamicCastExprMatcher<CXXDynamicCastExpr>... +Matcher<Stmt>cxxDynamicCastExprMatcher<CXXDynamicCastExpr>...
Matches a dynamic_cast expression.
 
 Example:
@@ -713,7 +713,7 @@ in
 
-Matcher<Stmt>cxxForRangeStmtMatcher<CXXForRangeStmt>... +Matcher<Stmt>cxxForRangeStmtMatcher<CXXForRangeStmt>...
Matches range-based for statements.
 
 cxxForRangeStmt() matches 'for (auto a : i)'
@@ -722,7 +722,7 @@ cxxForRangeStmt() matches 'for (auto a : i)'
 
-Matcher<Stmt>cxxFunctionalCastExprMatcher<CXXFunctionalCastExpr>... +Matcher<Stmt>cxxFunctionalCastExprMatcher<CXXFunctionalCastExpr>...
Matches functional cast expressions
 
 Example: Matches Foo(bar);
@@ -732,7 +732,7 @@ Example: Matches Foo(bar);
 
-Matcher<Stmt>cxxMemberCallExprMatcher<CXXMemberCallExpr>... +Matcher<Stmt>cxxMemberCallExprMatcher<CXXMemberCallExpr>...
Matches member call expressions.
 
 Example matches x.y()
@@ -741,7 +741,7 @@ Example matches x.y()
 
-Matcher<Stmt>cxxNewExprMatcher<CXXNewExpr>... +Matcher<Stmt>cxxNewExprMatcher<CXXNewExpr>...
Matches new expressions.
 
 Given
@@ -751,12 +751,12 @@ cxxNewExpr()
 
-Matcher<Stmt>cxxNullPtrLiteralExprMatcher<CXXNullPtrLiteralExpr>... +Matcher<Stmt>cxxNullPtrLiteralExprMatcher<CXXNullPtrLiteralExpr>...
Matches nullptr literal.
 
-Matcher<Stmt>cxxOperatorCallExprMatcher<CXXOperatorCallExpr>... +Matcher<Stmt>cxxOperatorCallExprMatcher<CXXOperatorCallExpr>...
Matches overloaded operator calls.
 
 Note that if an operator isn't overloaded, it won't match. Instead, use
@@ -772,7 +772,7 @@ Example matches both operator<<((o << b), c) and operator<<(o,
 
-Matcher<Stmt>cxxReinterpretCastExprMatcher<CXXReinterpretCastExpr>... +Matcher<Stmt>cxxReinterpretCastExprMatcher<CXXReinterpretCastExpr>...
Matches a reinterpret_cast expression.
 
 Either the source expression or the destination type can be matched
@@ -784,7 +784,7 @@ Example matches reinterpret_cast<char*>(&p) in
 
-Matcher<Stmt>cxxStaticCastExprMatcher<CXXStaticCastExpr>... +Matcher<Stmt>cxxStaticCastExprMatcher<CXXStaticCastExpr>...
Matches a C++ static_cast expression.
 
 See also: hasDestinationType
@@ -799,7 +799,7 @@ in
 
-Matcher<Stmt>cxxTemporaryObjectExprMatcher<CXXTemporaryObjectExpr>... +Matcher<Stmt>cxxTemporaryObjectExprMatcher<CXXTemporaryObjectExpr>...
Matches functional cast expressions having N != 1 arguments
 
 Example: Matches Foo(bar, bar)
@@ -807,7 +807,7 @@ Example: Matches Foo(bar, bar)
 
-Matcher<Stmt>cxxThisExprMatcher<CXXThisExpr>... +Matcher<Stmt>cxxThisExprMatcher<CXXThisExpr>...
Matches implicit and explicit this expressions.
 
 Example matches the implicit this expression in "return i".
@@ -819,7 +819,7 @@ struct foo {
 
-Matcher<Stmt>cxxThrowExprMatcher<CXXThrowExpr>... +Matcher<Stmt>cxxThrowExprMatcher<CXXThrowExpr>...
Matches throw expressions.
 
   try { throw 5; } catch(int i) {}
@@ -828,7 +828,7 @@ cxxThrowExpr()
 
-Matcher<Stmt>cxxTryStmtMatcher<CXXTryStmt>... +Matcher<Stmt>cxxTryStmtMatcher<CXXTryStmt>...
Matches try statements.
 
   try {} catch(int i) {}
@@ -837,7 +837,7 @@ cxxTryStmt()
 
-Matcher<Stmt>cxxUnresolvedConstructExprMatcher<CXXUnresolvedConstructExpr>... +Matcher<Stmt>cxxUnresolvedConstructExprMatcher<CXXUnresolvedConstructExpr>...
Matches unresolved constructor call expressions.
 
 Example matches T(t) in return statement of f
@@ -847,7 +847,7 @@ Example matches T(t) in return statement of f
 
-Matcher<Stmt>declRefExprMatcher<DeclRefExpr>... +Matcher<Stmt>declRefExprMatcher<DeclRefExpr>...
Matches expressions that refer to declarations.
 
 Example matches x in if (x)
@@ -856,7 +856,7 @@ Example matches x in if (x)
 
-Matcher<Stmt>declStmtMatcher<DeclStmt>... +Matcher<Stmt>declStmtMatcher<DeclStmt>...
Matches declaration statements.
 
 Given
@@ -866,7 +866,7 @@ declStmt()
 
-Matcher<Stmt>defaultStmtMatcher<DefaultStmt>... +Matcher<Stmt>defaultStmtMatcher<DefaultStmt>...
Matches default statements inside switch statements.
 
 Given
@@ -876,7 +876,7 @@ defaultStmt()
 
-Matcher<Stmt>doStmtMatcher<DoStmt>... +Matcher<Stmt>doStmtMatcher<DoStmt>...
Matches do statements.
 
 Given
@@ -886,7 +886,7 @@ doStmt()
 
-Matcher<Stmt>explicitCastExprMatcher<ExplicitCastExpr>... +Matcher<Stmt>explicitCastExprMatcher<ExplicitCastExpr>...
Matches explicit cast expressions.
 
 Matches any cast expression written in user code, whether it be a
@@ -907,7 +907,7 @@ but does not match the implicit conversion in
 
-Matcher<Stmt>exprMatcher<Expr>... +Matcher<Stmt>exprMatcher<Expr>...
Matches expressions.
 
 Example matches x()
@@ -915,7 +915,7 @@ Example matches x()
 
-Matcher<Stmt>exprWithCleanupsMatcher<ExprWithCleanups>... +Matcher<Stmt>exprWithCleanupsMatcher<ExprWithCleanups>...
Matches expressions that introduce cleanups to be run at the end
 of the sub-expression's evaluation.
 
@@ -924,7 +924,7 @@ Example matches std::string()
 
-Matcher<Stmt>floatLiteralMatcher<FloatingLiteral>... +Matcher<Stmt>floatLiteralMatcher<FloatingLiteral>...
Matches float literals of all sizes encodings, e.g.
 1.0, 1.0f, 1.0L and 1e10.
 
@@ -933,7 +933,7 @@ Does not match implicit conversions such as
 
-Matcher<Stmt>forStmtMatcher<ForStmt>... +Matcher<Stmt>forStmtMatcher<ForStmt>...
Matches for statements.
 
 Example matches 'for (;;) {}'
@@ -942,12 +942,12 @@ Example matches 'for (;;) {}'
 
-Matcher<Stmt>gnuNullExprMatcher<GNUNullExpr>... +Matcher<Stmt>gnuNullExprMatcher<GNUNullExpr>...
Matches GNU __null expression.
 
-Matcher<Stmt>gotoStmtMatcher<GotoStmt>... +Matcher<Stmt>gotoStmtMatcher<GotoStmt>...
Matches goto statements.
 
 Given
@@ -958,7 +958,7 @@ gotoStmt()
 
-Matcher<Stmt>ifStmtMatcher<IfStmt>... +Matcher<Stmt>ifStmtMatcher<IfStmt>...
Matches if statements.
 
 Example matches 'if (x) {}'
@@ -966,7 +966,7 @@ Example matches 'if (x) {}'
 
-Matcher<Stmt>implicitCastExprMatcher<ImplicitCastExpr>... +Matcher<Stmt>implicitCastExprMatcher<ImplicitCastExpr>...
Matches the implicit cast nodes of Clang's AST.
 
 This matches many different places, including function call return value
@@ -974,7 +974,7 @@ eliding, as well as any type conversions.
 
-Matcher<Stmt>initListExprMatcher<InitListExpr>... +Matcher<Stmt>initListExprMatcher<InitListExpr>...
Matches init list expressions.
 
 Given
@@ -986,7 +986,7 @@ initListExpr()
 
-Matcher<Stmt>integerLiteralMatcher<IntegerLiteral>... +Matcher<Stmt>integerLiteralMatcher<IntegerLiteral>...
Matches integer literals of all sizes encodings, e.g.
 1, 1L, 0x1 and 1U.
 
@@ -994,7 +994,7 @@ Does not match character-encoded integers such as L'a'.
 
-Matcher<Stmt>labelStmtMatcher<LabelStmt>... +Matcher<Stmt>labelStmtMatcher<LabelStmt>...
Matches label statements.
 
 Given
@@ -1005,7 +1005,7 @@ labelStmt()
 
-Matcher<Stmt>lambdaExprMatcher<LambdaExpr>... +Matcher<Stmt>lambdaExprMatcher<LambdaExpr>...
Matches lambda expressions.
 
 Example matches [&](){return 5;}
@@ -1013,7 +1013,7 @@ Example matches [&](){return 5;}
 
-Matcher<Stmt>materializeTemporaryExprMatcher<MaterializeTemporaryExpr>... +Matcher<Stmt>materializeTemporaryExprMatcher<MaterializeTemporaryExpr>...
Matches nodes where temporaries are materialized.
 
 Example: Given
@@ -1029,7 +1029,7 @@ but does not match
 
-Matcher<Stmt>memberExprMatcher<MemberExpr>... +Matcher<Stmt>memberExprMatcher<MemberExpr>...
Matches member expressions.
 
 Given
@@ -1042,7 +1042,7 @@ memberExpr()
 
-Matcher<Stmt>nullStmtMatcher<NullStmt>... +Matcher<Stmt>nullStmtMatcher<NullStmt>...
Matches null statements.
 
   foo();;
@@ -1051,7 +1051,7 @@ nullStmt()
 
-Matcher<Stmt>objcMessageExprMatcher<ObjCMessageExpr>... +Matcher<Stmt>objcMessageExprMatcher<ObjCMessageExpr>...
Matches ObjectiveC Message invocation expressions.
 
 The innermost message send invokes the "alloc" class method on the
@@ -1062,7 +1062,7 @@ NSString's "alloc". This matcher should match both message sends.
 
-Matcher<Stmt>parenExprMatcher<ParenExpr>... +Matcher<Stmt>parenExprMatcher<ParenExpr>...
Matches parentheses used in expressions.
 
 Example matches (foo() + 1)
@@ -1071,7 +1071,7 @@ Example matches (foo() + 1)
 
-Matcher<Stmt>returnStmtMatcher<ReturnStmt>... +Matcher<Stmt>returnStmtMatcher<ReturnStmt>...
Matches return statements.
 
 Given
@@ -1081,7 +1081,7 @@ returnStmt()
 
-Matcher<Stmt>stmtMatcher<Stmt>... +Matcher<Stmt>stmtMatcher<Stmt>...
Matches statements.
 
 Given
@@ -1091,7 +1091,7 @@ stmt()
 
-Matcher<Stmt>stringLiteralMatcher<StringLiteral>... +Matcher<Stmt>stringLiteralMatcher<StringLiteral>...
Matches string literals (also matches wide string literals).
 
 Example matches "abcd", L"abcd"
@@ -1099,7 +1099,7 @@ Example matches "abcd", L"abcd"
 
-Matcher<Stmt>substNonTypeTemplateParmExprMatcher<SubstNonTypeTemplateParmExpr>... +Matcher<Stmt>substNonTypeTemplateParmExprMatcher<SubstNonTypeTemplateParmExpr>...
Matches substitutions of non-type template parameters.
 
 Given
@@ -1111,7 +1111,7 @@ substNonTypeTemplateParmExpr()
 
-Matcher<Stmt>switchCaseMatcher<SwitchCase>... +Matcher<Stmt>switchCaseMatcher<SwitchCase>...
Matches case and default statements inside switch statements.
 
 Given
@@ -1121,7 +1121,7 @@ switchCase()
 
-Matcher<Stmt>switchStmtMatcher<SwitchStmt>... +Matcher<Stmt>switchStmtMatcher<SwitchStmt>...
Matches switch statements.
 
 Given
@@ -1131,7 +1131,7 @@ switchStmt()
 
-Matcher<Stmt>unaryExprOrTypeTraitExprMatcher<UnaryExprOrTypeTraitExpr>... +Matcher<Stmt>unaryExprOrTypeTraitExprMatcher<UnaryExprOrTypeTraitExpr>...
Matches sizeof (C99), alignof (C++11) and vec_step (OpenCL)
 
 Given
@@ -1142,7 +1142,7 @@ unaryExprOrTypeTraitExpr()
 
-Matcher<Stmt>unaryOperatorMatcher<UnaryOperator>... +Matcher<Stmt>unaryOperatorMatcher<UnaryOperator>...
Matches unary operator expressions.
 
 Example matches !a
@@ -1150,14 +1150,14 @@ Example matches !a
 
-Matcher<Stmt>userDefinedLiteralMatcher<UserDefinedLiteral>... +Matcher<Stmt>userDefinedLiteralMatcher<UserDefinedLiteral>...
Matches user defined literal operator call.
 
 Example match: "foo"_suffix
 
-Matcher<Stmt>whileStmtMatcher<WhileStmt>... +Matcher<Stmt>whileStmtMatcher<WhileStmt>...
Matches while statements.
 
 Given
@@ -1167,7 +1167,7 @@ whileStmt()
 
-Matcher<TemplateArgument>templateArgumentMatcher<TemplateArgument>... +Matcher<TemplateArgument>templateArgumentMatcher<TemplateArgument>...
Matches template arguments.
 
 Given
@@ -1178,12 +1178,12 @@ templateArgument()
 
-Matcher<TypeLoc>typeLocMatcher<TypeLoc>... +Matcher<TypeLoc>typeLocMatcher<TypeLoc>...
Matches TypeLocs in the clang AST.
 
-Matcher<Type>arrayTypeMatcher<ArrayType>... +Matcher<Type>arrayTypeMatcher<ArrayType>...
Matches all kinds of arrays.
 
 Given
@@ -1195,7 +1195,7 @@ arrayType()
 
-Matcher<Type>atomicTypeMatcher<AtomicType>... +Matcher<Type>atomicTypeMatcher<AtomicType>...
Matches atomic types.
 
 Given
@@ -1205,7 +1205,7 @@ atomicType()
 
-Matcher<Type>autoTypeMatcher<AutoType>... +Matcher<Type>autoTypeMatcher<AutoType>...
Matches types nodes representing C++11 auto types.
 
 Given:
@@ -1217,7 +1217,7 @@ autoType()
 
-Matcher<Type>blockPointerTypeMatcher<BlockPointerType>... +Matcher<Type>blockPointerTypeMatcher<BlockPointerType>...
Matches block pointer types, i.e. types syntactically represented as
 "void (^)(int)".
 
@@ -1225,7 +1225,7 @@ The pointee is always required to be a FunctionType.
 
-Matcher<Type>builtinTypeMatcher<BuiltinType>... +Matcher<Type>builtinTypeMatcher<BuiltinType>...
Matches builtin Types.
 
 Given
@@ -1239,7 +1239,7 @@ builtinType()
 
-Matcher<Type>complexTypeMatcher<ComplexType>... +Matcher<Type>complexTypeMatcher<ComplexType>...
Matches C99 complex types.
 
 Given
@@ -1249,7 +1249,7 @@ complexType()
 
-Matcher<Type>constantArrayTypeMatcher<ConstantArrayType>... +Matcher<Type>constantArrayTypeMatcher<ConstantArrayType>...
Matches C arrays with a specified constant size.
 
 Given
@@ -1263,7 +1263,7 @@ constantArrayType()
 
-Matcher<Type>decayedTypeMatcher<DecayedType>... +Matcher<Type>decayedTypeMatcher<DecayedType>...
Matches decayed type
 Example matches i[] in declaration of f.
     (matcher = valueDecl(hasType(decayedType(hasDecayedType(pointerType())))))
@@ -1275,7 +1275,7 @@ Example matches i[1].
 
-Matcher<Type>dependentSizedArrayTypeMatcher<DependentSizedArrayType>... +Matcher<Type>dependentSizedArrayTypeMatcher<DependentSizedArrayType>...
Matches C++ arrays whose size is a value-dependent expression.
 
 Given
@@ -1288,7 +1288,7 @@ dependentSizedArrayType
 
-Matcher<Type>elaboratedTypeMatcher<ElaboratedType>... +Matcher<Type>elaboratedTypeMatcher<ElaboratedType>...
Matches types specified with an elaborated type keyword or with a
 qualified name.
 
@@ -1308,7 +1308,7 @@ c and d.
 
-Matcher<Type>functionTypeMatcher<FunctionType>... +Matcher<Type>functionTypeMatcher<FunctionType>...
Matches FunctionType nodes.
 
 Given
@@ -1319,7 +1319,7 @@ functionType()
 
-Matcher<Type>incompleteArrayTypeMatcher<IncompleteArrayType>... +Matcher<Type>incompleteArrayTypeMatcher<IncompleteArrayType>...
Matches C arrays with unspecified size.
 
 Given
@@ -1331,7 +1331,7 @@ incompleteArrayType()
 
-Matcher<Type>injectedClassNameTypeMatcher<InjectedClassNameType>... +Matcher<Type>injectedClassNameTypeMatcher<InjectedClassNameType>...
Matches injected class name types.
 
 Example matches S s, but not S<T> s.
@@ -1343,7 +1343,7 @@ Example matches S s, but not S<T> s.
 
-Matcher<Type>lValueReferenceTypeMatcher<LValueReferenceType>... +Matcher<Type>lValueReferenceTypeMatcher<LValueReferenceType>...
Matches lvalue reference types.
 
 Given:
@@ -1360,7 +1360,7 @@ matched since the type is deduced as int& by reference collapsing rules.
 
-Matcher<Type>memberPointerTypeMatcher<MemberPointerType>... +Matcher<Type>memberPointerTypeMatcher<MemberPointerType>...
Matches member pointer types.
 Given
   struct A { int i; }
@@ -1370,7 +1370,7 @@ memberPointerType()
 
-Matcher<Type>objcObjectPointerTypeMatcher<ObjCObjectPointerType>... +Matcher<Type>objcObjectPointerTypeMatcher<ObjCObjectPointerType>...
Matches an Objective-C object pointer type, which is different from
 a pointer type, despite being syntactically similar.
 
@@ -1385,7 +1385,7 @@ pointerType()
 
-Matcher<Type>parenTypeMatcher<ParenType>... +Matcher<Type>parenTypeMatcher<ParenType>...
Matches ParenType nodes.
 
 Given
@@ -1397,7 +1397,7 @@ array_of_ptrs.
 
-Matcher<Type>pointerTypeMatcher<PointerType>... +Matcher<Type>pointerTypeMatcher<PointerType>...
Matches pointer types, but does not match Objective-C object pointer
 types.
 
@@ -1414,7 +1414,7 @@ pointerType()
 
-Matcher<Type>rValueReferenceTypeMatcher<RValueReferenceType>... +Matcher<Type>rValueReferenceTypeMatcher<RValueReferenceType>...
Matches rvalue reference types.
 
 Given:
@@ -1431,7 +1431,7 @@ matched as it is deduced to int& by reference collapsing rules.
 
-Matcher<Type>recordTypeMatcher<RecordType>... +Matcher<Type>recordTypeMatcher<RecordType>...
Matches record types (e.g. structs, classes).
 
 Given
@@ -1446,7 +1446,7 @@ and s.
 
-Matcher<Type>referenceTypeMatcher<ReferenceType>... +Matcher<Type>referenceTypeMatcher<ReferenceType>...
Matches both lvalue and rvalue reference types.
 
 Given
@@ -1462,7 +1462,7 @@ referenceType() matches the types of b, c, d, e, and f.
 
-Matcher<Type>substTemplateTypeParmTypeMatcher<SubstTemplateTypeParmType>... +Matcher<Type>substTemplateTypeParmTypeMatcher<SubstTemplateTypeParmType>...
Matches types that represent the result of substituting a type for a
 template type parameter.
 
@@ -1476,7 +1476,7 @@ substTemplateTypeParmType() matches the type of 't' but not '1'
 
-Matcher<Type>templateSpecializationTypeMatcher<TemplateSpecializationType>... +Matcher<Type>templateSpecializationTypeMatcher<TemplateSpecializationType>...
Matches template specialization types.
 
 Given
@@ -1491,7 +1491,7 @@ instantiation in A and the type of the variable declaration in B.
 
-Matcher<Type>templateTypeParmTypeMatcher<TemplateTypeParmType>... +Matcher<Type>templateTypeParmTypeMatcher<TemplateTypeParmType>...
Matches template type parameter types.
 
 Example matches T, but not int.
@@ -1500,12 +1500,12 @@ Example matches T, but not int.
 
-Matcher<Type>typeMatcher<Type>... +Matcher<Type>typeMatcher<Type>...
Matches Types in the clang AST.
 
-Matcher<Type>typedefTypeMatcher<TypedefType>... +Matcher<Type>typedefTypeMatcher<TypedefType>...
Matches typedef types.
 
 Given
@@ -1515,7 +1515,7 @@ typedefType()
 
-Matcher<Type>unaryTransformTypeMatcher<UnaryTransformType>... +Matcher<Type>unaryTransformTypeMatcher<UnaryTransformType>...
Matches types nodes representing unary type transformations.
 
 Given:
@@ -1525,7 +1525,7 @@ unaryTransformType()
 
-Matcher<Type>variableArrayTypeMatcher<VariableArrayType>... +Matcher<Type>variableArrayTypeMatcher<VariableArrayType>...
Matches C arrays with a specified size that is not an
 integer-constant-expression.
 
@@ -1597,7 +1597,7 @@ Usable as: Any Matcher
 
-Matcher<BinaryOperator>hasOperatorNamestd::string Name +Matcher<BinaryOperator>hasOperatorNamestd::string Name
Matches the operator Name of operator expressions (binary or
 unary).
 
@@ -1612,12 +1612,12 @@ Example matches a || b (matcher = binaryOperator(hasOperatorName("||")))
 Example matches true (matcher = cxxBoolLiteral(equals(true)))
   true
 
-Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteral>,
-           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
+Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteral>,
+           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
 
-Matcher<CXXCatchStmt>isCatchAll +Matcher<CXXCatchStmt>isCatchAll
Matches a C++ catch statement that has a catch-all handler.
 
 Given
@@ -1633,7 +1633,7 @@ cxxCatchStmt(isCatchAll()) matches catch(...) but not catch(int).
 
-Matcher<CXXConstructExpr>argumentCountIsunsigned N +Matcher<CXXConstructExpr>argumentCountIsunsigned N
Checks that a call expression or a constructor call expression has
 a specific number of arguments (including absent default arguments).
 
@@ -1643,12 +1643,12 @@ Example matches f(0, 0) (matcher = callExpr(argumentCountIs(2)))
 
-Matcher<CXXConstructExpr>isListInitialization +Matcher<CXXConstructExpr>isListInitialization
Matches a constructor call expression which uses list initialization.
 
-Matcher<CXXConstructorDecl>isCopyConstructor +Matcher<CXXConstructorDecl>isCopyConstructor
Matches constructor declarations that are copy constructors.
 
 Given
@@ -1661,7 +1661,7 @@ cxxConstructorDecl(isCopyConstructor()) will match #2, but not #1 or #3.
 
-Matcher<CXXConstructorDecl>isDefaultConstructor +Matcher<CXXConstructorDecl>isDefaultConstructor
Matches constructor declarations that are default constructors.
 
 Given
@@ -1674,7 +1674,7 @@ cxxConstructorDecl(isDefaultConstructor()) will match #1, but not #2 or #3.
 
-Matcher<CXXConstructorDecl>isExplicit +Matcher<CXXConstructorDecl>isExplicit
Matches constructor and conversion declarations that are marked with
 the explicit keyword.
 
@@ -1690,7 +1690,7 @@ cxxConversionDecl(isExplicit()) will match #4, but not #3.
 
-Matcher<CXXConstructorDecl>isMoveConstructor +Matcher<CXXConstructorDecl>isMoveConstructor
Matches constructor declarations that are move constructors.
 
 Given
@@ -1703,7 +1703,7 @@ cxxConstructorDecl(isMoveConstructor()) will match #3, but not #1 or #2.
 
-Matcher<CXXConversionDecl>isExplicit +Matcher<CXXConversionDecl>isExplicit
Matches constructor and conversion declarations that are marked with
 the explicit keyword.
 
@@ -1719,7 +1719,7 @@ cxxConversionDecl(isExplicit()) will match #4, but not #3.
 
-Matcher<CXXCtorInitializer>isBaseInitializer +Matcher<CXXCtorInitializer>isBaseInitializer
Matches a constructor initializer if it is initializing a base, as
 opposed to a member.
 
@@ -1737,7 +1737,7 @@ cxxConstructorDecl(hasAnyConstructorInitializer(isBaseInitializer()))
 
-Matcher<CXXCtorInitializer>isMemberInitializer +Matcher<CXXCtorInitializer>isMemberInitializer
Matches a constructor initializer if it is initializing a member, as
 opposed to a base.
 
@@ -1755,7 +1755,7 @@ cxxConstructorDecl(hasAnyConstructorInitializer(isMemberInitializer()))
 
-Matcher<CXXCtorInitializer>isWritten +Matcher<CXXCtorInitializer>isWritten
Matches a constructor initializer if it is explicitly written in
 code (as opposed to implicitly added by the compiler).
 
@@ -1770,7 +1770,7 @@ cxxConstructorDecl(hasAnyConstructorInitializer(isWritten()))
 
-Matcher<CXXMethodDecl>isConst +Matcher<CXXMethodDecl>isConst
Matches if the given method declaration is const.
 
 Given
@@ -1783,7 +1783,7 @@ cxxMethodDecl(isConst()) matches A::foo() but not A::bar()
 
-Matcher<CXXMethodDecl>isCopyAssignmentOperator +Matcher<CXXMethodDecl>isCopyAssignmentOperator
Matches if the given method declaration declares a copy assignment
 operator.
 
@@ -1798,7 +1798,7 @@ the second one.
 
-Matcher<CXXMethodDecl>isFinal +Matcher<CXXMethodDecl>isFinal
Matches if the given method or class declaration is final.
 
 Given:
@@ -1815,22 +1815,20 @@ matches A and C::f, but not B, C, or B::f
 
-Matcher<CXXMethodDecl>isMoveAssignmentOperator +Matcher<CXXMethodDecl>isMoveAssignmentOperator
Matches if the given method declaration declares a move assignment
 operator.
 
 Given
-struct A {
-  A &operator=(const A &);
-  A &operator=(A &&);
-};
-
-cxxMethodDecl(isMoveAssignmentOperator()) matches the second method but not
-the first one.
+  struct S {
+    S(const S &); #1
+    S& operator=(S &&); #2
+  };
+cxxMethodDecl(isMoveAssignmentOperator()) will match #2, but not #1.
 
-Matcher<CXXMethodDecl>isOverride +Matcher<CXXMethodDecl>isOverride
Matches if the given method declaration overrides another method.
 
 Given
@@ -1846,7 +1844,7 @@ Given
 
-Matcher<CXXMethodDecl>isPure +Matcher<CXXMethodDecl>isPure
Matches if the given method declaration is pure.
 
 Given
@@ -1858,7 +1856,7 @@ Given
 
-Matcher<CXXMethodDecl>isVirtual +Matcher<CXXMethodDecl>isVirtual
Matches if the given method declaration is virtual.
 
 Given
@@ -1869,7 +1867,8 @@ Given
   matches A::x
 
-Matcher<CXXMethodDecl>isVirtualAsWritten + +Matcher<CXXMethodDecl>isVirtualAsWritten
Matches if the given method declaration has an explicit "virtual".
 
 Given
@@ -1884,7 +1883,8 @@ Given
   matches A::x but not B::x
 
-Matcher<CXXOperatorCallExpr>hasOverloadedOperatorNameStringRef Name + +Matcher<CXXOperatorCallExpr>hasOverloadedOperatorNameStringRef Name
Matches overloaded operator names.
 
 Matches overloaded operator names specified in strings without the
@@ -1901,16 +1901,16 @@ specified line and
 cxxRecordDecl(hasMethod(hasOverloadedOperatorName("*")))
 matches the declaration of A.
 
-Usable as: Matcher<CXXOperatorCallExpr>, Matcher<FunctionDecl>
+Usable as: Matcher<CXXOperatorCallExpr>, Matcher<FunctionDecl>
 
-Matcher<CXXRecordDecl>isDerivedFromstd::string BaseName +Matcher<CXXRecordDecl>isDerivedFromstd::string BaseName
Overloaded method as shortcut for isDerivedFrom(hasName(...)).
 
-Matcher<CXXRecordDecl>isExplicitTemplateSpecialization +Matcher<CXXRecordDecl>isExplicitTemplateSpecialization
Matches explicit template specializations of function, class, or
 static member variable template instantiations.
 
@@ -1920,11 +1920,11 @@ Given
 functionDecl(isExplicitTemplateSpecialization())
   matches the specialization A<int>().
 
-Usable as: Matcher<FunctionDecl>, Matcher<VarDecl>, Matcher<CXXRecordDecl>
+Usable as: Matcher<FunctionDecl>, Matcher<VarDecl>, Matcher<CXXRecordDecl>
 
-Matcher<CXXRecordDecl>isFinal +Matcher<CXXRecordDecl>isFinal
Matches if the given method or class declaration is final.
 
 Given:
@@ -1941,13 +1941,13 @@ matches A and C::f, but not B, C, or B::f
 
-Matcher<CXXRecordDecl>isSameOrDerivedFromstd::string BaseName +Matcher<CXXRecordDecl>isSameOrDerivedFromstd::string BaseName
Overloaded method as shortcut for
 isSameOrDerivedFrom(hasName(...)).
 
-Matcher<CXXRecordDecl>isTemplateInstantiation +Matcher<CXXRecordDecl>isTemplateInstantiation
Matches template instantiations of function, class, or static
 member variable template instantiations.
 
@@ -1964,11 +1964,11 @@ But given
 cxxRecordDecl(hasName("::X"), isTemplateInstantiation())
   does not match, as X<A> is an explicit template specialization.
 
-Usable as: Matcher<FunctionDecl>, Matcher<VarDecl>, Matcher<CXXRecordDecl>
+Usable as: Matcher<FunctionDecl>, Matcher<VarDecl>, Matcher<CXXRecordDecl>
 
-Matcher<CallExpr>argumentCountIsunsigned N +Matcher<CallExpr>argumentCountIsunsigned N
Checks that a call expression or a constructor call expression has
 a specific number of arguments (including absent default arguments).
 
@@ -1978,18 +1978,18 @@ Example matches f(0, 0) (matcher = callExpr(argumentCountIs(2)))
 
-Matcher<CharacterLiteral>equalsValueT Value +Matcher<CharacterLiteral>equalsValueT Value
Matches literals that are equal to the given value.
 
 Example matches true (matcher = cxxBoolLiteral(equals(true)))
   true
 
-Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteral>,
-           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
+Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteral>,
+           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
 
-Matcher<ClassTemplateSpecializationDecl>templateArgumentCountIsunsigned N +Matcher<ClassTemplateSpecializationDecl>templateArgumentCountIsunsigned N
Matches if the number of template arguments equals N.
 
 Given
@@ -2000,7 +2000,7 @@ classTemplateSpecializationDecl(templateArgumentCountIs(1))
 
-Matcher<CompoundStmt>statementCountIsunsigned N +Matcher<CompoundStmt>statementCountIsunsigned N
Checks that a compound statement contains a specific number of
 child statements.
 
@@ -2012,7 +2012,7 @@ compoundStmt(statementCountIs(0)))
 
-Matcher<ConstantArrayType>hasSizeunsigned N +Matcher<ConstantArrayType>hasSizeunsigned N
Matches ConstantArrayType nodes that have the specified size.
 
 Given
@@ -2024,7 +2024,7 @@ constantArrayType(hasSize(42))
 
-Matcher<DeclStmt>declCountIsunsigned N +Matcher<DeclStmt>declCountIsunsigned N
Matches declaration statements that contain a specific number of
 declarations.
 
@@ -2037,7 +2037,7 @@ declCountIs(2)
 
-Matcher<Decl>equalsBoundNodestd::string ID +Matcher<Decl>equalsBoundNodestd::string ID
Matches if a node equals a previously bound node.
 
 Matches a node if it equals the node previously bound to ID.
@@ -2060,7 +2060,7 @@ and reference to that variable declaration within a compound statement.
 
-Matcher<Decl>hasAttrattr::Kind AttrKind +Matcher<Decl>hasAttrattr::Kind AttrKind
Matches declaration that has a given attribute.
 
 Given
@@ -2071,7 +2071,7 @@ passed as a quoted string. e.g., hasAttr("attr::CUDADevice").
 
-Matcher<Decl>isExpansionInFileMatchingstd::string RegExp +Matcher<Decl>isExpansionInFileMatchingstd::string RegExp
Matches AST nodes that were expanded within files whose name is
 partially matching a given regex.
 
@@ -2082,11 +2082,11 @@ Example matches Y but not X
 ASTMatcher.h:
   class Y {};
 
-Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
+Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
 
-Matcher<Decl>isExpansionInMainFile +Matcher<Decl>isExpansionInMainFile
Matches AST nodes that were expanded within the main-file.
 
 Example matches X but not Y
@@ -2096,11 +2096,11 @@ Example matches X but not Y
 Y.h:
   class Y {};
 
-Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
+Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
 
-Matcher<Decl>isExpansionInSystemHeader +Matcher<Decl>isExpansionInSystemHeader
Matches AST nodes that were expanded within system-header-files.
 
 Example matches Y but not X
@@ -2110,17 +2110,17 @@ Example matches Y but not X
 SystemHeader.h:
   class Y {};
 
-Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
+Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
 
-Matcher<Decl>isImplicit +Matcher<Decl>isImplicit
Matches a declaration that has been implicitly added
 by the compiler (eg. implicit defaultcopy constructors).
 
-Matcher<Decl>isPrivate +Matcher<Decl>isPrivate
Matches private C++ declarations.
 
 Given
@@ -2134,7 +2134,7 @@ fieldDecl(isPrivate())
 
-Matcher<Decl>isProtected +Matcher<Decl>isProtected
Matches protected C++ declarations.
 
 Given
@@ -2148,7 +2148,7 @@ fieldDecl(isProtected())
 
-Matcher<Decl>isPublic +Matcher<Decl>isPublic
Matches public C++ declarations.
 
 Given
@@ -2162,18 +2162,18 @@ fieldDecl(isPublic())
 
-Matcher<FloatingLiteral>equalsValueT Value +Matcher<FloatingLiteral>equalsValueT Value
Matches literals that are equal to the given value.
 
 Example matches true (matcher = cxxBoolLiteral(equals(true)))
   true
 
-Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteral>,
-           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
+Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteral>,
+           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
 
-Matcher<FunctionDecl>hasOverloadedOperatorNameStringRef Name +Matcher<FunctionDecl>hasOverloadedOperatorNameStringRef Name
Matches overloaded operator names.
 
 Matches overloaded operator names specified in strings without the
@@ -2190,11 +2190,11 @@ specified line and
 cxxRecordDecl(hasMethod(hasOverloadedOperatorName("*")))
 matches the declaration of A.
 
-Usable as: Matcher<CXXOperatorCallExpr>, Matcher<FunctionDecl>
+Usable as: Matcher<CXXOperatorCallExpr>, Matcher<FunctionDecl>
 
-Matcher<FunctionDecl>isConstexpr +Matcher<FunctionDecl>isConstexpr
Matches constexpr variable and function declarations.
 
 Given:
@@ -2207,7 +2207,7 @@ functionDecl(isConstexpr())
 
-Matcher<FunctionDecl>isDefaulted +Matcher<FunctionDecl>isDefaulted
Matches defaulted function declarations.
 
 Given:
@@ -2218,7 +2218,7 @@ functionDecl(isDefaulted())
 
-Matcher<FunctionDecl>isDefinition +Matcher<FunctionDecl>isDefinition
Matches if a declaration has a body attached.
 
 Example matches A, va, fa
@@ -2229,11 +2229,11 @@ Example matches A, va, fa
   void fa() {}
   void fb();  Doesn't match, as it has no body.
 
-Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>
+Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>
 
-Matcher<FunctionDecl>isDeleted +Matcher<FunctionDecl>isDeleted
Matches deleted function declarations.
 
 Given:
@@ -2244,7 +2244,7 @@ functionDecl(isDeleted())
 
-Matcher<FunctionDecl>isExplicitTemplateSpecialization +Matcher<FunctionDecl>isExplicitTemplateSpecialization
Matches explicit template specializations of function, class, or
 static member variable template instantiations.
 
@@ -2254,11 +2254,11 @@ Given
 functionDecl(isExplicitTemplateSpecialization())
   matches the specialization A<int>().
 
-Usable as: Matcher<FunctionDecl>, Matcher<VarDecl>, Matcher<CXXRecordDecl>
+Usable as: Matcher<FunctionDecl>, Matcher<VarDecl>, Matcher<CXXRecordDecl>
 
-Matcher<FunctionDecl>isExternC +Matcher<FunctionDecl>isExternC
Matches extern "C" function declarations.
 
 Given:
@@ -2270,7 +2270,7 @@ functionDecl(isExternC())
 
-Matcher<FunctionDecl>isInline +Matcher<FunctionDecl>isInline
Matches function and namespace declarations that are marked with
 the inline keyword.
 
@@ -2285,7 +2285,7 @@ namespaceDecl(isInline()) will match n::m.
 
-Matcher<FunctionDecl>isNoThrow +Matcher<FunctionDecl>isNoThrow
Matches functions that have a non-throwing exception specification.
 
 Given:
@@ -2299,7 +2299,7 @@ functionDecl(isNoThrow())
 
-Matcher<FunctionDecl>isTemplateInstantiation +Matcher<FunctionDecl>isTemplateInstantiation
Matches template instantiations of function, class, or static
 member variable template instantiations.
 
@@ -2316,11 +2316,11 @@ But given
 cxxRecordDecl(hasName("::X"), isTemplateInstantiation())
   does not match, as X<A> is an explicit template specialization.
 
-Usable as: Matcher<FunctionDecl>, Matcher<VarDecl>, Matcher<CXXRecordDecl>
+Usable as: Matcher<FunctionDecl>, Matcher<VarDecl>, Matcher<CXXRecordDecl>
 
-Matcher<FunctionDecl>isVariadic +Matcher<FunctionDecl>isVariadic
Matches if a function declaration is variadic.
 
 Example matches f, but not g or h. The function i will not match, even when
@@ -2332,7 +2332,7 @@ compiled in C mode.
 
-Matcher<FunctionDecl>parameterCountIsunsigned N +Matcher<FunctionDecl>parameterCountIsunsigned N
Matches FunctionDecls that have a specific parameter count.
 
 Given
@@ -2343,18 +2343,18 @@ functionDecl(parameterCountIs(2))
 
-Matcher<IntegerLiteral>equalsValueT Value +Matcher<IntegerLiteral>equalsValueT Value
Matches literals that are equal to the given value.
 
 Example matches true (matcher = cxxBoolLiteral(equals(true)))
   true
 
-Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteral>,
-           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
+Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteral>,
+           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
 
-Matcher<MemberExpr>isArrow +Matcher<MemberExpr>isArrow
Matches member expressions that are called with '->' as opposed
 to '.'.
 
@@ -2371,7 +2371,7 @@ memberExpr(isArrow())
 
-Matcher<NamedDecl>hasNamestd::string Name +Matcher<NamedDecl>hasNamestd::string Name
Matches NamedDecl nodes that have the specified name.
 
 Supports specifying enclosing namespaces or classes by prefixing the name
@@ -2386,7 +2386,7 @@ Example matches X (Name is one of "::a::b::X", "a::b::X", "b::X", "X")
 
-Matcher<NamedDecl>matchesNamestd::string RegExp +Matcher<NamedDecl>matchesNamestd::string RegExp
Matches NamedDecl nodes whose fully qualified names contain
 a substring matched by the given RegExp.
 
@@ -2402,7 +2402,7 @@ Example matches X (regexp is one of "::X", "^foo::.*X", among others)
 
-Matcher<NamespaceDecl>isAnonymous +Matcher<NamespaceDecl>isAnonymous
Matches anonymous namespace declarations.
 
 Given
@@ -2413,7 +2413,7 @@ namespaceDecl(isAnonymous()) will match #1 but not ::n.
 
-Matcher<NamespaceDecl>isInline +Matcher<NamespaceDecl>isInline
Matches function and namespace declarations that are marked with
 the inline keyword.
 
@@ -2428,7 +2428,7 @@ namespaceDecl(isInline()) will match n::m.
 
-Matcher<ObjCMessageExpr>argumentCountIsunsigned N +Matcher<ObjCMessageExpr>argumentCountIsunsigned N
Checks that a call expression or a constructor call expression has
 a specific number of arguments (including absent default arguments).
 
@@ -2438,7 +2438,7 @@ Example matches f(0, 0) (matcher = callExpr(argumentCountIs(2)))
 
-Matcher<ObjCMessageExpr>hasKeywordSelector +Matcher<ObjCMessageExpr>hasKeywordSelector
Matches when the selector is a keyword selector
 
 objCMessageExpr(hasKeywordSelector()) matches the generated setFrame
@@ -2452,7 +2452,7 @@ message expression in
 
-Matcher<ObjCMessageExpr>hasNullSelector +Matcher<ObjCMessageExpr>hasNullSelector
Matches when the selector is the empty selector
 
 Matches only when the selector of the objCMessageExpr is NULL. This may
@@ -2460,7 +2460,7 @@ represent an error condition in the tree!
 
-Matcher<ObjCMessageExpr>hasSelectorstd::string BaseName +Matcher<ObjCMessageExpr>hasSelectorstd::string BaseName
Matches when BaseName == Selector.getAsString()
 
  matcher = objCMessageExpr(hasSelector("loadHTMLString:baseURL:"));
@@ -2470,7 +2470,7 @@ represent an error condition in the tree!
 
-Matcher<ObjCMessageExpr>hasUnarySelector +Matcher<ObjCMessageExpr>hasUnarySelector
Matches when the selector is a Unary Selector
 
  matcher = objCMessageExpr(matchesSelector(hasUnarySelector());
@@ -2480,7 +2480,7 @@ represent an error condition in the tree!
 
-Matcher<ObjCMessageExpr>matchesSelectorstd::string RegExp +Matcher<ObjCMessageExpr>matchesSelectorstd::string RegExp
Matches ObjC selectors whose name contains
 a substring matched by the given RegExp.
  matcher = objCMessageExpr(matchesSelector("loadHTMLStringmatches the outer message expr in the code below, but NOT the message
@@ -2489,7 +2489,7 @@ a substring matched by the given RegExp.
 
-Matcher<ObjCMessageExpr>numSelectorArgsunsigned N +Matcher<ObjCMessageExpr>numSelectorArgsunsigned N
Matches when the selector has the specified number of arguments
 
  matcher = objCMessageExpr(numSelectorArgs(0));
@@ -2502,7 +2502,7 @@ a substring matched by the given RegExp.
 
-Matcher<QualType>asStringstd::string Name +Matcher<QualType>asStringstd::string Name
Matches if the matched type is represented by the given string.
 
 Given
@@ -2513,7 +2513,7 @@ cxxMemberCallExpr(on(hasType(asString("class Y *"))))
 
-Matcher<QualType>equalsBoundNodestd::string ID +Matcher<QualType>equalsBoundNodestd::string ID
Matches if a node equals a previously bound node.
 
 Matches a node if it equals the node previously bound to ID.
@@ -2536,7 +2536,7 @@ and reference to that variable declaration within a compound statement.
 
-Matcher<QualType>hasLocalQualifiers +Matcher<QualType>hasLocalQualifiers
Matches QualType nodes that have local CV-qualifiers attached to
 the node, not hidden within a typedef.
 
@@ -2551,7 +2551,7 @@ i is const-qualified but the qualifier is not local.
 
-Matcher<QualType>isAnyCharacter +Matcher<QualType>isAnyCharacter
Matches QualType nodes that are of character type.
 
 Given
@@ -2563,7 +2563,7 @@ matches "a(char)", "b(wchar_t)", but not "c(double)".
 
-Matcher<QualType>isConstQualified +Matcher<QualType>isConstQualified
Matches QualType nodes that are const-qualified, i.e., that
 include "top-level" const.
 
@@ -2580,7 +2580,7 @@ functionDecl(hasAnyParameter(hasType(isConstQualified())))
 
-Matcher<QualType>isInteger +Matcher<QualType>isInteger
Matches QualType nodes that are of integer type.
 
 Given
@@ -2592,7 +2592,7 @@ matches "a(int)", "b(long)", but not "c(double)".
 
-Matcher<QualType>isVolatileQualified +Matcher<QualType>isVolatileQualified
Matches QualType nodes that are volatile-qualified, i.e., that
 include "top-level" volatile.
 
@@ -2609,7 +2609,7 @@ functionDecl(hasAnyParameter(hasType(isVolatileQualified())))
 
-Matcher<RecordDecl>isClass +Matcher<RecordDecl>isClass
Matches RecordDecl object that are spelled with "class."
 
 Example matches C, but not S or U.
@@ -2619,7 +2619,7 @@ Example matches C, but not S or U.
 
-Matcher<RecordDecl>isStruct +Matcher<RecordDecl>isStruct
Matches RecordDecl object that are spelled with "struct."
 
 Example matches S, but not C or U.
@@ -2629,7 +2629,7 @@ Example matches S, but not C or U.
 
-Matcher<RecordDecl>isUnion +Matcher<RecordDecl>isUnion
Matches RecordDecl object that are spelled with "union."
 
 Example matches U, but not C or S.
@@ -2639,7 +2639,7 @@ Example matches U, but not C or S.
 
-Matcher<Stmt>equalsBoundNodestd::string ID +Matcher<Stmt>equalsBoundNodestd::string ID
Matches if a node equals a previously bound node.
 
 Matches a node if it equals the node previously bound to ID.
@@ -2662,7 +2662,7 @@ and reference to that variable declaration within a compound statement.
 
-Matcher<Stmt>isExpansionInFileMatchingstd::string RegExp +Matcher<Stmt>isExpansionInFileMatchingstd::string RegExp
Matches AST nodes that were expanded within files whose name is
 partially matching a given regex.
 
@@ -2673,11 +2673,11 @@ Example matches Y but not X
 ASTMatcher.h:
   class Y {};
 
-Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
+Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
 
-Matcher<Stmt>isExpansionInMainFile +Matcher<Stmt>isExpansionInMainFile
Matches AST nodes that were expanded within the main-file.
 
 Example matches X but not Y
@@ -2687,11 +2687,11 @@ Example matches X but not Y
 Y.h:
   class Y {};
 
-Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
+Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
 
-Matcher<Stmt>isExpansionInSystemHeader +Matcher<Stmt>isExpansionInSystemHeader
Matches AST nodes that were expanded within system-header-files.
 
 Example matches Y but not X
@@ -2701,11 +2701,11 @@ Example matches Y but not X
 SystemHeader.h:
   class Y {};
 
-Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
+Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
 
-Matcher<TagDecl>isDefinition +Matcher<TagDecl>isDefinition
Matches if a declaration has a body attached.
 
 Example matches A, va, fa
@@ -2716,11 +2716,11 @@ Example matches A, va, fa
   void fa() {}
   void fb();  Doesn't match, as it has no body.
 
-Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>
+Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>
 
-Matcher<TemplateArgument>equalsIntegralValuestd::string Value +Matcher<TemplateArgument>equalsIntegralValuestd::string Value
Matches a TemplateArgument of integral type with a given value.
 
 Note that 'Value' is a string as the template argument's value is
@@ -2736,7 +2736,7 @@ classTemplateSpecializationDecl(
 
-Matcher<TemplateArgument>isIntegral +Matcher<TemplateArgument>isIntegral
Matches a TemplateArgument that is an integral value.
 
 Given
@@ -2749,7 +2749,7 @@ classTemplateSpecializationDecl(
 
-Matcher<TemplateSpecializationType>templateArgumentCountIsunsigned N +Matcher<TemplateSpecializationType>templateArgumentCountIsunsigned N
Matches if the number of template arguments equals N.
 
 Given
@@ -2760,7 +2760,7 @@ classTemplateSpecializationDecl(templateArgumentCountIs(1))
 
-Matcher<TypeLoc>isExpansionInFileMatchingstd::string RegExp +Matcher<TypeLoc>isExpansionInFileMatchingstd::string RegExp
Matches AST nodes that were expanded within files whose name is
 partially matching a given regex.
 
@@ -2771,11 +2771,11 @@ Example matches Y but not X
 ASTMatcher.h:
   class Y {};
 
-Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
+Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
 
-Matcher<TypeLoc>isExpansionInMainFile +Matcher<TypeLoc>isExpansionInMainFile
Matches AST nodes that were expanded within the main-file.
 
 Example matches X but not Y
@@ -2785,11 +2785,11 @@ Example matches X but not Y
 Y.h:
   class Y {};
 
-Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
+Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
 
-Matcher<TypeLoc>isExpansionInSystemHeader +Matcher<TypeLoc>isExpansionInSystemHeader
Matches AST nodes that were expanded within system-header-files.
 
 Example matches Y but not X
@@ -2799,11 +2799,11 @@ Example matches Y but not X
 SystemHeader.h:
   class Y {};
 
-Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
+Usable as: Matcher<Decl>, Matcher<Stmt>, Matcher<TypeLoc>
 
-Matcher<Type>booleanType +Matcher<Type>booleanType
Matches type bool.
 
 Given
@@ -2813,7 +2813,7 @@ functionDecl(returns(booleanType()))
 
-Matcher<Type>equalsBoundNodestd::string ID +Matcher<Type>equalsBoundNodestd::string ID
Matches if a node equals a previously bound node.
 
 Matches a node if it equals the node previously bound to ID.
@@ -2836,7 +2836,7 @@ and reference to that variable declaration within a compound statement.
 
-Matcher<Type>voidType +Matcher<Type>voidType
Matches type void.
 
 Given
@@ -2846,7 +2846,7 @@ functionDecl(returns(voidType()))
 
-Matcher<UnaryExprOrTypeTraitExpr>ofKindUnaryExprOrTypeTrait Kind +Matcher<UnaryExprOrTypeTraitExpr>ofKindUnaryExprOrTypeTrait Kind
Matches unary expressions of a certain kind.
 
 Given
@@ -2857,7 +2857,7 @@ unaryExprOrTypeTraitExpr(ofKind(UETT_SizeOf))
 
-Matcher<UnaryOperator>hasOperatorNamestd::string Name +Matcher<UnaryOperator>hasOperatorNamestd::string Name
Matches the operator Name of operator expressions (binary or
 unary).
 
@@ -2866,7 +2866,7 @@ Example matches a || b (matcher = binaryOperator(hasOperatorName("||")))
 
-Matcher<VarDecl>hasAutomaticStorageDuration +Matcher<VarDecl>hasAutomaticStorageDuration
Matches a variable declaration that has automatic storage duration.
 
 Example matches x, but not y, z, or a.
@@ -2880,7 +2880,7 @@ int a;
 
-Matcher<VarDecl>hasGlobalStorage +Matcher<VarDecl>hasGlobalStorage
Matches a variable declaration that does not have local storage.
 
 Example matches y and z (matcher = varDecl(hasGlobalStorage())
@@ -2892,7 +2892,7 @@ int z;
 
-Matcher<VarDecl>hasLocalStorage +Matcher<VarDecl>hasLocalStorage
Matches a variable declaration that has function scope and is a
 non-static local variable.
 
@@ -2905,7 +2905,7 @@ int z;
 
-Matcher<VarDecl>hasStaticStorageDuration +Matcher<VarDecl>hasStaticStorageDuration
Matches a variable declaration that has static storage duration.
 
 Example matches y and a, but not x or z.
@@ -2919,7 +2919,7 @@ int a;
 
-Matcher<VarDecl>hasThreadStorageDuration +Matcher<VarDecl>hasThreadStorageDuration
Matches a variable declaration that has thread storage duration.
 
 Example matches z, but not x, z, or a.
@@ -2933,7 +2933,7 @@ int a;
 
-Matcher<VarDecl>isConstexpr +Matcher<VarDecl>isConstexpr
Matches constexpr variable and function declarations.
 
 Given:
@@ -2946,7 +2946,7 @@ functionDecl(isConstexpr())
 
-Matcher<VarDecl>isDefinition +Matcher<VarDecl>isDefinition
Matches if a declaration has a body attached.
 
 Example matches A, va, fa
@@ -2957,11 +2957,11 @@ Example matches A, va, fa
   void fa() {}
   void fb();  Doesn't match, as it has no body.
 
-Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>
+Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>
 
-Matcher<VarDecl>isExceptionVariable +Matcher<VarDecl>isExceptionVariable
Matches a variable declaration that is an exception variable from
 a C++ catch block, or an Objective-C statement.
 
@@ -2974,7 +2974,7 @@ void f(int y) {
 
-Matcher<VarDecl>isExplicitTemplateSpecialization +Matcher<VarDecl>isExplicitTemplateSpecialization
Matches explicit template specializations of function, class, or
 static member variable template instantiations.
 
@@ -2984,11 +2984,11 @@ Given
 functionDecl(isExplicitTemplateSpecialization())
   matches the specialization A<int>().
 
-Usable as: Matcher<FunctionDecl>, Matcher<VarDecl>, Matcher<CXXRecordDecl>
+Usable as: Matcher<FunctionDecl>, Matcher<VarDecl>, Matcher<CXXRecordDecl>
 
-Matcher<VarDecl>isTemplateInstantiation +Matcher<VarDecl>isTemplateInstantiation
Matches template instantiations of function, class, or static
 member variable template instantiations.
 
@@ -3005,11 +3005,11 @@ But given
 cxxRecordDecl(hasName("::X"), isTemplateInstantiation())
   does not match, as X<A> is an explicit template specialization.
 
-Usable as: Matcher<FunctionDecl>, Matcher<VarDecl>, Matcher<CXXRecordDecl>
+Usable as: Matcher<FunctionDecl>, Matcher<VarDecl>, Matcher<CXXRecordDecl>
 
-Matcher<internal::Matcher<Decl>>isInstantiated +Matcher<internal::Matcher<Decl>>isInstantiated
Matches declarations that are template instantiations or are inside
 template instantiations.
 
@@ -3022,7 +3022,7 @@ functionDecl(isInstantiated())
 
-Matcher<internal::Matcher<Stmt>>isInTemplateInstantiation +Matcher<internal::Matcher<Stmt>>isInTemplateInstantiation
Matches statements inside of a template instantiation.
 
 Given
@@ -3176,7 +3176,7 @@ Usable as: Any Matcher
 
-Matcher<ArraySubscriptExpr>hasBaseMatcher<Expr> InnerMatcher +Matcher<ArraySubscriptExpr>hasBaseMatcher<Expr> InnerMatcher
Matches the base expression of an array subscript expression.
 
 Given
@@ -3188,7 +3188,7 @@ arraySubscriptExpression(hasBase(implicitCastExpr(
 
-Matcher<ArraySubscriptExpr>hasIndexMatcher<Expr> InnerMatcher +Matcher<ArraySubscriptExpr>hasIndexMatcher<Expr> InnerMatcher
Matches the index expression of an array subscript expression.
 
 Given
@@ -3199,7 +3199,7 @@ arraySubscriptExpression(hasIndex(integerLiteral()))
 
-Matcher<ArraySubscriptExpr>hasLHSMatcher<Expr> InnerMatcher +Matcher<ArraySubscriptExpr>hasLHSMatcher<Expr> InnerMatcher
Matches the left hand side of binary operator expressions.
 
 Example matches a (matcher = binaryOperator(hasLHS()))
@@ -3207,7 +3207,7 @@ Example matches a (matcher = binaryOperator(hasLHS()))
 
-Matcher<ArraySubscriptExpr>hasRHSMatcher<Expr> InnerMatcher +Matcher<ArraySubscriptExpr>hasRHSMatcher<Expr> InnerMatcher
Matches the right hand side of binary operator expressions.
 
 Example matches b (matcher = binaryOperator(hasRHS()))
@@ -3215,7 +3215,7 @@ Example matches b (matcher = binaryOperator(hasRHS()))
 
-Matcher<ArrayTypeLoc>hasElementTypeLocMatcher<TypeLoc> +Matcher<ArrayTypeLoc>hasElementTypeLocMatcher<TypeLoc>
Matches arrays and C99 complex types that have a specific element
 type.
 
@@ -3226,11 +3226,11 @@ Given
 arrayType(hasElementType(builtinType()))
   matches "int b[7]"
 
-Usable as: Matcher<ArrayType>, Matcher<ComplexType>
+Usable as: Matcher<ArrayType>, Matcher<ComplexType>
 
-Matcher<ArrayType>hasElementTypeMatcher<Type> +Matcher<ArrayType>hasElementTypeMatcher<Type>
Matches arrays and C99 complex types that have a specific element
 type.
 
@@ -3241,11 +3241,11 @@ Given
 arrayType(hasElementType(builtinType()))
   matches "int b[7]"
 
-Usable as: Matcher<ArrayType>, Matcher<ComplexType>
+Usable as: Matcher<ArrayType>, Matcher<ComplexType>
 
-Matcher<AtomicTypeLoc>hasValueTypeLocMatcher<TypeLoc> +Matcher<AtomicTypeLoc>hasValueTypeLocMatcher<TypeLoc>
Matches atomic types with a specific value type.
 
 Given
@@ -3254,11 +3254,11 @@ Given
 atomicType(hasValueType(isInteger()))
  matches "_Atomic(int) i"
 
-Usable as: Matcher<AtomicType>
+Usable as: Matcher<AtomicType>
 
-Matcher<AtomicType>hasValueTypeMatcher<Type> +Matcher<AtomicType>hasValueTypeMatcher<Type>
Matches atomic types with a specific value type.
 
 Given
@@ -3267,11 +3267,11 @@ Given
 atomicType(hasValueType(isInteger()))
  matches "_Atomic(int) i"
 
-Usable as: Matcher<AtomicType>
+Usable as: Matcher<AtomicType>
 
-Matcher<AutoType>hasDeducedTypeMatcher<Type> +Matcher<AutoType>hasDeducedTypeMatcher<Type>
Matches AutoType nodes where the deduced type is a specific type.
 
 Note: There is no TypeLoc for the deduced type and thus no
@@ -3283,17 +3283,17 @@ Given
 autoType(hasDeducedType(isInteger()))
   matches "auto a"
 
-Usable as: Matcher<AutoType>
+Usable as: Matcher<AutoType>
 
-Matcher<BinaryOperator>hasEitherOperandMatcher<Expr> InnerMatcher +Matcher<BinaryOperator>hasEitherOperandMatcher<Expr> InnerMatcher
Matches if either the left hand side or the right hand side of a
 binary operator matches.
 
-Matcher<BinaryOperator>hasLHSMatcher<Expr> InnerMatcher +Matcher<BinaryOperator>hasLHSMatcher<Expr> InnerMatcher
Matches the left hand side of binary operator expressions.
 
 Example matches a (matcher = binaryOperator(hasLHS()))
@@ -3301,7 +3301,7 @@ Example matches a (matcher = binaryOperator(hasLHS()))
 
-Matcher<BinaryOperator>hasRHSMatcher<Expr> InnerMatcher +Matcher<BinaryOperator>hasRHSMatcher<Expr> InnerMatcher
Matches the right hand side of binary operator expressions.
 
 Example matches b (matcher = binaryOperator(hasRHS()))
@@ -3309,7 +3309,7 @@ Example matches b (matcher = binaryOperator(hasRHS()))
 
-Matcher<BlockPointerTypeLoc>pointeeLocMatcher<TypeLoc> +Matcher<BlockPointerTypeLoc>pointeeLocMatcher<TypeLoc>
Narrows PointerType (and similar) matchers to those where the
 pointee matches a given matcher.
 
@@ -3320,12 +3320,12 @@ Given
 pointerType(pointee(isConstQualified(), isInteger()))
   matches "int const *b"
 
-Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
-  Matcher<PointerType>, Matcher<ReferenceType>
+Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
+  Matcher<PointerType>, Matcher<ReferenceType>
 
-Matcher<BlockPointerType>pointeeMatcher<Type> +Matcher<BlockPointerType>pointeeMatcher<Type>
Narrows PointerType (and similar) matchers to those where the
 pointee matches a given matcher.
 
@@ -3336,12 +3336,12 @@ Given
 pointerType(pointee(isConstQualified(), isInteger()))
   matches "int const *b"
 
-Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
-  Matcher<PointerType>, Matcher<ReferenceType>
+Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
+  Matcher<PointerType>, Matcher<ReferenceType>
 
-Matcher<CXXConstructExpr>forEachArgumentWithParamMatcher<Expr> ArgMatcher, Matcher<ParmVarDecl> ParamMatcher +Matcher<CXXConstructExpr>forEachArgumentWithParamMatcher<Expr> ArgMatcher, Matcher<ParmVarDecl> ParamMatcher
Matches all arguments and their respective ParmVarDecl.
 
 Given
@@ -3358,7 +3358,7 @@ and parmVarDecl(...)
 
-Matcher<CXXConstructExpr>hasAnyArgumentMatcher<Expr> InnerMatcher +Matcher<CXXConstructExpr>hasAnyArgumentMatcher<Expr> InnerMatcher
Matches any argument of a call expression or a constructor call
 expression.
 
@@ -3376,7 +3376,7 @@ has been implemented.
 
-Matcher<CXXConstructExpr>hasArgumentunsigned N, Matcher<Expr> InnerMatcher +Matcher<CXXConstructExpr>hasArgumentunsigned N, Matcher<Expr> InnerMatcher
Matches the n'th argument of a call expression or a constructor
 call expression.
 
@@ -3386,7 +3386,7 @@ Example matches y in x(y)
 
-Matcher<CXXConstructExpr>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<CXXConstructExpr>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -3399,16 +3399,16 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<CXXConstructorDecl>forEachConstructorInitializerMatcher<CXXCtorInitializer> InnerMatcher +Matcher<CXXConstructorDecl>forEachConstructorInitializerMatcher<CXXCtorInitializer> InnerMatcher
Matches each constructor initializer in a constructor definition.
 
 Given
@@ -3420,7 +3420,7 @@ cxxConstructorDecl(forEachConstructorInitializer(
 
-Matcher<CXXConstructorDecl>hasAnyConstructorInitializerMatcher<CXXCtorInitializer> InnerMatcher +Matcher<CXXConstructorDecl>hasAnyConstructorInitializerMatcher<CXXCtorInitializer> InnerMatcher
Matches a constructor initializer.
 
 Given
@@ -3435,7 +3435,7 @@ cxxRecordDecl(has(cxxConstructorDecl(
 
-Matcher<CXXCtorInitializer>forFieldMatcher<FieldDecl> InnerMatcher +Matcher<CXXCtorInitializer>forFieldMatcher<FieldDecl> InnerMatcher
Matches the field declaration of a constructor initializer.
 
 Given
@@ -3450,7 +3450,7 @@ with forField matching foo_
 
-Matcher<CXXCtorInitializer>withInitializerMatcher<Expr> InnerMatcher +Matcher<CXXCtorInitializer>withInitializerMatcher<Expr> InnerMatcher
Matches the initializer expression of a constructor initializer.
 
 Given
@@ -3465,7 +3465,7 @@ with withInitializer matching (1)
 
-Matcher<CXXForRangeStmt>hasBodyMatcher<Stmt> InnerMatcher +Matcher<CXXForRangeStmt>hasBodyMatcher<Stmt> InnerMatcher
Matches a 'for', 'while', 'do while' statement or a function
 definition that has a given body.
 
@@ -3478,7 +3478,7 @@ with compoundStmt()
 
-Matcher<CXXForRangeStmt>hasLoopVariableMatcher<VarDecl> InnerMatcher +Matcher<CXXForRangeStmt>hasLoopVariableMatcher<VarDecl> InnerMatcher
Matches the initialization statement of a for loop.
 
 Example:
@@ -3488,7 +3488,7 @@ matches 'int x' in
 
-Matcher<CXXForRangeStmt>hasRangeInitMatcher<Expr> InnerMatcher +Matcher<CXXForRangeStmt>hasRangeInitMatcher<Expr> InnerMatcher
Matches the range initialization statement of a for loop.
 
 Example:
@@ -3498,11 +3498,11 @@ matches 'a' in
 
-Matcher<CXXMemberCallExpr>onImplicitObjectArgumentMatcher<Expr> InnerMatcher +Matcher<CXXMemberCallExpr>onImplicitObjectArgumentMatcher<Expr> InnerMatcher

 
 
-Matcher<CXXMemberCallExpr>onMatcher<Expr> InnerMatcher
+Matcher<CXXMemberCallExpr>onMatcher<Expr> InnerMatcher
 
Matches on the implicit object argument of a member call expression.
 
 Example matches y.x()
@@ -3514,18 +3514,18 @@ FIXME: Overload to allow directly matching types?
 
-Matcher<CXXMemberCallExpr>thisPointerTypeMatcher<Decl> InnerMatcher +Matcher<CXXMemberCallExpr>thisPointerTypeMatcher<Decl> InnerMatcher
Overloaded to match the type's declaration.
 
-Matcher<CXXMemberCallExpr>thisPointerTypeMatcher<QualType> InnerMatcher +Matcher<CXXMemberCallExpr>thisPointerTypeMatcher<QualType> InnerMatcher
Matches if the expression's type either matches the specified
 matcher, or is a pointer to a type that matches the InnerMatcher.
 
-Matcher<CXXMethodDecl>ofClassMatcher<CXXRecordDecl> InnerMatcher +Matcher<CXXMethodDecl>ofClassMatcher<CXXRecordDecl> InnerMatcher
Matches the class declaration that the given method declaration
 belongs to.
 
@@ -3544,7 +3544,7 @@ Example matches A() in the last line
 
-Matcher<CXXRecordDecl>hasMethodMatcher<CXXMethodDecl> InnerMatcher +Matcher<CXXRecordDecl>hasMethodMatcher<CXXMethodDecl> InnerMatcher
Matches the first method of a class or struct that satisfies InnerMatcher.
 
 Given:
@@ -3556,7 +3556,7 @@ A but not B.
 
-Matcher<CXXRecordDecl>isDerivedFromMatcher<NamedDecl> Base +Matcher<CXXRecordDecl>isDerivedFromMatcher<NamedDecl> Base
Matches C++ classes that are directly or indirectly derived from
 a class matching Base.
 
@@ -3577,13 +3577,13 @@ In the following example, Bar matches isDerivedFrom(hasName("X")):
 
-Matcher<CXXRecordDecl>isSameOrDerivedFromMatcher<NamedDecl> Base +Matcher<CXXRecordDecl>isSameOrDerivedFromMatcher<NamedDecl> Base
Similar to isDerivedFrom(), but also matches classes that directly
 match Base.
 
-Matcher<CallExpr>calleeMatcher<Decl> InnerMatcher +Matcher<CallExpr>calleeMatcher<Decl> InnerMatcher
Matches if the call expression's callee's declaration matches the
 given matcher.
 
@@ -3594,7 +3594,7 @@ Example matches y.x() (matcher = callExpr(callee(
 
-Matcher<CallExpr>calleeMatcher<Stmt> InnerMatcher +Matcher<CallExpr>calleeMatcher<Stmt> InnerMatcher
Matches if the call expression's callee expression matches.
 
 Given
@@ -3605,14 +3605,14 @@ callExpr(callee(expr()))
 with callee(...)
   matching this->x, x, y.x, f respectively
 
-Note: Callee cannot take the more general internal::Matcher<Expr>
+Note: Callee cannot take the more general internal::Matcher<Expr>
 because this introduces ambiguous overloads with calls to Callee taking a
-internal::Matcher<Decl>, as the matcher hierarchy is purely
+internal::Matcher<Decl>, as the matcher hierarchy is purely
 implemented in terms of implicit casts.
 
-Matcher<CallExpr>forEachArgumentWithParamMatcher<Expr> ArgMatcher, Matcher<ParmVarDecl> ParamMatcher +Matcher<CallExpr>forEachArgumentWithParamMatcher<Expr> ArgMatcher, Matcher<ParmVarDecl> ParamMatcher
Matches all arguments and their respective ParmVarDecl.
 
 Given
@@ -3629,7 +3629,7 @@ and parmVarDecl(...)
 
-Matcher<CallExpr>hasAnyArgumentMatcher<Expr> InnerMatcher +Matcher<CallExpr>hasAnyArgumentMatcher<Expr> InnerMatcher
Matches any argument of a call expression or a constructor call
 expression.
 
@@ -3647,7 +3647,7 @@ has been implemented.
 
-Matcher<CallExpr>hasArgumentunsigned N, Matcher<Expr> InnerMatcher +Matcher<CallExpr>hasArgumentunsigned N, Matcher<Expr> InnerMatcher
Matches the n'th argument of a call expression or a constructor
 call expression.
 
@@ -3657,7 +3657,7 @@ Example matches y in x(y)
 
-Matcher<CallExpr>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<CallExpr>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -3670,16 +3670,16 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<CaseStmt>hasCaseConstantMatcher<Expr> InnerMatcher +Matcher<CaseStmt>hasCaseConstantMatcher<Expr> InnerMatcher
If the given case statement does not use the GNU case range
 extension, matches the constant given in the statement.
 
@@ -3690,7 +3690,7 @@ caseStmt(hasCaseConstant(integerLiteral()))
 
-Matcher<CastExpr>hasSourceExpressionMatcher<Expr> InnerMatcher +Matcher<CastExpr>hasSourceExpressionMatcher<Expr> InnerMatcher
Matches if the cast's source expression matches the given matcher.
 
 Example: matches "a string" (matcher =
@@ -3700,7 +3700,7 @@ URL url = "a string";
 
-Matcher<ClassTemplateSpecializationDecl>hasAnyTemplateArgumentMatcher<TemplateArgument> InnerMatcher +Matcher<ClassTemplateSpecializationDecl>hasAnyTemplateArgumentMatcher<TemplateArgument> InnerMatcher
Matches classTemplateSpecializations that have at least one
 TemplateArgument matching the given InnerMatcher.
 
@@ -3714,7 +3714,7 @@ classTemplateSpecializationDecl(hasAnyTemplateArgument(
 
-Matcher<ClassTemplateSpecializationDecl>hasTemplateArgumentunsigned N, Matcher<TemplateArgument> InnerMatcher +Matcher<ClassTemplateSpecializationDecl>hasTemplateArgumentunsigned N, Matcher<TemplateArgument> InnerMatcher
Matches classTemplateSpecializations where the n'th TemplateArgument
 matches the given InnerMatcher.
 
@@ -3728,7 +3728,7 @@ classTemplateSpecializationDecl(hasTemplateArgument(
 
-Matcher<ComplexTypeLoc>hasElementTypeLocMatcher<TypeLoc> +Matcher<ComplexTypeLoc>hasElementTypeLocMatcher<TypeLoc>
Matches arrays and C99 complex types that have a specific element
 type.
 
@@ -3739,11 +3739,11 @@ Given
 arrayType(hasElementType(builtinType()))
   matches "int b[7]"
 
-Usable as: Matcher<ArrayType>, Matcher<ComplexType>
+Usable as: Matcher<ArrayType>, Matcher<ComplexType>
 
-Matcher<ComplexType>hasElementTypeMatcher<Type> +Matcher<ComplexType>hasElementTypeMatcher<Type>
Matches arrays and C99 complex types that have a specific element
 type.
 
@@ -3754,11 +3754,11 @@ Given
 arrayType(hasElementType(builtinType()))
   matches "int b[7]"
 
-Usable as: Matcher<ArrayType>, Matcher<ComplexType>
+Usable as: Matcher<ArrayType>, Matcher<ComplexType>
 
-Matcher<CompoundStmt>hasAnySubstatementMatcher<Stmt> InnerMatcher +Matcher<CompoundStmt>hasAnySubstatementMatcher<Stmt> InnerMatcher
Matches compound statements where at least one substatement matches
 a given matcher.
 
@@ -3771,7 +3771,7 @@ with compoundStmt()
 
-Matcher<ConditionalOperator>hasConditionMatcher<Expr> InnerMatcher +Matcher<ConditionalOperator>hasConditionMatcher<Expr> InnerMatcher
Matches the condition expression of an if statement, for loop,
 or conditional operator.
 
@@ -3780,7 +3780,7 @@ Example matches true (matcher = hasCondition(cxxBoolLiteral(equals(true))))
 
-Matcher<ConditionalOperator>hasFalseExpressionMatcher<Expr> InnerMatcher +Matcher<ConditionalOperator>hasFalseExpressionMatcher<Expr> InnerMatcher
Matches the false branch expression of a conditional operator.
 
 Example matches b
@@ -3788,7 +3788,7 @@ Example matches b
 
-Matcher<ConditionalOperator>hasTrueExpressionMatcher<Expr> InnerMatcher +Matcher<ConditionalOperator>hasTrueExpressionMatcher<Expr> InnerMatcher
Matches the true branch expression of a conditional operator.
 
 Example matches a
@@ -3796,12 +3796,12 @@ Example matches a
 
-Matcher<DecayedType>hasDecayedTypeMatcher<QualType> InnerType +Matcher<DecayedType>hasDecayedTypeMatcher<QualType> InnerType
Matches the decayed type, whos decayed type matches InnerMatcher
 
-Matcher<DeclRefExpr>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<DeclRefExpr>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -3814,16 +3814,16 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<DeclRefExpr>throughUsingDeclMatcher<UsingShadowDecl> InnerMatcher +Matcher<DeclRefExpr>throughUsingDeclMatcher<UsingShadowDecl> InnerMatcher
Matches a DeclRefExpr that refers to a declaration through a
 specific using shadow declaration.
 
@@ -3839,7 +3839,7 @@ declRefExpr(throughUsingDecl(anything()))
 
-Matcher<DeclRefExpr>toMatcher<Decl> InnerMatcher +Matcher<DeclRefExpr>toMatcher<Decl> InnerMatcher
Matches a DeclRefExpr that refers to a declaration that matches the
 specified matcher.
 
@@ -3850,7 +3850,7 @@ Example matches x in if(x)
 
-Matcher<DeclStmt>containsDeclarationunsigned N, Matcher<Decl> InnerMatcher +Matcher<DeclStmt>containsDeclarationunsigned N, Matcher<Decl> InnerMatcher
Matches the n'th declaration of a declaration statement.
 
 Note that this does not work for global declarations because the AST
@@ -3869,7 +3869,7 @@ declStmt(containsDeclaration(1, varDecl()))
 
-Matcher<DeclStmt>hasSingleDeclMatcher<Decl> InnerMatcher +Matcher<DeclStmt>hasSingleDeclMatcher<Decl> InnerMatcher
Matches the Decl of a DeclStmt which has a single declaration.
 
 Given
@@ -3880,7 +3880,7 @@ declStmt(hasSingleDecl(anything()))
 
-Matcher<DeclaratorDecl>hasTypeLocMatcher<TypeLoc> Inner +Matcher<DeclaratorDecl>hasTypeLocMatcher<TypeLoc> Inner
Matches if the type location of the declarator decl's type matches
 the inner matcher.
 
@@ -3891,7 +3891,7 @@ declaratorDecl(hasTypeLoc(loc(asString("int"))))
 
-Matcher<Decl>hasDeclContextMatcher<Decl> InnerMatcher +Matcher<Decl>hasDeclContextMatcher<Decl> InnerMatcher
Matches declarations whose declaration context, interpreted as a
 Decl, matches InnerMatcher.
 
@@ -3907,7 +3907,7 @@ declaration of class D.
 
-Matcher<DoStmt>hasBodyMatcher<Stmt> InnerMatcher +Matcher<DoStmt>hasBodyMatcher<Stmt> InnerMatcher
Matches a 'for', 'while', 'do while' statement or a function
 definition that has a given body.
 
@@ -3920,7 +3920,7 @@ with compoundStmt()
 
-Matcher<DoStmt>hasConditionMatcher<Expr> InnerMatcher +Matcher<DoStmt>hasConditionMatcher<Expr> InnerMatcher
Matches the condition expression of an if statement, for loop,
 or conditional operator.
 
@@ -3929,7 +3929,7 @@ Example matches true (matcher = hasCondition(cxxBoolLiteral(equals(true))))
 
-Matcher<ElaboratedType>hasQualifierMatcher<NestedNameSpecifier> InnerMatcher +Matcher<ElaboratedType>hasQualifierMatcher<NestedNameSpecifier> InnerMatcher
Matches ElaboratedTypes whose qualifier, a NestedNameSpecifier,
 matches InnerMatcher if the qualifier exists.
 
@@ -3946,7 +3946,7 @@ matches the type of the variable declaration of d.
 
-Matcher<ElaboratedType>namesTypeMatcher<QualType> InnerMatcher +Matcher<ElaboratedType>namesTypeMatcher<QualType> InnerMatcher
Matches ElaboratedTypes whose named type matches InnerMatcher.
 
 Given
@@ -3963,7 +3963,7 @@ declaration of d.
 
-Matcher<EnumType>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<EnumType>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -3976,16 +3976,16 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<ExplicitCastExpr>hasDestinationTypeMatcher<QualType> InnerMatcher +Matcher<ExplicitCastExpr>hasDestinationTypeMatcher<QualType> InnerMatcher
Matches casts whose destination type matches a given matcher.
 
 (Note: Clang's AST refers to other conversions as "casts" too, and calls
@@ -3993,7 +3993,7 @@ actual casts "explicit" casts.)
 
-Matcher<Expr>hasTypeMatcher<Decl> InnerMatcher +Matcher<Expr>hasTypeMatcher<Decl> InnerMatcher
Overloaded to match the declaration of the expression's or value
 declaration's type.
 
@@ -4008,11 +4008,11 @@ Example matches x (matcher = expr(hasType(cxxRecordDecl(hasName("X")))))
  class X {};
  void y(X &x) { x; X z; }
 
-Usable as: Matcher<Expr>, Matcher<ValueDecl>
+Usable as: Matcher<Expr>, Matcher<ValueDecl>
 
-Matcher<Expr>hasTypeMatcher<QualType> InnerMatcher +Matcher<Expr>hasTypeMatcher<QualType> InnerMatcher
Matches if the expression's or declaration's type matches a type
 matcher.
 
@@ -4023,7 +4023,7 @@ Example matches x (matcher = expr(hasType(cxxRecordDecl(hasName("X")))))
 
-Matcher<Expr>ignoringImpCastsMatcher<Expr> InnerMatcher +Matcher<Expr>ignoringImpCastsMatcher<Expr> InnerMatcher
Matches expressions that match InnerMatcher after any implicit casts
 are stripped off.
 
@@ -4046,7 +4046,7 @@ only match the declarations for b, c, and d.
 
-Matcher<Expr>ignoringParenCastsMatcher<Expr> InnerMatcher +Matcher<Expr>ignoringParenCastsMatcher<Expr> InnerMatcher
Matches expressions that match InnerMatcher after parentheses and
 casts are stripped off.
 
@@ -4065,7 +4065,7 @@ only match the declaration for a.
 
-Matcher<Expr>ignoringParenImpCastsMatcher<Expr> InnerMatcher +Matcher<Expr>ignoringParenImpCastsMatcher<Expr> InnerMatcher
Matches expressions that match InnerMatcher after implicit casts and
 parentheses are stripped off.
 
@@ -4088,7 +4088,7 @@ would only match the declaration for a.
 
-Matcher<ForStmt>hasBodyMatcher<Stmt> InnerMatcher +Matcher<ForStmt>hasBodyMatcher<Stmt> InnerMatcher
Matches a 'for', 'while', 'do while' statement or a function
 definition that has a given body.
 
@@ -4101,7 +4101,7 @@ with compoundStmt()
 
-Matcher<ForStmt>hasConditionMatcher<Expr> InnerMatcher +Matcher<ForStmt>hasConditionMatcher<Expr> InnerMatcher
Matches the condition expression of an if statement, for loop,
 or conditional operator.
 
@@ -4110,7 +4110,7 @@ Example matches true (matcher = hasCondition(cxxBoolLiteral(equals(true))))
 
-Matcher<ForStmt>hasIncrementMatcher<Stmt> InnerMatcher +Matcher<ForStmt>hasIncrementMatcher<Stmt> InnerMatcher
Matches the increment statement of a for loop.
 
 Example:
@@ -4120,7 +4120,7 @@ matches '++x' in
 
-Matcher<ForStmt>hasLoopInitMatcher<Stmt> InnerMatcher +Matcher<ForStmt>hasLoopInitMatcher<Stmt> InnerMatcher
Matches the initialization statement of a for loop.
 
 Example:
@@ -4130,7 +4130,7 @@ matches 'int x = 0' in
 
-Matcher<FunctionDecl>hasAnyParameterMatcher<ParmVarDecl> InnerMatcher +Matcher<FunctionDecl>hasAnyParameterMatcher<ParmVarDecl> InnerMatcher
Matches any parameter of a function declaration.
 
 Does not match the 'this' parameter of a method.
@@ -4144,7 +4144,7 @@ with hasAnyParameter(...)
 
-Matcher<FunctionDecl>hasBodyMatcher<Stmt> InnerMatcher +Matcher<FunctionDecl>hasBodyMatcher<Stmt> InnerMatcher
Matches a 'for', 'while', 'do while' statement or a function
 definition that has a given body.
 
@@ -4157,7 +4157,7 @@ with compoundStmt()
 
-Matcher<FunctionDecl>hasParameterunsigned N, Matcher<ParmVarDecl> InnerMatcher +Matcher<FunctionDecl>hasParameterunsigned N, Matcher<ParmVarDecl> InnerMatcher
Matches the n'th parameter of a function declaration.
 
 Given
@@ -4169,7 +4169,7 @@ with hasParameter(...)
 
-Matcher<FunctionDecl>returnsMatcher<QualType> InnerMatcher +Matcher<FunctionDecl>returnsMatcher<QualType> InnerMatcher
Matches the return type of a function declaration.
 
 Given:
@@ -4179,7 +4179,7 @@ cxxMethodDecl(returns(asString("int")))
 
-Matcher<IfStmt>hasConditionMatcher<Expr> InnerMatcher +Matcher<IfStmt>hasConditionMatcher<Expr> InnerMatcher
Matches the condition expression of an if statement, for loop,
 or conditional operator.
 
@@ -4188,7 +4188,7 @@ Example matches true (matcher = hasCondition(cxxBoolLiteral(equals(true))))
 
-Matcher<IfStmt>hasConditionVariableStatementMatcher<DeclStmt> InnerMatcher +Matcher<IfStmt>hasConditionVariableStatementMatcher<DeclStmt> InnerMatcher
Matches the condition variable statement in an if statement.
 
 Given
@@ -4198,7 +4198,7 @@ hasConditionVariableStatement(...)
 
-Matcher<IfStmt>hasElseMatcher<Stmt> InnerMatcher +Matcher<IfStmt>hasElseMatcher<Stmt> InnerMatcher
Matches the else-statement of an if statement.
 
 Examples matches the if statement
@@ -4207,7 +4207,7 @@ Examples matches the if statement
 
-Matcher<IfStmt>hasThenMatcher<Stmt> InnerMatcher +Matcher<IfStmt>hasThenMatcher<Stmt> InnerMatcher
Matches the then-statement of an if statement.
 
 Examples matches the if statement
@@ -4216,7 +4216,7 @@ Examples matches the if statement
 
-Matcher<ImplicitCastExpr>hasImplicitDestinationTypeMatcher<QualType> InnerMatcher +Matcher<ImplicitCastExpr>hasImplicitDestinationTypeMatcher<QualType> InnerMatcher
Matches implicit casts whose destination type matches a given
 matcher.
 
@@ -4224,7 +4224,7 @@ FIXME: Unit test this matcher
 
-Matcher<InjectedClassNameType>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<InjectedClassNameType>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4237,16 +4237,16 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<LabelStmt>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<LabelStmt>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4259,16 +4259,16 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<MemberExpr>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<MemberExpr>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4281,16 +4281,16 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<MemberExpr>hasObjectExpressionMatcher<Expr> InnerMatcher +Matcher<MemberExpr>hasObjectExpressionMatcher<Expr> InnerMatcher
Matches a member expression where the object expression is
 matched by a given matcher.
 
@@ -4304,7 +4304,7 @@ with hasObjectExpression(...)
 
-Matcher<MemberExpr>memberMatcher<ValueDecl> InnerMatcher +Matcher<MemberExpr>memberMatcher<ValueDecl> InnerMatcher
Matches a member expression where the member is matched by a
 given matcher.
 
@@ -4318,7 +4318,7 @@ memberExpr(member(hasName("first")))
 
-Matcher<MemberPointerTypeLoc>pointeeLocMatcher<TypeLoc> +Matcher<MemberPointerTypeLoc>pointeeLocMatcher<TypeLoc>
Narrows PointerType (and similar) matchers to those where the
 pointee matches a given matcher.
 
@@ -4329,12 +4329,12 @@ Given
 pointerType(pointee(isConstQualified(), isInteger()))
   matches "int const *b"
 
-Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
-  Matcher<PointerType>, Matcher<ReferenceType>
+Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
+  Matcher<PointerType>, Matcher<ReferenceType>
 
-Matcher<MemberPointerType>pointeeMatcher<Type> +Matcher<MemberPointerType>pointeeMatcher<Type>
Narrows PointerType (and similar) matchers to those where the
 pointee matches a given matcher.
 
@@ -4345,12 +4345,12 @@ Given
 pointerType(pointee(isConstQualified(), isInteger()))
   matches "int const *b"
 
-Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
-  Matcher<PointerType>, Matcher<ReferenceType>
+Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
+  Matcher<PointerType>, Matcher<ReferenceType>
 
-Matcher<NestedNameSpecifierLoc>hasPrefixMatcher<NestedNameSpecifierLoc> InnerMatcher +Matcher<NestedNameSpecifierLoc>hasPrefixMatcher<NestedNameSpecifierLoc> InnerMatcher
Matches on the prefix of a NestedNameSpecifierLoc.
 
 Given
@@ -4361,7 +4361,7 @@ nestedNameSpecifierLoc(hasPrefix(loc(specifiesType(asString("struct A")))))
 
-Matcher<NestedNameSpecifierLoc>specifiesTypeLocMatcher<TypeLoc> InnerMatcher +Matcher<NestedNameSpecifierLoc>specifiesTypeLocMatcher<TypeLoc> InnerMatcher
Matches nested name specifier locs that specify a type matching the
 given TypeLoc.
 
@@ -4374,7 +4374,7 @@ nestedNameSpecifierLoc(specifiesTypeLoc(loc(type(
 
-Matcher<NestedNameSpecifier>hasPrefixMatcher<NestedNameSpecifier> InnerMatcher +Matcher<NestedNameSpecifier>hasPrefixMatcher<NestedNameSpecifier> InnerMatcher
Matches on the prefix of a NestedNameSpecifier.
 
 Given
@@ -4385,7 +4385,7 @@ nestedNameSpecifier(hasPrefix(specifiesType(asString("struct A")))) and
 
-Matcher<NestedNameSpecifier>specifiesNamespaceMatcher<NamespaceDecl> InnerMatcher +Matcher<NestedNameSpecifier>specifiesNamespaceMatcher<NamespaceDecl> InnerMatcher
Matches nested name specifiers that specify a namespace matching the
 given namespace matcher.
 
@@ -4397,7 +4397,7 @@ nestedNameSpecifier(specifiesNamespace(hasName("ns")))
 
-Matcher<NestedNameSpecifier>specifiesTypeMatcher<QualType> InnerMatcher +Matcher<NestedNameSpecifier>specifiesTypeMatcher<QualType> InnerMatcher
Matches nested name specifiers that specify a type matching the
 given QualType matcher without qualifiers.
 
@@ -4411,7 +4411,7 @@ nestedNameSpecifier(specifiesType(
 
-Matcher<ObjCMessageExpr>hasArgumentunsigned N, Matcher<Expr> InnerMatcher +Matcher<ObjCMessageExpr>hasArgumentunsigned N, Matcher<Expr> InnerMatcher
Matches the n'th argument of a call expression or a constructor
 call expression.
 
@@ -4421,7 +4421,7 @@ Example matches y in x(y)
 
-Matcher<ObjCMessageExpr>hasReceiverTypeMatcher<QualType> InnerMatcher +Matcher<ObjCMessageExpr>hasReceiverTypeMatcher<QualType> InnerMatcher
Matches on the receiver of an ObjectiveC Message expression.
 
 Example
@@ -4433,7 +4433,7 @@ matches the [webView ...] message invocation.
 
-Matcher<ParenType>innerTypeMatcher<Type> +Matcher<ParenType>innerTypeMatcher<Type>
Matches ParenType nodes where the inner type is a specific type.
 
 Given
@@ -4443,11 +4443,11 @@ Given
 varDecl(hasType(pointsTo(parenType(innerType(functionType()))))) matches
 ptr_to_func but not ptr_to_array.
 
-Usable as: Matcher<ParenType>
+Usable as: Matcher<ParenType>
 
-Matcher<PointerTypeLoc>pointeeLocMatcher<TypeLoc> +Matcher<PointerTypeLoc>pointeeLocMatcher<TypeLoc>
Narrows PointerType (and similar) matchers to those where the
 pointee matches a given matcher.
 
@@ -4458,12 +4458,12 @@ Given
 pointerType(pointee(isConstQualified(), isInteger()))
   matches "int const *b"
 
-Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
-  Matcher<PointerType>, Matcher<ReferenceType>
+Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
+  Matcher<PointerType>, Matcher<ReferenceType>
 
-Matcher<PointerType>pointeeMatcher<Type> +Matcher<PointerType>pointeeMatcher<Type>
Narrows PointerType (and similar) matchers to those where the
 pointee matches a given matcher.
 
@@ -4474,12 +4474,12 @@ Given
 pointerType(pointee(isConstQualified(), isInteger()))
   matches "int const *b"
 
-Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
-  Matcher<PointerType>, Matcher<ReferenceType>
+Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
+  Matcher<PointerType>, Matcher<ReferenceType>
 
-Matcher<QualType>hasCanonicalTypeMatcher<QualType> InnerMatcher +Matcher<QualType>hasCanonicalTypeMatcher<QualType> InnerMatcher
Matches QualTypes whose canonical type matches InnerMatcher.
 
 Given:
@@ -4492,7 +4492,7 @@ declaration of b but varDecl(hasType(qualType(hasCanonicalType(referenceType()))
 
-Matcher<QualType>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<QualType>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4505,21 +4505,21 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<QualType>pointsToMatcher<Decl> InnerMatcher +Matcher<QualType>pointsToMatcher<Decl> InnerMatcher
Overloaded to match the pointee type's declaration.
 
-Matcher<QualType>pointsToMatcher<QualType> InnerMatcher +Matcher<QualType>pointsToMatcher<QualType> InnerMatcher
Matches if the matched type is a pointer type and the pointee type
 matches the specified matcher.
 
@@ -4531,12 +4531,12 @@ Example matches y->x()
 
-Matcher<QualType>referencesMatcher<Decl> InnerMatcher +Matcher<QualType>referencesMatcher<Decl> InnerMatcher
Overloaded to match the referenced type's declaration.
 
-Matcher<QualType>referencesMatcher<QualType> InnerMatcher +Matcher<QualType>referencesMatcher<QualType> InnerMatcher
Matches if the matched type is a reference type and the referenced
 type matches the specified matcher.
 
@@ -4551,7 +4551,7 @@ Example matches X &x and const X &y
 
-Matcher<RecordType>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<RecordType>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4564,16 +4564,16 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<ReferenceTypeLoc>pointeeLocMatcher<TypeLoc> +Matcher<ReferenceTypeLoc>pointeeLocMatcher<TypeLoc>
Narrows PointerType (and similar) matchers to those where the
 pointee matches a given matcher.
 
@@ -4584,12 +4584,12 @@ Given
 pointerType(pointee(isConstQualified(), isInteger()))
   matches "int const *b"
 
-Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
-  Matcher<PointerType>, Matcher<ReferenceType>
+Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
+  Matcher<PointerType>, Matcher<ReferenceType>
 
-Matcher<ReferenceType>pointeeMatcher<Type> +Matcher<ReferenceType>pointeeMatcher<Type>
Narrows PointerType (and similar) matchers to those where the
 pointee matches a given matcher.
 
@@ -4600,24 +4600,24 @@ Given
 pointerType(pointee(isConstQualified(), isInteger()))
   matches "int const *b"
 
-Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
-  Matcher<PointerType>, Matcher<ReferenceType>
+Usable as: Matcher<BlockPointerType>, Matcher<MemberPointerType>,
+  Matcher<PointerType>, Matcher<ReferenceType>
 
-Matcher<Stmt>alignOfExprMatcher<UnaryExprOrTypeTraitExpr> InnerMatcher +Matcher<Stmt>alignOfExprMatcher<UnaryExprOrTypeTraitExpr> InnerMatcher
Same as unaryExprOrTypeTraitExpr, but only matching
 alignof.
 
-Matcher<Stmt>sizeOfExprMatcher<UnaryExprOrTypeTraitExpr> InnerMatcher +Matcher<Stmt>sizeOfExprMatcher<UnaryExprOrTypeTraitExpr> InnerMatcher
Same as unaryExprOrTypeTraitExpr, but only matching
 sizeof.
 
-Matcher<SwitchStmt>forEachSwitchCaseMatcher<SwitchCase> InnerMatcher +Matcher<SwitchStmt>forEachSwitchCaseMatcher<SwitchCase> InnerMatcher
Matches each case or default statement belonging to the given switch
 statement. This matcher may produce multiple matches.
 
@@ -4630,7 +4630,7 @@ switchStmt(forEachSwitchCase(caseStmt().bind("c"))).bind("s")
 
-Matcher<TagType>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<TagType>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4643,16 +4643,16 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<TemplateArgument>isExprMatcher<Expr> InnerMatcher +Matcher<TemplateArgument>isExprMatcher<Expr> InnerMatcher
Matches a sugar TemplateArgument that refers to a certain expression.
 
 Given
@@ -4666,7 +4666,7 @@ templateSpecializationType(hasAnyTemplateArgument(
 
-Matcher<TemplateArgument>refersToDeclarationMatcher<Decl> InnerMatcher +Matcher<TemplateArgument>refersToDeclarationMatcher<Decl> InnerMatcher
Matches a canonical TemplateArgument that refers to a certain
 declaration.
 
@@ -4681,7 +4681,7 @@ classTemplateSpecializationDecl(hasAnyTemplateArgument(
 
-Matcher<TemplateArgument>refersToIntegralTypeMatcher<QualType> InnerMatcher +Matcher<TemplateArgument>refersToIntegralTypeMatcher<QualType> InnerMatcher
Matches a TemplateArgument that referes to an integral type.
 
 Given
@@ -4693,7 +4693,7 @@ classTemplateSpecializationDecl(
 
-Matcher<TemplateArgument>refersToTypeMatcher<QualType> InnerMatcher +Matcher<TemplateArgument>refersToTypeMatcher<QualType> InnerMatcher
Matches a TemplateArgument that refers to a certain type.
 
 Given
@@ -4706,7 +4706,7 @@ classTemplateSpecializationDecl(hasAnyTemplateArgument(
 
-Matcher<TemplateSpecializationType>hasAnyTemplateArgumentMatcher<TemplateArgument> InnerMatcher +Matcher<TemplateSpecializationType>hasAnyTemplateArgumentMatcher<TemplateArgument> InnerMatcher
Matches classTemplateSpecializations that have at least one
 TemplateArgument matching the given InnerMatcher.
 
@@ -4720,7 +4720,7 @@ classTemplateSpecializationDecl(hasAnyTemplateArgument(
 
-Matcher<TemplateSpecializationType>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<TemplateSpecializationType>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4733,16 +4733,16 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<TemplateSpecializationType>hasTemplateArgumentunsigned N, Matcher<TemplateArgument> InnerMatcher +Matcher<TemplateSpecializationType>hasTemplateArgumentunsigned N, Matcher<TemplateArgument> InnerMatcher
Matches classTemplateSpecializations where the n'th TemplateArgument
 matches the given InnerMatcher.
 
@@ -4756,7 +4756,7 @@ classTemplateSpecializationDecl(hasTemplateArgument(
 
-Matcher<TemplateTypeParmType>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<TemplateTypeParmType>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4769,12 +4769,12 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
@@ -4794,7 +4794,7 @@ Usable as: Any Matcher -Matcher<TypedefType>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<TypedefType>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4807,16 +4807,16 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<UnaryExprOrTypeTraitExpr>hasArgumentOfTypeMatcher<QualType> InnerMatcher +Matcher<UnaryExprOrTypeTraitExpr>hasArgumentOfTypeMatcher<QualType> InnerMatcher
Matches unary expressions that have a specific type of argument.
 
 Given
@@ -4826,7 +4826,7 @@ unaryExprOrTypeTraitExpr(hasArgumentOfType(asString("int"))
 
-Matcher<UnaryOperator>hasUnaryOperandMatcher<Expr> InnerMatcher +Matcher<UnaryOperator>hasUnaryOperandMatcher<Expr> InnerMatcher
Matches if the operand of a unary operator matches.
 
 Example matches true (matcher = hasUnaryOperand(
@@ -4835,7 +4835,7 @@ Example matches true (matcher = hasUnaryOperand(
 
-Matcher<UnresolvedUsingType>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<UnresolvedUsingType>hasDeclarationMatcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4848,16 +4848,16 @@ The associated declaration is:
 Also usable as Matcher<T> for any T supporting the getDecl() member
 function. e.g. various subtypes of clang::Type and various expressions.
 
-Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
-  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
-  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
-  Matcher<RecordType>, Matcher<TagType>,
-  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
-  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
+Usable as: Matcher<CallExpr>, Matcher<CXXConstructExpr>,
+  Matcher<DeclRefExpr>, Matcher<EnumType>, Matcher<InjectedClassNameType>,
+  Matcher<LabelStmt>, Matcher<MemberExpr>, Matcher<QualType>,
+  Matcher<RecordType>, Matcher<TagType>,
+  Matcher<TemplateSpecializationType>, Matcher<TemplateTypeParmType>,
+  Matcher<TypedefType>, Matcher<UnresolvedUsingType>
 
-Matcher<UsingDecl>hasAnyUsingShadowDeclMatcher<UsingShadowDecl> InnerMatcher +Matcher<UsingDecl>hasAnyUsingShadowDeclMatcher<UsingShadowDecl> InnerMatcher
Matches any using shadow declaration.
 
 Given
@@ -4867,7 +4867,7 @@ usingDecl(hasAnyUsingShadowDecl(hasName("b"))))
   matches using X::b 
-Matcher<UsingShadowDecl>hasTargetDeclMatcher<NamedDecl> InnerMatcher +Matcher<UsingShadowDecl>hasTargetDeclMatcher<NamedDecl> InnerMatcher
Matches a using shadow declaration where the target declaration is
 matched by the given matcher.
 
@@ -4879,7 +4879,7 @@ usingDecl(hasAnyUsingShadowDecl(hasTargetDecl(functionDecl())))
   matches using X::b but not using X::a 
-Matcher<ValueDecl>hasTypeMatcher<Decl> InnerMatcher +Matcher<ValueDecl>hasTypeMatcher<Decl> InnerMatcher
Overloaded to match the declaration of the expression's or value
 declaration's type.
 
@@ -4894,11 +4894,11 @@ Example matches x (matcher = expr(hasType(cxxRecordDecl(hasName("X")))))
  class X {};
  void y(X &x) { x; X z; }
 
-Usable as: Matcher<Expr>, Matcher<ValueDecl>
+Usable as: Matcher<Expr>, Matcher<ValueDecl>
 
-Matcher<ValueDecl>hasTypeMatcher<QualType> InnerMatcher +Matcher<ValueDecl>hasTypeMatcher<QualType> InnerMatcher
Matches if the expression's or declaration's type matches a type
 matcher.
 
@@ -4909,7 +4909,7 @@ Example matches x (matcher = expr(hasType(cxxRecordDecl(hasName("X")))))
 
-Matcher<VarDecl>hasInitializerMatcher<Expr> InnerMatcher +Matcher<VarDecl>hasInitializerMatcher<Expr> InnerMatcher
Matches a variable declaration that has an initializer expression
 that matches the given matcher.
 
@@ -4919,7 +4919,7 @@ Example matches x (matcher = varDecl(hasInitializer(callExpr())))
 
-Matcher<VariableArrayType>hasSizeExprMatcher<Expr> InnerMatcher +Matcher<VariableArrayType>hasSizeExprMatcher<Expr> InnerMatcher
Matches VariableArrayType nodes that have a specific size
 expression.
 
@@ -4933,7 +4933,7 @@ variableArrayType(hasSizeExpr(ignoringImpCasts(declRefExpr(to(
 
-Matcher<WhileStmt>hasBodyMatcher<Stmt> InnerMatcher +Matcher<WhileStmt>hasBodyMatcher<Stmt> InnerMatcher
Matches a 'for', 'while', 'do while' statement or a function
 definition that has a given body.
 
@@ -4946,7 +4946,7 @@ with compoundStmt()
 
-Matcher<WhileStmt>hasConditionMatcher<Expr> InnerMatcher +Matcher<WhileStmt>hasConditionMatcher<Expr> InnerMatcher
Matches the condition expression of an if statement, for loop,
 or conditional operator.
 
@@ -4955,13 +4955,13 @@ Example matches true (matcher = hasCondition(cxxBoolLiteral(equals(true))))
 
-Matcher<internal::BindableMatcher<NestedNameSpecifierLoc>>locMatcher<NestedNameSpecifier> InnerMatcher +Matcher<internal::BindableMatcher<NestedNameSpecifierLoc>>locMatcher<NestedNameSpecifier> InnerMatcher
Matches NestedNameSpecifierLocs for which the given inner
 NestedNameSpecifier-matcher matches.
 
-Matcher<internal::BindableMatcher<TypeLoc>>locMatcher<QualType> InnerMatcher +Matcher<internal::BindableMatcher<TypeLoc>>locMatcher<QualType> InnerMatcher
Matches TypeLocs for which the given inner
 QualType-matcher matches.
 
diff --git a/docs/tools/dump_ast_matchers.py b/docs/tools/dump_ast_matchers.py index 9c05eb888c..ccbb616d7b 100644 --- a/docs/tools/dump_ast_matchers.py +++ b/docs/tools/dump_ast_matchers.py @@ -47,7 +47,7 @@ def esc(text): except: doxygen_probes[url] = False if doxygen_probes[url]: - return r'Matcher<%s>' % (url, name) + return r'Matcher<%s>' % (url, name) else: return m.group(0) text = re.sub(