From bc5c3f57277f8851c95ebc95d7fe203c8480c99c Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 4 Nov 2018 17:02:00 +0000 Subject: Update our URLs in clang doc to use https llvm-svn: 346101 --- clang/docs/AddressSanitizer.rst | 2 +- clang/docs/Block-ABI-Apple.txt | 2 +- clang/docs/ClangFormat.rst | 2 +- clang/docs/ClangFormatStyleOptions.rst | 6 +- clang/docs/ClangPlugins.rst | 4 +- clang/docs/ClangTools.rst | 6 +- clang/docs/CommandGuide/clang.rst | 7 +- clang/docs/ControlFlowIntegrity.rst | 2 +- clang/docs/ControlFlowIntegrityDesign.rst | 6 +- clang/docs/CrossCompilation.rst | 2 +- clang/docs/InternalsManual.rst | 24 +- clang/docs/IntroductionToTheClangAST.rst | 46 +- clang/docs/LanguageExtensions.rst | 20 +- clang/docs/LibASTMatchers.rst | 4 +- clang/docs/LibASTMatchersReference.html | 1316 ++++++++++++++--------------- clang/docs/LibASTMatchersTutorial.rst | 8 +- clang/docs/LibFormat.rst | 2 +- clang/docs/LibTooling.rst | 2 +- clang/docs/MSVCCompatibility.rst | 4 +- clang/docs/MemorySanitizer.rst | 2 +- clang/docs/PCHInternals.rst | 6 +- clang/docs/SanitizerCoverage.rst | 2 +- clang/docs/SourceBasedCodeCoverage.rst | 2 +- clang/docs/ThinLTO.rst | 10 +- clang/docs/ThreadSanitizer.rst | 2 +- clang/docs/Toolchain.rst | 4 +- clang/docs/Tooling.rst | 2 +- clang/docs/UndefinedBehaviorSanitizer.rst | 2 +- clang/docs/UsersManual.rst | 12 +- clang/docs/tools/dump_ast_matchers.py | 2 +- 30 files changed, 755 insertions(+), 756 deletions(-) (limited to 'clang/docs') diff --git a/clang/docs/AddressSanitizer.rst b/clang/docs/AddressSanitizer.rst index 7549159a39ab..066b13b2ab6c 100644 --- a/clang/docs/AddressSanitizer.rst +++ b/clang/docs/AddressSanitizer.rst @@ -24,7 +24,7 @@ Typical slowdown introduced by AddressSanitizer is **2x**. How to build ============ -Build LLVM/Clang with `CMake `_. +Build LLVM/Clang with `CMake `_. Usage ===== diff --git a/clang/docs/Block-ABI-Apple.txt b/clang/docs/Block-ABI-Apple.txt index 94a4d18e08f0..1b04cc9e133c 100644 --- a/clang/docs/Block-ABI-Apple.txt +++ b/clang/docs/Block-ABI-Apple.txt @@ -1 +1 @@ -*NOTE* This document has moved to http://clang.llvm.org/docs/Block-ABI-Apple.html. +*NOTE* This document has moved to https://clang.llvm.org/docs/Block-ABI-Apple.html. diff --git a/clang/docs/ClangFormat.rst b/clang/docs/ClangFormat.rst index f53c02ae90d7..e9c236735bb5 100644 --- a/clang/docs/ClangFormat.rst +++ b/clang/docs/ClangFormat.rst @@ -169,7 +169,7 @@ Visual Studio Integration ========================= Download the latest Visual Studio extension from the `alpha build site -`_. The default key-binding is Ctrl-R,Ctrl-F. +`_. The default key-binding is Ctrl-R,Ctrl-F. Script for patch reformatting diff --git a/clang/docs/ClangFormatStyleOptions.rst b/clang/docs/ClangFormatStyleOptions.rst index 6b7c578317bc..c9f4c4589a44 100644 --- a/clang/docs/ClangFormatStyleOptions.rst +++ b/clang/docs/ClangFormatStyleOptions.rst @@ -108,7 +108,7 @@ Configuring Style in Code When using ``clang::format::reformat(...)`` functions, the format is specified by supplying the `clang::format::FormatStyle -`_ +`_ structure. @@ -131,7 +131,7 @@ the configuration (without a prefix: ``Auto``). * ``LLVM`` A style complying with the `LLVM coding standards - `_ + `_ * ``Google`` A style complying with `Google's C++ style guide `_ @@ -1290,7 +1290,7 @@ the configuration (without a prefix: ``Auto``). If none of the regular expressions match, INT_MAX is assigned as category. The main header for a source file automatically gets category 0. so that it is generally kept at the beginning of the ``#includes`` - (http://llvm.org/docs/CodingStandards.html#include-style). However, you + (https://llvm.org/docs/CodingStandards.html#include-style). However, you can also assign negative priorities if you have certain headers that always need to be first. diff --git a/clang/docs/ClangPlugins.rst b/clang/docs/ClangPlugins.rst index 833f0dd39f77..5e6082e90340 100644 --- a/clang/docs/ClangPlugins.rst +++ b/clang/docs/ClangPlugins.rst @@ -69,7 +69,7 @@ Putting it all together Let's look at an example plugin that prints top-level function names. This example is checked into the clang repository; please take a look at the `latest version of PrintFunctionNames.cpp -`_. +`_. Running the plugin ================== @@ -110,7 +110,7 @@ source tree: -plugin -Xclang print-fns Also see the print-function-name plugin example's -`README `_ +`README `_ Using the clang command line diff --git a/clang/docs/ClangTools.rst b/clang/docs/ClangTools.rst index e371596b240c..99e8a5e4f685 100644 --- a/clang/docs/ClangTools.rst +++ b/clang/docs/ClangTools.rst @@ -19,12 +19,12 @@ LLVM/Clang checkout: - With Subversion: - ``cd llvm/tools/clang/tools`` - - ``svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra`` + - ``svn co https://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra`` - Or with Git: - ``cd llvm/tools/clang/tools`` - - ``git clone http://llvm.org/git/clang-tools-extra.git extra`` + - ``git clone https://llvm.org/git/clang-tools-extra.git extra`` This document describes a high-level overview of the organization of Clang Tools within the project as well as giving an introduction to some @@ -105,7 +105,7 @@ provide its own user-focused documentation. ``clang-tidy`` -------------- -`clang-tidy `_ is a clang-based C++ +`clang-tidy `_ is a clang-based C++ linter tool. It provides an extensible framework for building compiler-based static analyses detecting and fixing bug-prone patterns, performance, portability and maintainability issues. diff --git a/clang/docs/CommandGuide/clang.rst b/clang/docs/CommandGuide/clang.rst index d440d915d686..a75b6c911571 100644 --- a/clang/docs/CommandGuide/clang.rst +++ b/clang/docs/CommandGuide/clang.rst @@ -60,7 +60,7 @@ Linker The Clang Static Analyzer is a tool that scans source code to try to find bugs through code analysis. This tool uses many parts of Clang and is built into -the same driver. Please see for more details +the same driver. Please see for more details on how to use the static analyzer. OPTIONS @@ -361,7 +361,7 @@ Code Generation Options :option:`-Oz` Like :option:`-Os` (and thus :option:`-O2`), but reduces code size further. - :option:`-Og` Like :option:`-O1`. In future versions, this option might + :option:`-Og` Like :option:`-O1`. In future versions, this option might disable different optimizations in order to improve debuggability. :option:`-O` Equivalent to :option:`-O2`. @@ -625,7 +625,7 @@ ENVIRONMENT BUGS ---- -To report bugs, please visit . Most bug reports should +To report bugs, please visit . Most bug reports should include preprocessed source files (use the :option:`-E` option) and the full output of the compiler, along with information to reproduce. @@ -633,4 +633,3 @@ SEE ALSO -------- :manpage:`as(1)`, :manpage:`ld(1)` - diff --git a/clang/docs/ControlFlowIntegrity.rst b/clang/docs/ControlFlowIntegrity.rst index fcc640988897..b0b37f83f1c7 100644 --- a/clang/docs/ControlFlowIntegrity.rst +++ b/clang/docs/ControlFlowIntegrity.rst @@ -45,7 +45,7 @@ Experimental support for :ref:`cross-DSO control flow integrity ` exists that does not require classes to have hidden LTO visibility. This cross-DSO support has unstable ABI at this time. -.. _gold plugin: http://llvm.org/docs/GoldPlugin.html +.. _gold plugin: https://llvm.org/docs/GoldPlugin.html .. _cfi-schemes: diff --git a/clang/docs/ControlFlowIntegrityDesign.rst b/clang/docs/ControlFlowIntegrityDesign.rst index aaa0ebaa8711..bb1770da5af4 100644 --- a/clang/docs/ControlFlowIntegrityDesign.rst +++ b/clang/docs/ControlFlowIntegrityDesign.rst @@ -93,8 +93,8 @@ the bit vectors for the whole program. It currently does this using LLVM's `type metadata`_ mechanism together with link-time optimization. .. _address point: http://itanium-cxx-abi.github.io/cxx-abi/abi.html#vtable-general -.. _type metadata: http://llvm.org/docs/TypeMetadata.html -.. _ByteArrayBuilder: http://llvm.org/docs/doxygen/html/structllvm_1_1ByteArrayBuilder.html +.. _type metadata: https://llvm.org/docs/TypeMetadata.html +.. _ByteArrayBuilder: https://llvm.org/docs/doxygen/html/structllvm_1_1ByteArrayBuilder.html Optimizations ------------- @@ -196,7 +196,7 @@ those sub-hierarchies need to be (see "Stripping Leading/Trailing Zeros in Bit Vectors" above). The `GlobalLayoutBuilder`_ class is responsible for laying out the globals efficiently to minimize the sizes of the underlying bitsets. -.. _GlobalLayoutBuilder: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/IPO/LowerTypeTests.h?view=markup +.. _GlobalLayoutBuilder: https://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/IPO/LowerTypeTests.h?view=markup Alignment ~~~~~~~~~ diff --git a/clang/docs/CrossCompilation.rst b/clang/docs/CrossCompilation.rst index 5e1253ddf853..932e0525366e 100644 --- a/clang/docs/CrossCompilation.rst +++ b/clang/docs/CrossCompilation.rst @@ -15,7 +15,7 @@ build system or Makefiles, nor choosing the right CMake options, etc. Also, it does not cover all the possible options, nor does it contain specific examples for specific architectures. For a concrete example, the `instructions for cross-compiling LLVM itself -`_ may be of interest. +`_ may be of interest. After reading this document, you should be familiar with the main issues related to cross-compilation, and what main compiler options Clang provides diff --git a/clang/docs/InternalsManual.rst b/clang/docs/InternalsManual.rst index af15b2e51e1c..be6010b35ad6 100644 --- a/clang/docs/InternalsManual.rst +++ b/clang/docs/InternalsManual.rst @@ -19,7 +19,7 @@ LLVM Support Library ==================== The LLVM ``libSupport`` library provides many underlying libraries and -`data-structures `_, including +`data-structures `_, including command line option processing, various containers and a system abstraction layer, which is used for file system access. @@ -562,7 +562,7 @@ Precompiled Headers Clang supports two implementations of precompiled headers. The default implementation, precompiled headers (:doc:`PCH `) uses a serialized representation of Clang's internal data structures, encoded with the -`LLVM bitstream format `_. +`LLVM bitstream format `_. Pretokenized headers (:doc:`PTH `), on the other hand, contain a serialized representation of the tokens encountered when preprocessing a header (and anything that header includes). @@ -1690,7 +1690,7 @@ semantic checking for some attributes, etc. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The first step to adding a new attribute to Clang is to add its definition to `include/clang/Basic/Attr.td -`_. +`_. This tablegen definition must derive from the ``Attr`` (tablegen, not semantic) type, or one of its derivatives. Most attributes will derive from the ``InheritableAttr`` type, which specifies that the attribute can be inherited by @@ -1752,10 +1752,10 @@ the ``SubjectList``. The diagnostics generated for subject list violations are either ``diag::warn_attribute_wrong_decl_type`` or ``diag::err_attribute_wrong_decl_type``, and the parameter enumeration is found in `include/clang/Sema/ParsedAttr.h -`_ +`_ If a previously unused Decl node is added to the ``SubjectList``, the logic used to automatically determine the diagnostic parameter in `utils/TableGen/ClangAttrEmitter.cpp -`_ +`_ may need to be updated. By default, all subjects in the SubjectList must either be a Decl node defined @@ -1777,7 +1777,7 @@ All attributes must have some form of documentation associated with them. Documentation is table generated on the public web server by a server-side process that runs daily. Generally, the documentation for an attribute is a stand-alone definition in `include/clang/Basic/AttrDocs.td -`_ +`_ that is named after the attribute being documented. If the attribute is not for public consumption, or is an implicitly-created @@ -1828,7 +1828,7 @@ All arguments have a name and a flag that specifies whether the argument is optional. The associated C++ type of the argument is determined by the argument definition type. If the existing argument types are insufficient, new types can be created, but it requires modifying `utils/TableGen/ClangAttrEmitter.cpp -`_ +`_ to properly support the type. Other Properties @@ -1840,7 +1840,7 @@ document, however a few deserve mention. If the parsed form of the attribute is more complex, or differs from the semantic form, the ``HasCustomParsing`` bit can be set to ``1`` for the class, and the parsing code in `Parser::ParseGNUAttributeArgs() -`_ +`_ can be updated for the special case. Note that this only applies to arguments with a GNU spelling -- attributes with a __declspec spelling currently ignore this flag and are handled by ``Parser::ParseMicrosoftDeclSpec``. @@ -1903,7 +1903,7 @@ semantic attribute class object, with ``public`` access. Boilerplate ^^^^^^^^^^^ All semantic processing of declaration attributes happens in `lib/Sema/SemaDeclAttr.cpp -`_, +`_, and generally starts in the ``ProcessDeclAttribute()`` function. If the attribute is a "simple" attribute -- meaning that it requires no custom semantic processing aside from what is automatically provided, add a call to @@ -1919,11 +1919,11 @@ correct minimum number of arguments are passed, etc. If the attribute adds additional warnings, define a ``DiagGroup`` in `include/clang/Basic/DiagnosticGroups.td -`_ +`_ named after the attribute's ``Spelling`` with "_"s replaced by "-"s. If there is only a single diagnostic, it is permissible to use ``InGroup>`` directly in `DiagnosticSemaKinds.td -`_ +`_ All semantic diagnostics generated for your attribute, including automatically- generated ones (such as subjects and argument counts), should have a @@ -2075,7 +2075,7 @@ are similar. exception-handling directly. * Testing is extremely important in IR generation. Use ``clang -cc1 -emit-llvm`` and `FileCheck - `_ to verify that you're + `_ to verify that you're generating the right IR. #. Teach template instantiation how to cope with your AST node, which requires diff --git a/clang/docs/IntroductionToTheClangAST.rst b/clang/docs/IntroductionToTheClangAST.rst index 600a6c884cb9..f357c03507d3 100644 --- a/clang/docs/IntroductionToTheClangAST.rst +++ b/clang/docs/IntroductionToTheClangAST.rst @@ -11,7 +11,7 @@ matchers.
-`Slides `_ +`Slides `_ Introduction ============ @@ -23,7 +23,7 @@ constants are available in an unreduced form in the AST. This makes Clang's AST a good fit for refactoring tools. Documentation for all Clang AST nodes is available via the generated -`Doxygen `_. The doxygen online +`Doxygen `_. The doxygen online documentation is also indexed by your favorite search engine, which will make a search for clang and the AST node's class name usually turn up the doxygen of the class you're looking for (for example, search for: @@ -67,26 +67,26 @@ Let's look at a simple example AST: The toplevel declaration in a translation unit is always the `translation unit -declaration `_. +declaration `_. In this example, our first user written declaration is the `function -declaration `_ +declaration `_ of "``f``". The body of "``f``" is a `compound -statement `_, +statement `_, whose child nodes are a `declaration -statement `_ +statement `_ that declares our result variable, and the `return -statement `_. +statement `_. AST Context =========== All information about the AST for a translation unit is bundled up in the class -`ASTContext `_. +`ASTContext `_. It allows traversal of the whole translation unit starting from -`getTranslationUnitDecl `_, +`getTranslationUnitDecl `_, or to access Clang's `table of -identifiers `_ +identifiers `_ for the parsed translation unit. AST Nodes @@ -95,32 +95,32 @@ AST Nodes Clang's AST nodes are modeled on a class hierarchy that does not have a common ancestor. Instead, there are multiple larger hierarchies for basic node types like -`Decl `_ and -`Stmt `_. Many +`Decl `_ and +`Stmt `_. Many important AST nodes derive from -`Type `_, -`Decl `_, -`DeclContext `_ -or `Stmt `_, with +`Type `_, +`Decl `_, +`DeclContext `_ +or `Stmt `_, with some classes deriving from both Decl and DeclContext. There are also a multitude of nodes in the AST that are not part of a larger hierarchy, and are only reachable from specific other nodes, like -`CXXBaseSpecifier `_. +`CXXBaseSpecifier `_. Thus, to traverse the full AST, one starts from the -`TranslationUnitDecl `_ +`TranslationUnitDecl `_ and then recursively traverses everything that can be reached from that node - this information has to be encoded for each specific node type. This algorithm is encoded in the -`RecursiveASTVisitor `_. +`RecursiveASTVisitor `_. See the `RecursiveASTVisitor -tutorial `_. +tutorial `_. The two most basic nodes in the Clang AST are statements -(`Stmt `_) and +(`Stmt `_) and declarations -(`Decl `_). Note +(`Decl `_). Note that expressions -(`Expr `_) are +(`Expr `_) are also statements in Clang's AST. diff --git a/clang/docs/LanguageExtensions.rst b/clang/docs/LanguageExtensions.rst index 506d2736891f..a52a112d550d 100644 --- a/clang/docs/LanguageExtensions.rst +++ b/clang/docs/LanguageExtensions.rst @@ -590,7 +590,7 @@ which does not provide them. The features which can be tested are listed here. Since Clang 3.4, the C++ SD-6 feature test macros are also supported. These are macros with names of the form ``__cpp_``, and are intended to be a portable way to query the supported features of the compiler. -See `the C++ status page `_ for +See `the C++ status page `_ for information on the version of SD-6 supported by each Clang release, and the macros provided by that revision of the recommendations. @@ -1013,7 +1013,7 @@ Modules Use ``__has_feature(modules)`` to determine if Modules have been enabled. For example, compiling code with ``-fmodules`` enables the use of Modules. -More information could be found `here `_. +More information could be found `here `_. Checks for Type Trait Primitives ================================ @@ -1353,7 +1353,7 @@ In Objective-C, functions and methods are generally assumed to follow the conventions for ownership of object arguments and return values. However, there are exceptions, and so Clang provides attributes to allow these exceptions to be documented. This are used by ARC and the -`static analyzer `_ Some exceptions may be +`static analyzer `_ Some exceptions may be better described using the ``objc_method_family`` attribute instead. **Usage**: The ``ns_returns_retained``, ``ns_returns_not_retained``, @@ -1390,7 +1390,7 @@ method; it specifies that the method expects its ``self`` parameter to have a - (void) baz:(id) __attribute__((ns_consumed)) x; Further examples of these attributes are available in the static analyzer's `list of annotations for analysis -`_. +`_. Query for these features with ``__has_attribute(ns_consumed)``, ``__has_attribute(ns_returns_retained)``, etc. @@ -1411,7 +1411,7 @@ Objective-C methods. If such a check was missed, the program would compile fine, run fine on newer systems, but crash on older systems. As of LLVM 5.0, ``-Wunguarded-availability`` uses the `availability attributes -`_ together +`_ together with the new ``@available()`` keyword to assist with this issue. When a method that's introduced in the OS newer than the target OS is called, a -Wunguarded-availability warning is emitted if that call is not guarded: @@ -1454,7 +1454,7 @@ More than one platform can be listed in ``@available()``: If the caller of ``my_fun()`` already checks that ``my_fun()`` is only called on 10.12, then add an `availability attribute -`_ to it, +`_ to it, which will also suppress the warning and require that calls to my_fun() are checked: @@ -2041,7 +2041,7 @@ Floating point builtins Returns the platform specific canonical encoding of a floating point number. This canonicalization is useful for implementing certain numeric primitives such as frexp. See `LLVM canonicalize intrinsic -`_ for +`_ for more information on the semantics. String builtins @@ -2255,7 +2255,7 @@ standard library to implement `std::experimental::coroutine_handle` type. Other coroutine builtins are either for internal clang use or for use during development of the coroutine feature. See `Coroutines in LLVM -`_ for +`_ for more information on their semantics. Note that builtins matching the intrinsics that take token as the first parameter (llvm.coro.begin, llvm.coro.alloc, llvm.coro.free and llvm.coro.suspend) omit the token parameter and fill it to @@ -2362,9 +2362,9 @@ Extensions for Static Analysis Clang supports additional attributes that are useful for documenting program invariants and rules for static analysis tools, such as the `Clang Static -Analyzer `_. These attributes are documented +Analyzer `_. These attributes are documented in the analyzer's `list of source-level annotations -`_. +`_. Extensions for Dynamic Analysis diff --git a/clang/docs/LibASTMatchers.rst b/clang/docs/LibASTMatchers.rst index aea9f3233b4b..3b9f0a66db13 100644 --- a/clang/docs/LibASTMatchers.rst +++ b/clang/docs/LibASTMatchers.rst @@ -81,7 +81,7 @@ To that end, matchers that match specific AST nodes (so called node matchers) are bindable; for example, ``recordDecl(hasName("MyClass")).bind("id")`` will bind the matched ``recordDecl`` node to the string "``id``", to be later retrieved in the `match callback -`_. +`_. .. FIXME: Introduce link to ASTMatchersTutorial.html .. FIXME: Introduce link to ASTMatchersCookbook.html @@ -116,7 +116,7 @@ corresponding matcher. There are multiple matcher definition macros that deal with polymorphic return values and different parameter counts. See `ASTMatchersMacros.h -`_. +`_. .. _astmatchers-writing: diff --git a/clang/docs/LibASTMatchersReference.html b/clang/docs/LibASTMatchersReference.html index c1554656011a..7db62edfa4db 100644 --- a/clang/docs/LibASTMatchersReference.html +++ b/clang/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>blockDeclMatcher<BlockDecl>... +Matcher<Decl>blockDeclMatcher<BlockDecl>...
Matches block declarations.
 
 Example matches the declaration of the nameless block printing an input
