From: Manuel Klimek Date: Fri, 7 Sep 2012 13:10:32 +0000 (+0000) Subject: Introduces anchors into LibASTMatchersReference.html. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=67619ff51b49ca34a4b6ee420af01b87fa63dcc5;p=clang Introduces anchors into LibASTMatchersReference.html. This allows linking to LibASTMatchersRefernce.html#Anchor to link to the N'the declaration of a matcher and automatically expand its documentation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163386 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/LibASTMatchersReference.html b/docs/LibASTMatchersReference.html index 55ac8ca4b3..ea038e38c8 100644 --- a/docs/LibASTMatchersReference.html +++ b/docs/LibASTMatchersReference.html @@ -20,6 +20,7 @@ td.name:hover { - + @@ -76,7 +77,7 @@ match callback.

Return typeNameParameters -Matcher<Decl>classTemplateDeclMatcher<ClassTemplateDecl>... +Matcher<Decl>classTemplateDeclMatcher<ClassTemplateDecl>...
Matches C++ class template declarations.
 
 Example matches Z
@@ -84,7 +85,7 @@ Example matches Z
 
-Matcher<Decl>classTemplateSpecializationDeclMatcher<ClassTemplateSpecializationDecl>... +Matcher<Decl>classTemplateSpecializationDeclMatcher<ClassTemplateSpecializationDecl>...
Matches C++ class template specializations.
 
 Given
@@ -96,7 +97,7 @@ classTemplateSpecializationDecl()
 
-Matcher<Decl>constructorDeclMatcher<CXXConstructorDecl>... +Matcher<Decl>constructorDeclMatcher<CXXConstructorDecl>...
Matches C++ constructor declarations.
 
 Example matches Foo::Foo() and Foo::Foo(int)
@@ -109,7 +110,7 @@ Example matches Foo::Foo() and Foo::Foo(int)
 
-Matcher<Decl>declMatcher<Decl>... +Matcher<Decl>declMatcher<Decl>...
Matches declarations.
 
 Examples matches X, C, and the friend declaration inside C;
@@ -120,7 +121,7 @@ Examples matches X, C, and the friend declaration inside C;
 
-Matcher<Decl>destructorDeclMatcher<CXXDestructorDecl>... +Matcher<Decl>destructorDeclMatcher<CXXDestructorDecl>...
Matches explicit C++ destructor declarations.
 
 Example matches Foo::~Foo()
@@ -131,7 +132,7 @@ Example matches Foo::~Foo()
 
-Matcher<Decl>enumConstantDeclMatcher<EnumConstantDecl>... +Matcher<Decl>enumConstantDeclMatcher<EnumConstantDecl>...
Matches enum constants.
 
 Example matches A, B, C
@@ -141,7 +142,7 @@ Example matches A, B, C
 
-Matcher<Decl>enumDeclMatcher<EnumDecl>... +Matcher<Decl>enumDeclMatcher<EnumDecl>...
Matches enum declarations.
 
 Example matches X
@@ -151,7 +152,7 @@ Example matches X
 
-Matcher<Decl>fieldDeclMatcher<FieldDecl>... +Matcher<Decl>fieldDeclMatcher<FieldDecl>...
Matches field declarations.
 
 Given
@@ -161,7 +162,7 @@ fieldDecl()
 
-Matcher<Decl>functionDeclMatcher<FunctionDecl>... +Matcher<Decl>functionDeclMatcher<FunctionDecl>...
Matches function declarations.
 
 Example matches f
@@ -169,7 +170,7 @@ Example matches f
 
-Matcher<Decl>functionTemplateDeclMatcher<FunctionTemplateDecl>... +Matcher<Decl>functionTemplateDeclMatcher<FunctionTemplateDecl>...
Matches C++ function template declarations.
 
 Example matches f
@@ -177,7 +178,7 @@ Example matches f
 
-Matcher<Decl>methodDeclMatcher<CXXMethodDecl>... +Matcher<Decl>methodDeclMatcher<CXXMethodDecl>...
Matches method declarations.
 
 Example matches y
@@ -185,7 +186,7 @@ Example matches y
 
-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;
@@ -198,7 +199,7 @@ Example matches X, S, the anonymous union type, i, and U;
 
-Matcher<Decl>recordDeclMatcher<CXXRecordDecl>... +Matcher<Decl>recordDeclMatcher<CXXRecordDecl>...
Matches C++ class declarations.
 
 Example matches X, Z
@@ -207,7 +208,7 @@ Example matches X, Z
 
-Matcher<Decl>usingDeclMatcher<UsingDecl>... +Matcher<Decl>usingDeclMatcher<UsingDecl>...
Matches using declarations.
 
 Given
@@ -217,7 +218,7 @@ usingDecl()
   matches using X::x 
-Matcher<Decl>varDeclMatcher<VarDecl>... +Matcher<Decl>varDeclMatcher<VarDecl>...
Matches variable declarations.
 
 Note: this does not match declarations of member variables, which are
@@ -228,7 +229,7 @@ Example matches a
 
