Fixed ASTMatchers registry and regen ast docs
This commit is contained in:
parent
d10b1a38a7
commit
c2b22c57fc
|
@ -1226,6 +1226,11 @@ Example matches std::string()
|
|||
</pre></td></tr>
|
||||
|
||||
|
||||
<tr><td>Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1Stmt.html">Stmt</a>></td><td class="name" onclick="toggle('fixedPointLiteral0')"><a name="fixedPointLiteral0Anchor">fixedPointLiteral</a></td><td>Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1FixedPointLiteral.html">FixedPointLiteral</a>>...</td></tr>
|
||||
<tr><td colspan="4" class="doc" id="fixedPointLiteral0"><pre>Matches fixed point literals
|
||||
</pre></td></tr>
|
||||
|
||||
|
||||
<tr><td>Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1Stmt.html">Stmt</a>></td><td class="name" onclick="toggle('floatLiteral0')"><a name="floatLiteral0Anchor">floatLiteral</a></td><td>Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1FloatingLiteral.html">FloatingLiteral</a>>...</td></tr>
|
||||
<tr><td colspan="4" class="doc" id="floatLiteral0"><pre>Matches float literals of all sizes / encodings, e.g.
|
||||
1.0, 1.0f, 1.0L and 1e10.
|
||||
|
@ -4016,6 +4021,23 @@ is equivalent to parmVarDecl(hasDefaultArgument()).
|
|||
</pre></td></tr>
|
||||
|
||||
|
||||
<tr><td>Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1ParmVarDecl.html">ParmVarDecl</a>></td><td class="name" onclick="toggle('isAtPosition0')"><a name="isAtPosition0Anchor">isAtPosition</a></td><td>unsigned N</td></tr>
|
||||
<tr><td colspan="4" class="doc" id="isAtPosition0"><pre>Matches the ParmVarDecl nodes that are at the N'th position in the parameter
|
||||
list. The parameter list could be that of either a block, function, or
|
||||
objc-method.
|
||||
|
||||
|
||||
Given
|
||||
|
||||
void f(int a, int b, int c) {
|
||||
}
|
||||
|
||||
``parmVarDecl(isAtPosition(0))`` matches ``int a``.
|
||||
|
||||
``parmVarDecl(isAtPosition(1))`` matches ``int b``.
|
||||
</pre></td></tr>
|
||||
|
||||
|
||||
<tr><td>Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1QualType.html">QualType</a>></td><td class="name" onclick="toggle('asString0')"><a name="asString0Anchor">asString</a></td><td>std::string Name</td></tr>
|
||||
<tr><td colspan="4" class="doc" id="asString0"><pre>Matches if the matched type is represented by the given string.
|
||||
|
||||
|
@ -4755,23 +4777,6 @@ cxxRecordDecl(hasName("::X"), isTemplateInstantiation())
|
|||
Usable as: Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1FunctionDecl.html">FunctionDecl</a>>, Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1VarDecl.html">VarDecl</a>>, Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1CXXRecordDecl.html">CXXRecordDecl</a>>
|
||||
</pre></td></tr>
|
||||
|
||||
|
||||
<tr><td>Matcher<clang::ParmVarDecl></td><td class="name" onclick="toggle('isAtPosition0')"><a name="isAtPosition0Anchor">isAtPosition</a></td><td>unsigned N</td></tr>
|
||||
<tr><td colspan="4" class="doc" id="isAtPosition0"><pre>Matches the ParmVarDecl nodes that are at the N'th position in the parameter
|
||||
list. The parameter list could be that of either a block, function, or
|
||||
objc-method.
|
||||
|
||||
|
||||
Given
|
||||
|
||||
void f(int a, int b, int c) {
|
||||
}
|
||||
|
||||
``parmVarDecl(isAtPosition(0))`` matches ``int a``.
|
||||
|
||||
``parmVarDecl(isAtPosition(1))`` matches ``int b``.
|
||||
</pre></td></tr>
|
||||
|
||||
<!--END_NARROWING_MATCHERS -->
|
||||
</table>
|
||||
|
||||
|
@ -5632,13 +5637,14 @@ cxxNewExpr(hasPlacementArg(1, integerLiteral(equals(16))))
|
|||
<tr><td>Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1CXXRecordDecl.html">CXXRecordDecl</a>></td><td class="name" onclick="toggle('hasAnyBase0')"><a name="hasAnyBase0Anchor">hasAnyBase</a></td><td>Matcher<<a href="https://clang.llvm.org/doxygen/classclang_1_1CXXBaseSpecifier.html">CXXBaseSpecifier</a>> BaseSpecMatcher</td></tr>
|
||||
<tr><td colspan="4" class="doc" id="hasAnyBase0"><pre>Matches C++ classes that have a direct or indirect base matching BaseSpecMatcher.
|
||||
|
||||
Example matches DirectlyDerived, IndirectlyDerived (BaseSpecMatcher ==
|
||||
hasType(cxxRecordDecl(hasName("SpecialBase")))) class Foo;
|
||||
Example:
|
||||
matcher hasAnyBase(hasType(cxxRecordDecl(hasName("SpecialBase")))))
|
||||
class Foo;
|
||||
class Bar : Foo {};
|
||||
class Baz : Bar {};
|
||||
class SpecialBase;
|
||||
class DirectlyDerived : SpecialBase {}; // directly derived
|
||||
class IndirectlyDerived : DirectlyDerived {}; // indirectly derived
|
||||
class Proxy : SpecialBase {}; // matches Proxy
|
||||
class IndirectlyDerived : Proxy {}; //matches IndirectlyDerived
|
||||
|
||||
FIXME: Refactor this and isDerivedFrom to reuse implementation.
|
||||
</pre></td></tr>
|
||||
|
|
|
@ -4323,7 +4323,7 @@ AST_POLYMORPHIC_MATCHER_P2(forEachArgumentWithParam,
|
|||
/// ``parmVarDecl(isAtPosition(0))`` matches ``int a``.
|
||||
///
|
||||
/// ``parmVarDecl(isAtPosition(1))`` matches ``int b``.
|
||||
AST_MATCHER_P(clang::ParmVarDecl, isAtPosition, unsigned, N) {
|
||||
AST_MATCHER_P(ParmVarDecl, isAtPosition, unsigned, N) {
|
||||
const clang::DeclContext *Context = Node.getParentFunctionOrMethod();
|
||||
|
||||
if (const auto *Decl = dyn_cast_or_null<FunctionDecl>(Context))
|
||||
|
|
|
@ -151,6 +151,7 @@ RegistryMaps::RegistryMaps() {
|
|||
REGISTER_MATCHER(characterLiteral);
|
||||
REGISTER_MATCHER(chooseExpr);
|
||||
REGISTER_MATCHER(classTemplateDecl);
|
||||
REGISTER_MATCHER(classTemplatePartialSpecializationDecl);
|
||||
REGISTER_MATCHER(classTemplateSpecializationDecl);
|
||||
REGISTER_MATCHER(complexType);
|
||||
REGISTER_MATCHER(compoundLiteralExpr);
|
||||
|
@ -219,7 +220,6 @@ RegistryMaps::RegistryMaps() {
|
|||
REGISTER_MATCHER(floatLiteral);
|
||||
REGISTER_MATCHER(forEach);
|
||||
REGISTER_MATCHER(forEachArgumentWithParam);
|
||||
REGISTER_MATCHER(isAtPosition);
|
||||
REGISTER_MATCHER(forEachConstructorInitializer);
|
||||
REGISTER_MATCHER(forEachDescendant);
|
||||
REGISTER_MATCHER(forEachOverridden);
|
||||
|
@ -353,6 +353,7 @@ RegistryMaps::RegistryMaps() {
|
|||
REGISTER_MATCHER(isArray);
|
||||
REGISTER_MATCHER(isArrow);
|
||||
REGISTER_MATCHER(isAssignmentOperator);
|
||||
REGISTER_MATCHER(isAtPosition);
|
||||
REGISTER_MATCHER(isBaseInitializer);
|
||||
REGISTER_MATCHER(isBitField);
|
||||
REGISTER_MATCHER(isCatchAll);
|
||||
|
@ -370,7 +371,9 @@ RegistryMaps::RegistryMaps() {
|
|||
REGISTER_MATCHER(isDefinition);
|
||||
REGISTER_MATCHER(isDelegatingConstructor);
|
||||
REGISTER_MATCHER(isDeleted);
|
||||
REGISTER_MATCHER(isEnum);
|
||||
REGISTER_MATCHER(isExceptionVariable);
|
||||
REGISTER_MATCHER(isExpandedFromMacro);
|
||||
REGISTER_MATCHER(isExpansionInFileMatching);
|
||||
REGISTER_MATCHER(isExpansionInMainFile);
|
||||
REGISTER_MATCHER(isExpansionInSystemHeader);
|
||||
|
|
Loading…
Reference in a new issue