@@ -136,7 +136,7 @@ integer.
 
-Matcher<Decl>classTemplateDeclMatcher<ClassTemplateDecl>... +Matcher<Decl>classTemplateDeclMatcher<ClassTemplateDecl>...
Matches C++ class template declarations.
 
 Example matches Z
@@ -144,7 +144,7 @@ Example matches Z
 
-Matcher<Decl>classTemplatePartialSpecializationDeclMatcher<ClassTemplatePartialSpecializationDecl>... +Matcher<Decl>classTemplatePartialSpecializationDeclMatcher<ClassTemplatePartialSpecializationDecl>...
Matches C++ class template partial specializations.
 
 Given
@@ -161,7 +161,7 @@ classTemplatePartialSpecializationDecl()
 
-Matcher<Decl>classTemplateSpecializationDeclMatcher<ClassTemplateSpecializationDecl>... +Matcher<Decl>classTemplateSpecializationDeclMatcher<ClassTemplateSpecializationDecl>...
Matches C++ class template specializations.
 
 Given
@@ -173,7 +173,7 @@ classTemplateSpecializationDecl()
 
-Matcher<Decl>cxxConstructorDeclMatcher<CXXConstructorDecl>... +Matcher<Decl>cxxConstructorDeclMatcher<CXXConstructorDecl>...
Matches C++ constructor declarations.
 
 Example matches Foo::Foo() and Foo::Foo(int)
@@ -186,7 +186,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.
@@ -194,7 +194,7 @@ Example matches the operator.
 
-Matcher<Decl>cxxDestructorDeclMatcher<CXXDestructorDecl>... +Matcher<Decl>cxxDestructorDeclMatcher<CXXDestructorDecl>...
Matches explicit C++ destructor declarations.
 
 Example matches Foo::~Foo()
@@ -205,7 +205,7 @@ Example matches Foo::~Foo()
 
-Matcher<Decl>cxxMethodDeclMatcher<CXXMethodDecl>... +Matcher<Decl>cxxMethodDeclMatcher<CXXMethodDecl>...
Matches method declarations.
 
 Example matches y
@@ -213,7 +213,7 @@ Example matches y
 
-Matcher<Decl>cxxRecordDeclMatcher<CXXRecordDecl>... +Matcher<Decl>cxxRecordDeclMatcher<CXXRecordDecl>...
Matches C++ class declarations.
 
 Example matches X, Z
@@ -222,7 +222,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;
@@ -233,7 +233,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).
 
@@ -244,7 +244,7 @@ declaratorDecl()
 
-Matcher<Decl>enumConstantDeclMatcher<EnumConstantDecl>... +Matcher<Decl>enumConstantDeclMatcher<EnumConstantDecl>...
Matches enum constants.
 
 Example matches A, B, C
@@ -254,7 +254,7 @@ Example matches A, B, C
 
-Matcher<Decl>enumDeclMatcher<EnumDecl>... +Matcher<Decl>enumDeclMatcher<EnumDecl>...
Matches enum declarations.
 
 Example matches X
@@ -264,7 +264,7 @@ Example matches X
 
-Matcher<Decl>fieldDeclMatcher<FieldDecl>... +Matcher<Decl>fieldDeclMatcher<FieldDecl>...
Matches field declarations.
 
 Given
@@ -274,7 +274,7 @@ fieldDecl()
 
-Matcher<Decl>friendDeclMatcher<FriendDecl>... +Matcher<Decl>friendDeclMatcher<FriendDecl>...
Matches friend declarations.
 
 Given
@@ -284,7 +284,7 @@ friendDecl()
 
-Matcher<Decl>functionDeclMatcher<FunctionDecl>... +Matcher<Decl>functionDeclMatcher<FunctionDecl>...
Matches function declarations.
 
 Example matches f
@@ -292,7 +292,7 @@ Example matches f
 
-Matcher<Decl>functionTemplateDeclMatcher<FunctionTemplateDecl>... +Matcher<Decl>functionTemplateDeclMatcher<FunctionTemplateDecl>...
Matches C++ function template declarations.
 
 Example matches f
@@ -300,7 +300,7 @@ Example matches f
 
-Matcher<Decl>labelDeclMatcher<LabelDecl>... +Matcher<Decl>labelDeclMatcher<LabelDecl>...
Matches a declaration of label.
 
 Given
@@ -311,7 +311,7 @@ labelDecl()
 
-Matcher<Decl>linkageSpecDeclMatcher<LinkageSpecDecl>... +Matcher<Decl>linkageSpecDeclMatcher<LinkageSpecDecl>...
Matches a declaration of a linkage specification.
 
 Given
@@ -321,7 +321,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;
@@ -334,7 +334,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
@@ -345,7 +345,7 @@ namespaceAliasDecl()
 
-Matcher<Decl>namespaceDeclMatcher<NamespaceDecl>... +Matcher<Decl>namespaceDeclMatcher<NamespaceDecl>...
Matches a declaration of a namespace.
 
 Given
@@ -356,7 +356,7 @@ namespaceDecl()
 
-Matcher<Decl>nonTypeTemplateParmDeclMatcher<NonTypeTemplateParmDecl>... +Matcher<Decl>nonTypeTemplateParmDeclMatcher<NonTypeTemplateParmDecl>...
Matches non-type template parameter declarations.
 
 Given
@@ -366,7 +366,7 @@ nonTypeTemplateParmDecl()
 
-Matcher<Decl>objcCategoryDeclMatcher<ObjCCategoryDecl>... +Matcher<Decl>objcCategoryDeclMatcher<ObjCCategoryDecl>...
Matches Objective-C category declarations.
 
 Example matches Foo (Additions)
@@ -375,7 +375,7 @@ Example matches Foo (Additions)
 
-Matcher<Decl>objcCategoryImplDeclMatcher<ObjCCategoryImplDecl>... +Matcher<Decl>objcCategoryImplDeclMatcher<ObjCCategoryImplDecl>...
Matches Objective-C category definitions.
 
 Example matches Foo (Additions)
@@ -384,7 +384,7 @@ Example matches Foo (Additions)
 
-Matcher<Decl>objcImplementationDeclMatcher<ObjCImplementationDecl>... +Matcher<Decl>objcImplementationDeclMatcher<ObjCImplementationDecl>...
Matches Objective-C implementation declarations.
 
 Example matches Foo
@@ -393,7 +393,7 @@ Example matches Foo
 
-Matcher<Decl>objcInterfaceDeclMatcher<ObjCInterfaceDecl>... +Matcher<Decl>objcInterfaceDeclMatcher<ObjCInterfaceDecl>...
Matches Objective-C interface declarations.
 
 Example matches Foo
@@ -402,7 +402,7 @@ Example matches Foo
 
-Matcher<Decl>objcIvarDeclMatcher<ObjCIvarDecl>... +Matcher<Decl>objcIvarDeclMatcher<ObjCIvarDecl>...
Matches Objective-C instance variable declarations.
 
 Example matches _enabled
@@ -413,7 +413,7 @@ Example matches _enabled
 
-Matcher<Decl>objcMethodDeclMatcher<ObjCMethodDecl>... +Matcher<Decl>objcMethodDeclMatcher<ObjCMethodDecl>...
Matches Objective-C method declarations.
 
 Example matches both declaration and definition of -[Foo method]
@@ -427,7 +427,7 @@ Example matches both declaration and definition of -[Foo method]
 
-Matcher<Decl>objcPropertyDeclMatcher<ObjCPropertyDecl>... +Matcher<Decl>objcPropertyDeclMatcher<ObjCPropertyDecl>...
Matches Objective-C property declarations.
 
 Example matches enabled
@@ -437,7 +437,7 @@ Example matches enabled
 
-Matcher<Decl>objcProtocolDeclMatcher<ObjCProtocolDecl>... +Matcher<Decl>objcProtocolDeclMatcher<ObjCProtocolDecl>...
Matches Objective-C protocol declarations.
 
 Example matches FooDelegate
@@ -446,7 +446,7 @@ Example matches FooDelegate
 
-Matcher<Decl>parmVarDeclMatcher<ParmVarDecl>... +Matcher<Decl>parmVarDeclMatcher<ParmVarDecl>...
Matches parameter variable declarations.
 
 Given
@@ -456,7 +456,7 @@ parmVarDecl()
 
-Matcher<Decl>recordDeclMatcher<RecordDecl>... +Matcher<Decl>recordDeclMatcher<RecordDecl>...
Matches class, struct, and union declarations.
 
 Example matches X, Z, U, and S
@@ -467,7 +467,7 @@ Example matches X, Z, U, and S
 
-Matcher<Decl>staticAssertDeclMatcher<StaticAssertDecl>... +Matcher<Decl>staticAssertDeclMatcher<StaticAssertDecl>...
Matches a C++ static_assert declaration.
 
 Example:
@@ -482,7 +482,7 @@ in
 
-Matcher<Decl>templateTypeParmDeclMatcher<TemplateTypeParmDecl>... +Matcher<Decl>templateTypeParmDeclMatcher<TemplateTypeParmDecl>...
Matches template type parameter declarations.
 
 Given
@@ -492,7 +492,7 @@ templateTypeParmDecl()
 
-Matcher<Decl>translationUnitDeclMatcher<TranslationUnitDecl>... +Matcher<Decl>translationUnitDeclMatcher<TranslationUnitDecl>...
Matches the top declaration context.
 
 Given
@@ -505,7 +505,7 @@ decl(hasDeclContext(translationUnitDecl()))
 
-Matcher<Decl>typeAliasDeclMatcher<TypeAliasDecl>... +Matcher<Decl>typeAliasDeclMatcher<TypeAliasDecl>...
Matches type alias declarations.
 
 Given
@@ -516,7 +516,7 @@ typeAliasDecl()
 
-Matcher<Decl>typeAliasTemplateDeclMatcher<TypeAliasTemplateDecl>... +Matcher<Decl>typeAliasTemplateDeclMatcher<TypeAliasTemplateDecl>...
Matches type alias template declarations.
 
 typeAliasTemplateDecl() matches
@@ -525,7 +525,7 @@ typeAliasTemplateDecl() matches
 
-Matcher<Decl>typedefDeclMatcher<TypedefDecl>... +Matcher<Decl>typedefDeclMatcher<TypedefDecl>...
Matches typedef declarations.
 
 Given
@@ -536,7 +536,7 @@ typedefDecl()
 
-Matcher<Decl>typedefNameDeclMatcher<TypedefNameDecl>... +Matcher<Decl>typedefNameDeclMatcher<TypedefNameDecl>...
Matches typedef name declarations.
 
 Given
@@ -547,7 +547,7 @@ typedefNameDecl()
 
-Matcher<Decl>unresolvedUsingTypenameDeclMatcher<UnresolvedUsingTypenameDecl>... +Matcher<Decl>unresolvedUsingTypenameDeclMatcher<UnresolvedUsingTypenameDecl>...
Matches unresolved using value declarations that involve the
 typename.
 
@@ -563,7 +563,7 @@ unresolvedUsingTypenameDecl()
   matches using Base<T>::Foo 
-Matcher<Decl>unresolvedUsingValueDeclMatcher<UnresolvedUsingValueDecl>... +Matcher<Decl>unresolvedUsingValueDeclMatcher<UnresolvedUsingValueDecl>...
Matches unresolved using value declarations.
 
 Given
@@ -575,7 +575,7 @@ unresolvedUsingValueDecl()
   matches using X::x 
-Matcher<Decl>usingDeclMatcher<UsingDecl>... +Matcher<Decl>usingDeclMatcher<UsingDecl>...
Matches using declarations.
 
 Given
@@ -585,7 +585,7 @@ usingDecl()
   matches using X::x 
-Matcher<Decl>usingDirectiveDeclMatcher<UsingDirectiveDecl>... +Matcher<Decl>usingDirectiveDeclMatcher<UsingDirectiveDecl>...
Matches using namespace declarations.
 
 Given
@@ -595,7 +595,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
@@ -604,7 +604,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
@@ -615,12 +615,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
@@ -635,12 +635,12 @@ nestedNameSpecifier()
 
-Matcher<QualType>qualTypeMatcher<QualType>... +Matcher<QualType>qualTypeMatcher<QualType>...
Matches QualTypes in the clang AST.
 
-Matcher<Stmt>addrLabelExprMatcher<AddrLabelExpr>... +Matcher<Stmt>addrLabelExprMatcher<AddrLabelExpr>...
Matches address of label statements (GNU extension).
 
 Given
@@ -652,7 +652,7 @@ addrLabelExpr()
 
-Matcher<Stmt>arraySubscriptExprMatcher<ArraySubscriptExpr>... +Matcher<Stmt>arraySubscriptExprMatcher<ArraySubscriptExpr>...
Matches array subscript expressions.
 
 Given
@@ -662,7 +662,7 @@ arraySubscriptExpr()
 
-Matcher<Stmt>asmStmtMatcher<AsmStmt>... +Matcher<Stmt>asmStmtMatcher<AsmStmt>...
Matches asm statements.
 
  int i = 100;
@@ -672,14 +672,14 @@ asmStmt()
 
