clang 20.0.0git
Functions
clang::TypeName Namespace Reference

Functions

std::string getFullyQualifiedName (QualType QT, const ASTContext &Ctx, const PrintingPolicy &Policy, bool WithGlobalNsPrefix=false)
 Get the fully qualified name for a type.
 
QualType getFullyQualifiedType (QualType QT, const ASTContext &Ctx, bool WithGlobalNsPrefix=false)
 Generates a QualType that can be used to name the same type if used at the end of the current translation unit.
 
static NestedNameSpecifiercreateNestedNameSpecifier (const ASTContext &Ctx, const NamespaceDecl *Namesp, bool WithGlobalNsPrefix)
 Create a NestedNameSpecifier for Namesp and its enclosing scopes.
 
static NestedNameSpecifiercreateNestedNameSpecifier (const ASTContext &Ctx, const TypeDecl *TD, bool FullyQualify, bool WithGlobalNsPrefix)
 Create a NestedNameSpecifier for TagDecl and its enclosing scopes.
 
static NestedNameSpecifiercreateNestedNameSpecifierForScopeOf (const ASTContext &Ctx, const Decl *Decl, bool FullyQualified, bool WithGlobalNsPrefix)
 Create a nested name specifier for the declaring context of the type.
 
static NestedNameSpecifiergetFullyQualifiedNestedNameSpecifier (const ASTContext &Ctx, NestedNameSpecifier *Scope, bool WithGlobalNsPrefix)
 Return a fully qualified version of this name specifier.
 
static bool getFullyQualifiedTemplateName (const ASTContext &Ctx, TemplateName &TName, bool WithGlobalNsPrefix)
 
static bool getFullyQualifiedTemplateArgument (const ASTContext &Ctx, TemplateArgument &Arg, bool WithGlobalNsPrefix)
 
static const TypegetFullyQualifiedTemplateType (const ASTContext &Ctx, const Type *TypePtr, bool WithGlobalNsPrefix)
 
static NestedNameSpecifiercreateOuterNNS (const ASTContext &Ctx, const Decl *D, bool FullyQualify, bool WithGlobalNsPrefix)
 
static NestedNameSpecifiercreateNestedNameSpecifierForScopeOf (const ASTContext &Ctx, const Type *TypePtr, bool FullyQualified, bool WithGlobalNsPrefix)
 Create a nested name specifier for the declaring context of the type.
 

Function Documentation

◆ createNestedNameSpecifier() [1/2]

NestedNameSpecifier * clang::TypeName::createNestedNameSpecifier ( const ASTContext Ctx,
const NamespaceDecl Namesp,
bool  WithGlobalNsPrefix 
)
static

Create a NestedNameSpecifier for Namesp and its enclosing scopes.

Parameters
[in]Ctx- the AST Context to be used.
[in]Namesp- the NamespaceDecl for which a NestedNameSpecifier is requested.
[in]WithGlobalNsPrefix- Indicate whether the global namespace specifier "::" should be prepended or not.

Definition at line 342 of file QualTypeNames.cpp.

References clang::NestedNameSpecifier::Create(), and createOuterNNS().

Referenced by createNestedNameSpecifierForScopeOf(), createOuterNNS(), and getFullyQualifiedNestedNameSpecifier().

◆ createNestedNameSpecifier() [2/2]

NestedNameSpecifier * clang::TypeName::createNestedNameSpecifier ( const ASTContext Ctx,
const TypeDecl TD,
bool  FullyQualify,
bool  WithGlobalNsPrefix 
)
static

Create a NestedNameSpecifier for TagDecl and its enclosing scopes.

Parameters
[in]Ctx- the AST Context to be used.
[in]TD- the TagDecl for which a NestedNameSpecifier is requested.
[in]FullyQualify- Convert all template arguments into fully qualified names.
[in]WithGlobalNsPrefix- Indicate whether the global namespace specifier "::" should be prepended or not.

Definition at line 358 of file QualTypeNames.cpp.

References clang::NestedNameSpecifier::Create(), createOuterNNS(), getFullyQualifiedTemplateType(), and clang::TypeDecl::getTypeForDecl().

