The name of a declaration. More...
#include "clang/AST/DeclarationName.h"
operator+
), retrieve the kind of overloaded operator.
The name of a declaration.
In the common case, this just stores an IdentifierInfo pointer to a normal name. However, it also provides encodings for Objective-C selectors (optimizing zero- and one-argument selectors, which make up 78% percent of all selectors in Cocoa.h), special C++ names for constructors, destructors, and conversion functions, and C++ overloaded operators.
Definition at line 144 of file DeclarationName.h.
◆ NameKindThe kind of the name stored in this DeclarationName.
The first 7 enumeration values are stored inline and correspond to frequently used kinds. The rest is stored in DeclarationNameExtra and correspond to infrequently used kinds.
Enumerator Identifier ObjCZeroArgSelector ObjCOneArgSelector CXXConstructorName CXXDestructorName CXXConversionFunctionName CXXOperatorName CXXDeductionGuideName CXXLiteralOperatorName CXXUsingDirective ObjCMultiArgSelectorDefinition at line 208 of file DeclarationName.h.
◆ DeclarationName() [1/3] clang::DeclarationName::DeclarationName ( ) inline ◆ DeclarationName() [2/3] ◆ DeclarationName() [3/3] clang::DeclarationName::DeclarationName ( Selector Sel ) inlineConstruct a declaration name from an Objective-C selector.
Definition at line 365 of file DeclarationName.h.
◆ compare()Definition at line 44 of file DeclarationName.cpp.
References compare(), compareInt(), CXXConstructorName, CXXConversionFunctionName, CXXDeductionGuideName, CXXDestructorName, CXXLiteralOperatorName, CXXOperatorName, CXXUsingDirective, getCXXDeductionGuideTemplate(), getCXXLiteralIdentifier(), getCXXNameType(), getCXXOverloadedOperator(), clang::NamedDecl::getDeclName(), clang::IdentifierInfo::getName(), clang::Selector::getNameForSlot(), getNameKind(), clang::Selector::getNumArgs(), getObjCSelector(), Identifier, ObjCMultiArgSelector, ObjCOneArgSelector, and ObjCZeroArgSelector.
Referenced by CmpProtocolNames(), and compare().
◆ dump() ◆ getAsIdentifierInfo() IdentifierInfo * clang::DeclarationName::getAsIdentifierInfo ( ) const inlineRetrieve the IdentifierInfo * stored in this declaration name, or null if this declaration name isn't a simple identifier.
Definition at line 420 of file DeclarationName.h.
Referenced by actOnOMPReductionKindClause(), clang::SemaOpenMP::ActOnOpenMPDeclareMapperDirectiveVarDecl(), clang::Sema::BuildUsingDeclaration(), clang::Sema::CheckTemplateTypeArgument(), clang::Sema::CorrectTypo(), clang::Sema::CorrectTypoDelayed(), clang::UnresolvedUsingTypenameDecl::Create(), DiagnoseDirectIsaAccess(), clang::ODRDiagsEmitter::diagnoseMismatch(), clang::TypoCorrection::getCorrectionAsIdentifierInfo(), clang::SemaObjC::HandleExprPropertyRefExpr(), clang::ASTImporter::Import(), isCXXSharedPtrDtor(), isEnableIf(), IsStructurallyEquivalent(), clang::Sema::LookupBuiltin(), LookupMemberExpr(), clang::tooling::stdlib::Recognizer::operator()(), print(), and TryTypoCorrectionForCall().
◆ getAsOpaqueInteger() uintptr_t clang::DeclarationName::getAsOpaqueInteger ( ) const inline ◆ getAsOpaquePtr() void * clang::DeclarationName::getAsOpaquePtr ( ) const inlineGet the representation of this declaration name as an opaque pointer.
Definition at line 430 of file DeclarationName.h.
◆ getAsString() std::string DeclarationName::getAsString ( ) constRetrieve the human-readable string for this name.
Definition at line 227 of file DeclarationName.cpp.
References clang::Result.
Referenced by clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::CheckPlaceholderExpr(), clang::Sema::CheckUsingDeclQualifier(), clang::Sema::CorrectTypo(), clang::Sema::diagnoseExprIntendedAsTemplateName(), diagnoseInstanceReference(), clang::LookupResult::dump(), clang::ento::FunctionCodeRegion::dumpToStream(), clang::TypoCorrection::getAsString(), getPrintableNameForEntity(), clang::JSONNodeDumper::VisitCXXDependentScopeMemberExpr(), and clang::JSONNodeDumper::VisitUnresolvedLookupExpr().
◆ getCXXDeductionGuideTemplate() TemplateDecl * clang::DeclarationName::getCXXDeductionGuideTemplate ( ) const inline ◆ getCXXLiteralIdentifier() const IdentifierInfo * clang::DeclarationName::getCXXLiteralIdentifier ( ) const inline ◆ getCXXNameType() QualType clang::DeclarationName::getCXXNameType ( ) const inlineIf this name is one of the C++ names (of a constructor, destructor, or conversion function), return the type associated with that name.
Definition at line 449 of file DeclarationName.h.
Referenced by compare(), clang::DeclarationNameInfo::containsUnexpandedParameterPack(), clang::Sema::DiagnoseUnexpandedParameterPack(), clang::ASTImporter::Import(), isDependentName(), clang::DeclarationNameInfo::isInstantiationDependent(), IsStructurallyEquivalent(), LookupDirect(), and print().
◆ getCXXOverloadedOperator()If this name is the name of an overloadable operator in C++ (e.g., operator+
), retrieve the kind of overloaded operator.
Definition at line 472 of file DeclarationName.h.
References clang::OO_None.
Referenced by actOnOMPReductionKindClause(), clang::Sema::AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::CheckEquivalentExceptionSpec(), compare(), CompleteNonViableCandidate(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::diagnoseUnavailableAlignedAllocation(), EmitDiagForCXXThrowInNonThrowingFunc(), clang::Sema::getDefaultedFunctionKind(), clang::FunctionDecl::getOverloadedOperator(), clang::ASTImporter::Import(), clang::OverloadCandidateSet::OperatorRewriteInfo::isAcceptableCandidate(), clang::sema::isNormalAssignmentOperator(), clang::OverloadCandidateSet::OperatorRewriteInfo::isRewrittenOperator(), clang::CXXMethodDecl::isStatic(), IsStructurallyEquivalent(), print(), resolveAllocationOverload(), clang::Sema::SetDeclDefaulted(), shouldSkipInBacktrace(), and clang::interp::Compiler< Emitter >::VisitCallExpr().
◆ getEmptyMarker() ◆ getFETokenInfo() void * clang::DeclarationName::getFETokenInfo ( ) const inlineGet and set FETokenInfo.
The language front-end is allowed to associate arbitrary metadata with some kinds of declaration names, including normal identifiers and C++ constructors, destructors, and conversion functions.
Definition at line 502 of file DeclarationName.h.
◆ getFromOpaqueInteger() ◆ getFromOpaquePtr() static DeclarationName clang::DeclarationName::getFromOpaquePtr ( void * P ) inlinestatic ◆ getNameKind() NameKind clang::DeclarationName::getNameKind ( ) const inlineDetermine what kind of name this is.
Definition at line 394 of file DeclarationName.h.
Referenced by clang::Sema::BuildMemberPointerType(), clang::Sema::BuildUsingDeclaration(), compare(), clang::DeclarationNameInfo::containsUnexpandedParameterPack(), clang::CXXDestructorDecl::Create(), clang::CXXConversionDecl::Create(), clang::CXXConstructorDecl::Create(), clang::Sema::DiagnoseUnexpandedParameterPack(), clang::Sema::HideUsingShadowDecl(), clang::ASTImporter::Import(), clang::ASTNodeImporter::ImportDeclarationNameLoc(), clang::DeclarationNameInfo::isInstantiationDependent(), IsStructurallyEquivalent(), LookupDirect(), LookupMemberExpr(), print(), clang::DeclarationNameInfo::printName(), and clang::RecursiveASTVisitor< Derived >::TraverseDeclarationNameInfo().
◆ getObjCSelector() Selector clang::DeclarationName::getObjCSelector ( ) const inline ◆ getTombstoneMarker() ◆ getUsingDirectiveName() ◆ isDependentName() bool DeclarationName::isDependentName ( ) const ◆ isEmpty() bool clang::DeclarationName::isEmpty ( ) const inline ◆ isIdentifier() bool clang::DeclarationName::isIdentifier ( ) const inlinePredicate functions for querying what type of name this is.
Definition at line 385 of file DeclarationName.h.
Referenced by buildLambdaCaptureFixit(), clang::ODRDiagsEmitter::diagnoseMismatch(), clang::Sema::FindHiddenVirtualMethods(), clang::SemaObjC::HandleExprPropertyRefExpr(), clang::dataflow::hasOptionalClassName(), clang::dataflow::isCheckLikeMethod(), clang::dataflow::isFullyQualifiedNamespaceEqualTo(), clang::CXXMethodDecl::isLambdaStaticInvoker(), clang::ento::smartptr::isStdSmartPtr(), methodHasName(), and clang::threadSafety::til::Project::slotName().
◆ isObjCOneArgSelector() bool clang::DeclarationName::isObjCOneArgSelector ( ) const inline ◆ isObjCZeroArgSelector() bool clang::DeclarationName::isObjCZeroArgSelector ( ) const inline ◆ operator bool() clang::DeclarationName::operator bool ( ) const inlineexplicitEvaluates true when this declaration name is non-empty.
Definition at line 377 of file DeclarationName.h.
◆ print() void DeclarationName::print ( raw_ostream & OS, const PrintingPolicy & Policy ) constDefinition at line 130 of file DeclarationName.cpp.
References clang::PrintingPolicy::adjustForCPlusPlus(), CXXConstructorName, CXXConversionFunctionName, CXXDeductionGuideName, CXXDestructorName, CXXLiteralOperatorName, CXXOperatorName, CXXUsingDirective, clang::Type::getAs(), getAsIdentifierInfo(), getCXXDeductionGuideTemplate(), getCXXLiteralIdentifier(), getCXXNameType(), getCXXOverloadedOperator(), clang::NamedDecl::getDeclName(), clang::IdentifierInfo::getName(), getNameKind(), getObjCSelector(), clang::getOpenMPVariantManglingSeparatorStr(), clang::getOperatorSpelling(), Identifier, ObjCMultiArgSelector, ObjCOneArgSelector, ObjCZeroArgSelector, clang::Selector::print(), print(), and printCXXConstructorDestructorName().
Referenced by clang::CodeCompleteConsumer::OverloadCandidate::CreateSignatureString(), clang::operator<<(), print(), clang::NamedDecl::printName(), clang::DeclarationNameInfo::printName(), and clang::index::printSymbolName().
◆ setFETokenInfo() void clang::DeclarationName::setFETokenInfo ( void * T ) inline ◆ DeclarationNameTable ◆ NamedDecl ◆ operator!=Determine whether the specified names are different.
Definition at line 523 of file DeclarationName.h.
◆ operator==Determine whether the specified names are identical.
Definition at line 518 of file DeclarationName.h.
The documentation for this class was generated from the following files:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4