-Matcher<Stmt>atomicExprMatcher<AtomicExpr>... +Matcher<Stmt>atomicExprMatcher<AtomicExpr>...
Matches atomic builtins.
 Example matches __atomic_load_n(ptr, 1)
   void foo() { int *ptr; __atomic_load_n(ptr, 1); }
 
-Matcher<Stmt>autoreleasePoolStmtMatcher<ObjCAutoreleasePoolStmt>... +Matcher<Stmt>autoreleasePoolStmtMatcher<ObjCAutoreleasePoolStmt>...
Matches an Objective-C autorelease pool statement.
 
 Given
@@ -691,7 +691,7 @@ inside the autorelease pool.
 
-Matcher<Stmt>binaryConditionalOperatorMatcher<BinaryConditionalOperator>... +Matcher<Stmt>binaryConditionalOperatorMatcher<BinaryConditionalOperator>...
Matches binary conditional operator expressions (GNU extension).
 
 Example matches a ?: b
@@ -699,7 +699,7 @@ Example matches a ?: b
 
-Matcher<Stmt>binaryOperatorMatcher<BinaryOperator>... +Matcher<Stmt>binaryOperatorMatcher<BinaryOperator>...
Matches binary operator expressions.
 
 Example matches a || b
@@ -707,7 +707,7 @@ Example matches a || b
 
-Matcher<Stmt>breakStmtMatcher<BreakStmt>... +Matcher<Stmt>breakStmtMatcher<BreakStmt>...
Matches break statements.
 
 Given
@@ -717,7 +717,7 @@ breakStmt()
 
-Matcher<Stmt>cStyleCastExprMatcher<CStyleCastExpr>... +Matcher<Stmt>cStyleCastExprMatcher<CStyleCastExpr>...
Matches a C-style cast expression.
 
 Example: Matches (int) 2.2f in
@@ -725,7 +725,7 @@ Example: Matches (int) 2.2f in
 
-Matcher<Stmt>callExprMatcher<CallExpr>... +Matcher<Stmt>callExprMatcher<CallExpr>...
Matches call expressions.
 
 Example matches x.y() and y()
@@ -735,7 +735,7 @@ Example matches x.y() and y()
 
-Matcher<Stmt>caseStmtMatcher<CaseStmt>... +Matcher<Stmt>caseStmtMatcher<CaseStmt>...
Matches case statements inside switch statements.
 
 Given
@@ -745,7 +745,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:
@@ -758,7 +758,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),
@@ -770,7 +770,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)
@@ -779,7 +779,7 @@ Example match: {1}, (1, 2)
 
-Matcher<Stmt>compoundStmtMatcher<CompoundStmt>... +Matcher<Stmt>compoundStmtMatcher<CompoundStmt>...
Matches compound statements.
 
 Example matches '{}' and '{{}}' in 'for (;;) {{}}'
@@ -787,7 +787,7 @@ Example matches '{}' and '{{}}' in 'for (;;) {{}}'
 
-Matcher<Stmt>conditionalOperatorMatcher<ConditionalOperator>... +Matcher<Stmt>conditionalOperatorMatcher<ConditionalOperator>...
Matches conditional operator expressions.
 
 Example matches a ? b : c
@@ -795,7 +795,7 @@ Example matches a ? b : c
 
-Matcher<Stmt>continueStmtMatcher<ContinueStmt>... +Matcher<Stmt>continueStmtMatcher<ContinueStmt>...
Matches continue statements.
 
 Given
@@ -805,7 +805,7 @@ continueStmt()
 
-Matcher<Stmt>cudaKernelCallExprMatcher<CUDAKernelCallExpr>... +Matcher<Stmt>cudaKernelCallExprMatcher<CUDAKernelCallExpr>...
Matches CUDA kernel call expression.
 
 Example matches,
@@ -813,7 +813,7 @@ Example matches,
 
-Matcher<Stmt>cxxBindTemporaryExprMatcher<CXXBindTemporaryExpr>... +Matcher<Stmt>cxxBindTemporaryExprMatcher<CXXBindTemporaryExpr>...
Matches nodes where temporaries are created.
 
 Example matches FunctionTakesString(GetStringByValue())
@@ -823,7 +823,7 @@ Example matches FunctionTakesString(GetStringByValue())
 
-Matcher<Stmt>cxxBoolLiteralMatcher<CXXBoolLiteralExpr>... +Matcher<Stmt>cxxBoolLiteralMatcher<CXXBoolLiteralExpr>...
Matches bool literals.
 
 Example matches true
@@ -831,7 +831,7 @@ Example matches true
 
-Matcher<Stmt>cxxCatchStmtMatcher<CXXCatchStmt>... +Matcher<Stmt>cxxCatchStmtMatcher<CXXCatchStmt>...
Matches catch statements.
 
   try {} catch(int i) {}
@@ -840,7 +840,7 @@ cxxCatchStmt()
 
-Matcher<Stmt>cxxConstCastExprMatcher<CXXConstCastExpr>... +Matcher<Stmt>cxxConstCastExprMatcher<CXXConstCastExpr>...
Matches a const_cast expression.
 
 Example: Matches const_cast<int*>(&r) in
@@ -850,7 +850,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
@@ -862,7 +862,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
@@ -873,7 +873,7 @@ Example matches the CXXDefaultArgExpr placeholder inserted for the
 
-Matcher<Stmt>cxxDeleteExprMatcher<CXXDeleteExpr>... +Matcher<Stmt>cxxDeleteExprMatcher<CXXDeleteExpr>...
Matches delete expressions.
 
 Given
@@ -883,7 +883,7 @@ cxxDeleteExpr()
 
-Matcher<Stmt>cxxDependentScopeMemberExprMatcher<CXXDependentScopeMemberExpr>... +Matcher<Stmt>cxxDependentScopeMemberExprMatcher<CXXDependentScopeMemberExpr>...
Matches member expressions where the actual member referenced could not be
 resolved because the base expression or the member name was dependent.
 
@@ -894,7 +894,7 @@ cxxDependentScopeMemberExpr()
 
-Matcher<Stmt>cxxDynamicCastExprMatcher<CXXDynamicCastExpr>... +Matcher<Stmt>cxxDynamicCastExprMatcher<CXXDynamicCastExpr>...
Matches a dynamic_cast expression.
 
 Example:
@@ -908,7 +908,7 @@ in
 
-Matcher<Stmt>cxxForRangeStmtMatcher<CXXForRangeStmt>... +Matcher<Stmt>cxxForRangeStmtMatcher<CXXForRangeStmt>...
Matches range-based for statements.
 
 cxxForRangeStmt() matches 'for (auto a : i)'
@@ -917,7 +917,7 @@ cxxForRangeStmt() matches 'for (auto a : i)'
 
-Matcher<Stmt>cxxFunctionalCastExprMatcher<CXXFunctionalCastExpr>... +Matcher<Stmt>cxxFunctionalCastExprMatcher<CXXFunctionalCastExpr>...
Matches functional cast expressions
 
 Example: Matches Foo(bar);
@@ -927,7 +927,7 @@ Example: Matches Foo(bar);
 
-Matcher<Stmt>cxxMemberCallExprMatcher<CXXMemberCallExpr>... +Matcher<Stmt>cxxMemberCallExprMatcher<CXXMemberCallExpr>...
Matches member call expressions.
 
 Example matches x.y()
@@ -936,7 +936,7 @@ Example matches x.y()
 
-Matcher<Stmt>cxxNewExprMatcher<CXXNewExpr>... +Matcher<Stmt>cxxNewExprMatcher<CXXNewExpr>...
Matches new expressions.
 
 Given
@@ -946,12 +946,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
@@ -967,7 +967,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
@@ -979,7 +979,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
@@ -994,7 +994,7 @@ in
 
-Matcher<Stmt>cxxStdInitializerListExprMatcher<CXXStdInitializerListExpr>... +Matcher<Stmt>cxxStdInitializerListExprMatcher<CXXStdInitializerListExpr>...
Matches C++ initializer list expressions.
 
 Given
@@ -1007,7 +1007,7 @@ cxxStdInitializerListExpr()
 
-Matcher<Stmt>cxxTemporaryObjectExprMatcher<CXXTemporaryObjectExpr>... +Matcher<Stmt>cxxTemporaryObjectExprMatcher<CXXTemporaryObjectExpr>...
Matches functional cast expressions having N != 1 arguments
 
 Example: Matches Foo(bar, bar)
@@ -1015,7 +1015,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".
@@ -1027,7 +1027,7 @@ struct foo {
 
-Matcher<Stmt>cxxThrowExprMatcher<CXXThrowExpr>... +Matcher<Stmt>cxxThrowExprMatcher<CXXThrowExpr>...
Matches throw expressions.
 
   try { throw 5; } catch(int i) {}
@@ -1036,7 +1036,7 @@ cxxThrowExpr()
 
-Matcher<Stmt>cxxTryStmtMatcher<CXXTryStmt>... +Matcher<Stmt>cxxTryStmtMatcher<CXXTryStmt>...
Matches try statements.
 
   try {} catch(int i) {}
@@ -1045,7 +1045,7 @@ cxxTryStmt()
 
-Matcher<Stmt>cxxUnresolvedConstructExprMatcher<CXXUnresolvedConstructExpr>... +Matcher<Stmt>cxxUnresolvedConstructExprMatcher<CXXUnresolvedConstructExpr>...
Matches unresolved constructor call expressions.
 
 Example matches T(t) in return statement of f
@@ -1055,7 +1055,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)
@@ -1064,7 +1064,7 @@ Example matches x in if (x)
 
-Matcher<Stmt>declStmtMatcher<DeclStmt>... +Matcher<Stmt>declStmtMatcher<DeclStmt>...
Matches declaration statements.
 
 Given
@@ -1074,7 +1074,7 @@ declStmt()
 
-Matcher<Stmt>defaultStmtMatcher<DefaultStmt>... +Matcher<Stmt>defaultStmtMatcher<DefaultStmt>...
Matches default statements inside switch statements.
 
 Given
@@ -1084,7 +1084,7 @@ defaultStmt()
 
-Matcher<Stmt>designatedInitExprMatcher<DesignatedInitExpr>... +Matcher<Stmt>designatedInitExprMatcher<DesignatedInitExpr>...
Matches C99 designated initializer expressions [C99 6.7.8].
 
 Example: Matches { [2].y = 1.0, [0].x = 1.0 }
@@ -1092,7 +1092,7 @@ Example: Matches { [2].y = 1.0, [0].x = 1.0 }
 
-Matcher<Stmt>doStmtMatcher<DoStmt>... +Matcher<Stmt>doStmtMatcher<DoStmt>...
Matches do statements.
 
 Given
@@ -1102,7 +1102,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
@@ -1123,7 +1123,7 @@ but does not match the implicit conversion in
 
-Matcher<Stmt>exprMatcher<Expr>... +Matcher<Stmt>exprMatcher<Expr>...
Matches expressions.
 
 Example matches x()
@@ -1131,7 +1131,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.
 
@@ -1140,7 +1140,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.
 
@@ -1149,7 +1149,7 @@ Does not match implicit conversions such as
 
-Matcher<Stmt>forStmtMatcher<ForStmt>... +Matcher<Stmt>forStmtMatcher<ForStmt>...
Matches for statements.
 
 Example matches 'for (;;) {}'
@@ -1158,12 +1158,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
@@ -1174,7 +1174,7 @@ gotoStmt()
 
-Matcher<Stmt>ifStmtMatcher<IfStmt>... +Matcher<Stmt>ifStmtMatcher<IfStmt>...
Matches if statements.
 
 Example matches 'if (x) {}'
@@ -1182,13 +1182,13 @@ Example matches 'if (x) {}'
 
-Matcher<Stmt>imaginaryLiteralMatcher<ImaginaryLiteral>... +Matcher<Stmt>imaginaryLiteralMatcher<ImaginaryLiteral>...
Matches imaginary literals, which are based on integer and floating
 point literals e.g.: 1i, 1.0i
 
-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
@@ -1196,7 +1196,7 @@ eliding, as well as any type conversions.
 
-Matcher<Stmt>implicitValueInitExprMatcher<ImplicitValueInitExpr>... +Matcher<Stmt>implicitValueInitExprMatcher<ImplicitValueInitExpr>...
Matches implicit initializers of init list expressions.
 
 Given
@@ -1206,7 +1206,7 @@ implicitValueInitExpr()
 
-Matcher<Stmt>initListExprMatcher<InitListExpr>... +Matcher<Stmt>initListExprMatcher<InitListExpr>...
Matches init list expressions.
 
 Given
@@ -1218,7 +1218,7 @@ initListExpr()
 
-Matcher<Stmt>integerLiteralMatcher<IntegerLiteral>... +Matcher<Stmt>integerLiteralMatcher<IntegerLiteral>...
Matches integer literals of all sizes encodings, e.g.
 1, 1L, 0x1 and 1U.
 
@@ -1226,7 +1226,7 @@ Does not match character-encoded integers such as L'a'.
 
-Matcher<Stmt>labelStmtMatcher<LabelStmt>... +Matcher<Stmt>labelStmtMatcher<LabelStmt>...
Matches label statements.
 
 Given
@@ -1237,7 +1237,7 @@ labelStmt()
 
-Matcher<Stmt>lambdaExprMatcher<LambdaExpr>... +Matcher<Stmt>lambdaExprMatcher<LambdaExpr>...
Matches lambda expressions.
 
 Example matches [&](){return 5;}
@@ -1245,7 +1245,7 @@ Example matches [&](){return 5;}
 
-Matcher<Stmt>materializeTemporaryExprMatcher<MaterializeTemporaryExpr>... +Matcher<Stmt>materializeTemporaryExprMatcher<MaterializeTemporaryExpr>...
Matches nodes where temporaries are materialized.
 
 Example: Given
@@ -1261,7 +1261,7 @@ but does not match
 
-Matcher<Stmt>memberExprMatcher<MemberExpr>... +Matcher<Stmt>memberExprMatcher<MemberExpr>...
Matches member expressions.
 
 Given
@@ -1274,7 +1274,7 @@ memberExpr()
 
-Matcher<Stmt>nullStmtMatcher<NullStmt>... +Matcher<Stmt>nullStmtMatcher<NullStmt>...
Matches null statements.
 
   foo();;
@@ -1283,7 +1283,7 @@ nullStmt()
 
-Matcher<Stmt>objcCatchStmtMatcher<ObjCAtCatchStmt>... +Matcher<Stmt>objcCatchStmtMatcher<ObjCAtCatchStmt>...
Matches Objective-C @catch statements.
 
 Example matches @catch
@@ -1292,7 +1292,7 @@ Example matches @catch
 
-Matcher<Stmt>objcFinallyStmtMatcher<ObjCAtFinallyStmt>... +Matcher<Stmt>objcFinallyStmtMatcher<ObjCAtFinallyStmt>...
Matches Objective-C @finally statements.
 
 Example matches @finally
@@ -1301,7 +1301,7 @@ Example matches @finally
 
-Matcher<Stmt>objcIvarRefExprMatcher<ObjCIvarRefExpr>... +Matcher<Stmt>objcIvarRefExprMatcher<ObjCIvarRefExpr>...
Matches a reference to an ObjCIvar.
 
 Example: matches "a" in "init" method:
@@ -1314,7 +1314,7 @@ Example: matches "a" in "init" method:
 
-Matcher<Stmt>objcMessageExprMatcher<ObjCMessageExpr>... +Matcher<Stmt>objcMessageExprMatcher<ObjCMessageExpr>...
Matches ObjectiveC Message invocation expressions.
 
 The innermost message send invokes the "alloc" class method on the
@@ -1325,14 +1325,14 @@ NSString's "alloc". This matcher should match both message sends.
 
-Matcher<Stmt>objcThrowStmtMatcher<ObjCAtThrowStmt>... +Matcher<Stmt>objcThrowStmtMatcher<ObjCAtThrowStmt>...
Matches Objective-C statements.
 
 Example matches @throw obj;
 
-Matcher<Stmt>objcTryStmtMatcher<ObjCAtTryStmt>... +Matcher<Stmt>objcTryStmtMatcher<ObjCAtTryStmt>...
Matches Objective-C @try statements.
 
 Example matches @try
@@ -1341,7 +1341,7 @@ Example matches @try
 
-Matcher<Stmt>opaqueValueExprMatcher<OpaqueValueExpr>... +Matcher<Stmt>opaqueValueExprMatcher<OpaqueValueExpr>...
Matches opaque value expressions. They are used as helpers
 to reference another expressions and can be met
 in BinaryConditionalOperators, for example.
@@ -1351,7 +1351,7 @@ Example matches 'a'
 
-Matcher<Stmt>parenExprMatcher<ParenExpr>... +Matcher<Stmt>parenExprMatcher<ParenExpr>...
Matches parentheses used in expressions.
 
 Example matches (foo() + 1)
@@ -1360,7 +1360,7 @@ Example matches (foo() + 1)
 
-Matcher<Stmt>parenListExprMatcher<ParenListExpr>... +Matcher<Stmt>parenListExprMatcher<ParenListExpr>...
Matches paren list expressions.
 ParenListExprs don't have a predefined type and are used for late parsing.
 In the final AST, they can be met in template declarations.
@@ -1377,7 +1377,7 @@ has a predefined type and is a ParenExpr, not a ParenListExpr.
 
-Matcher<Stmt>predefinedExprMatcher<PredefinedExpr>... +Matcher<Stmt>predefinedExprMatcher<PredefinedExpr>...
Matches predefined identifier expressions [C99 6.4.2.2].
 
 Example: Matches __func__
@@ -1385,7 +1385,7 @@ Example: Matches __func__
 
-Matcher<Stmt>returnStmtMatcher<ReturnStmt>... +Matcher<Stmt>returnStmtMatcher<ReturnStmt>...
Matches return statements.
 
 Given
@@ -1395,7 +1395,7 @@ returnStmt()
 