-Matcher<Expr>boolLiteralMatcher<CXXBoolLiteralExpr>... +Matcher<Expr>boolLiteralMatcher<CXXBoolLiteralExpr>...
Matches bool literals.
 
 Example matches true
@@ -236,7 +237,7 @@ Example matches true
 
-Matcher<Expr>castExprMatcher<CastExpr>... +Matcher<Expr>castExprMatcher<CastExpr>...
Matches any cast nodes of Clang's AST.
 
 Example: castExpr() matches each of the following:
@@ -249,7 +250,7 @@ but does not match
 
-Matcher<Expr>characterLiteralMatcher<CharacterLiteral>... +Matcher<Expr>characterLiteralMatcher<CharacterLiteral>...
Matches character literals (also matches wchar_t).
 
 Not matching Hex-encoded chars (e.g. 0x1234, which is a IntegerLiteral),
@@ -260,7 +261,7 @@ Example matches 'a', L'a'
 
-Matcher<Expr>constCastExprMatcher<CXXConstCastExpr>... +Matcher<Expr>constCastExprMatcher<CXXConstCastExpr>...
Matches a const_cast expression.
 
 Example: Matches const_cast<int*>(&r) in
@@ -270,7 +271,7 @@ Example: Matches const_cast<int*>(&r) in
 
-Matcher<Expr>dynamicCastExprMatcher<CXXDynamicCastExpr>... +Matcher<Expr>dynamicCastExprMatcher<CXXDynamicCastExpr>...
Matches a dynamic_cast expression.
 
 Example:
@@ -284,7 +285,7 @@ in
 
-Matcher<Expr>explicitCastExprMatcher<ExplicitCastExpr>... +Matcher<Expr>explicitCastExprMatcher<ExplicitCastExpr>...
Matches explicit cast expressions.
 
 Matches any cast expression written in user code, whether it be a
@@ -305,7 +306,7 @@ but does not match the implicit conversion in
 
-Matcher<Expr>functionalCastExprMatcher<CXXFunctionalCastExpr>... +Matcher<Expr>functionalCastExprMatcher<CXXFunctionalCastExpr>...
Matches functional cast expressions
 
 Example: Matches Foo(bar);
@@ -315,7 +316,7 @@ Example: Matches Foo(bar);
 
-Matcher<Expr>implicitCastExprMatcher<ImplicitCastExpr>... +Matcher<Expr>implicitCastExprMatcher<ImplicitCastExpr>...
Matches the implicit cast nodes of Clang's AST.
 
 This matches many different places, including function call return value
@@ -323,7 +324,7 @@ eliding, as well as any type conversions.
 
-Matcher<Expr>integerLiteralMatcher<IntegerLiteral>... +Matcher<Expr>integerLiteralMatcher<IntegerLiteral>...
Matches integer literals of all sizes encodings.
 
 Not matching character-encoded integers such as L'a'.
@@ -332,7 +333,7 @@ Example matches 1, 1L, 0x1, 1U
 
-Matcher<Expr>reinterpretCastExprMatcher<CXXReinterpretCastExpr>... +Matcher<Expr>reinterpretCastExprMatcher<CXXReinterpretCastExpr>...
Matches a reinterpret_cast expression.
 
 Either the source expression or the destination type can be matched
@@ -344,7 +345,7 @@ Example matches reinterpret_cast<char*>(&p) in
 
-Matcher<Expr>staticCastExprMatcher<CXXStaticCastExpr>... +Matcher<Expr>staticCastExprMatcher<CXXStaticCastExpr>...
Matches a C++ static_cast expression.
 
 hasDestinationType
@@ -359,7 +360,7 @@ in
 
-Matcher<Expr>stringLiteralMatcher<StringLiteral>... +Matcher<Expr>stringLiteralMatcher<StringLiteral>...
Matches string literals (also matches wide string literals).
 
 Example matches "abcd", L"abcd"
@@ -367,7 +368,7 @@ Example matches "abcd", L"abcd"
 
-Matcher<Stmt>arraySubscriptExprMatcher<ArraySubscriptExpr>... +Matcher<Stmt>arraySubscriptExprMatcher<ArraySubscriptExpr>...
Matches array subscript expressions.
 
 Given
@@ -377,7 +378,7 @@ arraySubscriptExpr()
 
-Matcher<Stmt>binaryOperatorMatcher<BinaryOperator>... +Matcher<Stmt>binaryOperatorMatcher<BinaryOperator>...
Matches binary operator expressions.
 
 Example matches a || b
@@ -385,7 +386,7 @@ Example matches a || b
 
-Matcher<Stmt>bindTemporaryExprMatcher<CXXBindTemporaryExpr>... +Matcher<Stmt>bindTemporaryExprMatcher<CXXBindTemporaryExpr>...
Matches nodes where temporaries are created.
 
 Example matches FunctionTakesString(GetStringByValue())
@@ -395,7 +396,7 @@ Example matches FunctionTakesString(GetStringByValue())
 
-Matcher<Stmt>callExprMatcher<CallExpr>... +Matcher<Stmt>callExprMatcher<CallExpr>...
Matches call expressions.
 
 Example matches x.y() and y()
@@ -405,7 +406,7 @@ Example matches x.y() and y()
 