◆ createNestedNameSpecifierForScopeOf() [1/2]

static NestedNameSpecifier * clang::TypeName::createNestedNameSpecifierForScopeOf ( const ASTContext Ctx,
const Decl decl,
bool  FullyQualified,
bool  WithGlobalNsPrefix 
)
static

◆ createNestedNameSpecifierForScopeOf() [2/2]

static NestedNameSpecifier * clang::TypeName::createNestedNameSpecifierForScopeOf ( const ASTContext Ctx,
const Type TypePtr,
bool  FullyQualified,
bool  WithGlobalNsPrefix 
)
static

Create a nested name specifier for the declaring context of the type.

Definition at line 319 of file QualTypeNames.cpp.

References createNestedNameSpecifierForScopeOf(), and clang::Type::getAsCXXRecordDecl().

◆ createOuterNNS()

static NestedNameSpecifier * clang::TypeName::createOuterNNS ( const ASTContext Ctx,
const Decl D,
bool  FullyQualify,
bool  WithGlobalNsPrefix 
)
static

◆ getFullyQualifiedName()

std::string clang::TypeName::getFullyQualifiedName ( QualType  QT,
const ASTContext Ctx,
const PrintingPolicy Policy,
bool  WithGlobalNsPrefix = false 
)

Get the fully qualified name for a type.

This includes full qualification of all template parameters etc.

Parameters
[in]QT- the type for which the fully qualified name will be returned.
[in]Ctx- the ASTContext to be used.
[in]WithGlobalNsPrefix- If true, then the global namespace specifier "::" will be prepended to the fully qualified name.

Definition at line 482 of file QualTypeNames.cpp.

References clang::QualType::getAsString(), and getFullyQualifiedType().

◆ getFullyQualifiedNestedNameSpecifier()

static NestedNameSpecifier * clang::TypeName::getFullyQualifiedNestedNameSpecifier ( const ASTContext Ctx,
NestedNameSpecifier scope,
bool  WithGlobalNsPrefix 
)
static

◆ getFullyQualifiedTemplateArgument()

static bool clang::TypeName::getFullyQualifiedTemplateArgument ( const ASTContext Ctx,
TemplateArgument Arg,
bool  WithGlobalNsPrefix 
)
static

◆ getFullyQualifiedTemplateName()

static bool clang::TypeName::getFullyQualifiedTemplateName ( const ASTContext Ctx,
TemplateName TName,
bool  WithGlobalNsPrefix 
)
static

◆ getFullyQualifiedTemplateType()

static const Type * clang::TypeName::getFullyQualifiedTemplateType ( const ASTContext Ctx,
const Type TypePtr,
bool  WithGlobalNsPrefix 
)
static

◆ getFullyQualifiedType()

QualType clang::TypeName::getFullyQualifiedType ( QualType  QT,
const ASTContext Ctx,
bool  WithGlobalNsPrefix = false 
)

Generates a QualType that can be used to name the same type if used at the end of the current translation unit.

Return the fully qualified type, including fully-qualified versions of any template parameters.

This ignores issues such as type shadowing.

Parameters
[in]QT- the type for which the fully qualified type will be returned.
[in]Ctx- the ASTContext to be used.
[in]WithGlobalNsPrefix- Indicate whether the global namespace specifier "::" should be prepended or not.

Definition at line 379 of file QualTypeNames.cpp.

References clang::Class, createNestedNameSpecifierForScopeOf(), clang::Type::getAs(), clang::ASTContext::getElaboratedType(), getFullyQualifiedTemplateType(), getFullyQualifiedType(), clang::QualType::getLocalQualifiers(), clang::ASTContext::getLValueReferenceType(), clang::ASTContext::getMemberPointerType(), clang::Type::getPointeeType(), clang::ASTContext::getPointerType(), clang::ASTContext::getQualifiedType(), clang::QualType::getQualifiers(), clang::ASTContext::getRValueReferenceType(), clang::QualType::getTypePtr(), clang::QualType::hasLocalQualifiers(), and clang::None.

Referenced by AddResultTypeChunk(), getFullyQualifiedName(), getFullyQualifiedTemplateArgument(), and getFullyQualifiedType().