-Matcher<Stmt>stmtMatcher<Stmt>... +Matcher<Stmt>stmtMatcher<Stmt>...
Matches statements.
 
 Given
@@ -1405,7 +1405,7 @@ stmt()
 
-Matcher<Stmt>stmtExprMatcher<StmtExpr>... +Matcher<Stmt>stmtExprMatcher<StmtExpr>...
Matches statement expression (GNU extension).
 
 Example match: ({ int X = 4; X; })
@@ -1413,7 +1413,7 @@ Example match: ({ int X = 4; X; })
 
-Matcher<Stmt>stringLiteralMatcher<StringLiteral>... +Matcher<Stmt>stringLiteralMatcher<StringLiteral>...
Matches string literals (also matches wide string literals).
 
 Example matches "abcd", L"abcd"
@@ -1422,7 +1422,7 @@ Example matches "abcd", L"abcd"
 
-Matcher<Stmt>substNonTypeTemplateParmExprMatcher<SubstNonTypeTemplateParmExpr>... +Matcher<Stmt>substNonTypeTemplateParmExprMatcher<SubstNonTypeTemplateParmExpr>...
Matches substitutions of non-type template parameters.
 
 Given
@@ -1434,7 +1434,7 @@ substNonTypeTemplateParmExpr()
 
-Matcher<Stmt>switchCaseMatcher<SwitchCase>... +Matcher<Stmt>switchCaseMatcher<SwitchCase>...
Matches case and default statements inside switch statements.
 
 Given
@@ -1444,7 +1444,7 @@ switchCase()
 
-Matcher<Stmt>switchStmtMatcher<SwitchStmt>... +Matcher<Stmt>switchStmtMatcher<SwitchStmt>...
Matches switch statements.
 
 Given
@@ -1454,7 +1454,7 @@ switchStmt()
 
-Matcher<Stmt>unaryExprOrTypeTraitExprMatcher<UnaryExprOrTypeTraitExpr>... +Matcher<Stmt>unaryExprOrTypeTraitExprMatcher<UnaryExprOrTypeTraitExpr>...
Matches sizeof (C99), alignof (C++11) and vec_step (OpenCL)
 
 Given
@@ -1465,7 +1465,7 @@ unaryExprOrTypeTraitExpr()
 
-Matcher<Stmt>unaryOperatorMatcher<UnaryOperator>... +Matcher<Stmt>unaryOperatorMatcher<UnaryOperator>...
Matches unary operator expressions.
 
 Example matches !a
@@ -1473,7 +1473,7 @@ Example matches !a
 
-Matcher<Stmt>unresolvedLookupExprMatcher<UnresolvedLookupExpr>... +Matcher<Stmt>unresolvedLookupExprMatcher<UnresolvedLookupExpr>...
Matches reference to a name that can be looked up during parsing
 but could not be resolved to a specific declaration.
 
@@ -1488,7 +1488,7 @@ unresolvedLookupExpr()
   matches foo<T>() 
-Matcher<Stmt>unresolvedMemberExprMatcher<UnresolvedMemberExpr>... +Matcher<Stmt>unresolvedMemberExprMatcher<UnresolvedMemberExpr>...
Matches unresolved member expressions.
 
 Given
@@ -1502,14 +1502,14 @@ unresolvedMemberExpr()
 
-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
@@ -1519,7 +1519,7 @@ whileStmt()
 
-Matcher<TemplateArgument>templateArgumentMatcher<TemplateArgument>... +Matcher<TemplateArgument>templateArgumentMatcher<TemplateArgument>...
Matches template arguments.
 
 Given
@@ -1530,7 +1530,7 @@ templateArgument()
 
-Matcher<TemplateName>templateNameMatcher<TemplateName>... +Matcher<TemplateName>templateNameMatcher<TemplateName>...
Matches template name.
 
 Given
@@ -1541,12 +1541,12 @@ templateName()
 
-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
@@ -1558,7 +1558,7 @@ arrayType()
 
-Matcher<Type>atomicTypeMatcher<AtomicType>... +Matcher<Type>atomicTypeMatcher<AtomicType>...
Matches atomic types.
 
 Given
@@ -1568,7 +1568,7 @@ atomicType()
 
-Matcher<Type>autoTypeMatcher<AutoType>... +Matcher<Type>autoTypeMatcher<AutoType>...
Matches types nodes representing C++11 auto types.
 
 Given:
@@ -1580,7 +1580,7 @@ autoType()
 
-Matcher<Type>blockPointerTypeMatcher<BlockPointerType>... +Matcher<Type>blockPointerTypeMatcher<BlockPointerType>...
Matches block pointer types, i.e. types syntactically represented as
 "void (^)(int)".
 
@@ -1588,7 +1588,7 @@ The pointee is always required to be a FunctionType.
 
-Matcher<Type>builtinTypeMatcher<BuiltinType>... +Matcher<Type>builtinTypeMatcher<BuiltinType>...
Matches builtin Types.
 
 Given
@@ -1602,7 +1602,7 @@ builtinType()
 
-Matcher<Type>complexTypeMatcher<ComplexType>... +Matcher<Type>complexTypeMatcher<ComplexType>...
Matches C99 complex types.
 
 Given
@@ -1612,7 +1612,7 @@ complexType()
 
-Matcher<Type>constantArrayTypeMatcher<ConstantArrayType>... +Matcher<Type>constantArrayTypeMatcher<ConstantArrayType>...
Matches C arrays with a specified constant size.
 
 Given
@@ -1626,7 +1626,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())))))
@@ -1638,7 +1638,7 @@ Example matches i[1].
 
-Matcher<Type>decltypeTypeMatcher<DecltypeType>... +Matcher<Type>decltypeTypeMatcher<DecltypeType>...
Matches types nodes representing C++11 decltype(<expr>) types.
 
 Given:
@@ -1650,7 +1650,7 @@ decltypeType()
 
-Matcher<Type>dependentSizedArrayTypeMatcher<DependentSizedArrayType>... +Matcher<Type>dependentSizedArrayTypeMatcher<DependentSizedArrayType>...
Matches C++ arrays whose size is a value-dependent expression.
 
 Given
@@ -1663,7 +1663,7 @@ dependentSizedArrayType
 
-Matcher<Type>elaboratedTypeMatcher<ElaboratedType>... +Matcher<Type>elaboratedTypeMatcher<ElaboratedType>...
Matches types specified with an elaborated type keyword or with a
 qualified name.
 
@@ -1683,7 +1683,7 @@ c and d.
 
-Matcher<Type>enumTypeMatcher<EnumType>... +Matcher<Type>enumTypeMatcher<EnumType>...
Matches enum types.
 
 Given
@@ -1698,7 +1698,7 @@ s.
 
-Matcher<Type>functionProtoTypeMatcher<FunctionProtoType>... +Matcher<Type>functionProtoTypeMatcher<FunctionProtoType>...
Matches FunctionProtoType nodes.
 
 Given
@@ -1710,7 +1710,7 @@ functionProtoType()
 
-Matcher<Type>functionTypeMatcher<FunctionType>... +Matcher<Type>functionTypeMatcher<FunctionType>...
Matches FunctionType nodes.
 
 Given
@@ -1721,7 +1721,7 @@ functionType()
 
-Matcher<Type>incompleteArrayTypeMatcher<IncompleteArrayType>... +Matcher<Type>incompleteArrayTypeMatcher<IncompleteArrayType>...
Matches C arrays with unspecified size.
 
 Given
@@ -1733,7 +1733,7 @@ incompleteArrayType()
 
-Matcher<Type>injectedClassNameTypeMatcher<InjectedClassNameType>... +Matcher<Type>injectedClassNameTypeMatcher<InjectedClassNameType>...
Matches injected class name types.
 
 Example matches S s, but not S<T> s.
@@ -1745,7 +1745,7 @@ Example matches S s, but not S<T> s.
 
-Matcher<Type>lValueReferenceTypeMatcher<LValueReferenceType>... +Matcher<Type>lValueReferenceTypeMatcher<LValueReferenceType>...
Matches lvalue reference types.
 
 Given:
@@ -1762,7 +1762,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; }
@@ -1772,7 +1772,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.
 
@@ -1787,7 +1787,7 @@ pointerType()
 
-Matcher<Type>parenTypeMatcher<ParenType>... +Matcher<Type>parenTypeMatcher<ParenType>...
Matches ParenType nodes.
 
 Given
@@ -1799,7 +1799,7 @@ array_of_ptrs.
 
-Matcher<Type>pointerTypeMatcher<PointerType>... +Matcher<Type>pointerTypeMatcher<PointerType>...
Matches pointer types, but does not match Objective-C object pointer
 types.
 
@@ -1816,7 +1816,7 @@ pointerType()
 
-Matcher<Type>rValueReferenceTypeMatcher<RValueReferenceType>... +Matcher<Type>rValueReferenceTypeMatcher<RValueReferenceType>...
Matches rvalue reference types.
 
 Given:
@@ -1833,7 +1833,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
@@ -1848,7 +1848,7 @@ and s.
 
-Matcher<Type>referenceTypeMatcher<ReferenceType>... +Matcher<Type>referenceTypeMatcher<ReferenceType>...
Matches both lvalue and rvalue reference types.
 
 Given
@@ -1864,7 +1864,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.
 
@@ -1878,7 +1878,7 @@ substTemplateTypeParmType() matches the type of 't' but not '1'
 
-Matcher<Type>tagTypeMatcher<TagType>... +Matcher<Type>tagTypeMatcher<TagType>...
Matches tag types (record and enum types).
 
 Given
@@ -1893,7 +1893,7 @@ and c.
 
-Matcher<Type>templateSpecializationTypeMatcher<TemplateSpecializationType>... +Matcher<Type>templateSpecializationTypeMatcher<TemplateSpecializationType>...
Matches template specialization types.
 
 Given
@@ -1908,7 +1908,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.
@@ -1917,12 +1917,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
@@ -1932,7 +1932,7 @@ typedefType()
 
-Matcher<Type>unaryTransformTypeMatcher<UnaryTransformType>... +Matcher<Type>unaryTransformTypeMatcher<UnaryTransformType>...
Matches types nodes representing unary type transformations.
 
 Given:
@@ -1942,7 +1942,7 @@ unaryTransformType()
 
-Matcher<Type>variableArrayTypeMatcher<VariableArrayType>... +Matcher<Type>variableArrayTypeMatcher<VariableArrayType>...
Matches C arrays with a specified size that is not an
 integer-constant-expression.
 
@@ -2014,7 +2014,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).
 
@@ -2023,7 +2023,7 @@ Example matches a || b (matcher = binaryOperator(hasOperatorName("||")))
 
-Matcher<BinaryOperator>isAssignmentOperator +Matcher<BinaryOperator>isAssignmentOperator
Matches all kinds of assignment operators.
 
 Example 1: matches a += b (matcher = binaryOperator(isAssignmentOperator()))
@@ -2037,11 +2037,11 @@ Example 2: matches s1 = s2
 
-Matcher<CXXBoolLiteralExpr>equalsbool Value +Matcher<CXXBoolLiteralExpr>equalsbool Value

 
 
-Matcher<CXXBoolLiteralExpr>equalsconst ValueT  Value
+Matcher<CXXBoolLiteralExpr>equalsconst ValueT  Value
 
Matches literals that are equal to the given value of type ValueT.
 
 Given
@@ -2062,20 +2062,20 @@ matcher to match the minus sign:
 unaryOperator(hasOperatorName("-"),
               hasUnaryOperand(integerLiteral(equals(13))))
 
-Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteralExpr>,
-           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
+Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteralExpr>,
+           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
 
-Matcher<CXXBoolLiteralExpr>equalsdouble Value +Matcher<CXXBoolLiteralExpr>equalsdouble Value

 
 
-Matcher<CXXBoolLiteralExpr>equalsunsigned Value
+Matcher<CXXBoolLiteralExpr>equalsunsigned Value
 

 
 
-Matcher<CXXCatchStmt>isCatchAll
+Matcher<CXXCatchStmt>isCatchAll
 
Matches a C++ catch statement that has a catch-all handler.
 
 Given
@@ -2091,7 +2091,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).
 
@@ -2101,12 +2101,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<CXXConstructExpr>requiresZeroInitialization +Matcher<CXXConstructExpr>requiresZeroInitialization
Matches a constructor call expression which requires
 zero initialization.
 
@@ -2120,7 +2120,7 @@ will match the implicit array filler for pt[1].
 
-Matcher<CXXConstructorDecl>isCopyConstructor +Matcher<CXXConstructorDecl>isCopyConstructor
Matches constructor declarations that are copy constructors.
 
 Given
@@ -2133,7 +2133,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
@@ -2146,7 +2146,7 @@ cxxConstructorDecl(isDefaultConstructor()) will match #1, but not #2 or #3.
 
-Matcher<CXXConstructorDecl>isDelegatingConstructor +Matcher<CXXConstructorDecl>isDelegatingConstructor
Matches constructors that delegate to another constructor.
 
 Given
@@ -2161,7 +2161,7 @@ cxxConstructorDecl(isDelegatingConstructor()) will match #3 and #4, but not
 
-Matcher<CXXConstructorDecl>isExplicit +Matcher<CXXConstructorDecl>isExplicit
Matches constructor and conversion declarations that are marked with
 the explicit keyword.
 
@@ -2177,7 +2177,7 @@ cxxConversionDecl(isExplicit()) will match #4, but not #3.
 
-Matcher<CXXConstructorDecl>isMoveConstructor +Matcher<CXXConstructorDecl>isMoveConstructor
Matches constructor declarations that are move constructors.
 
 Given
@@ -2190,7 +2190,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.
 
@@ -2206,7 +2206,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.
 
@@ -2224,7 +2224,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.
 
@@ -2242,7 +2242,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).
 
@@ -2257,7 +2257,7 @@ cxxConstructorDecl(hasAnyConstructorInitializer(isWritten()))
 
-Matcher<CXXDependentScopeMemberExpr>isArrow +Matcher<CXXDependentScopeMemberExpr>isArrow
Matches member expressions that are called with '->' as opposed
 to '.'.
 
@@ -2283,7 +2283,7 @@ unresolvedMemberExpr(isArrow())
 
-Matcher<CXXMethodDecl>isConst +Matcher<CXXMethodDecl>isConst
Matches if the given method declaration is const.
 
 Given
@@ -2296,7 +2296,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.
 
@@ -2311,7 +2311,7 @@ the second one.
 
-Matcher<CXXMethodDecl>isFinal +Matcher<CXXMethodDecl>isFinal
Matches if the given method or class declaration is final.
 
 Given:
@@ -2328,7 +2328,7 @@ 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.
 
@@ -2343,7 +2343,7 @@ the first one.
 
-Matcher<CXXMethodDecl>isOverride +Matcher<CXXMethodDecl>isOverride
Matches if the given method declaration overrides another method.
 
 Given
@@ -2359,7 +2359,7 @@ Given
 
-Matcher<CXXMethodDecl>isPure +Matcher<CXXMethodDecl>isPure
Matches if the given method declaration is pure.
 
 Given
@@ -2371,7 +2371,7 @@ Given
 
-Matcher<CXXMethodDecl>isUserProvided +Matcher<CXXMethodDecl>isUserProvided
Matches method declarations that are user-provided.
 
 Given
@@ -2384,7 +2384,7 @@ cxxConstructorDecl(isUserProvided()) will match #1, but not #2 or #3.
 
-Matcher<CXXMethodDecl>isVirtual +Matcher<CXXMethodDecl>isVirtual
Matches if the given method declaration is virtual.
 
 Given
@@ -2396,7 +2396,7 @@ Given
 
-Matcher<CXXMethodDecl>isVirtualAsWritten +Matcher<CXXMethodDecl>isVirtualAsWritten
Matches if the given method declaration has an explicit "virtual".
 
 Given
@@ -2412,7 +2412,7 @@ Given
 
-Matcher<CXXNewExpr>isArray +Matcher<CXXNewExpr>isArray
Matches array new expressions.
 
 Given:
@@ -2422,7 +2422,7 @@ cxxNewExpr(isArray())
 
-Matcher<CXXOperatorCallExpr>hasOverloadedOperatorNameStringRef Name +Matcher<CXXOperatorCallExpr>hasOverloadedOperatorNameStringRef Name
Matches overloaded operator names.
 
 Matches overloaded operator names specified in strings without the
@@ -2439,11 +2439,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<CXXOperatorCallExpr>isAssignmentOperator +Matcher<CXXOperatorCallExpr>isAssignmentOperator
Matches all kinds of assignment operators.
 
 Example 1: matches a += b (matcher = binaryOperator(isAssignmentOperator()))
@@ -2457,7 +2457,7 @@ Example 2: matches s1 = s2
 
-Matcher<CXXRecordDecl>hasDefinition +Matcher<CXXRecordDecl>hasDefinition
Matches a class declaration that is defined.
 
 Example matches x (matcher = cxxRecordDecl(hasDefinition()))
@@ -2466,12 +2466,12 @@ class y;
 
-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.
 
@@ -2481,11 +2481,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:
@@ -2502,7 +2502,7 @@ matches A and C::f, but not B, C, or B::f
 
-Matcher<CXXRecordDecl>isLambda +Matcher<CXXRecordDecl>isLambda
Matches the generated class of lambda expressions.
 
 Given:
@@ -2513,13 +2513,13 @@ decltype(x)
 
-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.
 
@@ -2538,11 +2538,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).
 
@@ -2552,7 +2552,7 @@ Example matches f(0, 0) (matcher = callExpr(argumentCountIs(2)))
 
-Matcher<CastExpr>hasCastKindCastKind Kind +Matcher<CastExpr>hasCastKindCastKind Kind
Matches casts that has a given cast kind.
 
 Example: matches the implicit cast around 0