-Matcher<Stmt>compoundStmtMatcher<CompoundStmt>... +Matcher<Stmt>compoundStmtMatcher<CompoundStmt>...
Matches compound statements.
 
 Example matches '{}' and '{{}}'in 'for (;;) {{}}'
@@ -413,7 +414,7 @@ Example matches '{}' and '{{}}'in 'for (;;) {{}}'
 
-Matcher<Stmt>conditionalOperatorMatcher<ConditionalOperator>... +Matcher<Stmt>conditionalOperatorMatcher<ConditionalOperator>...
Matches conditional operator expressions.
 
 Example matches a ? b : c
@@ -421,7 +422,7 @@ Example matches a ? b : c
 
-Matcher<Stmt>constructExprMatcher<CXXConstructExpr>... +Matcher<Stmt>constructExprMatcher<CXXConstructExpr>...
Matches constructor call expressions (including implicit ones).
 
 Example matches string(ptr, n) and ptr within arguments of f
@@ -433,7 +434,7 @@ Example matches string(ptr, n) and ptr within arguments of f
 
-Matcher<Stmt>declRefExprMatcher<DeclRefExpr>... +Matcher<Stmt>declRefExprMatcher<DeclRefExpr>...
Matches expressions that refer to declarations.
 
 Example matches x in if (x)
@@ -442,7 +443,7 @@ Example matches x in if (x)
 
-Matcher<Stmt>declStmtMatcher<DeclStmt>... +Matcher<Stmt>declStmtMatcher<DeclStmt>...
Matches declaration statements.
 
 Given
@@ -452,7 +453,7 @@ declStmt()
 
-Matcher<Stmt>defaultArgExprMatcher<CXXDefaultArgExpr>... +Matcher<Stmt>defaultArgExprMatcher<CXXDefaultArgExpr>...
Matches the value of a default argument at the call site.
 
 Example matches the CXXDefaultArgExpr placeholder inserted for the
@@ -463,7 +464,7 @@ Example matches the CXXDefaultArgExpr placeholder inserted for the
 
-Matcher<Stmt>deleteExprMatcher<CXXDeleteExpr>... +Matcher<Stmt>deleteExprMatcher<CXXDeleteExpr>...
Matches delete expressions.
 
 Given
@@ -473,7 +474,7 @@ deleteExpr()
 
-Matcher<Stmt>doStmtMatcher<DoStmt>... +Matcher<Stmt>doStmtMatcher<DoStmt>...
Matches do statements.
 
 Given
@@ -483,7 +484,7 @@ doStmt()
 
-Matcher<Stmt>exprMatcher<Expr>... +Matcher<Stmt>exprMatcher<Expr>...
Matches expressions.
 
 Example matches x()
@@ -491,7 +492,7 @@ Example matches x()
 
-Matcher<Stmt>forStmtMatcher<ForStmt>... +Matcher<Stmt>forStmtMatcher<ForStmt>...
Matches for statements.
 
 Example matches 'for (;;) {}'
@@ -499,7 +500,7 @@ Example matches 'for (;;) {}'
 
-Matcher<Stmt>ifStmtMatcher<IfStmt>... +Matcher<Stmt>ifStmtMatcher<IfStmt>...
Matches if statements.
 
 Example matches 'if (x) {}'
@@ -507,7 +508,7 @@ Example matches 'if (x) {}'
 
-Matcher<Stmt>initListExprMatcher<InitListExpr>... +Matcher<Stmt>initListExprMatcher<InitListExpr>...
Matches init list expressions.
 
 Given
@@ -519,7 +520,7 @@ initList()
 
-Matcher<Stmt>materializeTemporaryExprMatcher<MaterializeTemporaryExpr>... +Matcher<Stmt>materializeTemporaryExprMatcher<MaterializeTemporaryExpr>...
Matches nodes where temporaries are materialized.
 
 Example: Given
@@ -535,7 +536,7 @@ but does not match
 
-Matcher<Stmt>memberCallExprMatcher<CXXMemberCallExpr>... +Matcher<Stmt>memberCallExprMatcher<CXXMemberCallExpr>...
Matches member call expressions.
 
 Example matches x.y()
@@ -544,7 +545,7 @@ Example matches x.y()
 
-Matcher<Stmt>memberExprMatcher<MemberExpr>... +Matcher<Stmt>memberExprMatcher<MemberExpr>...
Matches member expressions.
 
 Given
@@ -557,7 +558,7 @@ memberExpr()
 
-Matcher<Stmt>newExprMatcher<CXXNewExpr>... +Matcher<Stmt>newExprMatcher<CXXNewExpr>...
Matches new expressions.
 
 Given
@@ -567,7 +568,7 @@ newExpr()
 
-Matcher<Stmt>operatorCallExprMatcher<CXXOperatorCallExpr>... +Matcher<Stmt>operatorCallExprMatcher<CXXOperatorCallExpr>...
Matches overloaded operator calls.
 
 Note that if an operator isn't overloaded, it won't match. Instead, use
