class ObjCObjectPointerType
Declaration
class ObjCObjectPointerType : public Type, public Node { /* full declaration omitted */ };
Description
Represents a pointer to an Objective C object. These are constructed from pointer declarators when the pointee type is an ObjCObjectType (or sugar for one). In addition, the 'id' and 'Class' types are typedefs for these, and the protocol-qualified types 'id <P >' and 'Class <P >' are translated into these. Pointers to pointers to Objective C objects are still PointerTypes; only the first level of pointer gets it own type implementation.
Declared at: clang/include/clang/AST/Type.h:6207
Inherits from: Type, FoldingSetBase::Node
Member Variables
- private clang::QualType PointeeType
Inherited from Type:
Method Overview
- private ObjCObjectPointerType(clang::QualType Canonical, clang::QualType Pointee)
- public static void Profile(llvm::FoldingSetNodeID & ID, clang::QualType T)
- public void Profile(llvm::FoldingSetNodeID & ID)
- public static bool classof(const clang::Type * T)
- public clang::QualType desugar() const
- public clang::ObjCInterfaceDecl * getInterfaceDecl() const
- public const clang::ObjCInterfaceType * getInterfaceType() const
- public unsigned int getNumProtocols() const
- public const clang::ObjCObjectType * getObjectType() const
- public clang::QualType getPointeeType() const
- public clang::ObjCProtocolDecl * getProtocol(unsigned int I) const
- public clang::QualType getSuperClassType() const
- public ArrayRef<clang::QualType> getTypeArgs() const
- public ArrayRef<clang::QualType> getTypeArgsAsWritten() const
- public bool isKindOfType() const
- public bool isObjCClassType() const
- public bool isObjCIdOrClassType() const
- public bool isObjCIdType() const
- public bool isObjCQualifiedClassType() const
- public bool isObjCQualifiedIdType() const
- public bool isSpecialized() const
- public bool isSpecializedAsWritten() const
- public bool isSugared() const
- public bool isUnspecialized() const
- public bool isUnspecializedAsWritten() const
- public clang::ObjCObjectPointerType::qual_iterator qual_begin() const
- public bool qual_empty() const
- public clang::ObjCObjectPointerType::qual_iterator qual_end() const
- public clang::ObjCObjectPointerType::qual_range quals() const
- public const clang::ObjCObjectPointerType * stripObjCKindOfTypeAndQuals(const clang::ASTContext & ctx) const
Inherited from FoldingSetBase::Node:
Inherited from Type:
- public acceptsObjCTypeParams
- protected addDependence
- public canDecayToPointerType
- public canHaveNullability
- public castAs
- public castAsArrayTypeUnsafe
- public containsErrors
- public containsUnexpandedParameterPack
- public dump
- public dump
- public getArrayElementTypeNoTypeQual
- public getAs
- public getAsAdjusted
- public getAsArrayTypeUnsafe
- public getAsCXXRecordDecl
- public getAsComplexIntegerType
- public getAsObjCInterfacePointerType
- public getAsObjCInterfaceType
- public getAsObjCQualifiedClassType
- public getAsObjCQualifiedIdType
- public getAsObjCQualifiedInterfaceType
- public getAsPlaceholderType
- public getAsRecordDecl
- public getAsStructureType
- public getAsTagDecl
- public getAsUnionType
- public getBaseElementTypeUnsafe
- public getCanonicalTypeInternal
- public getCanonicalTypeUnqualified
- public getContainedAutoType
- public getContainedDeducedType
- public getDependence
- public getLinkage
- public getLinkageAndVisibility
- public getLocallyUnqualifiedSingleStepDesugaredType
- public getNullability
- public getObjCARCImplicitLifetime
- public getObjCSubstitutions
- public getPointeeCXXRecordDecl
- public getPointeeOrArrayElementType
- public getPointeeType
- public getScalarTypeKind
- public getSveEltType
- public getTypeClass
- public getTypeClassName
- public getUnqualifiedDesugaredType
- public getVisibility
- public hasAttr
- public hasAutoForTrailingReturnType
- public hasFloatingRepresentation
- public hasIntegerRepresentation
- public hasObjCPointerRepresentation
- public hasPointerRepresentation
- public hasSignedIntegerRepresentation
- public hasSizedVLAType
- public hasUnnamedOrLocalType
- public hasUnsignedIntegerRepresentation
- public isAggregateType
- public isAlignValT
- public isAnyCharacterType
- public isAnyComplexType
- public isAnyPointerType
- public isArithmeticType
- public isArrayType
- public isAtomicType
- public isBFloat16Type
- public isBitIntType
- public isBlockCompatibleObjCPointerType
- public isBlockPointerType
- public isBooleanType
- public isBuiltinType
- public isCARCBridgableType
- public isCUDADeviceBuiltinSurfaceType
- public isCUDADeviceBuiltinTextureType
- public isCanonicalUnqualified
- public isChar16Type
- public isChar32Type
- public isChar8Type
- public isCharType
- public isClassType
- public isClkEventT
- public isComplexIntegerType
- public isComplexType
- public isCompoundType
- public isConstantArrayType
- public isConstantMatrixType
- public isConstantSizeType
- public isDecltypeType
- public isDependentAddressSpaceType
- public isDependentSizedArrayType
- public isDependentType
- public isElaboratedTypeSpecifier
- public isEnumeralType
- public isEventT
- public isExtVectorBoolType
- public isExtVectorType
- public isFixedPointOrIntegerType
- public isFixedPointType
- public isFloat128Type
- public isFloat16Type
- public isFloatingType
- public isFromAST
- public isFunctionNoProtoType
- public isFunctionPointerType
- public isFunctionProtoType
- public isFunctionReferenceType
- public isFunctionType
- public isFundamentalType
- public isHalfType
- public isIbm128Type
- public isImageType
- public isIncompleteArrayType
- public isIncompleteOrObjectType
- public isIncompleteType
- public isInstantiationDependentType
- public isIntegerType
- public isIntegralOrEnumerationType
- public isIntegralOrUnscopedEnumerationType
- public isIntegralType
- public isInterfaceType
- public isLValueReferenceType
- public isLinkageValid
- public isLiteralType
- public isMatrixType
- public isMemberDataPointerType
- public isMemberFunctionPointerType
- public isMemberPointerType
- public isNonOverloadPlaceholderType
- public isNothrowT
- public isNullPtrType
- public isOCLExtOpaqueType
- public isOCLIntelSubgroupAVCType
- public isObjCARCBridgableType
- public isObjCARCImplicitlyUnretainedType
- public isObjCBoxableRecordType
- public isObjCBuiltinType
- public isObjCClassOrClassKindOfType
- public isObjCClassType
- public isObjCIdOrObjectKindOfType
- public isObjCIdType
- public isObjCIndependentClassType
- public isObjCIndirectLifetimeType
- public isObjCInertUnsafeUnretainedType
- public isObjCLifetimeType
- public isObjCNSObjectType
- public isObjCObjectOrInterfaceType
- public isObjCObjectPointerType
- public isObjCObjectType
- public isObjCQualifiedClassType
- public isObjCQualifiedIdType
- public isObjCQualifiedInterfaceType
- public isObjCRetainableType
- public isObjCSelType
- public isObjectPointerType
- public isObjectType
- public isOpenCLSpecificType
- public isOverloadableType
- public isPipeType
- public isPlaceholderType
- public isPointerType
- public isPromotableIntegerType
- public isQueueT
- public isRValueReferenceType
- public isRealFloatingType
- public isRealType
- public isRecordType
- public isReferenceType
- public isReserveIDT
- public isSamplerT
- public isSaturatedFixedPointType
- public isScalarType
- public isScopedEnumeralType
- public isSignedFixedPointType
- public isSignedIntegerOrEnumerationType
- public isSignedIntegerType
- public isSizelessBuiltinType
- public isSizelessType
- public isSpecificBuiltinType
- public isSpecificPlaceholderType
- public isSpecifierType
- public isStandardLayoutType
- public isStdByteType
- public isStructuralType
- public isStructureOrClassType
- public isStructureType
- public isTemplateTypeParmType
- public isTypedefNameType
- public isUndeducedAutoType
- public isUndeducedType
- public isUnionType
- public isUnsaturatedFixedPointType
- public isUnscopedEnumerationType
- public isUnsignedFixedPointType
- public isUnsignedIntegerOrEnumerationType
- public isUnsignedIntegerType
- public isVLSTBuiltinType
- public isVariableArrayType
- public isVariablyModifiedType
- public isVectorType
- public isVisibilityExplicit
- public isVoidPointerType
- public isVoidType
- public isWideCharType
- protected setDependence
- protected this_
Inherited from ExtQualsTypeCommonBase:
Methods
¶ObjCObjectPointerType(clang::QualType Canonical,
clang::QualType Pointee)
ObjCObjectPointerType(clang::QualType Canonical,
clang::QualType Pointee)
Declared at: clang/include/clang/AST/Type.h:6212
Parameters
- clang::QualType Canonical
- clang::QualType Pointee
¶static void Profile(llvm::FoldingSetNodeID& ID,
clang::QualType T)
static void Profile(llvm::FoldingSetNodeID& ID,
clang::QualType T)
Declared at: clang/include/clang/AST/Type.h:6368
Parameters
¶void Profile(llvm::FoldingSetNodeID& ID)
void Profile(llvm::FoldingSetNodeID& ID)
Declared at: clang/include/clang/AST/Type.h:6364
Parameters
¶static bool classof(const clang::Type* T)
static bool classof(const clang::Type* T)
Declared at: clang/include/clang/AST/Type.h:6372
Parameters
- const clang::Type* T
¶clang::QualType desugar() const
clang::QualType desugar() const
Declared at: clang/include/clang/AST/Type.h:6349
¶clang::ObjCInterfaceDecl* getInterfaceDecl() const
clang::ObjCInterfaceDecl* getInterfaceDecl() const
Description
If this pointer points to an Objective @ interface type, gets the declaration for that interface.
Declared at: clang/include/clang/AST/Type.h:6259
Returns
null if the base type for this pointer is 'id' or 'Class'
¶const clang::ObjCInterfaceType* getInterfaceType()
const
const clang::ObjCInterfaceType* getInterfaceType()
const
Description
If this pointer points to an Objective C @ interface type, gets the type for that interface. Any protocol qualifiers on the interface are ignored.
Declared at: clang/include/clang/AST/Type.h:6253
Returns
null if the base type for this pointer is 'id' or 'Class'
¶unsigned int getNumProtocols() const
unsigned int getNumProtocols() const
Description
Return the number of qualifying protocols on the object type.
Declared at: clang/include/clang/AST/Type.h:6339
¶const clang::ObjCObjectType* getObjectType() const
const clang::ObjCObjectType* getObjectType() const
Description
Gets the type pointed to by this ObjC pointer. Always returns non-null. This method is equivalent to getPointeeType() except that it discards any typedefs (or other sugar) between this type and the "outermost" object type. So for: For 'A*', getObjectType() will return 'A'. For 'A <P >*', getObjectType() will return 'A <P >'. For 'AP*', getObjectType() will return 'A <P >'. For 'A1*', getObjectType() will return 'A'. For 'A1 <P >*', getObjectType() will return 'A1 <P >'. For 'A1P*', getObjectType() will return 'A1 <P >'. For 'A1PQ*', getObjectType() will return 'A1 <Q >', because adding protocols to a protocol-qualified base discards the old qualifiers (for now). But if it didn't, getObjectType() would return 'A1P <Q >' (and we'd have to make iterating over qualifiers more complicated).
Declared at: clang/include/clang/AST/Type.h:6244
¶clang::QualType getPointeeType() const
clang::QualType getPointeeType() const
Description
Gets the type pointed to by this ObjC pointer. The result will always be an ObjCObjectType or sugar thereof.
Declared at: clang/include/clang/AST/Type.h:6219
¶clang::ObjCProtocolDecl* getProtocol(
unsigned int I) const
clang::ObjCProtocolDecl* getProtocol(
unsigned int I) const
Description
Retrieve a qualifying protocol by index on the object type.
Declared at: clang/include/clang/AST/Type.h:6344
Parameters
- unsigned int I
¶clang::QualType getSuperClassType() const
clang::QualType getSuperClassType() const
Description
Retrieve the type of the superclass of this object pointer type. This operation substitutes any type arguments into the superclass of the current class type, potentially producing a pointer to a specialization of the superclass type. Produces a null type if there is no superclass.
Declared at: clang/include/clang/AST/Type.h:6357
¶ArrayRef<clang::QualType> getTypeArgs() const
ArrayRef<clang::QualType> getTypeArgs() const
Description
Retrieve the type arguments for this type.
Declared at: clang/include/clang/AST/Type.h:6311
¶ArrayRef<clang::QualType> getTypeArgsAsWritten()
const
ArrayRef<clang::QualType> getTypeArgsAsWritten()
const
Description
Retrieve the type arguments for this type.
Declared at: clang/include/clang/AST/Type.h:6316
¶bool isKindOfType() const
bool isKindOfType() const
Description
Whether this is a "__kindof" type.
Declared at: clang/include/clang/AST/Type.h:6293
¶bool isObjCClassType() const
bool isObjCClassType() const
Description
True if this is equivalent to the 'Class' type, i.e. if its object tive is the primitive 'Class' type with no protocols.
Declared at: clang/include/clang/AST/Type.h:6271
¶bool isObjCIdOrClassType() const
bool isObjCIdOrClassType() const
Description
True if this is equivalent to the 'id' or 'Class' type,
Declared at: clang/include/clang/AST/Type.h:6276
¶bool isObjCIdType() const
bool isObjCIdType() const
Description
True if this is equivalent to the 'id' type, i.e. if its object type is the primitive 'id' type with no protocols.
Declared at: clang/include/clang/AST/Type.h:6265
¶bool isObjCQualifiedClassType() const
bool isObjCQualifiedClassType() const
Description
True if this is equivalent to 'Class <P >' for some non-empty set of protocols.
Declared at: clang/include/clang/AST/Type.h:6288
¶bool isObjCQualifiedIdType() const
bool isObjCQualifiedIdType() const
Description
True if this is equivalent to 'id <P >' for some non-empty set of protocols.
Declared at: clang/include/clang/AST/Type.h:6282
¶bool isSpecialized() const
bool isSpecialized() const
Description
Whether this type is specialized, meaning that it has type arguments.
Declared at: clang/include/clang/AST/Type.h:6296
¶bool isSpecializedAsWritten() const
bool isSpecializedAsWritten() const
Description
Whether this type is specialized, meaning that it has type arguments.
Declared at: clang/include/clang/AST/Type.h:6299
¶bool isSugared() const
bool isSugared() const
Declared at: clang/include/clang/AST/Type.h:6348
¶bool isUnspecialized() const
bool isUnspecialized() const
Description
Whether this type is unspecialized, meaning that is has no type arguments.
Declared at: clang/include/clang/AST/Type.h:6304
¶bool isUnspecializedAsWritten() const
bool isUnspecializedAsWritten() const
Description
Determine whether this object type is "unspecialized" as written, meaning that it has no type arguments.
Declared at: clang/include/clang/AST/Type.h:6308
¶clang::ObjCObjectPointerType::qual_iterator
qual_begin() const
clang::ObjCObjectPointerType::qual_iterator
qual_begin() const
Declared at: clang/include/clang/AST/Type.h:6328
¶bool qual_empty() const
bool qual_empty() const
Declared at: clang/include/clang/AST/Type.h:6336
¶clang::ObjCObjectPointerType::qual_iterator
qual_end() const
clang::ObjCObjectPointerType::qual_iterator
qual_end() const
Declared at: clang/include/clang/AST/Type.h:6332
¶clang::ObjCObjectPointerType::qual_range quals()
const
clang::ObjCObjectPointerType::qual_range quals()
const
Declared at: clang/include/clang/AST/Type.h:6326
¶const clang::ObjCObjectPointerType*
stripObjCKindOfTypeAndQuals(
const clang::ASTContext& ctx) const
const clang::ObjCObjectPointerType*
stripObjCKindOfTypeAndQuals(
const clang::ASTContext& ctx) const
Description
Strip off the Objective-C "kindof" type and (with it) any protocol qualifiers.
Declared at: clang/include/clang/AST/Type.h:6361
Parameters
- const clang::ASTContext& ctx