@@ -2561,11 +2561,11 @@ Example: matches the implicit cast around 0
 
-Matcher<CharacterLiteral>equalsbool Value +Matcher<CharacterLiteral>equalsbool Value

 
 
-Matcher<CharacterLiteral>equalsconst ValueT  Value
+Matcher<CharacterLiteral>equalsconst ValueT  Value
 
Matches literals that are equal to the given value of type ValueT.
 
 Given
@@ -2586,20 +2586,20 @@ matcher to match the minus sign:
 unaryOperator(hasOperatorName("-"),
               hasUnaryOperand(integerLiteral(equals(13))))
 
-Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteralExpr>,
-           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
+Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteralExpr>,
+           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
 
-Matcher<CharacterLiteral>equalsdouble Value +Matcher<CharacterLiteral>equalsdouble Value

 
 
-Matcher<CharacterLiteral>equalsunsigned Value
+Matcher<CharacterLiteral>equalsunsigned Value
 

 
 
-Matcher<ClassTemplateSpecializationDecl>templateArgumentCountIsunsigned N
+Matcher<ClassTemplateSpecializationDecl>templateArgumentCountIsunsigned N
 
Matches if the number of template arguments equals N.
 
 Given
@@ -2610,7 +2610,7 @@ classTemplateSpecializationDecl(templateArgumentCountIs(1))
 
-Matcher<CompoundStmt>statementCountIsunsigned N +Matcher<CompoundStmt>statementCountIsunsigned N
Checks that a compound statement contains a specific number of
 child statements.
 
@@ -2622,7 +2622,7 @@ compoundStmt(statementCountIs(0)))
 
-Matcher<ConstantArrayType>hasSizeunsigned N +Matcher<ConstantArrayType>hasSizeunsigned N
Matches nodes that have the specified size.
 
 Given
@@ -2639,7 +2639,7 @@ stringLiteral(hasSize(4))
 
-Matcher<DeclStmt>declCountIsunsigned N +Matcher<DeclStmt>declCountIsunsigned N
Matches declaration statements that contain a specific number of
 declarations.
 
@@ -2652,7 +2652,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.
@@ -2675,14 +2675,14 @@ and reference to that variable declaration within a compound statement.
 
-Matcher<Decl>equalsNodeconst Decl* Other +Matcher<Decl>equalsNodeconst Decl* Other
Matches if a node equals another node.
 
 Decl has pointer identity in the AST.
 
-Matcher<Decl>hasAttrattr::Kind AttrKind +Matcher<Decl>hasAttrattr::Kind AttrKind
Matches declaration that has a given attribute.
 
 Given
@@ -2693,7 +2693,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.
 
@@ -2704,11 +2704,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
@@ -2718,11 +2718,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
@@ -2732,17 +2732,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
@@ -2756,7 +2756,7 @@ fieldDecl(isPrivate())
 
-Matcher<Decl>isProtected +Matcher<Decl>isProtected
Matches protected C++ declarations.
 
 Given
@@ -2770,7 +2770,7 @@ fieldDecl(isProtected())
 
-Matcher<Decl>isPublic +Matcher<Decl>isPublic
Matches public C++ declarations.
 
 Given
@@ -2784,7 +2784,7 @@ fieldDecl(isPublic())
 
-Matcher<DesignatedInitExpr>designatorCountIsunsigned N +Matcher<DesignatedInitExpr>designatorCountIsunsigned N
Matches designated initializer expressions that contain
 a specific number of designators.
 
@@ -2797,7 +2797,7 @@ designatorCountIs(2)
 
-Matcher<EnumDecl>isScoped +Matcher<EnumDecl>isScoped
Matches C++11 scoped enum declaration.
 
 Example matches Y (matcher = enumDecl(isScoped()))
@@ -2806,7 +2806,7 @@ enum class Y {};
 
-Matcher<Expr>isInstantiationDependent +Matcher<Expr>isInstantiationDependent
Matches expressions that are instantiation-dependent even if it is
 neither type- nor value-dependent.
 
@@ -2821,7 +2821,7 @@ expr(isInstantiationDependent()) matches sizeof(sizeof(T() + T())
 
-Matcher<Expr>isTypeDependent +Matcher<Expr>isTypeDependent
Matches expressions that are type-dependent because the template type
 is not yet instantiated.
 
@@ -2835,7 +2835,7 @@ expr(isTypeDependent()) matches x + y
 
-Matcher<Expr>isValueDependent +Matcher<Expr>isValueDependent
Matches expression that are value-dependent because they contain a
 non-type template parameter.
 
@@ -2846,7 +2846,7 @@ expr(isValueDependent()) matches return Size
 
-Matcher<FieldDecl>hasBitWidthunsigned Width +Matcher<FieldDecl>hasBitWidthunsigned Width
Matches non-static data members that are bit-fields of the specified
 bit width.
 
@@ -2861,7 +2861,7 @@ fieldDecl(hasBitWidth(2))
 
-Matcher<FieldDecl>isBitField +Matcher<FieldDecl>isBitField
Matches non-static data members that are bit-fields.
 
 Given
@@ -2874,7 +2874,7 @@ fieldDecl(isBitField())
 
-Matcher<FloatingLiteral>equalsconst ValueT Value +Matcher<FloatingLiteral>equalsconst ValueT Value
Matches literals that are equal to the given value of type ValueT.
 
 Given
@@ -2895,16 +2895,16 @@ matcher to match the minus sign:
 unaryOperator(hasOperatorName("-"),
               hasUnaryOperand(integerLiteral(equals(13))))
 
-Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteralExpr>,
-           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
+Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteralExpr>,
+           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
 
-Matcher<FloatingLiteral>equalsdouble Value +Matcher<FloatingLiteral>equalsdouble Value

 
 
-Matcher<FunctionDecl>hasDynamicExceptionSpec
+Matcher<FunctionDecl>hasDynamicExceptionSpec
 
Matches functions that have a dynamic exception specification.
 
 Given:
@@ -2921,7 +2921,7 @@ functionDecl(hasDynamicExceptionSpec()) and
 
-Matcher<FunctionDecl>hasOverloadedOperatorNameStringRef Name +Matcher<FunctionDecl>hasOverloadedOperatorNameStringRef Name
Matches overloaded operator names.
 
 Matches overloaded operator names specified in strings without the
@@ -2938,11 +2938,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>hasTrailingReturn +Matcher<FunctionDecl>hasTrailingReturn
Matches a function declared with a trailing return type.
 
 Example matches Y (matcher = functionDecl(hasTrailingReturn()))
@@ -2951,7 +2951,7 @@ auto Y() -> int {}
 
-Matcher<FunctionDecl>isConstexpr +Matcher<FunctionDecl>isConstexpr
Matches constexpr variable and function declarations,
        and if constexpr.
 
@@ -2968,7 +2968,7 @@ ifStmt(isConstexpr())
 
-Matcher<FunctionDecl>isDefaulted +Matcher<FunctionDecl>isDefaulted
Matches defaulted function declarations.
 
 Given:
@@ -2979,7 +2979,7 @@ functionDecl(isDefaulted())
 
-Matcher<FunctionDecl>isDefinition +Matcher<FunctionDecl>isDefinition
Matches if a declaration has a body attached.
 
 Example matches A, va, fa
@@ -2996,12 +2996,12 @@ Example matches A, va, fa
   - (void)ma {}
   @end
 
-Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>,
-  Matcher<ObjCMethodDecl>
+Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>,
+  Matcher<ObjCMethodDecl>
 
-Matcher<FunctionDecl>isDeleted +Matcher<FunctionDecl>isDeleted
Matches deleted function declarations.
 
 Given:
@@ -3012,7 +3012,7 @@ functionDecl(isDeleted())
 
-Matcher<FunctionDecl>isExplicitTemplateSpecialization +Matcher<FunctionDecl>isExplicitTemplateSpecialization
Matches explicit template specializations of function, class, or
 static member variable template instantiations.
 
@@ -3022,11 +3022,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 or variable declarations.
 
 Given:
@@ -3043,7 +3043,7 @@ varDecl(isExternC())
 
-Matcher<FunctionDecl>isInline +Matcher<FunctionDecl>isInline
Matches function and namespace declarations that are marked with
 the inline keyword.
 
@@ -3058,13 +3058,13 @@ namespaceDecl(isInline()) will match n::m.
 
-Matcher<FunctionDecl>isMain +Matcher<FunctionDecl>isMain
Determines whether the function is "main", which is the entry point
 into an executable program.
 
-Matcher<FunctionDecl>isNoReturn +Matcher<FunctionDecl>isNoReturn
Matches FunctionDecls that have a noreturn attribute.
 
 Given
@@ -3078,7 +3078,7 @@ functionDecl(isNoReturn())
 
-Matcher<FunctionDecl>isNoThrow +Matcher<FunctionDecl>isNoThrow
Matches functions that have a non-throwing exception specification.
 
 Given:
@@ -3092,7 +3092,7 @@ functionDecl(isNoThrow()) and functionProtoType(isNoThrow())
 
-Matcher<FunctionDecl>isStaticStorageClass +Matcher<FunctionDecl>isStaticStorageClass
Matches variablefunction declarations that have "static" storage
 class specifier ("static" keyword) written in the source.
 
@@ -3108,7 +3108,7 @@ varDecl(isStaticStorageClass())
 
-Matcher<FunctionDecl>isTemplateInstantiation +Matcher<FunctionDecl>isTemplateInstantiation
Matches template instantiations of function, class, or static
 member variable template instantiations.
 
@@ -3127,11 +3127,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
@@ -3143,7 +3143,7 @@ compiled in C mode.
 
-Matcher<FunctionDecl>parameterCountIsunsigned N +Matcher<FunctionDecl>parameterCountIsunsigned N
Matches FunctionDecls and FunctionProtoTypes that have a
 specific parameter count.
 
@@ -3162,7 +3162,7 @@ functionProtoType(parameterCountIs(3))
 
-Matcher<FunctionProtoType>hasDynamicExceptionSpec +Matcher<FunctionProtoType>hasDynamicExceptionSpec
Matches functions that have a dynamic exception specification.
 
 Given:
@@ -3179,7 +3179,7 @@ functionDecl(hasDynamicExceptionSpec()) and
 
-Matcher<FunctionProtoType>isNoThrow +Matcher<FunctionProtoType>isNoThrow
Matches functions that have a non-throwing exception specification.
 
 Given:
@@ -3193,7 +3193,7 @@ functionDecl(isNoThrow()) and functionProtoType(isNoThrow())
 
-Matcher<FunctionProtoType>parameterCountIsunsigned N +Matcher<FunctionProtoType>parameterCountIsunsigned N
Matches FunctionDecls and FunctionProtoTypes that have a
 specific parameter count.
 
@@ -3212,7 +3212,7 @@ functionProtoType(parameterCountIs(3))
 
-Matcher<IfStmt>isConstexpr +Matcher<IfStmt>isConstexpr
Matches constexpr variable and function declarations,
        and if constexpr.
 
@@ -3229,11 +3229,11 @@ ifStmt(isConstexpr())
 
-Matcher<IntegerLiteral>equalsbool Value +Matcher<IntegerLiteral>equalsbool Value

 
 
-Matcher<IntegerLiteral>equalsconst ValueT  Value
+Matcher<IntegerLiteral>equalsconst ValueT  Value
 
Matches literals that are equal to the given value of type ValueT.
 
 Given
@@ -3254,20 +3254,20 @@ matcher to match the minus sign:
 unaryOperator(hasOperatorName("-"),
               hasUnaryOperand(integerLiteral(equals(13))))
 
-Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteralExpr>,
-           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
+Usable as: Matcher<CharacterLiteral>, Matcher<CXXBoolLiteralExpr>,
+           Matcher<FloatingLiteral>, Matcher<IntegerLiteral>
 
-Matcher<IntegerLiteral>equalsdouble Value +Matcher<IntegerLiteral>equalsdouble Value

 
 
-Matcher<IntegerLiteral>equalsunsigned Value
+Matcher<IntegerLiteral>equalsunsigned Value
 

 
 
-Matcher<MemberExpr>isArrow
+Matcher<MemberExpr>isArrow
 
Matches member expressions that are called with '->' as opposed
 to '.'.
 
@@ -3293,7 +3293,7 @@ unresolvedMemberExpr(isArrow())
 
-Matcher<NamedDecl>hasExternalFormalLinkage +Matcher<NamedDecl>hasExternalFormalLinkage
Matches a declaration that has external formal linkage.
 
 Example matches only z (matcher = varDecl(hasExternalFormalLinkage()))
@@ -3313,7 +3313,7 @@ void f() {}
 
-Matcher<NamedDecl>hasNameconst std::string Name +Matcher<NamedDecl>hasNameconst std::string Name
Matches NamedDecl nodes that have the specified name.
 
 Supports specifying enclosing namespaces or classes by prefixing the name
@@ -3328,7 +3328,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.
 
@@ -3344,7 +3344,7 @@ Example matches X (regexp is one of "::X", "^foo::.*X", among others)
 
-Matcher<NamespaceDecl>isAnonymous +Matcher<NamespaceDecl>isAnonymous
Matches anonymous namespace declarations.
 
 Given
@@ -3355,7 +3355,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.
 
@@ -3370,7 +3370,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).
 
@@ -3380,7 +3380,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
@@ -3394,7 +3394,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
@@ -3402,7 +3402,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:"));
@@ -3412,7 +3412,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());
@@ -3422,7 +3422,7 @@ represent an error condition in the tree!
 
-Matcher<ObjCMessageExpr>isInstanceMessage +Matcher<ObjCMessageExpr>isInstanceMessage
Returns true when the Objective-C message is sent to an instance.
 
 Example
@@ -3435,7 +3435,7 @@ but not
 
-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
@@ -3444,7 +3444,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));
@@ -3457,7 +3457,7 @@ a substring matched by the given RegExp.
 
-Matcher<ObjCMethodDecl>isDefinition +Matcher<ObjCMethodDecl>isDefinition
Matches if a declaration has a body attached.
 
 Example matches A, va, fa
@@ -3474,12 +3474,12 @@ Example matches A, va, fa
   - (void)ma {}
   @end
 
-Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>,
-  Matcher<ObjCMethodDecl>
+Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>,
+  Matcher<ObjCMethodDecl>
 
-Matcher<ParmVarDecl>hasDefaultArgument +Matcher<ParmVarDecl>hasDefaultArgument
Matches a declaration that has default arguments.
 
 Example matches y (matcher = parmVarDecl(hasDefaultArgument()))
@@ -3488,7 +3488,7 @@ void y(int val = 0) {}
 
-Matcher<QualType>asStringstd::string Name +Matcher<QualType>asStringstd::string Name
Matches if the matched type is represented by the given string.
 
 Given
@@ -3499,7 +3499,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.
@@ -3522,7 +3522,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.
 
@@ -3537,7 +3537,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
@@ -3549,7 +3549,7 @@ matches "a(char)", "b(wchar_t)", but not "c(double)".
 
-Matcher<QualType>isAnyPointer +Matcher<QualType>isAnyPointer
Matches QualType nodes that are of any pointer type; this includes
 the Objective-C object pointer type, which is different despite being
 syntactically similar.
@@ -3567,7 +3567,7 @@ varDecl(hasType(isAnyPointer()))
 
-Matcher<QualType>isConstQualified +Matcher<QualType>isConstQualified
Matches QualType nodes that are const-qualified, i.e., that
 include "top-level" const.
 
@@ -3584,7 +3584,7 @@ functionDecl(hasAnyParameter(hasType(isConstQualified())))
 
-Matcher<QualType>isInteger +Matcher<QualType>isInteger
Matches QualType nodes that are of integer type.
 
 Given
@@ -3596,7 +3596,7 @@ matches "a(int)", "b(long)", but not "c(double)".
 
-Matcher<QualType>isSignedInteger +Matcher<QualType>isSignedInteger
Matches QualType nodes that are of signed integer type.
 
 Given
@@ -3608,7 +3608,7 @@ matches "a(int)", but not "b(unsigned long)" and "c(double)".
 
-Matcher<QualType>isUnsignedInteger +Matcher<QualType>isUnsignedInteger
Matches QualType nodes that are of unsigned integer type.
 
 Given
@@ -3620,7 +3620,7 @@ matches "b(unsigned long)", but not "a(int)" and "c(double)".
 
-Matcher<QualType>isVolatileQualified +Matcher<QualType>isVolatileQualified
Matches QualType nodes that are volatile-qualified, i.e., that
 include "top-level" volatile.
 
@@ -3637,7 +3637,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.
@@ -3647,7 +3647,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.
@@ -3657,7 +3657,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.
@@ -3667,7 +3667,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.
@@ -3690,14 +3690,14 @@ and reference to that variable declaration within a compound statement.
 
-Matcher<Stmt>equalsNodeconst Stmt* Other +Matcher<Stmt>equalsNodeconst Stmt* Other
Matches if a node equals another node.
 
 Stmt has pointer identity in the AST.
 
-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.
 
@@ -3708,11 +3708,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
@@ -3722,11 +3722,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
@@ -3736,11 +3736,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<StringLiteral>hasSizeunsigned N +Matcher<StringLiteral>hasSizeunsigned N
Matches nodes that have the specified size.
 
 Given
@@ -3757,7 +3757,7 @@ stringLiteral(hasSize(4))
 
-Matcher<TagDecl>isDefinition +Matcher<TagDecl>isDefinition
Matches if a declaration has a body attached.
 
 Example matches A, va, fa
@@ -3774,12 +3774,12 @@ Example matches A, va, fa
   - (void)ma {}
   @end
 
-Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>,
-  Matcher<ObjCMethodDecl>
+Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>,
+  Matcher<ObjCMethodDecl>
 
