clang
3.7.0
|
Represents a qualified type name for which the type name is dependent. More...
#include <Type.h>
Public Member Functions | |
NestedNameSpecifier * | getQualifier () const |
Retrieve the qualification on this type. More... | |
const IdentifierInfo * | getIdentifier () const |
Retrieve the type named by the typename specifier as an identifier. More... | |
bool | isSugared () const |
QualType | desugar () const |
void | Profile (llvm::FoldingSetNodeID &ID) |
![]() | |
ElaboratedTypeKeyword | getKeyword () const |
![]() | |
TypeClass | getTypeClass () const |
bool | isFromAST () const |
Whether this type comes from an AST file. More... | |
bool | containsUnexpandedParameterPack () const |
Whether this type is or contains an unexpanded parameter pack, used to support C++0x variadic templates. More... | |
bool | isCanonicalUnqualified () const |
QualType | getLocallyUnqualifiedSingleStepDesugaredType () const |
bool | isIncompleteType (NamedDecl **Def=nullptr) const |
Def If non-NULL, and the type refers to some kind of declaration that can be completed (such as a C struct, C++ class, or Objective-C class), will be set to the declaration. More... | |
bool | isIncompleteOrObjectType () const |
bool | isObjectType () const |
Determine whether this type is an object type. More... | |
bool | isLiteralType (const ASTContext &Ctx) const |
bool | isStandardLayoutType () const |
Test if this type is a standard-layout type. (C++0x [basic.type]p9) More... | |
bool | isBuiltinType () const |
isBuiltinType - returns true if the type is a builtin type. More... | |
bool | isSpecificBuiltinType (unsigned K) const |
isSpecificBuiltinType - Test for a particular builtin type. More... | |
bool | isPlaceholderType () const |
const BuiltinType * | getAsPlaceholderType () const |
bool | isSpecificPlaceholderType (unsigned K) const |
isSpecificPlaceholderType - Test for a specific placeholder type. More... | |
bool | isNonOverloadPlaceholderType () const |
bool | isIntegerType () const |
bool | isEnumeralType () const |
bool | isBooleanType () const |
bool | isCharType () const |
bool | isWideCharType () const |
bool | isChar16Type () const |
bool | isChar32Type () const |
bool | isAnyCharacterType () const |
Determine whether this type is any of the built-in character types. More... | |
bool | isIntegralType (ASTContext &Ctx) const |
Determine whether this type is an integral type. More... | |
bool | isIntegralOrEnumerationType () const |
Determine whether this type is an integral or enumeration type. More... | |
bool | isIntegralOrUnscopedEnumerationType () const |
Determine whether this type is an integral or unscoped enumeration type. More... | |
bool | isRealFloatingType () const |
Floating point categories. More... | |
bool | isComplexType () const |
bool | isAnyComplexType () const |
bool | isFloatingType () const |
bool | isHalfType () const |
bool | isRealType () const |
bool | isArithmeticType () const |
bool | isVoidType () const |
bool | isScalarType () const |
bool | isAggregateType () const |
Determines whether the type is a C++ aggregate type or C aggregate or union type. More... | |
bool | isFundamentalType () const |
Tests whether the type is categorized as a fundamental type. More... | |
bool | isCompoundType () const |
Tests whether the type is categorized as a compound type. More... | |
bool | isFunctionType () const |
bool | isFunctionNoProtoType () const |
bool | isFunctionProtoType () const |
bool | isPointerType () const |
bool | isAnyPointerType () const |
bool | isBlockPointerType () const |
bool | isVoidPointerType () const |
bool | isReferenceType () const |
bool | isLValueReferenceType () const |
bool | isRValueReferenceType () const |
bool | isFunctionPointerType () const |
bool | isMemberPointerType () const |
bool | isMemberFunctionPointerType () const |
bool | isMemberDataPointerType () const |
bool | isArrayType () const |
bool | isConstantArrayType () const |
bool | isIncompleteArrayType () const |
bool | isVariableArrayType () const |
bool | isDependentSizedArrayType () const |
bool | isRecordType () const |
bool | isClassType () const |
bool | isStructureType () const |
bool | isObjCBoxableRecordType () const |
bool | isInterfaceType () const |
bool | isStructureOrClassType () const |
bool | isUnionType () const |
bool | isComplexIntegerType () const |
bool | isVectorType () const |
bool | isExtVectorType () const |
bool | isObjCObjectPointerType () const |
bool | isObjCRetainableType () const |
bool | isObjCLifetimeType () const |
bool | isObjCIndirectLifetimeType () const |
bool | isObjCNSObjectType () const |
bool | isObjCIndependentClassType () const |
bool | isObjCObjectType () const |
bool | isObjCQualifiedInterfaceType () const |
bool | isObjCQualifiedIdType () const |
bool | isObjCQualifiedClassType () const |
bool | isObjCObjectOrInterfaceType () const |
bool | isObjCIdType () const |
bool | isObjCIdOrObjectKindOfType (const ASTContext &ctx, const ObjCObjectType *&bound) const |
bool | isObjCClassType () const |
bool | isObjCClassOrClassKindOfType () const |
bool | isBlockCompatibleObjCPointerType (ASTContext &ctx) const |
bool | isObjCSelType () const |
bool | isObjCBuiltinType () const |
bool | isObjCARCBridgableType () const |
Determine whether the given type T is a "bridgable" Objective-C type, which is either an Objective-C object pointer type or an. More... | |
bool | isCARCBridgableType () const |
Determine whether the given type T is a "bridgeable" C type. More... | |
bool | isTemplateTypeParmType () const |
bool | isNullPtrType () const |
bool | isAtomicType () const |
bool | isImage1dT () const |
bool | isImage1dArrayT () const |
bool | isImage1dBufferT () const |
bool | isImage2dT () const |
bool | isImage2dArrayT () const |
bool | isImage3dT () const |
bool | isImageType () const |
bool | isSamplerT () const |
bool | isEventT () const |
bool | isOpenCLSpecificType () const |
bool | isObjCARCImplicitlyUnretainedType () const |
Qualifiers::ObjCLifetime | getObjCARCImplicitLifetime () const |
Return the implicit lifetime for this type, which must not be dependent. More... | |
ScalarTypeKind | getScalarTypeKind () const |
getScalarTypeKind - Given that this is a scalar type, classify it. More... | |
bool | isDependentType () const |
bool | isInstantiationDependentType () const |
Determine whether this type is an instantiation-dependent type, meaning that the type involves a template parameter (even if the definition does not actually depend on the type substituted for that template parameter). More... | |
bool | isUndeducedType () const |
Determine whether this type is an undeduced type, meaning that it somehow involves a C++11 'auto' type which has not yet been deduced. More... | |
bool | isVariablyModifiedType () const |
Whether this type is a variably-modified type (C99 6.7.5). More... | |
bool | hasSizedVLAType () const |
Whether this type involves a variable-length array type with a definite size. More... | |
bool | hasUnnamedOrLocalType () const |
Whether this type is or contains a local or unnamed type. More... | |
bool | isOverloadableType () const |
Determines whether this is a type for which one can define an overloaded operator. More... | |
bool | isElaboratedTypeSpecifier () const |
Determine wither this type is a C++ elaborated-type-specifier. More... | |
bool | canDecayToPointerType () const |
Determines whether this type can decay to a pointer type. More... | |
bool | hasPointerRepresentation () const |
bool | hasObjCPointerRepresentation () const |
bool | hasIntegerRepresentation () const |
Determine whether this type has an integer representation of some sort, e.g., it is an integer type or a vector. More... | |
bool | hasSignedIntegerRepresentation () const |
Determine whether this type has an signed integer representation of some sort, e.g., it is an signed integer type or a vector. More... | |
bool | hasUnsignedIntegerRepresentation () const |
Determine whether this type has an unsigned integer representation of some sort, e.g., it is an unsigned integer type or a vector. More... | |
bool | hasFloatingRepresentation () const |
Determine whether this type has a floating-point representation of some sort, e.g., it is a floating-point type or a vector thereof. More... | |
const RecordType * | getAsStructureType () const |
const RecordType * | getAsUnionType () const |
NOTE: getAs*ArrayType are methods on ASTContext. More... | |
const ComplexType * | getAsComplexIntegerType () const |
const ObjCObjectType * | getAsObjCInterfaceType () const |
const ObjCObjectPointerType * | getAsObjCInterfacePointerType () const |
const ObjCObjectPointerType * | getAsObjCQualifiedIdType () const |
const ObjCObjectPointerType * | getAsObjCQualifiedClassType () const |
const ObjCObjectType * | getAsObjCQualifiedInterfaceType () const |
CXXRecordDecl * | getAsCXXRecordDecl () const |
Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or because it is the injected-class-name type of a class template or class template partial specialization. More... | |
TagDecl * | getAsTagDecl () const |
Retrieves the TagDecl that this type refers to, either because the type is a TagType or because it is the injected-class-name type of a class template or class template partial specialization. More... | |
const CXXRecordDecl * | getPointeeCXXRecordDecl () const |
AutoType * | getContainedAutoType () const |
Get the AutoType whose type will be deduced for a variable with an initializer of this type. This looks through declarators like pointer types, but not through decltype or typedefs. More... | |
template<typename T > | |
const T * | getAs () const |
const ArrayType * | getAsArrayTypeUnsafe () const |
template<typename T > | |
const T * | castAs () const |
const ArrayType * | castAsArrayTypeUnsafe () const |
const Type * | getBaseElementTypeUnsafe () const |
const Type * | getArrayElementTypeNoTypeQual () const |
QualType | getPointeeType () const |
const Type * | getUnqualifiedDesugaredType () const |
bool | isPromotableIntegerType () const |
More type predicates useful for type checking/promotion. More... | |
bool | isSignedIntegerType () const |
bool | isUnsignedIntegerType () const |
bool | isSignedIntegerOrEnumerationType () const |
bool | isUnsignedIntegerOrEnumerationType () const |
bool | isConstantSizeType () const |
bool | isSpecifierType () const |
Linkage | getLinkage () const |
Determine the linkage of this type. More... | |
Visibility | getVisibility () const |
Determine the visibility of this type. More... | |
bool | isVisibilityExplicit () const |
Return true if the visibility was explicitly set is the code. More... | |
LinkageInfo | getLinkageAndVisibility () const |
Determine the linkage and visibility of this type. More... | |
bool | isLinkageValid () const |
True if the computed linkage is valid. Used for consistency checking. Should always return true. More... | |
Optional< NullabilityKind > | getNullability (const ASTContext &context) const |
bool | canHaveNullability () const |
Optional< ArrayRef< QualType > > | getObjCSubstitutions (const DeclContext *dc) const |
bool | acceptsObjCTypeParams () const |
const char * | getTypeClassName () const |
QualType | getCanonicalTypeInternal () const |
CanQualType | getCanonicalTypeUnqualified () const |
void | dump () const |
template<> | |
const TypedefType * | getAs () const |
This will check for a TypedefType by removing any existing sugar until it reaches a TypedefType or a non-sugared type. More... | |
template<> | |
const TemplateSpecializationType * | getAs () const |
This will check for a TemplateSpecializationType by removing any existing sugar until it reaches a TemplateSpecializationType or a non-sugared type. More... | |
template<> | |
const AttributedType * | getAs () const |
This will check for an AttributedType by removing any existing sugar until it reaches an AttributedType or a non-sugared type. More... | |
Static Public Member Functions | |
static void | Profile (llvm::FoldingSetNodeID &ID, ElaboratedTypeKeyword Keyword, NestedNameSpecifier *NNS, const IdentifierInfo *Name) |
static bool | classof (const Type *T) |
![]() | |
static ElaboratedTypeKeyword | getKeywordForTypeSpec (unsigned TypeSpec) |
static TagTypeKind | getTagTypeKindForTypeSpec (unsigned TypeSpec) |
static ElaboratedTypeKeyword | getKeywordForTagTypeKind (TagTypeKind Tag) |
static TagTypeKind | getTagTypeKindForKeyword (ElaboratedTypeKeyword Keyword) |
getTagTypeKindForKeyword - Converts an elaborated type keyword into More... | |
static bool | KeywordIsTagTypeKind (ElaboratedTypeKeyword Keyword) |
static StringRef | getKeywordName (ElaboratedTypeKeyword Keyword) |
static StringRef | getTagTypeKindName (TagTypeKind Kind) |
static CannotCastToThisType | classof (const Type *) |
Friends | |
class | ASTContext |
Represents a qualified type name for which the type name is dependent.
DependentNameType represents a class of dependent types that involve a possibly dependent nested-name-specifier (e.g., "T::") followed by a name of a type. The DependentNameType may start with a "typename" (for a typename-specifier), "class", "struct", "union", or "enum" (for a dependent elaborated-type-specifier), or nothing (in contexts where we know that we must be referring to a type, e.g., in a base class specifier). Typically the nested-name-specifier is dependent, but in MSVC compatibility mode, this type is used with non-dependent names to delay name lookup until instantiation.
Definition at line 4331 of file Type.h.
References clang::Type::getTypeClass().
|
inline |
Definition at line 4318 of file Type.h.
References clang::ExtQualsTypeCommonBase::QualType.
|
inline |
Retrieve the type named by the typename specifier as an identifier.
This routine will return a non-NULL identifier pointer when the form of the original typename was terminated by an identifier, e.g., "typename T::type".
Definition at line 4313 of file Type.h.
Referenced by IsStructurallyEquivalent().
|
inline |
Retrieve the qualification on this type.
Definition at line 4305 of file Type.h.
Referenced by IsStructurallyEquivalent().
|
inline |
Definition at line 4320 of file Type.h.
Referenced by clang::ASTContext::getDependentNameType().
|
inlinestatic |
|
friend |