clang 20.0.0git
Public Member Functions | List of all members
clang::ast_matchers::dynamic::internal::MatcherDescriptor Class Referenceabstract

Matcher descriptor interface. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/ASTMatchers/Dynamic/Marshallers.h"

Inheritance diagram for clang::ast_matchers::dynamic::internal::MatcherDescriptor:
Inheritance graph
[legend]

Public Member Functions

virtual ~MatcherDescriptor ()=default
 
virtual VariantMatcher create (SourceRange NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) const =0
 
virtual ASTNodeKind nodeMatcherType () const
 
virtual bool isBuilderMatcher () const
 
virtual std::unique_ptr< MatcherDescriptorbuildMatcherCtor (SourceRange NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) const
 
virtual bool isVariadic () const =0
 Returns whether the matcher is variadic.
 
virtual unsigned getNumArgs () const =0
 Returns the number of arguments accepted by the matcher if not variadic.
 
virtual void getArgKinds (ASTNodeKind ThisKind, unsigned ArgNo, std::vector< ArgKind > &ArgKinds) const =0
 Given that the matcher is being converted to type ThisKind, append the set of argument types accepted for argument ArgNo to ArgKinds.
 
virtual bool isConvertibleTo (ASTNodeKind Kind, unsigned *Specificity=nullptr, ASTNodeKind *LeastDerivedKind=nullptr) const =0
 Returns whether this matcher is convertible to the given type.
 
virtual bool isPolymorphic () const
 Returns whether the matcher will, given a matcher of any type T, yield a matcher of type T.
 

Detailed Description

Matcher descriptor interface.

Provides a create() method that constructs the matcher from the provided arguments, and various other methods for type introspection.

Definition at line 304 of file Marshallers.h.

Constructor & Destructor Documentation

◆ ~MatcherDescriptor()

virtual clang::ast_matchers::dynamic::internal::MatcherDescriptor::~MatcherDescriptor ( )
virtualdefault

Member Function Documentation

◆ buildMatcherCtor()

virtual std::unique_ptr< MatcherDescriptor > clang::ast_matchers::dynamic::internal::MatcherDescriptor::buildMatcherCtor ( SourceRange  NameRange,
ArrayRef< ParserValue Args,
Diagnostics Error 
) const
inlinevirtual

◆ create()

virtual VariantMatcher clang::ast_matchers::dynamic::internal::MatcherDescriptor::create ( SourceRange  NameRange,
ArrayRef< ParserValue Args,
Diagnostics Error 
) const
pure virtual

◆ getArgKinds()

virtual void clang::ast_matchers::dynamic::internal::MatcherDescriptor::getArgKinds ( ASTNodeKind  ThisKind,
unsigned  ArgNo,
std::vector< ArgKind > &  ArgKinds 
) const
pure virtual

◆ getNumArgs()

virtual unsigned clang::ast_matchers::dynamic::internal::MatcherDescriptor::getNumArgs ( ) const
pure virtual

◆ isBuilderMatcher()

virtual bool clang::ast_matchers::dynamic::internal::MatcherDescriptor::isBuilderMatcher ( ) const
inlinevirtual

◆ isConvertibleTo()

virtual bool clang::ast_matchers::dynamic::internal::MatcherDescriptor::isConvertibleTo ( ASTNodeKind  Kind,
unsigned Specificity = nullptr,
ASTNodeKind LeastDerivedKind = nullptr 
) const
pure 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.

Implemented in clang::ast_matchers::dynamic::internal::FixedArgCountMatcherDescriptor, clang::ast_matchers::dynamic::internal::VariadicFuncMatcherDescriptor, clang::ast_matchers::dynamic::internal::DynCastAllOfMatcherDescriptor, clang::ast_matchers::dynamic::internal::OverloadedMatcherDescriptor, clang::ast_matchers::dynamic::internal::RegexMatcherDescriptor< ReturnType >, clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor, clang::ast_matchers::dynamic::internal::MapAnyOfMatcherDescriptor, and clang::ast_matchers::dynamic::internal::MapAnyOfBuilderDescriptor.

Referenced by clang::ast_matchers::dynamic::Registry::getAcceptedCompletionTypes().

◆ isPolymorphic()

virtual bool clang::ast_matchers::dynamic::internal::MatcherDescriptor::isPolymorphic ( ) const
inlinevirtual

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

Reimplemented in clang::ast_matchers::dynamic::internal::VariadicOperatorMatcherDescriptor, and clang::ast_matchers::dynamic::internal::MapAnyOfBuilderDescriptor.

Definition at line 349 of file Marshallers.h.

◆ isVariadic()

virtual bool clang::ast_matchers::dynamic::internal::MatcherDescriptor::isVariadic ( ) const
pure virtual

◆ nodeMatcherType()

virtual ASTNodeKind clang::ast_matchers::dynamic::internal::MatcherDescriptor::nodeMatcherType ( ) const
inlinevirtual

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