-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
@@ -3795,7 +3795,7 @@ classTemplateSpecializationDecl(
 
-Matcher<TemplateArgument>isIntegral +Matcher<TemplateArgument>isIntegral
Matches a TemplateArgument that is an integral value.
 
 Given
@@ -3808,7 +3808,7 @@ classTemplateSpecializationDecl(
 
-Matcher<TemplateSpecializationType>templateArgumentCountIsunsigned N +Matcher<TemplateSpecializationType>templateArgumentCountIsunsigned N
Matches if the number of template arguments equals N.
 
 Given
@@ -3819,7 +3819,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.
 
@@ -3830,11 +3830,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
@@ -3844,11 +3844,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
@@ -3858,11 +3858,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
@@ -3872,7 +3872,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.
@@ -3895,14 +3895,14 @@ and reference to that variable declaration within a compound statement.
 
-Matcher<Type>equalsNodeconst Type* Other +Matcher<Type>equalsNodeconst Type* Other
Matches if a node equals another node.
 
 Type has pointer identity in the AST.
 
-Matcher<Type>realFloatingPointType +Matcher<Type>realFloatingPointType
Matches any real floating-point type (float, double, long double).
 
 Given
@@ -3913,7 +3913,7 @@ realFloatingPointType()
 
-Matcher<Type>voidType +Matcher<Type>voidType
Matches type void.
 
 Given
@@ -3923,7 +3923,7 @@ functionDecl(returns(voidType()))
 
-Matcher<UnaryExprOrTypeTraitExpr>ofKindUnaryExprOrTypeTrait Kind +Matcher<UnaryExprOrTypeTraitExpr>ofKindUnaryExprOrTypeTrait Kind
Matches unary expressions of a certain kind.
 
 Given
@@ -3934,7 +3934,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).
 
@@ -3943,7 +3943,7 @@ Example matches a || b (matcher = binaryOperator(hasOperatorName("||")))
 
-Matcher<UnresolvedMemberExpr>isArrow +Matcher<UnresolvedMemberExpr>isArrow
Matches member expressions that are called with '->' as opposed
 to '.'.
 
@@ -3969,7 +3969,7 @@ unresolvedMemberExpr(isArrow())
 
-Matcher<VarDecl>hasAutomaticStorageDuration +Matcher<VarDecl>hasAutomaticStorageDuration
Matches a variable declaration that has automatic storage duration.
 
 Example matches x, but not y, z, or a.
@@ -3983,7 +3983,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())
@@ -3995,7 +3995,7 @@ int z;
 
-Matcher<VarDecl>hasLocalStorage +Matcher<VarDecl>hasLocalStorage
Matches a variable declaration that has function scope and is a
 non-static local variable.
 
@@ -4008,7 +4008,7 @@ int z;
 
-Matcher<VarDecl>hasStaticStorageDuration +Matcher<VarDecl>hasStaticStorageDuration
Matches a variable declaration that has static storage duration.
 It includes the variable declared at namespace scope and those declared
 with "static" and "extern" storage class specifiers.
@@ -4026,7 +4026,7 @@ varDecl(hasStaticStorageDuration())
 
-Matcher<VarDecl>hasThreadStorageDuration +Matcher<VarDecl>hasThreadStorageDuration
Matches a variable declaration that has thread storage duration.
 
 Example matches z, but not x, z, or a.
@@ -4040,7 +4040,7 @@ int a;
 
-Matcher<VarDecl>isConstexpr +Matcher<VarDecl>isConstexpr
Matches constexpr variable and function declarations,
        and if constexpr.
 
@@ -4057,7 +4057,7 @@ ifStmt(isConstexpr())
 
-Matcher<VarDecl>isDefinition +Matcher<VarDecl>isDefinition
Matches if a declaration has a body attached.
 
 Example matches A, va, fa
@@ -4074,12 +4074,12 @@ Example matches A, va, fa
   - (void)ma {}
   @end
 
-Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>,
-  Matcher<ObjCMethodDecl>
+Usable as: Matcher<TagDecl>, Matcher<VarDecl>, Matcher<FunctionDecl>,
+  Matcher<ObjCMethodDecl>
 
-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.
 
@@ -4092,7 +4092,7 @@ void f(int y) {
 
-Matcher<VarDecl>isExplicitTemplateSpecialization +Matcher<VarDecl>isExplicitTemplateSpecialization
Matches explicit template specializations of function, class, or
 static member variable template instantiations.
 
@@ -4102,11 +4102,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>isExternC +Matcher<VarDecl>isExternC
Matches extern "C" function or variable declarations.
 
 Given:
@@ -4123,7 +4123,7 @@ varDecl(isExternC())
 
-Matcher<VarDecl>isStaticLocal +Matcher<VarDecl>isStaticLocal
Matches a static variable with local scope.
 
 Example matches y (matcher = varDecl(isStaticLocal()))
@@ -4135,7 +4135,7 @@ static int z;
 
-Matcher<VarDecl>isStaticStorageClass +Matcher<VarDecl>isStaticStorageClass
Matches variablefunction declarations that have "static" storage
 class specifier ("static" keyword) written in the source.
 
@@ -4151,7 +4151,7 @@ varDecl(isStaticStorageClass())
 
-Matcher<VarDecl>isTemplateInstantiation +Matcher<VarDecl>isTemplateInstantiation
Matches template instantiations of function, class, or static
 member variable template instantiations.
 
@@ -4170,11 +4170,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.
 
@@ -4187,7 +4187,7 @@ functionDecl(isInstantiated())
 
-Matcher<internal::Matcher<Expr>>nullPointerConstant +Matcher<internal::Matcher<Expr>>nullPointerConstant
Matches expressions that resolve to a null pointer constant, such as
 GNU's __null, C++11's nullptr, or C's NULL macro.
 
@@ -4204,7 +4204,7 @@ expr(nullPointerConstant())
 
-Matcher<internal::Matcher<NamedDecl>>hasAnyNameStringRef, ..., StringRef +Matcher<internal::Matcher<NamedDecl>>hasAnyNameStringRef, ..., StringRef
Matches NamedDecl nodes that have any of the specified names.
 
 This matcher is only provided as a performance optimization of hasName.
@@ -4214,7 +4214,7 @@ This matcher is only provided as a performance optimization of hasName.
 
-Matcher<internal::Matcher<ObjCMessageExpr>>hasAnySelectorStringRef, ..., StringRef +Matcher<internal::Matcher<ObjCMessageExpr>>hasAnySelectorStringRef, ..., StringRef
Matches when at least one of the supplied string equals to the
 Selector.getAsString()
 
@@ -4225,7 +4225,7 @@ Selector.getAsString()
 
-Matcher<internal::Matcher<Stmt>>isInTemplateInstantiation +Matcher<internal::Matcher<Stmt>>isInTemplateInstantiation
Matches statements inside of a template instantiation.
 
 Given
@@ -4385,7 +4385,7 @@ Usable as: Any Matcher
 
-Matcher<AbstractConditionalOperator>hasConditionMatcher<Expr> InnerMatcher +Matcher<AbstractConditionalOperator>hasConditionMatcher<Expr> InnerMatcher
Matches the condition expression of an if statement, for loop,
 switch statement or conditional operator.
 
@@ -4394,7 +4394,7 @@ Example matches true (matcher = hasCondition(cxxBoolLiteral(equals(true))))
 
-Matcher<AbstractConditionalOperator>hasFalseExpressionMatcher<Expr> InnerMatcher +Matcher<AbstractConditionalOperator>hasFalseExpressionMatcher<Expr> InnerMatcher
Matches the false branch expression of a conditional operator
 (binary or ternary).
 
@@ -4404,7 +4404,7 @@ Example matches b
 
-Matcher<AbstractConditionalOperator>hasTrueExpressionMatcher<Expr> InnerMatcher +Matcher<AbstractConditionalOperator>hasTrueExpressionMatcher<Expr> InnerMatcher
Matches the true branch expression of a conditional operator.
 
 Example 1 (conditional ternary operator): matches a
@@ -4415,7 +4415,7 @@ Example 2 (conditional binary operator): matches opaqueValueExpr(condition)
 
-Matcher<AddrLabelExpr>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<AddrLabelExpr>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4439,17 +4439,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<ArraySubscriptExpr>hasBaseMatcher<Expr> InnerMatcher +Matcher<ArraySubscriptExpr>hasBaseMatcher<Expr> InnerMatcher
Matches the base expression of an array subscript expression.
 
 Given
@@ -4461,7 +4461,7 @@ arraySubscriptExpression(hasBase(implicitCastExpr(
 
-Matcher<ArraySubscriptExpr>hasIndexMatcher<Expr> InnerMatcher +Matcher<ArraySubscriptExpr>hasIndexMatcher<Expr> InnerMatcher
Matches the index expression of an array subscript expression.
 
 Given
@@ -4472,7 +4472,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()))
@@ -4480,7 +4480,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()))
@@ -4488,7 +4488,7 @@ Example matches b (matcher = binaryOperator(hasRHS()))
 
-Matcher<ArrayType>hasElementTypeMatcher<Type> +Matcher<ArrayType>hasElementTypeMatcher<Type>
Matches arrays and C99 complex types that have a specific element
 type.
 
@@ -4499,11 +4499,11 @@ Given
 arrayType(hasElementType(builtinType()))
   matches "int b[7]"
 
-Usable as: Matcher<ArrayType>, Matcher<ComplexType>
+Usable as: Matcher<ArrayType>, Matcher<ComplexType>
 
-Matcher<AtomicType>hasValueTypeMatcher<Type> +Matcher<AtomicType>hasValueTypeMatcher<Type>
Matches atomic types with a specific value type.
 
 Given
@@ -4512,11 +4512,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
@@ -4528,17 +4528,17 @@ Given
 autoType(hasDeducedType(isInteger()))
   matches "auto a"
 
-Usable as: Matcher<AutoType>
+Usable as: Matcher<AutoType>
 
-Matcher<BinaryOperator>hasEitherOperandconst Matcher<Expr> InnerMatcher +Matcher<BinaryOperator>hasEitherOperandconst Matcher<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()))
@@ -4546,7 +4546,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()))
@@ -4554,7 +4554,7 @@ Example matches b (matcher = binaryOperator(hasRHS()))
 
-Matcher<BlockDecl>hasAnyParameterMatcher<ParmVarDecl> InnerMatcher +Matcher<BlockDecl>hasAnyParameterMatcher<ParmVarDecl> InnerMatcher
Matches any parameter of a function or an ObjC method declaration or a
 block.
 
@@ -4583,7 +4583,7 @@ matching y.
 
-Matcher<BlockDecl>hasParameterunsigned N, Matcher<ParmVarDecl> InnerMatcher +Matcher<BlockDecl>hasParameterunsigned N, Matcher<ParmVarDecl> InnerMatcher
Matches the n'th parameter of a function or an ObjC method
 declaration or a block.
 
@@ -4603,7 +4603,7 @@ matching y.
 
-Matcher<BlockPointerType>pointeeMatcher<Type> +Matcher<BlockPointerType>pointeeMatcher<Type>
Narrows PointerType (and similar) matchers to those where the
 pointee matches a given matcher.
 
@@ -4614,12 +4614,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
@@ -4639,7 +4639,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, or an ObjC-message-send expression.
 
@@ -4658,7 +4658,7 @@ objcMessageExpr(hasAnyArgument(integerLiteral(equals(12))))
 
-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.
 
@@ -4668,7 +4668,7 @@ Example matches y in x(y)
 
