clang 10.0.0git

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

Simple callback implementation. More...

`#include "/work/www-prereleases/10.0.0/rc1/docsbuild/clang/lib/ASTMatchers/Dynamic/Marshallers.h"`

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

## Public Types
using | MarshallerType = VariantMatcher(*)(void(*Func)(), StringRef MatcherName, SourceRange NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error)

## Public Member Functions
| FixedArgCountMatcherDescriptor (MarshallerType Marshaller, void(*Func)(), StringRef MatcherName, ArrayRef< ast_type_traits::ASTNodeKind > RetKinds, ArrayRef< ArgKind > ArgKinds)
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...
Public Member Functions inherited from clang::ast_matchers::dynamic::internal::MatcherDescriptor
virtual | ~MatcherDescriptor ()=default
virtual bool | isPolymorphic () const
| Returns whether the matcher will, given a matcher of any type T, yield a matcher of type T. More...

## Detailed Description

Simple callback implementation.

Marshaller and function are provided.

This class wraps a function of arbitrary signature and a marshaller function into a MatcherDescriptor. The marshaller is in charge of taking the VariantValue arguments, checking their types, unpacking them and calling the underlying function.

Definition at line 253 of file Marshallers.h.

## Member Typedef Documentation

## ◆ MarshallerType

using clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor::MarshallerType = VariantMatcher (*)(void (*Func)(), StringRef MatcherName, SourceRange NameRange, ArrayRef<ParserValue> Args, Diagnostics *Error)

Definition at line 259 of file Marshallers.h.

## Constructor & Destructor Documentation

## ◆ FixedArgCountMatcherDescriptor()

clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor::FixedArgCountMatcherDescriptor | ( | MarshallerType | Marshaller,
|  | void(*)() | Func,
|  | StringRef | MatcherName,
|  | ArrayRef< ast_type_traits::ASTNodeKind > | RetKinds,
|  | ArrayRef< ArgKind > | ArgKinds
| ) |  |
| inline

Parameters

  Marshaller | Function to unpack the arguments and call `Func`
  Func | Matcher construct function. This is the function that compile-time matcher expressions would use to create the matcher.
  RetKinds | The list of matcher types to which the matcher is convertible.
  ArgKinds | The types of the arguments this matcher takes.

Definition at line 267 of file Marshallers.h.

## Member Function Documentation

## ◆ create()

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

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

Definition at line 275 of file Marshallers.h.

## ◆ getArgKinds()

void clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor::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 284 of file Marshallers.h.

## ◆ getNumArgs()

unsigned clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor::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 282 of file Marshallers.h.

## ◆ isConvertibleTo()

bool clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor::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 289 of file Marshallers.h.

References clang::ast_matchers::dynamic::internal::isRetKindConvertibleTo().

## ◆ isVariadic()

bool clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor::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 281 of file Marshallers.h.

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

- lib/ASTMatchers/Dynamic/Marshallers.h