@@ -583,7 +584,7 @@ Example matches both operator<<((o << b), c) and operator<<(o,
 
-Matcher<Stmt>stmtMatcher<Stmt>... +Matcher<Stmt>stmtMatcher<Stmt>...
Matches statements.
 
 Given
@@ -593,7 +594,7 @@ stmt()
 
-Matcher<Stmt>switchCaseMatcher<SwitchCase>... +Matcher<Stmt>switchCaseMatcher<SwitchCase>...
Matches case and default statements inside switch statements.
 
 Given
@@ -603,7 +604,7 @@ switchCase()
 
-Matcher<Stmt>unaryExprOrTypeTraitExprMatcher<UnaryExprOrTypeTraitExpr>... +Matcher<Stmt>unaryExprOrTypeTraitExprMatcher<UnaryExprOrTypeTraitExpr>...
Matches sizeof (C99), alignof (C++11) and vec_step (OpenCL)
 
 Given
@@ -614,7 +615,7 @@ unaryExprOrTypeTraitExpr()
 
-Matcher<Stmt>unaryOperatorMatcher<UnaryOperator>... +Matcher<Stmt>unaryOperatorMatcher<UnaryOperator>...
Matches unary operator expressions.
 
 Example matches !a
@@ -622,7 +623,7 @@ Example matches !a
 
-Matcher<Stmt>whileStmtMatcher<WhileStmt>... +Matcher<Stmt>whileStmtMatcher<WhileStmt>...
Matches while statements.
 
 Given
@@ -648,21 +649,21 @@ which allow users to create more powerful match expressions.

Return typeNameParameters -Matcher<*>allOfMatcher<*> P1, Matcher<*> P2 +Matcher<*>allOfMatcher<*> P1, Matcher<*> P2
Matches if all given matchers match.
 
 Usable as: Any Matcher
 
-Matcher<*>anyOfMatcher<*> P1, Matcher<*> P2 +Matcher<*>anyOfMatcher<*> P1, Matcher<*> P2
Matches if any of the given matchers matches.
 
 Usable as: Any Matcher
 
-Matcher<*>anything +Matcher<*>anything
Matches any node.
 
 Useful when another matcher requires a child matcher, but there's no
@@ -678,7 +679,7 @@ Usable as: Any Matcher
 
-Matcher<*>unlessMatcher<*> InnerMatcher +Matcher<*>unlessMatcher<*> InnerMatcher
Matches if the provided matcher does not match.
 
 Example matches Y (matcher = recordDecl(unless(hasName("X"))))
@@ -689,7 +690,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).
 
@@ -698,7 +699,7 @@ Example matches a || b (matcher = binaryOperator(hasOperatorName("||")))
 
-Matcher<CXXBoolLiteral>equalsValueT Value +Matcher<CXXBoolLiteral>equalsValueT Value
Matches literals that are equal to the given value.
 
 Example matches true (matcher = boolLiteral(equals(true)))
@@ -709,13 +710,13 @@ Usable as: Matcher<CXXConstructorDecl>isImplicit
+Matcher<CXXConstructorDecl>isImplicit
 
Matches a constructor declaration that has been implicitly added
 by the compiler (eg. implicit defaultcopy constructors).
 
-Matcher<CXXCtorInitializer>isWritten +Matcher<CXXCtorInitializer>isWritten
Matches a contructor initializer if it is explicitly written in
 code (as opposed to implicitly added by the compiler).
 
@@ -730,7 +731,7 @@ constructorDecl(hasAnyConstructorInitializer(isWritten()))
 
-Matcher<CXXOperatorCallExpr>hasOverloadedOperatorNamestd::string Name +Matcher<CXXOperatorCallExpr>hasOverloadedOperatorNamestd::string Name
Matches overloaded operator names.
 
 Matches overloaded operator names specified in strings without the
@@ -744,12 +745,17 @@ Example matches a << b
 
-Matcher<CXXRecordDecl>isDerivedFromStringRef BaseName +Matcher<CXXRecordDecl>isAStringRef BaseName +
Overloaded method as shortcut for isA(hasName(...)).
+
+ + +Matcher<CXXRecordDecl>isDerivedFromStringRef 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.
 
@@ -763,7 +769,7 @@ Usable as: Matcher<CXXRecordDecl>isTemplateInstantiation
+Matcher<CXXRecordDecl>isTemplateInstantiation
 
Matches template instantiations of function, class, or static
 member variable template instantiations.
 
@@ -784,7 +790,7 @@ Usable as: 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).
 
@@ -794,7 +800,7 @@ 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 = boolLiteral(equals(true)))
@@ -805,7 +811,7 @@ Usable as: Matcher<CompoundStmt>statementCountIsunsigned N
+Matcher<CompoundStmt>statementCountIsunsigned N
 
Checks that a compound statement contains a specific number of
 child statements.
 
@@ -817,7 +823,7 @@ compoundStmt(statementCountIs(0)))
 
-Matcher<DeclStmt>declCountIsunsigned N +Matcher<DeclStmt>declCountIsunsigned N
Matches declaration statements that contain a specific number of
 declarations.
 
@@ -830,7 +836,7 @@ declCountIs(2)
 
