clang 17.0.0git
Public Member Functions | List of all members
clang::DeclarationNameTable Class Reference

DeclarationNameTable is used to store and retrieve DeclarationName instances for the various kinds of declaration names, e.g., normal identifiers, C++ constructor names, etc. More...

#include "clang/AST/DeclarationName.h"

Public Member Functions

 DeclarationNameTable (const ASTContext &C)
 
 DeclarationNameTable (const DeclarationNameTable &)=delete
 
DeclarationNameTableoperator= (const DeclarationNameTable &)=delete
 
 DeclarationNameTable (DeclarationNameTable &&)=delete
 
DeclarationNameTableoperator= (DeclarationNameTable &&)=delete
 
 ~DeclarationNameTable ()=default
 
DeclarationName getIdentifier (const IdentifierInfo *ID)
 Create a declaration name that is a simple identifier.
 
DeclarationName getCXXConstructorName (CanQualType Ty)
 Returns the name of a C++ constructor for the given Type.
 
DeclarationName getCXXDestructorName (CanQualType Ty)
 Returns the name of a C++ destructor for the given Type.
 
DeclarationName getCXXDeductionGuideName (TemplateDecl *TD)
 Returns the name of a C++ deduction guide for the given template.
 
DeclarationName getCXXConversionFunctionName (CanQualType Ty)
 Returns the name of a C++ conversion function for the given Type.
 
DeclarationName getCXXSpecialName (DeclarationName::NameKind Kind, CanQualType Ty)
 Returns a declaration name for special kind of C++ name, e.g., for a constructor, destructor, or conversion function.
 
DeclarationName getCXXOperatorName (OverloadedOperatorKind Op)
 Get the name of the overloadable C++ operator corresponding to Op.
 
DeclarationName getCXXLiteralOperatorName (IdentifierInfo *II)
 Get the name of the literal operator function with II as the identifier.
 

Detailed Description

DeclarationNameTable is used to store and retrieve DeclarationName instances for the various kinds of declaration names, e.g., normal identifiers, C++ constructor names, etc.

This class contains uniqued versions of each of the C++ special names, which can be retrieved using its member functions (e.g., getCXXConstructorName).

Definition at line 576 of file DeclarationName.h.

Constructor & Destructor Documentation

◆ DeclarationNameTable() [1/3]

DeclarationNameTable::DeclarationNameTable ( const ASTContext C)

Definition at line 282 of file DeclarationName.cpp.

References clang::NUM_OVERLOADED_OPERATORS.

◆ DeclarationNameTable() [2/3]

clang::DeclarationNameTable::DeclarationNameTable ( const DeclarationNameTable )
delete

◆ DeclarationNameTable() [3/3]

clang::DeclarationNameTable::DeclarationNameTable ( DeclarationNameTable &&  )
delete

◆ ~DeclarationNameTable()

clang::DeclarationNameTable::~DeclarationNameTable ( )
default

Member Function Documentation

◆ getCXXConstructorName()

DeclarationName DeclarationNameTable::getCXXConstructorName ( CanQualType  Ty)

◆ getCXXConversionFunctionName()

DeclarationName DeclarationNameTable::getCXXConversionFunctionName ( CanQualType  Ty)

◆ getCXXDeductionGuideName()

DeclarationName DeclarationNameTable::getCXXDeductionGuideName ( TemplateDecl TD)

◆ getCXXDestructorName()

DeclarationName DeclarationNameTable::getCXXDestructorName ( CanQualType  Ty)

◆ getCXXLiteralOperatorName()

DeclarationName DeclarationNameTable::getCXXLiteralOperatorName ( IdentifierInfo II)

◆ getCXXOperatorName()

DeclarationName clang::DeclarationNameTable::getCXXOperatorName ( OverloadedOperatorKind  Op)
inline

Get the name of the overloadable C++ operator corresponding to Op.

Definition at line 648 of file DeclarationName.h.

Referenced by clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXFoldExpr(), clang::Sema::AddMemberOperatorCandidates(), clang::TemplateDeclInstantiator::adjustForRewrite(), clang::Sema::BuildBlockForLambdaConversion(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildOperatorCoawaitLookupExpr(), clang::Sema::BuildOverloadedArrowExpr(), buildSingleCopyAssignRecursively(), clang::Sema::CreateOverloadedArraySubscriptExpr(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::CreateOverloadedUnaryOp(), clang::Sema::DeclareGlobalNewDelete(), clang::Sema::DeclareImplicitCopyAssignment(), clang::Sema::DeclareImplicitMoveAssignment(), DiagnoseTwoPhaseOperatorLookup(), doesUsualArrayDeleteWantSize(), clang::Sema::FindAllocationFunctions(), clang::Sema::FindDeallocationFunctionForDestructor(), findDeleteForPromise(), findImplicitlyDeclaredEqualityComparisons(), getLambdaCallOperatorHelper(), clang::ASTContext::getNameForTemplate(), clang::Sema::GetNameFromUnqualifiedId(), clang::ASTImporter::Import(), clang::Sema::isTemplateName(), clang::Sema::LookupOverloadedBinOp(), clang::Sema::LookupOverloadedOperatorName(), clang::Sema::LookupSpecialMember(), clang::Sema::ProduceCallSignatureHelp(), resolveAllocationOverload(), resolveBuiltinNewDeleteOverload(), shouldAddReversedEqEq(), clang::Sema::ShouldDeleteSpecialMember(), clang::Sema::startLambdaDefinition(), and threadSafetyCheckIsSmartPointer().

◆ getCXXSpecialName()

DeclarationName DeclarationNameTable::getCXXSpecialName ( DeclarationName::NameKind  Kind,
CanQualType  Ty 
)

◆ getIdentifier()

DeclarationName clang::DeclarationNameTable::getIdentifier ( const IdentifierInfo ID)
inline

Create a declaration name that is a simple identifier.

Definition at line 622 of file DeclarationName.h.

Referenced by clang::ASTContext::getNameForTemplate(), hasMember(), and processImplicitMapsWithDefaultMappers().

◆ operator=() [1/2]

DeclarationNameTable & clang::DeclarationNameTable::operator= ( const DeclarationNameTable )
delete

◆ operator=() [2/2]

DeclarationNameTable & clang::DeclarationNameTable::operator= ( DeclarationNameTable &&  )
delete

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