-Matcher<CXXConstructExpr>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<CXXConstructExpr>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4692,17 +4692,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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
@@ -4714,7 +4714,7 @@ cxxConstructorDecl(forEachConstructorInitializer(
 
-Matcher<CXXConstructorDecl>hasAnyConstructorInitializerMatcher<CXXCtorInitializer> InnerMatcher +Matcher<CXXConstructorDecl>hasAnyConstructorInitializerMatcher<CXXCtorInitializer> InnerMatcher
Matches a constructor initializer.
 
 Given
@@ -4729,7 +4729,7 @@ cxxRecordDecl(has(cxxConstructorDecl(
 
-Matcher<CXXCtorInitializer>forFieldMatcher<FieldDecl> InnerMatcher +Matcher<CXXCtorInitializer>forFieldMatcher<FieldDecl> InnerMatcher
Matches the field declaration of a constructor initializer.
 
 Given
@@ -4744,7 +4744,7 @@ with forField matching foo_
 
-Matcher<CXXCtorInitializer>withInitializerMatcher<Expr> InnerMatcher +Matcher<CXXCtorInitializer>withInitializerMatcher<Expr> InnerMatcher
Matches the initializer expression of a constructor initializer.
 
 Given
@@ -4759,7 +4759,7 @@ with withInitializer matching (1)
 
-Matcher<CXXDependentScopeMemberExpr>hasObjectExpressionMatcher<Expr> InnerMatcher +Matcher<CXXDependentScopeMemberExpr>hasObjectExpressionMatcher<Expr> InnerMatcher
Matches a member expression where the object expression is
 matched by a given matcher.
 
@@ -4773,7 +4773,7 @@ with hasObjectExpression(...)
 
-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.
 
@@ -4786,7 +4786,7 @@ with compoundStmt()
 
-Matcher<CXXForRangeStmt>hasLoopVariableMatcher<VarDecl> InnerMatcher +Matcher<CXXForRangeStmt>hasLoopVariableMatcher<VarDecl> InnerMatcher
Matches the initialization statement of a for loop.
 
 Example:
@@ -4796,7 +4796,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:
@@ -4806,11 +4806,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()
@@ -4822,18 +4822,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>forEachOverriddenMatcher<CXXMethodDecl> InnerMatcher +Matcher<CXXMethodDecl>forEachOverriddenMatcher<CXXMethodDecl> InnerMatcher
Matches each method overridden by the given method. This matcher may
 produce multiple matches.
 
@@ -4857,7 +4857,7 @@ cxxMethodDecl(ofClass(hasName("C")),
 
-Matcher<CXXMethodDecl>ofClassMatcher<CXXRecordDecl> InnerMatcher +Matcher<CXXMethodDecl>ofClassMatcher<CXXRecordDecl> InnerMatcher
Matches the class declaration that the given method declaration
 belongs to.
 
@@ -4876,7 +4876,7 @@ Example matches A() in the last line
 
-Matcher<CXXNewExpr>hasArraySizeMatcher<Expr> InnerMatcher +Matcher<CXXNewExpr>hasArraySizeMatcher<Expr> InnerMatcher
Matches array new expressions with a given array size.
 
 Given:
@@ -4886,7 +4886,7 @@ cxxNewExpr(hasArraySize(intgerLiteral(equals(10))))
 
-Matcher<CXXNewExpr>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<CXXNewExpr>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -4910,17 +4910,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<CXXRecordDecl>hasMethodMatcher<CXXMethodDecl> InnerMatcher +Matcher<CXXRecordDecl>hasMethodMatcher<CXXMethodDecl> InnerMatcher
Matches the first method of a class or struct that satisfies InnerMatcher.
 
 Given:
@@ -4932,7 +4932,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.
 
@@ -4953,13 +4953,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<CXXUnresolvedConstructExpr>hasAnyArgumentMatcher<Expr> InnerMatcher +Matcher<CXXUnresolvedConstructExpr>hasAnyArgumentMatcher<Expr> InnerMatcher
Matches any argument of a call expression or a constructor call
 expression, or an ObjC-message-send expression.
 
@@ -4978,7 +4978,7 @@ objcMessageExpr(hasAnyArgument(integerLiteral(equals(12))))
 
-Matcher<CallExpr>calleeMatcher<Decl> InnerMatcher +Matcher<CallExpr>calleeMatcher<Decl> InnerMatcher
Matches if the call expression's callee's declaration matches the
 given matcher.
 
@@ -4989,7 +4989,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
@@ -5000,14 +5000,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
@@ -5027,7 +5027,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, or an ObjC-message-send expression.
 
@@ -5046,7 +5046,7 @@ objcMessageExpr(hasAnyArgument(integerLiteral(equals(12))))
 
-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.
 
@@ -5056,7 +5056,7 @@ Example matches y in x(y)
 
-Matcher<CallExpr>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<CallExpr>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -5080,17 +5080,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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.
 
@@ -5101,7 +5101,7 @@ caseStmt(hasCaseConstant(integerLiteral()))
 
-Matcher<CastExpr>hasSourceExpressionMatcher<Expr> InnerMatcher +Matcher<CastExpr>hasSourceExpressionMatcher<Expr> InnerMatcher
Matches if the cast's source expression
 or opaque value's source expression matches the given matcher.
 
@@ -5116,7 +5116,7 @@ int a = b ?: 1;
 
-Matcher<ClassTemplateSpecializationDecl>hasAnyTemplateArgumentMatcher<TemplateArgument> InnerMatcher +Matcher<ClassTemplateSpecializationDecl>hasAnyTemplateArgumentMatcher<TemplateArgument> InnerMatcher
Matches classTemplateSpecializations, templateSpecializationType and
 functionDecl that have at least one TemplateArgument matching the given
 InnerMatcher.
@@ -5138,7 +5138,7 @@ functionDecl(hasAnyTemplateArgument(refersToType(asString("int"))))
 
-Matcher<ClassTemplateSpecializationDecl>hasSpecializedTemplateMatcher<ClassTemplateDecl> InnerMatcher +Matcher<ClassTemplateSpecializationDecl>hasSpecializedTemplateMatcher<ClassTemplateDecl> InnerMatcher
Matches the specialized template of a specialization declaration.
 
 Given
@@ -5150,7 +5150,7 @@ classTemplateSpecializationDecl(hasSpecializedTemplate(classTemplateDecl()))
 
-Matcher<ClassTemplateSpecializationDecl>hasTemplateArgumentunsigned N, Matcher<TemplateArgument> InnerMatcher +Matcher<ClassTemplateSpecializationDecl>hasTemplateArgumentunsigned N, Matcher<TemplateArgument> InnerMatcher
Matches classTemplateSpecializations, templateSpecializationType and
 functionDecl where the n'th TemplateArgument matches the given InnerMatcher.
 
@@ -5170,7 +5170,7 @@ functionDecl(hasTemplateArgument(0, refersToType(asString("int"))))
 
-Matcher<ComplexType>hasElementTypeMatcher<Type> +Matcher<ComplexType>hasElementTypeMatcher<Type>
Matches arrays and C99 complex types that have a specific element
 type.
 
@@ -5181,11 +5181,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. Also matches StmtExprs that have CompoundStmt as children.
 
@@ -5198,12 +5198,12 @@ with compoundStmt()
 
-Matcher<DecayedType>hasDecayedTypeMatcher<QualType> InnerType +Matcher<DecayedType>hasDecayedTypeMatcher<QualType> InnerType
Matches the decayed type, whos decayed type matches InnerMatcher
 
-Matcher<DeclRefExpr>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<DeclRefExpr>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -5227,17 +5227,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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.
 
@@ -5253,7 +5253,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.
 
@@ -5264,7 +5264,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
@@ -5283,7 +5283,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
@@ -5294,7 +5294,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.
 
@@ -5305,7 +5305,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.
 
@@ -5321,7 +5321,7 @@ declaration of class D.
 
-Matcher<DecltypeType>hasUnderlyingTypeMatcher<Type> +Matcher<DecltypeType>hasUnderlyingTypeMatcher<Type>
Matches DecltypeType nodes to find out the underlying type.
 
 Given
@@ -5330,11 +5330,11 @@ Given
 decltypeType(hasUnderlyingType(isInteger()))
   matches the type of "a"
 
-Usable as: Matcher<DecltypeType>
+Usable as: Matcher<DecltypeType>
 
-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.
 
@@ -5347,7 +5347,7 @@ with compoundStmt()
 
-Matcher<DoStmt>hasConditionMatcher<Expr> InnerMatcher +Matcher<DoStmt>hasConditionMatcher<Expr> InnerMatcher
Matches the condition expression of an if statement, for loop,
 switch statement or conditional operator.
 
@@ -5356,7 +5356,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.
 
@@ -5373,7 +5373,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
@@ -5390,7 +5390,7 @@ declaration of d.
 
-Matcher<EnumType>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<EnumType>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -5414,17 +5414,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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
@@ -5432,7 +5432,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.
 
@@ -5449,11 +5449,11 @@ Example matches x (matcher = expr(hasType(cxxRecordDecl(hasName("X")))))
  void y(X &x) { x; X z; }
  class Y { friend class X; };
 
-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.
 
@@ -5468,7 +5468,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.
 
@@ -5491,7 +5491,7 @@ only match the declarations for b, c, and d.
 
-Matcher<Expr>ignoringImplicitMatcher<Expr> InnerMatcher +Matcher<Expr>ignoringImplicitMatcher<Expr> InnerMatcher
Matches expressions that match InnerMatcher after any implicit AST
 nodes are stripped off.
 
@@ -5510,7 +5510,7 @@ only match the declarations for b and c.
 
-Matcher<Expr>ignoringParenCastsMatcher<Expr> InnerMatcher +Matcher<Expr>ignoringParenCastsMatcher<Expr> InnerMatcher
Matches expressions that match InnerMatcher after parentheses and
 casts are stripped off.
 
@@ -5529,7 +5529,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.
 
@@ -5552,7 +5552,7 @@ would only match the declaration for a.
 
-Matcher<FieldDecl>hasInClassInitializerMatcher<Expr> InnerMatcher +Matcher<FieldDecl>hasInClassInitializerMatcher<Expr> InnerMatcher
Matches non-static data members that have an in-class initializer.
 
 Given
@@ -5568,7 +5568,7 @@ fieldDecl(hasInClassInitializer(anything()))
 
-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.
 
@@ -5581,7 +5581,7 @@ with compoundStmt()
 
-Matcher<ForStmt>hasConditionMatcher<Expr> InnerMatcher +Matcher<ForStmt>hasConditionMatcher<Expr> InnerMatcher
Matches the condition expression of an if statement, for loop,
 switch statement or conditional operator.
 
@@ -5590,7 +5590,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:
@@ -5600,7 +5600,7 @@ matches '++x' in
 
-Matcher<ForStmt>hasLoopInitMatcher<Stmt> InnerMatcher +Matcher<ForStmt>hasLoopInitMatcher<Stmt> InnerMatcher
Matches the initialization statement of a for loop.
 
 Example:
@@ -5610,7 +5610,7 @@ matches 'int x = 0' in
 
-Matcher<FriendDecl>hasTypeMatcher<Decl> InnerMatcher +Matcher<FriendDecl>hasTypeMatcher<Decl> InnerMatcher
Overloaded to match the declaration of the expression's or value
 declaration's type.
 
@@ -5627,11 +5627,11 @@ Example matches x (matcher = expr(hasType(cxxRecordDecl(hasName("X")))))
  void y(X &x) { x; X z; }
  class Y { friend class X; };
 
-Usable as: Matcher<Expr>, Matcher<ValueDecl>
+Usable as: Matcher<Expr>, Matcher<ValueDecl>
 
-Matcher<FriendDecl>hasTypeMatcher<QualType> InnerMatcher +Matcher<FriendDecl>hasTypeMatcher<QualType> InnerMatcher
Matches if the expression's or declaration's type matches a type
 matcher.
 
@@ -5646,7 +5646,7 @@ Example matches x (matcher = expr(hasType(cxxRecordDecl(hasName("X")))))
 
-Matcher<FunctionDecl>hasAnyParameterMatcher<ParmVarDecl> InnerMatcher +Matcher<FunctionDecl>hasAnyParameterMatcher<ParmVarDecl> InnerMatcher
Matches any parameter of a function or an ObjC method declaration or a
 block.
 
@@ -5675,7 +5675,7 @@ matching y.
 
-Matcher<FunctionDecl>hasAnyTemplateArgumentMatcher<TemplateArgument> InnerMatcher +Matcher<FunctionDecl>hasAnyTemplateArgumentMatcher<TemplateArgument> InnerMatcher
Matches classTemplateSpecializations, templateSpecializationType and
 functionDecl that have at least one TemplateArgument matching the given
 InnerMatcher.
@@ -5697,7 +5697,7 @@ functionDecl(hasAnyTemplateArgument(refersToType(asString("int"))))
 
-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.
 
@@ -5710,7 +5710,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 or an ObjC method
 declaration or a block.
 
@@ -5730,7 +5730,7 @@ matching y.
 
-Matcher<FunctionDecl>hasTemplateArgumentunsigned N, Matcher<TemplateArgument> InnerMatcher +Matcher<FunctionDecl>hasTemplateArgumentunsigned N, Matcher<TemplateArgument> InnerMatcher
Matches classTemplateSpecializations, templateSpecializationType and
 functionDecl where the n'th TemplateArgument matches the given InnerMatcher.
 
@@ -5750,7 +5750,7 @@ functionDecl(hasTemplateArgument(0, refersToType(asString("int"))))
 
-Matcher<FunctionDecl>returnsMatcher<QualType> InnerMatcher +Matcher<FunctionDecl>returnsMatcher<QualType> InnerMatcher
Matches the return type of a function declaration.
 
 Given:
@@ -5760,7 +5760,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,
 switch statement or conditional operator.
 
@@ -5769,7 +5769,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
@@ -5779,7 +5779,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
@@ -5788,7 +5788,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
@@ -5797,7 +5797,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.
 
@@ -5805,13 +5805,13 @@ FIXME: Unit test this matcher
 
-Matcher<InitListExpr>hasSyntacticFormMatcher<Expr> InnerMatcher +Matcher<InitListExpr>hasSyntacticFormMatcher<Expr> InnerMatcher
Matches the syntactic form of init list expressions
 (if expression have it).
 
-Matcher<InjectedClassNameType>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<InjectedClassNameType>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -5835,17 +5835,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<LabelStmt>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -5869,17 +5869,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<MemberExpr>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -5903,17 +5903,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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.
 
@@ -5927,7 +5927,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.
 
@@ -5941,7 +5941,7 @@ memberExpr(member(hasName("first")))
 
-Matcher<MemberPointerType>pointeeMatcher<Type> +Matcher<MemberPointerType>pointeeMatcher<Type>
Narrows PointerType (and similar) matchers to those where the
 pointee matches a given matcher.
 
@@ -5952,12 +5952,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<NamedDecl>hasUnderlyingDeclMatcher<NamedDecl> InnerMatcher +Matcher<NamedDecl>hasUnderlyingDeclMatcher<NamedDecl> InnerMatcher
Matches a NamedDecl whose underlying declaration matches the given
 matcher.
 
@@ -5970,7 +5970,7 @@ unresolvedLookupExpr(hasAnyDeclaration(
 
-Matcher<NestedNameSpecifierLoc>hasPrefixMatcher<NestedNameSpecifierLoc> InnerMatcher +Matcher<NestedNameSpecifierLoc>hasPrefixMatcher<NestedNameSpecifierLoc> InnerMatcher
Matches on the prefix of a NestedNameSpecifierLoc.
 
 Given
@@ -5981,7 +5981,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.
 
@@ -5994,7 +5994,7 @@ nestedNameSpecifierLoc(specifiesTypeLoc(loc(type(
 
-Matcher<NestedNameSpecifier>hasPrefixMatcher<NestedNameSpecifier> InnerMatcher +Matcher<NestedNameSpecifier>hasPrefixMatcher<NestedNameSpecifier> InnerMatcher
Matches on the prefix of a NestedNameSpecifier.
 
 Given
@@ -6005,7 +6005,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.
 
@@ -6017,7 +6017,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.
 
@@ -6031,7 +6031,7 @@ nestedNameSpecifier(specifiesType(
 
-Matcher<ObjCMessageExpr>hasAnyArgumentMatcher<Expr> InnerMatcher +Matcher<ObjCMessageExpr>hasAnyArgumentMatcher<Expr> InnerMatcher
Matches any argument of a call expression or a constructor call
 expression, or an ObjC-message-send expression.
 
@@ -6050,7 +6050,7 @@ objcMessageExpr(hasAnyArgument(integerLiteral(equals(12))))
 
-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.
 
@@ -6060,7 +6060,7 @@ Example matches y in x(y)
 
-Matcher<ObjCMessageExpr>hasReceiverMatcher<Expr> InnerMatcher +Matcher<ObjCMessageExpr>hasReceiverMatcher<Expr> InnerMatcher
Matches if the Objective-C message is sent to an instance,
 and the inner matcher matches on that instance.
 
@@ -6072,7 +6072,7 @@ objcMessageExpr(hasReceiver(declRefExpr(to(varDecl(hasName("x"))))))
 
-Matcher<ObjCMessageExpr>hasReceiverTypeMatcher<QualType> InnerMatcher +Matcher<ObjCMessageExpr>hasReceiverTypeMatcher<QualType> InnerMatcher
Matches on the receiver of an ObjectiveC Message expression.
 
 Example
@@ -6084,7 +6084,7 @@ matches the [webView ...] message invocation.
 
-Matcher<ObjCMethodDecl>hasAnyParameterMatcher<ParmVarDecl> InnerMatcher +Matcher<ObjCMethodDecl>hasAnyParameterMatcher<ParmVarDecl> InnerMatcher
Matches any parameter of a function or an ObjC method declaration or a
 block.
 
@@ -6113,7 +6113,7 @@ matching y.
 
-Matcher<ObjCMethodDecl>hasParameterunsigned N, Matcher<ParmVarDecl> InnerMatcher +Matcher<ObjCMethodDecl>hasParameterunsigned N, Matcher<ParmVarDecl> InnerMatcher
Matches the n'th parameter of a function or an ObjC method
 declaration or a block.
 
@@ -6133,7 +6133,7 @@ matching y.
 
-Matcher<OpaqueValueExpr>hasSourceExpressionMatcher<Expr> InnerMatcher +Matcher<OpaqueValueExpr>hasSourceExpressionMatcher<Expr> InnerMatcher
Matches if the cast's source expression
 or opaque value's source expression matches the given matcher.
 
@@ -6148,7 +6148,7 @@ int a = b ?: 1;
 
-Matcher<OverloadExpr>hasAnyDeclarationMatcher<Decl> InnerMatcher +Matcher<OverloadExpr>hasAnyDeclarationMatcher<Decl> InnerMatcher
Matches an OverloadExpr if any of the declarations in the set of
 overloads matches the given matcher.
 
@@ -6165,7 +6165,7 @@ unresolvedLookupExpr(hasAnyDeclaration(
 
-Matcher<ParenType>innerTypeMatcher<Type> +Matcher<ParenType>innerTypeMatcher<Type>
Matches ParenType nodes where the inner type is a specific type.
 
 Given
@@ -6175,11 +6175,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<PointerType>pointeeMatcher<Type> +Matcher<PointerType>pointeeMatcher<Type>
Narrows PointerType (and similar) matchers to those where the
 pointee matches a given matcher.
 
@@ -6190,12 +6190,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:
@@ -6208,7 +6208,7 @@ declaration of b but varDecl(hasType(qualType(hasCanonicalType(referenceType()))
 
-Matcher<QualType>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<QualType>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -6232,17 +6232,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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>ignoringParensMatcher<QualType> InnerMatcher +Matcher<QualType>ignoringParensMatcher<QualType> InnerMatcher
Matches types that match InnerMatcher after any parens are stripped.
 
 Given
@@ -6253,12 +6253,12 @@ would match the declaration for fp.
 
-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.
 
@@ -6270,12 +6270,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.
 
@@ -6290,7 +6290,7 @@ Example matches X &x and const X &y
 
-Matcher<RecordType>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<RecordType>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -6314,17 +6314,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<ReferenceType>pointeeMatcher<Type> +Matcher<ReferenceType>pointeeMatcher<Type>
Narrows PointerType (and similar) matchers to those where the
 pointee matches a given matcher.
 
@@ -6335,12 +6335,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<ReturnStmt>hasReturnValueMatcher<Expr> InnerMatcher +Matcher<ReturnStmt>hasReturnValueMatcher<Expr> InnerMatcher
Matches the return value expression of a return statement
 
 Given
@@ -6352,7 +6352,7 @@ with binaryOperator()
 
-Matcher<StmtExpr>hasAnySubstatementMatcher<Stmt> InnerMatcher +Matcher<StmtExpr>hasAnySubstatementMatcher<Stmt> InnerMatcher
Matches compound statements where at least one substatement matches
 a given matcher. Also matches StmtExprs that have CompoundStmt as children.
 
@@ -6365,13 +6365,13 @@ with compoundStmt()
 
-Matcher<Stmt>alignOfExprconst Matcher<UnaryExprOrTypeTraitExpr> InnerMatcher +Matcher<Stmt>alignOfExprconst Matcher<UnaryExprOrTypeTraitExpr> InnerMatcher
Same as unaryExprOrTypeTraitExpr, but only matching
 alignof.
 
-Matcher<Stmt>forFunctionMatcher<FunctionDecl> InnerMatcher +Matcher<Stmt>forFunctionMatcher<FunctionDecl> InnerMatcher
Matches declaration of the function the statement belongs to
 
 Given:
@@ -6385,13 +6385,13 @@ returnStmt(forFunction(hasName("operator=")))
 
-Matcher<Stmt>sizeOfExprconst Matcher<UnaryExprOrTypeTraitExpr> InnerMatcher +Matcher<Stmt>sizeOfExprconst Matcher<UnaryExprOrTypeTraitExpr> InnerMatcher
Same as unaryExprOrTypeTraitExpr, but only matching
 sizeof.
 
-Matcher<SubstTemplateTypeParmType>hasReplacementTypeMatcher<Type> +Matcher<SubstTemplateTypeParmType>hasReplacementTypeMatcher<Type>
Matches template type parameter substitutions that have a replacement
 type that matches the provided matcher.
 
@@ -6405,7 +6405,7 @@ substTemplateTypeParmType(hasReplacementType(type())) matches int
 
-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.
 
@@ -6418,7 +6418,7 @@ switchStmt(forEachSwitchCase(caseStmt().bind("c"))).bind("s")
 
-Matcher<SwitchStmt>hasConditionMatcher<Expr> InnerMatcher +Matcher<SwitchStmt>hasConditionMatcher<Expr> InnerMatcher
Matches the condition expression of an if statement, for loop,
 switch statement or conditional operator.
 
@@ -6427,7 +6427,7 @@ Example matches true (matcher = hasCondition(cxxBoolLiteral(equals(true))))
 
-Matcher<TagType>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<TagType>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -6451,17 +6451,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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
@@ -6475,7 +6475,7 @@ templateSpecializationType(hasAnyTemplateArgument(
 
-Matcher<TemplateArgument>refersToDeclarationMatcher<Decl> InnerMatcher +Matcher<TemplateArgument>refersToDeclarationMatcher<Decl> InnerMatcher
Matches a canonical TemplateArgument that refers to a certain
 declaration.
 
@@ -6490,7 +6490,7 @@ classTemplateSpecializationDecl(hasAnyTemplateArgument(
 
-Matcher<TemplateArgument>refersToIntegralTypeMatcher<QualType> InnerMatcher +Matcher<TemplateArgument>refersToIntegralTypeMatcher<QualType> InnerMatcher
Matches a TemplateArgument that referes to an integral type.
 
 Given
@@ -6502,7 +6502,7 @@ classTemplateSpecializationDecl(
 
-Matcher<TemplateArgument>refersToTemplateMatcher<TemplateName> InnerMatcher +Matcher<TemplateArgument>refersToTemplateMatcher<TemplateName> InnerMatcher
Matches a TemplateArgument that refers to a certain template.
 
 Given
@@ -6515,7 +6515,7 @@ classTemplateSpecializationDecl(hasAnyTemplateArgument(
 
-Matcher<TemplateArgument>refersToTypeMatcher<QualType> InnerMatcher +Matcher<TemplateArgument>refersToTypeMatcher<QualType> InnerMatcher
Matches a TemplateArgument that refers to a certain type.
 
 Given
@@ -6528,7 +6528,7 @@ classTemplateSpecializationDecl(hasAnyTemplateArgument(
 
-Matcher<TemplateSpecializationType>hasAnyTemplateArgumentMatcher<TemplateArgument> InnerMatcher +Matcher<TemplateSpecializationType>hasAnyTemplateArgumentMatcher<TemplateArgument> InnerMatcher
Matches classTemplateSpecializations, templateSpecializationType and
 functionDecl that have at least one TemplateArgument matching the given
 InnerMatcher.
@@ -6550,7 +6550,7 @@ functionDecl(hasAnyTemplateArgument(refersToType(asString("int"))))
 
-Matcher<TemplateSpecializationType>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<TemplateSpecializationType>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -6574,17 +6574,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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, templateSpecializationType and
 functionDecl where the n'th TemplateArgument matches the given InnerMatcher.
 
@@ -6604,7 +6604,7 @@ functionDecl(hasTemplateArgument(0, refersToType(asString("int"))))
 
-Matcher<TemplateTypeParmType>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<TemplateTypeParmType>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -6628,13 +6628,13 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, Matcher<DeclRefExpr>,
+  Matcher<EnumType>, Matcher<InjectedClassNameType>, Matcher<LabelStmt>,
+  Matcher<MemberExpr>, Matcher<QualType>, Matcher<RecordType>,
+  Matcher<TagType>, Matcher<TemplateSpecializationType>,
+  Matcher<TemplateTypeParmType>, Matcher<TypedefType>,
+  Matcher<UnresolvedUsingType>
 
@@ -6654,7 +6654,7 @@ Usable as: Any Matcher -Matcher<TypedefNameDecl>hasTypeMatcher<QualType> InnerMatcher +Matcher<TypedefNameDecl>hasTypeMatcher<QualType> InnerMatcher
Matches if the expression's or declaration's type matches a type
 matcher.
 
@@ -6669,7 +6669,7 @@ Example matches x (matcher = expr(hasType(cxxRecordDecl(hasName("X")))))
 
-Matcher<TypedefType>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<TypedefType>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -6693,17 +6693,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<Type>hasUnqualifiedDesugaredTypeMatcher<Type> InnerMatcher +Matcher<Type>hasUnqualifiedDesugaredTypeMatcher<Type> InnerMatcher
Matches if the matched type matches the unqualified desugared
 type of the matched node.
 
@@ -6715,7 +6715,7 @@ both B and A.
 
-Matcher<UnaryExprOrTypeTraitExpr>hasArgumentOfTypeMatcher<QualType> InnerMatcher +Matcher<UnaryExprOrTypeTraitExpr>hasArgumentOfTypeMatcher<QualType> InnerMatcher
Matches unary expressions that have a specific type of argument.
 
 Given
@@ -6725,7 +6725,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(
@@ -6734,7 +6734,7 @@ Example matches true (matcher = hasUnaryOperand(
 
-Matcher<UnresolvedMemberExpr>hasObjectExpressionMatcher<Expr> InnerMatcher +Matcher<UnresolvedMemberExpr>hasObjectExpressionMatcher<Expr> InnerMatcher
Matches a member expression where the object expression is
 matched by a given matcher.
 
@@ -6748,7 +6748,7 @@ with hasObjectExpression(...)
 
-Matcher<UnresolvedUsingType>hasDeclarationconst Matcher<Decl> InnerMatcher +Matcher<UnresolvedUsingType>hasDeclarationconst Matcher<Decl> InnerMatcher
Matches a node if the declaration associated with that node
 matches the given matcher.
 
@@ -6772,17 +6772,17 @@ This can be achieved by using the hasUnqualifiedDesugaredType matcher:
       recordType(hasDeclaration(decl())))))
 In this matcher, the decl will match the CXXRecordDecl of class X.
 
-Usable as: Matcher<AddrLabelExpr>, Matcher<CallExpr>,
-  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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<AddrLabelExpr>, Matcher<CallExpr>,
+  Matcher<CXXConstructExpr>, Matcher<CXXNewExpr>, 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
@@ -6792,7 +6792,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.
 
@@ -6804,7 +6804,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.
 
@@ -6821,11 +6821,11 @@ Example matches x (matcher = expr(hasType(cxxRecordDecl(hasName("X")))))
  void y(X &x) { x; X z; }
  class Y { friend class X; };
 
-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.
 
@@ -6840,7 +6840,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.
 
@@ -6850,7 +6850,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.
 
@@ -6864,7 +6864,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.
 
@@ -6877,7 +6877,7 @@ with compoundStmt()
 
-Matcher<WhileStmt>hasConditionMatcher<Expr> InnerMatcher +Matcher<WhileStmt>hasConditionMatcher<Expr> InnerMatcher
Matches the condition expression of an if statement, for loop,
 switch statement or conditional operator.
 
@@ -6886,13 +6886,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/clang/docs/LibASTMatchersTutorial.rst b/clang/docs/LibASTMatchersTutorial.rst index 9e95a7f18db7..8b7ee7f98fa2 100644 --- a/clang/docs/LibASTMatchersTutorial.rst +++ b/clang/docs/LibASTMatchersTutorial.rst @@ -19,16 +19,16 @@ As Clang is part of the LLVM project, you'll need to download LLVM's source code first. Both Clang and LLVM are maintained as Subversion repositories, but we'll be accessing them through the git mirror. For further information, see the `getting started -guide `_. +guide `_. .. code-block:: console mkdir ~/clang-llvm && cd ~/clang-llvm - git clone http://llvm.org/git/llvm.git + git clone https://llvm.org/git/llvm.git cd llvm/tools - git clone http://llvm.org/git/clang.git + git clone https://llvm.org/git/clang.git cd clang/tools - git clone http://llvm.org/git/clang-tools-extra.git extra + git clone https://llvm.org/git/clang-tools-extra.git extra Next you need to obtain the CMake build system and Ninja build tool. You may already have CMake installed, but current binary versions of CMake diff --git a/clang/docs/LibFormat.rst b/clang/docs/LibFormat.rst index 2863a076edf4..889fbbac8c7a 100644 --- a/clang/docs/LibFormat.rst +++ b/clang/docs/LibFormat.rst @@ -45,7 +45,7 @@ two style guides are hard-coded: .. code-block:: c++ /// Returns a format style complying with the LLVM coding standards: - /// http://llvm.org/docs/CodingStandards.html. + /// https://llvm.org/docs/CodingStandards.html. FormatStyle getLLVMStyle(); /// Returns a format style complying with Google's C++ style guide: diff --git a/clang/docs/LibTooling.rst b/clang/docs/LibTooling.rst index a422a1d5665a..41110f5d3149 100644 --- a/clang/docs/LibTooling.rst +++ b/clang/docs/LibTooling.rst @@ -198,4 +198,4 @@ Linking For a list of libraries to link, look at one of the tools' Makefiles (for example `clang-check/Makefile -`_). +`_). diff --git a/clang/docs/MSVCCompatibility.rst b/clang/docs/MSVCCompatibility.rst index b82869b267cd..cd2acae97029 100644 --- a/clang/docs/MSVCCompatibility.rst +++ b/clang/docs/MSVCCompatibility.rst @@ -70,7 +70,7 @@ The status of major ABI-impacting C++ features: .. _#pragma pointers_to_members: http://msdn.microsoft.com/en-us/library/83cch5a6.aspx .. _/vm: http://msdn.microsoft.com/en-us/library/yad46a6z.aspx -.. _pointer to a member of a virtual base class: http://llvm.org/PR15713 +.. _pointer to a member of a virtual base class: https://llvm.org/PR15713 * Debug info: :good:`Mostly complete`. Clang emits relatively complete CodeView debug information if ``/Z7`` or ``/Zi`` is passed. Microsoft's link.exe will @@ -137,7 +137,7 @@ following program, Clang will recover as if the user had written the commented-out code: .. _frequently asked question: - http://clang.llvm.org/compatibility.html#dep_lookup + https://clang.llvm.org/compatibility.html#dep_lookup .. code-block:: c++ diff --git a/clang/docs/MemorySanitizer.rst b/clang/docs/MemorySanitizer.rst index 4e033fa1941d..f513b009a32f 100644 --- a/clang/docs/MemorySanitizer.rst +++ b/clang/docs/MemorySanitizer.rst @@ -16,7 +16,7 @@ Typical slowdown introduced by MemorySanitizer is **3x**. How to build ============ -Build LLVM/Clang with `CMake `_. +Build LLVM/Clang with `CMake `_. Usage ===== diff --git a/clang/docs/PCHInternals.rst b/clang/docs/PCHInternals.rst index b0372cb931ad..109260da9050 100644 --- a/clang/docs/PCHInternals.rst +++ b/clang/docs/PCHInternals.rst @@ -70,7 +70,7 @@ minimizes both creation time and the time required to initially load the AST file. The AST file itself contains a serialized representation of Clang's abstract syntax trees and supporting data structures, stored using the same compressed bitstream as `LLVM's bitcode file format -`_. +`_. Clang's AST files are loaded "lazily" from disk. When an AST file is initially loaded, Clang reads only a small amount of data from the AST file to establish @@ -134,7 +134,7 @@ only contain the serialized AST. The ``clangast`` section is organized into several different blocks, each of which contains the serialized representation of a part of Clang's internal representation. Each of the blocks corresponds to either a block or a record -within `LLVM's bitstream format `_. +within `LLVM's bitstream format `_. The contents of each of these logical blocks are described below. .. image:: PCHLayout.png @@ -142,7 +142,7 @@ The contents of each of these logical blocks are described below. The ``llvm-objdump`` utility provides a ``-raw-clang-ast`` option to extract the binary contents of the AST section from an object file container. -The `llvm-bcanalyzer `_ +The `llvm-bcanalyzer `_ utility can be used to examine the actual structure of the bitstream for the AST section. This information can be used both to help understand the structure of the AST section and to isolate areas where the AST representation can still be diff --git a/clang/docs/SanitizerCoverage.rst b/clang/docs/SanitizerCoverage.rst index e1c3fc91d32c..f3f13c831760 100644 --- a/clang/docs/SanitizerCoverage.rst +++ b/clang/docs/SanitizerCoverage.rst @@ -245,7 +245,7 @@ around comparison instructions and switch statements. Similarly, with ``-fsanitize-coverage=trace-div`` the compiler will instrument integer division instructions (to capture the right argument of division) and with ``-fsanitize-coverage=trace-gep`` -- -the `LLVM GEP instructions `_ +the `LLVM GEP instructions `_ (to capture array indices). .. code-block:: c++ diff --git a/clang/docs/SourceBasedCodeCoverage.rst b/clang/docs/SourceBasedCodeCoverage.rst index 805c98794804..27a1950a1602 100644 --- a/clang/docs/SourceBasedCodeCoverage.rst +++ b/clang/docs/SourceBasedCodeCoverage.rst @@ -156,7 +156,7 @@ line-oriented report, try: The ``llvm-cov`` tool supports specifying a custom demangler, writing out reports in a directory structure, and generating html reports. For the full list of options, please refer to the `command guide -`_. +`_. A few final notes: diff --git a/clang/docs/ThinLTO.rst b/clang/docs/ThinLTO.rst index 05a0b67dbab9..6e6cb801f522 100644 --- a/clang/docs/ThinLTO.rst +++ b/clang/docs/ThinLTO.rst @@ -47,7 +47,7 @@ The 3.9 release of clang includes ThinLTO support. However, ThinLTO is under active development, and new features, improvements and bugfixes are being added for the next release. For the latest ThinLTO support, `build a recent version of clang and LLVM -`_. +`_. Linkers ------- @@ -59,7 +59,7 @@ ThinLTO is currently supported for the following linkers: - **gold (via the gold-plugin)**: Similar to monolithic LTO, this requires using a `gold linker configured with plugins enabled - `_. + `_. - **ld64**: Starting with `Xcode 8 `_. - **lld**: @@ -99,7 +99,7 @@ With gold, if you see an error during the link of the form: Then either gold was not configured with plugins enabled, or clang was not built with ``-DLLVM_BINUTILS_INCDIR`` set properly. See the instructions for the -`LLVM gold plugin `_. +`LLVM gold plugin `_. Controlling Backend Parallelism ------------------------------- @@ -198,9 +198,9 @@ To bootstrap clang/LLVM with ThinLTO, follow these steps: 1. The host compiler_ must be a version of clang that supports ThinLTO. #. The host linker_ must support ThinLTO (and in the case of gold, must be - `configured with plugins enabled `_. + `configured with plugins enabled `_. #. Use the following additional `CMake variables - `_ + `_ when configuring the bootstrap compiler build: * ``-DLLVM_ENABLE_LTO=Thin`` diff --git a/clang/docs/ThreadSanitizer.rst b/clang/docs/ThreadSanitizer.rst index d1e2c65ec5f1..0d039bd5b25a 100644 --- a/clang/docs/ThreadSanitizer.rst +++ b/clang/docs/ThreadSanitizer.rst @@ -12,7 +12,7 @@ ThreadSanitizer is about **5x-10x**. How to build ------------ -Build LLVM/Clang with `CMake `_. +Build LLVM/Clang with `CMake `_. Supported Platforms ------------------- diff --git a/clang/docs/Toolchain.rst b/clang/docs/Toolchain.rst index 06bde35c3da6..0da20eb04625 100644 --- a/clang/docs/Toolchain.rst +++ b/clang/docs/Toolchain.rst @@ -121,7 +121,7 @@ Clang can be configured to use one of several different linkers: * MSVC's link.exe Link-time optimization is natively supported by lld, and supported via -a `linker plugin `_ when using gold. +a `linker plugin `_ when using gold. The default linker varies between targets, and can be overridden via the ``-fuse-ld=`` flag. @@ -233,7 +233,7 @@ LLVM's unwinder library can be obtained from subversion: .. code-block:: console - llvm-src$ svn co http://llvm.org/svn/llvm-project/libunwind/trunk projects/libunwind + llvm-src$ svn co https://llvm.org/svn/llvm-project/libunwind/trunk projects/libunwind When checked out into projects/libunwind within an LLVM checkout, it should be automatically picked up by the LLVM build system. diff --git a/clang/docs/Tooling.rst b/clang/docs/Tooling.rst index 25ee21589022..141d4d8d8959 100644 --- a/clang/docs/Tooling.rst +++ b/clang/docs/Tooling.rst @@ -9,7 +9,7 @@ the different ways to write clang tools, and their pros and cons. LibClang -------- -`LibClang `_ is a stable high +`LibClang `_ is a stable high level C interface to clang. When in doubt LibClang is probably the interface you want to use. Consider the other interfaces only when you have a good reason not to use LibClang. diff --git a/clang/docs/UndefinedBehaviorSanitizer.rst b/clang/docs/UndefinedBehaviorSanitizer.rst index 48658e653469..156a9dfa6450 100644 --- a/clang/docs/UndefinedBehaviorSanitizer.rst +++ b/clang/docs/UndefinedBehaviorSanitizer.rst @@ -25,7 +25,7 @@ The checks have small runtime cost and no impact on address space layout or ABI. How to build ============ -Build LLVM/Clang with `CMake `_. +Build LLVM/Clang with `CMake `_. Usage ===== diff --git a/clang/docs/UsersManual.rst b/clang/docs/UsersManual.rst index b6ad37ea15ac..65718d204448 100644 --- a/clang/docs/UsersManual.rst +++ b/clang/docs/UsersManual.rst @@ -22,7 +22,7 @@ This document describes important notes about using Clang as a compiler for an end-user, documenting the supported features, command line options, etc. If you are interested in using Clang to build a tool that processes code, please see :doc:`InternalsManual`. If you are interested in the -`Clang Static Analyzer `_, please see its web +`Clang Static Analyzer `_, please see its web page. Clang is one component in a complete toolchain for C family languages. @@ -587,7 +587,7 @@ Options to Control Clang Crash Diagnostics As unbelievable as it may sound, Clang does crash from time to time. Generally, this only occurs to those living on the `bleeding -edge `_. Clang goes to great +edge `_. Clang goes to great lengths to assist you in filing a bug report. Specifically, Clang generates preprocessed source file(s) and associated run script(s) upon a crash. These files should be attached to a bug report to ease @@ -982,11 +982,11 @@ Controlling Static Analyzer Diagnostics ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ While not strictly part of the compiler, the diagnostics from Clang's -`static analyzer `_ can also be +`static analyzer `_ can also be influenced by the user via changes to the source code. See the available -`annotations `_ and the +`annotations `_ and the analyzer's `FAQ -page `_ for more +page `_ for more information. .. _usersmanual-precompiled-headers: @@ -2158,7 +2158,7 @@ comment(lib)`` are well supported. clang has a ``-fms-compatibility`` flag that makes clang accept enough invalid C++ to be able to parse most Microsoft headers. For example, it allows `unqualified lookup of dependent base class members -`_, which is +`_, which is a common compatibility issue with clang. This flag is enabled by default for Windows targets. diff --git a/clang/docs/tools/dump_ast_matchers.py b/clang/docs/tools/dump_ast_matchers.py index a8958fade372..792f911e689a 100755 --- a/clang/docs/tools/dump_ast_matchers.py +++ b/clang/docs/tools/dump_ast_matchers.py @@ -38,7 +38,7 @@ def esc(text): text = re.sub(r'>', '>', text) def link_if_exists(m): name = m.group(1) - url = 'http://clang.llvm.org/doxygen/classclang_1_1%s.html' % name + url = 'https://clang.llvm.org/doxygen/classclang_1_1%s.html' % name if url not in doxygen_probes: try: print 'Probing %s...' % url -- cgit v1.2.3