clang  3.9.0
Functions
clang::TypeName Namespace Reference

Functions

std::string getFullyQualifiedName (QualType QT, const ASTContext &Ctx, bool WithGlobalNsPrefix=false)
 Get the fully qualified name for a type. More...
 
static QualType getFullyQualifiedType (QualType QT, const ASTContext &Ctx, bool WithGlobalNsPrefix)
 Generates a QualType that can be used to name the same type if used at the end of the current translation unit. More...
 
static NestedNameSpecifiercreateNestedNameSpecifier (const ASTContext &Ctx, const NamespaceDecl *Namesp, bool WithGlobalNsPrefix)
 Create a NestedNameSpecifier for Namesp and its enclosing scopes. More...
 
static NestedNameSpecifiercreateNestedNameSpecifier (const ASTContext &Ctx, const TypeDecl *TD, bool FullyQualify, bool WithGlobalNsPrefix)
 Create a NestedNameSpecifier for TagDecl and its enclosing scopes. More...
 
static NestedNameSpecifiercreateNestedNameSpecifierForScopeOf (const ASTContext &Ctx, const Decl *Decl, bool FullyQualified, bool WithGlobalNsPrefix)
 Create a nested name specifier for the declaring context of the type. More...
 
static NestedNameSpecifiergetFullyQualifiedNestedNameSpecifier (const ASTContext &Ctx, NestedNameSpecifier *Scope, bool WithGlobalNsPrefix)
 Return a fully qualified version of this name specifier. More...
 
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. More...
 

Function Documentation

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 355 of file QualTypeNames.cpp.

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

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

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 371 of file QualTypeNames.cpp.

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

static NestedNameSpecifier * clang::TypeName::createNestedNameSpecifierForScopeOf ( const ASTContext &  Ctx,
const Decl Decl,
bool  FullyQualified,
bool  WithGlobalNsPrefix 
)
static
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 332 of file QualTypeNames.cpp.

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

static NestedNameSpecifier* clang::TypeName::createOuterNNS ( const ASTContext &  Ctx,
const Decl D,
bool  FullyQualify,
bool  WithGlobalNsPrefix 
)
static
std::string clang::TypeName::getFullyQualifiedName ( QualType  QT,
const ASTContext &  Ctx,
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 466 of file QualTypeNames.cpp.

References clang::QualType::getAsString(), getFullyQualifiedType(), clang::ASTContext::getPrintingPolicy(), and clang::PrintingPolicy::SuppressScope.

static NestedNameSpecifier * clang::TypeName::getFullyQualifiedNestedNameSpecifier ( const ASTContext &  Ctx,
NestedNameSpecifier *  scope,
bool  WithGlobalNsPrefix 
)
static
static bool clang::TypeName::getFullyQualifiedTemplateArgument ( const ASTContext &  Ctx,
TemplateArgument &  Arg,
bool  WithGlobalNsPrefix 
)
static
static bool clang::TypeName::getFullyQualifiedTemplateName ( const ASTContext &  Ctx,
TemplateName &  TName,
bool  WithGlobalNsPrefix 
)
static
static const Type* clang::TypeName::getFullyQualifiedTemplateType ( const ASTContext &  Ctx,
const Type *  TypePtr,
bool  WithGlobalNsPrefix 
)
static
QualType clang::TypeName::getFullyQualifiedType ( QualType  QT,
const ASTContext &  Ctx,
bool  WithGlobalNsPrefix 
)
static

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 384 of file QualTypeNames.cpp.

References createNestedNameSpecifierForScopeOf(), clang::desugar(), clang::ETK_None, clang::ASTContext::getElaboratedType(), getFullyQualifiedTemplateType(), clang::QualType::getLocalQualifiers(), clang::ASTContext::getLValueReferenceType(), clang::Type::getPointeeType(), clang::ASTContext::getPointerType(), clang::ASTContext::getQualifiedType(), clang::QualType::getQualifiers(), clang::ASTContext::getRValueReferenceType(), clang::QualType::getTypePtr(), and clang::QualType::hasLocalQualifiers().

Referenced by getFullyQualifiedName(), and getFullyQualifiedTemplateArgument().