-Matcher<FloatingLiteral>equalsValueT Value +Matcher<FloatingLiteral>equalsValueT Value
Matches literals that are equal to the given value.
 
 Example matches true (matcher = boolLiteral(equals(true)))
@@ -841,7 +847,7 @@ Usable as: Matcher<FunctionDecl>isDefinition
+Matcher<FunctionDecl>isDefinition
 
Matches if a declaration has a body attached.
 
 Example matches A, va, fa
@@ -856,7 +862,7 @@ Usable as: Matcher<FunctionDecl>isExplicitTemplateSpecialization
+Matcher<FunctionDecl>isExplicitTemplateSpecialization
 
Matches explicit template specializations of function, class, or
 static member variable template instantiations.
 
@@ -870,7 +876,7 @@ Usable as: Matcher<FunctionDecl>isExternC
+Matcher<FunctionDecl>isExternC
 
Matches extern "C" function declarations.
 
 Given:
@@ -882,7 +888,7 @@ functionDecl(isExternC())
 
-Matcher<FunctionDecl>isTemplateInstantiation +Matcher<FunctionDecl>isTemplateInstantiation
Matches template instantiations of function, class, or static
 member variable template instantiations.
 
@@ -903,7 +909,7 @@ Usable as: Matcher<IntegerLiteral>equalsValueT  Value
+Matcher<IntegerLiteral>equalsValueT  Value
 
Matches literals that are equal to the given value.
 
 Example matches true (matcher = boolLiteral(equals(true)))
@@ -914,7 +920,7 @@ Usable as: Matcher<MemberExpr>isArrow
+Matcher<MemberExpr>isArrow
 
Matches member expressions that are called with '->' as opposed
 to '.'.
 
@@ -931,7 +937,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
@@ -946,7 +952,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 full names partially match the
 given RegExp.
 
@@ -962,7 +968,7 @@ Example matches X (regexp is one of "::X", "^foo::.*X", among others)
 
-Matcher<QualType>asStringstd::string Name +Matcher<QualType>asStringstd::string Name
Matches if the matched type is represented by the given string.
 
 Given
@@ -973,7 +979,7 @@ callExpr(on(hasType(asString("class Y *"))))
 
-Matcher<QualType>isConstQualified +Matcher<QualType>isConstQualified
Matches QualType nodes that are const-qualified, i.e., that
 include "top-level" const.
 
@@ -990,7 +996,7 @@ functionDecl(hasAnyParameter(hasType(isConstQualified())))
 
-Matcher<QualType>isInteger +Matcher<QualType>isInteger
Matches QualType nodes that are of integer type.
 
 Given
@@ -1002,7 +1008,7 @@ matches "a(int)", "b(long)", but not "c(double)".
 
-Matcher<TagDecl>isDefinition +Matcher<TagDecl>isDefinition
Matches if a declaration has a body attached.
 
 Example matches A, va, fa
@@ -1017,7 +1023,7 @@ Usable as: Matcher<UnaryExprOrTypeTraitExpr>ofKindUnaryExprOrTypeTrait Kind
+Matcher<UnaryExprOrTypeTraitExpr>ofKindUnaryExprOrTypeTrait Kind
 
Matches unary expressions of a certain kind.
 
 Given
@@ -1028,7 +1034,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).
 
@@ -1037,7 +1043,7 @@ Example matches a || b (matcher = binaryOperator(hasOperatorName("||")))
 
-Matcher<VarDecl>isDefinition +Matcher<VarDecl>isDefinition
Matches if a declaration has a body attached.
 
 Example matches A, va, fa
@@ -1052,7 +1058,7 @@ Usable as: Matcher<VarDecl>isExplicitTemplateSpecialization
+Matcher<VarDecl>isExplicitTemplateSpecialization
 
Matches explicit template specializations of function, class, or
 static member variable template instantiations.
 
@@ -1066,7 +1072,7 @@ Usable as: Matcher<VarDecl>isTemplateInstantiation
+Matcher<VarDecl>isTemplateInstantiation
 
Matches template instantiations of function, class, or static
 member variable template instantiations.
 
@@ -1104,7 +1110,7 @@ match expressions.

Return typeNameParameters -Matcher<*>forEachMatcher<ChildT> ChildMatcher +Matcher<*>forEachMatcher<ChildT> ChildMatcher
Matches AST nodes that have child AST nodes that match the
 provided matcher.
 
@@ -1122,7 +1128,7 @@ Usable as: Any Matcher
 
-Matcher<*>forEachDescendantMatcher<DescendantT> DescendantMatcher +Matcher<*>forEachDescendantMatcher<DescendantT> DescendantMatcher
Matches AST nodes that have descendant AST nodes that match the
 provided matcher.
 
@@ -1146,7 +1152,7 @@ Usable as: Any Matcher
 
-Matcher<*>hasMatcher<ChildT> ChildMatcher +Matcher<*>hasMatcher<ChildT> ChildMatcher
Matches AST nodes that have child AST nodes that match the
 provided matcher.
 
@@ -1161,7 +1167,20 @@ Usable as: Any Matcher
 
