|
clang
5.0.0
|
A variant matcher object. More...
#include "clang/ASTMatchers/Dynamic/VariantValue.h"
Classes | |
| class | PolymorphicPayload |
| class | SinglePayload |
| class | VariadicOpPayload |
Public Member Functions | |
| VariantMatcher () | |
| A null matcher. More... | |
| void | reset () |
| Makes the matcher the "null" matcher. More... | |
| bool | isNull () const |
| Whether the matcher is null. More... | |
| llvm::Optional< DynTypedMatcher > | getSingleMatcher () const |
| Return a single matcher, if there is no ambiguity. More... | |
| template<class T > | |
| bool | hasTypedMatcher () const |
Determines if the contained matcher can be converted to Matcher<T>. More... | |
| bool | isConvertibleTo (ast_type_traits::ASTNodeKind Kind, unsigned *Specificity) const |
Determines if the contained matcher can be converted to Kind. More... | |
| template<class T > | |
| ast_matchers::internal::Matcher < T > | getTypedMatcher () const |
Return this matcher as a Matcher<T>. More... | |
| std::string | getTypeAsString () const |
| String representation of the type of the value. More... | |
Static Public Member Functions | |
| static VariantMatcher | SingleMatcher (const DynTypedMatcher &Matcher) |
| Clones the provided matcher. More... | |
| static VariantMatcher | PolymorphicMatcher (std::vector< DynTypedMatcher > Matchers) |
| Clones the provided matchers. More... | |
| static VariantMatcher | VariadicOperatorMatcher (DynTypedMatcher::VariadicOperator Op, std::vector< VariantMatcher > Args) |
| Creates a 'variadic' operator matcher. More... | |
A variant matcher object.
The purpose of this object is to abstract simple and polymorphic matchers into a single object type. Polymorphic matchers might be implemented as a list of all the possible overloads of the matcher. VariantMatcher knows how to select the appropriate overload when needed. To get a real matcher object out of a VariantMatcher you can do:
Definition at line 93 of file VariantValue.h.
| clang::ast_matchers::dynamic::VariantMatcher::VariantMatcher | ( | ) |
A null matcher.
Definition at line 220 of file VariantValue.cpp.
Referenced by PolymorphicMatcher(), SingleMatcher(), and VariadicOperatorMatcher().
| llvm::Optional< DynTypedMatcher > clang::ast_matchers::dynamic::VariantMatcher::getSingleMatcher | ( | ) | const |
Return a single matcher, if there is no ambiguity.
Definition at line 239 of file VariantValue.cpp.
Referenced by clang::ast_matchers::dynamic::Registry::constructBoundMatcher(), and clang::ast_matchers::dynamic::Parser::parseMatcherExpression().
| std::string clang::ast_matchers::dynamic::VariantMatcher::getTypeAsString | ( | ) | const |
String representation of the type of the value.
If the underlying matcher is a polymorphic one, the string will show all the types.
Definition at line 245 of file VariantValue.cpp.
Referenced by clang::ast_matchers::dynamic::VariantValue::getTypeAsString().
|
inline |
Return this matcher as a Matcher<T>.
Handles the different types (Single, Polymorphic) accordingly. Asserts that hasTypedMatcher<T>() is true.
Definition at line 200 of file VariantValue.h.
|
inline |
Determines if the contained matcher can be converted to Matcher<T>.
For the Single case, it returns true if it can be converted to Matcher<T>. For the Polymorphic case, it returns true if one, and only one, of the overloads can be converted to Matcher<T>. If there are more than one that can, the result would be ambiguous and false is returned.
Definition at line 177 of file VariantValue.h.
Referenced by clang::ast_matchers::dynamic::internal::ArgTypeTraits< ast_matchers::internal::Matcher< T > >::is().
|
inline |
Determines if the contained matcher can be converted to Kind.
| Kind | the requested destination type. |
| Specificity | value corresponding to the "specificity" of the conversion. |
Definition at line 188 of file VariantValue.h.
Referenced by clang::ast_matchers::dynamic::VariantValue::isConvertibleTo().
|
inline |
Whether the matcher is null.
Definition at line 159 of file VariantValue.h.
Referenced by clang::ast_matchers::dynamic::Registry::constructBoundMatcher(), and clang::ast_matchers::dynamic::internal::OverloadedMatcherDescriptor::create().
|
static |
Clones the provided matchers.
They should be the result of a polymorphic matcher.
Definition at line 227 of file VariantValue.cpp.
References VariantMatcher().
Referenced by clang::ast_matchers::dynamic::internal::outvalueToVariantMatcher().
| void clang::ast_matchers::dynamic::VariantMatcher::reset | ( | ) |
Makes the matcher the "null" matcher.
Definition at line 243 of file VariantValue.cpp.
|
static |
Clones the provided matcher.
Definition at line 222 of file VariantValue.cpp.
References VariantMatcher().
Referenced by clang::ast_matchers::dynamic::internal::outvalueToVariantMatcher().
|
static |
Creates a 'variadic' operator matcher.
It will bind to the appropriate type on getTypedMatcher<T>().
Definition at line 232 of file VariantValue.cpp.
References VariantMatcher().
Referenced by clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor::create().
1.8.6