clang 8.0.0

Public Types | Public Member Functions | List of all members
clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor Class Reference

Variadic operator marshaller function. More...

`#include "/work/www-prereleases/8.0.0/rc2/builddocs/llvm.src/tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h"`

Inheritance diagram for clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor:
[legend]
Collaboration diagram for clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor:
[legend]

## Public Types
using | VarOp = DynTypedMatcher::VariadicOperator

## Public Member Functions
| VariadicOperatorMatcherDescriptor (unsigned MinCount, unsigned MaxCount, VarOp Op, StringRef MatcherName)
VariantMatcher | create (SourceRange NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) const override
bool | isVariadic () const override
| Returns whether the matcher is variadic. More...
unsigned | getNumArgs () const override
| Returns the number of arguments accepted by the matcher if not variadic. More...
void | getArgKinds (ast_type_traits::ASTNodeKind ThisKind, unsigned ArgNo, std::vector< ArgKind > &Kinds) const override
| Given that the matcher is being converted to type `ThisKind`, append the set of argument types accepted for argument `ArgNo` to `ArgKinds`. More...
bool | isConvertibleTo (ast_type_traits::ASTNodeKind Kind, unsigned *Specificity, ast_type_traits::ASTNodeKind *LeastDerivedKind) const override
| Returns whether this matcher is convertible to the given type. More...
bool | isPolymorphic () const override
| Returns whether the matcher will, given a matcher of any type T, yield a matcher of type T. More...
Public Member Functions inherited from clang::ast_matchers::dynamic::internal::MatcherDescriptor
virtual | ~MatcherDescriptor ()=default

## Detailed Description

Variadic operator marshaller function.

Definition at line 639 of file Marshallers.h.

## Member Typedef Documentation

## ◆ VarOp

using clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor::VarOp = DynTypedMatcher::VariadicOperator

Definition at line 641 of file Marshallers.h.

## Constructor & Destructor Documentation

## ◆ VariadicOperatorMatcherDescriptor()

clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor::VariadicOperatorMatcherDescriptor | ( | unsigned | MinCount,
|  | unsigned | MaxCount,
|  | VarOp | Op,
|  | StringRef | MatcherName
| ) |  |
| inline

Definition at line 643 of file Marshallers.h.

## Member Function Documentation

## ◆ create()

VariantMatcher clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor::create | ( | SourceRange | NameRange,
|  | ArrayRef< ParserValue > | Args,
|  | Diagnostics * | Error
| ) |  | const
| inline override virtual

Implements clang::ast_matchers::dynamic::internal::MatcherDescriptor.

Definition at line 648 of file Marshallers.h.

References clang::ast_matchers::dynamic::Diagnostics::addError(), clang::ast_matchers::dynamic::Diagnostics::ET_RegistryWrongArgCount, clang::ast_matchers::dynamic::Diagnostics::ET_RegistryWrongArgType, clang::ast_matchers::dynamic::VariantValue::getMatcher(), clang::ast_matchers::dynamic::VariantValue::getTypeAsString(), clang::ast_matchers::dynamic::VariantValue::isMatcher(), max(), clang::ast_matchers::dynamic::ParserValue::Range, llvm::str(), clang::ast_matchers::dynamic::ParserValue::Value, and clang::ast_matchers::dynamic::VariantMatcher::VariadicOperatorMatcher().

## ◆ getArgKinds()

void clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor::getArgKinds | ( | ast_type_traits::ASTNodeKind | ThisKind,
|  | unsigned | ArgNo,
|  | std::vector< ArgKind > & | ArgKinds
| ) |  | const
| inline override virtual

Given that the matcher is being converted to type `ThisKind`, append the set of argument types accepted for argument `ArgNo` to `ArgKinds`.

Implements clang::ast_matchers::dynamic::internal::MatcherDescriptor.

Definition at line 678 of file Marshallers.h.

## ◆ getNumArgs()

unsigned clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor::getNumArgs | ( |  | ) | const
| inline override virtual

Returns the number of arguments accepted by the matcher if not variadic.

Implements clang::ast_matchers::dynamic::internal::MatcherDescriptor.

Definition at line 676 of file Marshallers.h.

## ◆ isConvertibleTo()

bool clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor::isConvertibleTo | ( | ast_type_traits::ASTNodeKind | Kind,
|  | unsigned * | Specificity,
|  | ast_type_traits::ASTNodeKind * | LeastDerivedKind
| ) |  | const
| inline override virtual

Returns whether this matcher is convertible to the given type.

If it is so convertible, store in *Specificity a value corresponding to the "specificity" of the converted matcher to the given context, and in *LeastDerivedKind the least derived matcher kind which would result in the same matcher overload. Zero specificity indicates that this conversion would produce a trivial matcher that will either always or never match. Such matchers are excluded from code completion results.

Implements clang::ast_matchers::dynamic::internal::MatcherDescriptor.

Definition at line 683 of file Marshallers.h.

## ◆ isPolymorphic()

bool clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor::isPolymorphic | ( |  | ) | const
| inline override virtual

Returns whether the matcher will, given a matcher of any type T, yield a matcher of type T.

Reimplemented from clang::ast_matchers::dynamic::internal::MatcherDescriptor.

Definition at line 692 of file Marshallers.h.

## ◆ isVariadic()

bool clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor::isVariadic | ( |  | ) | const
| inline override virtual

Returns whether the matcher is variadic.

Variadic matchers can take any number of arguments, but they must be of the same type.

Implements clang::ast_matchers::dynamic::internal::MatcherDescriptor.

Definition at line 675 of file Marshallers.h.

The documentation for this class was generated from the following file:

- lib/ASTMatchers/Dynamic/Marshallers.h