-Matcher<*>hasDescendantMatcher<DescendantT> DescendantMatcher +Matcher<*>hasAncestorMatcher<AncestorT> AncestorMatcher +
Matches AST nodes that have an ancestor that matches the provided
+matcher.
+
+Given
+void f() { if (true) { int x = 42; } }
+void g() { for (;;) { int x = 43; } }
+expr(integerLiteral(hasAncsestor(ifStmt()))) matches 42, but not 43.
+
+Usable as: Any Matcher
+
+ + +Matcher<*>hasDescendantMatcher<DescendantT> DescendantMatcher
Matches AST nodes that have descendant AST nodes that match the
 provided matcher.
 
@@ -1177,7 +1196,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
@@ -1189,7 +1208,7 @@ arraySubscriptExpression(hasBase(implicitCastExpr(
 
-Matcher<ArraySubscriptExpr>hasIndexMatcher<Expr> InnerMatcher +Matcher<ArraySubscriptExpr>hasIndexMatcher<Expr> InnerMatcher
Matches the index expression of an array subscript expression.
 
 Given
@@ -1200,13 +1219,13 @@ arraySubscriptExpression(hasIndex(integerLiteral()))
 
-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()))
@@ -1214,7 +1233,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()))
@@ -1222,7 +1241,7 @@ Example matches b (matcher = binaryOperator(hasRHS()))
 
-Matcher<CXXConstructExpr>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<CXXConstructExpr>hasDeclarationMatcher<Decl> InnerMatcher
Matches a type if the declaration of the type matches the given
 matcher.
 
@@ -1230,7 +1249,7 @@ Usable as: Matcher<CXXConstructorDecl>hasAnyConstructorInitializerMatcher<CXXCtorInitializer> InnerMatcher
+Matcher<CXXConstructorDecl>hasAnyConstructorInitializerMatcher<CXXCtorInitializer> InnerMatcher
 
Matches a constructor initializer.
 
 Given
@@ -1243,7 +1262,7 @@ recordDecl(has(constructorDecl(hasAnyConstructorInitializer(anything()))))
 
-Matcher<CXXCtorInitializer>forFieldMatcher<FieldDecl> InnerMatcher +Matcher<CXXCtorInitializer>forFieldMatcher<FieldDecl> InnerMatcher
Matches the field declaration of a constructor initializer.
 
 Given
@@ -1258,7 +1277,7 @@ with forField matching foo_
 
-Matcher<CXXCtorInitializer>withInitializerMatcher<Expr> InnerMatcher +Matcher<CXXCtorInitializer>withInitializerMatcher<Expr> InnerMatcher
Matches the initializer expression of a constructor initializer.
 
 Given
@@ -1273,7 +1292,7 @@ with withInitializer matching (1)
 
-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() (matcher = callExpr(on(hasType(recordDecl(hasName("Y"))))))
@@ -1284,16 +1303,16 @@ FIXME: Overload to allow directly matching types?
 
-Matcher<CXXMemberCallExpr>onImplicitObjectArgumentMatcher<Expr> InnerMatcher +Matcher<CXXMemberCallExpr>onImplicitObjectArgumentMatcher<Expr> InnerMatcher

 
 
-Matcher<CXXMemberCallExpr>thisPointerTypeMatcher<Decl>  InnerMatcher
+Matcher<CXXMemberCallExpr>thisPointerTypeMatcher<Decl>  InnerMatcher
 
Overloaded to match the type's declaration.
 
-Matcher<CXXMethodDecl>ofClassMatcher<CXXRecordDecl> InnerMatcher +Matcher<CXXMethodDecl>ofClassMatcher<CXXRecordDecl> InnerMatcher
Matches the class declaration that the given method declaration
 belongs to.
 
@@ -1312,14 +1331,20 @@ Example matches A() in the last line
 
-Matcher<CXXRecordDecl>isDerivedFromMatcher<NamedDecl> Base +Matcher<CXXRecordDecl>isAMatcher<NamedDecl> Base +
Similar to isDerivedFrom(), but also matches classes that directly
+match Base.
+
+ + +Matcher<CXXRecordDecl>isDerivedFromMatcher<NamedDecl> Base
Matches C++ classes that are directly or indirectly derived from
 a class matching Base.
 
-Note that a class is considered to be also derived from itself.
+Note that a class is not considered to be derived from itself.
 
-Example matches X, Y, Z, C (Base == hasName("X"))
-  class X;                A class is considered to be derived from itself
+Example matches Y, Z, C (Base == hasName("X"))
+  class X;
   class Y : public X {};  directly derived
   class Z : public Y {};  indirectly derived
   typedef X A;
@@ -1333,7 +1358,7 @@ In the following example, Bar matches isDerivedFrom(hasName("X")):
 
-Matcher<CallExpr>calleeMatcher<Decl> InnerMatcher +Matcher<CallExpr>calleeMatcher<Decl> InnerMatcher
Matches if the call expression's callee's declaration matches the
 given matcher.
 
@@ -1343,7 +1368,7 @@ Example matches y.x() (matcher = callExpr(callee(methodDecl(hasName("x")))))
 
-Matcher<CallExpr>hasAnyArgumentMatcher<Expr> InnerMatcher +Matcher<CallExpr>hasAnyArgumentMatcher<Expr> InnerMatcher
Matches any argument of a call expression or a constructor call
 expression.
 
@@ -1356,7 +1381,7 @@ with hasAnyArgument(...)
 
-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.
 
@@ -1366,7 +1391,7 @@ Example matches y in x(y)
 
-Matcher<CallExpr>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<CallExpr>hasDeclarationMatcher<Decl> InnerMatcher
Matches a type if the declaration of the type matches the given
 matcher.
 
@@ -1374,7 +1399,7 @@ Usable as: 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 =
@@ -1384,7 +1409,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.
 
@@ -1398,7 +1423,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.
 
@@ -1412,7 +1437,7 @@ classTemplateSpecializationDecl(hasTemplateArgument(
 
-Matcher<CompoundStmt>hasAnySubstatementMatcher<Stmt> InnerMatcher +Matcher<CompoundStmt>hasAnySubstatementMatcher<Stmt> InnerMatcher
Matches compound statements where at least one substatement matches
 a given matcher.
 
@@ -1425,7 +1450,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.
 
@@ -1434,7 +1459,7 @@ Example matches true (matcher = hasCondition(boolLiteral(equals(true))))
 
-Matcher<ConditionalOperator>hasFalseExpressionMatcher<Expr> InnerMatcher +Matcher<ConditionalOperator>hasFalseExpressionMatcher<Expr> InnerMatcher
Matches the false branch expression of a conditional operator.
 
 Example matches b
@@ -1442,7 +1467,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
@@ -1450,7 +1475,7 @@ Example matches a
 
-Matcher<DeclRefExpr>throughUsingDeclMatcher<UsingShadowDecl> InnerMatcher +Matcher<DeclRefExpr>throughUsingDeclMatcher<UsingShadowDecl> InnerMatcher
Matches a DeclRefExpr that refers to a declaration through a
 specific using shadow declaration.
 
@@ -1468,7 +1493,7 @@ declRefExpr(throughUsingDeclaration(anything()))
 
-Matcher<DeclRefExpr>toMatcher<Decl> InnerMatcher +Matcher<DeclRefExpr>toMatcher<Decl> InnerMatcher
Matches a DeclRefExpr that refers to a declaration that matches the
 specified matcher.
 
@@ -1479,7 +1504,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
@@ -1498,7 +1523,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
@@ -1509,7 +1534,7 @@ declStmt(hasSingleDecl(anything()))
 
-Matcher<DoStmt>hasBodyMatcher<Stmt> InnerMatcher +Matcher<DoStmt>hasBodyMatcher<Stmt> InnerMatcher
Matches a 'for', 'while', or 'do while' statement that has
 a given body.
 
@@ -1522,7 +1547,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.
 
@@ -1531,7 +1556,7 @@ Example matches true (matcher = hasCondition(boolLiteral(equals(true))))
 
-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
@@ -1539,7 +1564,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.
 
@@ -1558,7 +1583,7 @@ Usable as: Matcher<Expr>ignoringImpCastsMatcher<Expr> InnerMatcher
+Matcher<Expr>ignoringImpCastsMatcher<Expr> InnerMatcher
 
Matches expressions that match InnerMatcher after any implicit casts
 are stripped off.
 
@@ -1581,7 +1606,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.
 
@@ -1600,7 +1625,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.
 
@@ -1623,7 +1648,7 @@ would only match the declaration for a.
 
-Matcher<ForStmt>hasBodyMatcher<Stmt> InnerMatcher +Matcher<ForStmt>hasBodyMatcher<Stmt> InnerMatcher
Matches a 'for', 'while', or 'do while' statement that has
 a given body.
 
@@ -1636,7 +1661,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.
 
@@ -1645,7 +1670,7 @@ Example matches true (matcher = hasCondition(boolLiteral(equals(true))))
 
-Matcher<ForStmt>hasIncrementMatcher<Stmt> InnerMatcher +Matcher<ForStmt>hasIncrementMatcher<Stmt> InnerMatcher
Matches the increment statement of a for loop.
 
 Example:
@@ -1655,7 +1680,7 @@ matches '++x' in
 
-Matcher<ForStmt>hasLoopInitMatcher<Stmt> InnerMatcher +Matcher<ForStmt>hasLoopInitMatcher<Stmt> InnerMatcher
Matches the initialization statement of a for loop.
 
 Example:
@@ -1665,7 +1690,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.
@@ -1679,7 +1704,7 @@ with hasAnyParameter(...)
 
-Matcher<FunctionDecl>hasParameterunsigned N, Matcher<ParmVarDecl> InnerMatcher +Matcher<FunctionDecl>hasParameterunsigned N, Matcher<ParmVarDecl> InnerMatcher
Matches the n'th parameter of a function declaration.
 
 Given
@@ -1691,7 +1716,7 @@ with hasParameter(...)
 
-Matcher<FunctionDecl>returnsMatcher<QualType> InnerMatcher +Matcher<FunctionDecl>returnsMatcher<QualType> InnerMatcher
Matches the return type of a function declaration.
 
 Given:
@@ -1701,7 +1726,7 @@ methodDecl(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.
 
@@ -1710,7 +1735,7 @@ Example matches true (matcher = hasCondition(boolLiteral(equals(true))))
 
-Matcher<IfStmt>hasConditionVariableStatementMatcher<DeclStmt> InnerMatcher +Matcher<IfStmt>hasConditionVariableStatementMatcher<DeclStmt> InnerMatcher
Matches the condition variable statement in an if statement.
 
 Given
@@ -1720,7 +1745,7 @@ hasConditionVariableStatment(...)
 
-Matcher<ImplicitCastExpr>hasImplicitDestinationTypeMatcher<QualType> InnerMatcher +Matcher<ImplicitCastExpr>hasImplicitDestinationTypeMatcher<QualType> InnerMatcher
Matches implicit casts whose destination type matches a given
 matcher.
 
@@ -1728,7 +1753,7 @@ FIXME: Unit test this matcher
 
-Matcher<MemberExpr>hasObjectExpressionMatcher<Expr> InnerMatcher +Matcher<MemberExpr>hasObjectExpressionMatcher<Expr> InnerMatcher
Matches a member expression where the object expression is
 matched by a given matcher.
 
@@ -1742,7 +1767,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.
 
@@ -1756,7 +1781,7 @@ memberExpr(member(hasName("first")))
 
-Matcher<QualType>hasDeclarationMatcher<Decl> InnerMatcher +Matcher<QualType>hasDeclarationMatcher<Decl> InnerMatcher
Matches a type if the declaration of the type matches the given
 matcher.
 
@@ -1764,29 +1789,29 @@ Usable as: Matcher<QualType>pointsToMatcher<Decl>  InnerMatcher
+Matcher<QualType>pointsToMatcher<Decl>  InnerMatcher
 
Overloaded to match the pointee type's declaration.
 
-Matcher<QualType>referencesMatcher<Decl> InnerMatcher +Matcher<QualType>referencesMatcher<Decl> InnerMatcher
Overloaded to match the referenced type's declaration.
 
-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<TemplateArgument>refersToDeclarationMatcher<Decl> InnerMatcher +Matcher<TemplateArgument>refersToDeclarationMatcher<Decl> InnerMatcher
Matches a TemplateArgument that refers to a certain declaration.
 
 Given
@@ -1800,7 +1825,7 @@ classTemplateSpecializationDecl(hasAnyTemplateArgument(
 
-Matcher<TemplateArgument>refersToTypeMatcher<QualType> InnerMatcher +Matcher<TemplateArgument>refersToTypeMatcher<QualType> InnerMatcher
Matches a TemplateArgument that refers to a certain type.
 
 Given
@@ -1813,7 +1838,7 @@ classTemplateSpecializationDecl(hasAnyTemplateArgument(
 
-Matcher<UnaryExprOrTypeTraitExpr>hasArgumentOfTypeMatcher<QualType> InnerMatcher +Matcher<UnaryExprOrTypeTraitExpr>hasArgumentOfTypeMatcher<QualType> InnerMatcher
Matches unary expressions that have a specific type of argument.
 
 Given
@@ -1823,7 +1848,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 = hasOperand(boolLiteral(equals(true))))
@@ -1831,7 +1856,7 @@ Example matches true (matcher = hasOperand(boolLiteral(equals(true))))
 
-Matcher<UsingDecl>hasAnyUsingShadowDeclMatcher<UsingShadowDecl> InnerMatcher +Matcher<UsingDecl>hasAnyUsingShadowDeclMatcher<UsingShadowDecl> InnerMatcher
Matches any using shadow declaration.
 
 Given
@@ -1841,7 +1866,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.
 
@@ -1853,7 +1878,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.
 
@@ -1872,7 +1897,7 @@ Usable as: Matcher<VarDecl>hasInitializerMatcher<Expr> InnerMatcher
+Matcher<VarDecl>hasInitializerMatcher<Expr> InnerMatcher
 
Matches a variable declaration that has an initializer expression
 that matches the given matcher.
 
@@ -1882,7 +1907,7 @@ Example matches x (matcher = varDecl(hasInitializer(callExpr())))
 
-Matcher<WhileStmt>hasBodyMatcher<Stmt> InnerMatcher +Matcher<WhileStmt>hasBodyMatcher<Stmt> InnerMatcher
Matches a 'for', 'while', or 'do while' statement that has
 a given body.
 
@@ -1895,7 +1920,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.
 
diff --git a/docs/tools/dump_ast_matchers.py b/docs/tools/dump_ast_matchers.py
index 83fc420c96..bc5f1a64a5 100644
--- a/docs/tools/dump_ast_matchers.py
+++ b/docs/tools/dump_ast_matchers.py
@@ -14,7 +14,7 @@ MATCHERS_FILE = '../../include/clang/ASTMatchers/ASTMatchers.h'
 # The subsequent row contains the documentation and is hidden by default,
 # becoming visible via javascript when the user clicks the matcher name.
 TD_TEMPLATE="""
-%(result)s%(name)s%(args)s
+%(result)s%(name)s%(args)s
 
%(comment)s
"""