clang
6.0.0
|
Represents a pointer to an Objective C object. More...
#include "clang/AST/Type.h"
Public Types | |
using | qual_iterator = ObjCObjectType::qual_iterator |
An iterator over the qualifiers on the object type. More... | |
using | qual_range = llvm::iterator_range< qual_iterator > |
![]() | |
enum | TypeClass { TagFirst = Record, TagLast = Enum } |
enum | ScalarTypeKind { STK_CPointer, STK_BlockPointer, STK_ObjCObjectPointer, STK_MemberPointer, STK_Bool, STK_Integral, STK_Floating, STK_IntegralComplex, STK_FloatingComplex } |
Public Member Functions | |
QualType | getPointeeType () const |
Gets the type pointed to by this ObjC pointer. More... | |
const ObjCObjectType * | getObjectType () const |
Gets the type pointed to by this ObjC pointer. More... | |
const ObjCInterfaceType * | getInterfaceType () const |
If this pointer points to an Objective C @interface type, gets the type for that interface. More... | |
ObjCInterfaceDecl * | getInterfaceDecl () const |
If this pointer points to an Objective @interface type, gets the declaration for that interface. More... | |
bool | isObjCIdType () const |
True if this is equivalent to the 'id' type, i.e. More... | |
bool | isObjCClassType () const |
True if this is equivalent to the 'Class' type, i.e. More... | |
bool | isObjCIdOrClassType () const |
True if this is equivalent to the 'id' or 'Class' type,. More... | |
bool | isObjCQualifiedIdType () const |
True if this is equivalent to 'id. More... | |
bool | isObjCQualifiedClassType () const |
True if this is equivalent to 'Class. More... | |
bool | isKindOfType () const |
Whether this is a "__kindof" type. More... | |
bool | isSpecialized () const |
Whether this type is specialized, meaning that it has type arguments. More... | |
bool | isSpecializedAsWritten () const |
Whether this type is specialized, meaning that it has type arguments. More... | |
bool | isUnspecialized () const |
Whether this type is unspecialized, meaning that is has no type arguments. More... | |
bool | isUnspecializedAsWritten () const |
Determine whether this object type is "unspecialized" as written, meaning that it has no type arguments. More... | |
ArrayRef< QualType > | getTypeArgs () const |
Retrieve the type arguments for this type. More... | |
ArrayRef< QualType > | getTypeArgsAsWritten () const |
Retrieve the type arguments for this type. More... | |
qual_range | quals () const |
qual_iterator | qual_begin () const |
qual_iterator | qual_end () const |
bool | qual_empty () const |
unsigned | getNumProtocols () const |
Return the number of qualifying protocols on the object type. More... | |
ObjCProtocolDecl * | getProtocol (unsigned I) const |
Retrieve a qualifying protocol by index on the object type. More... | |
bool | isSugared () const |
QualType | desugar () const |
QualType | getSuperClassType () const |
Retrieve the type of the superclass of this object pointer type. More... | |
const ObjCObjectPointerType * | stripObjCKindOfTypeAndQuals (const ASTContext &ctx) const |
Strip off the Objective-C "kindof" type and (with it) any protocol qualifiers. More... | |
void | Profile (llvm::FoldingSetNodeID &ID) |
![]() | |
Type (const Type &)=delete | |
Type & | operator= (const Type &)=delete |
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 |
Determines if this type would be canonical if it had no further qualification. More... | |
QualType | getLocallyUnqualifiedSingleStepDesugaredType () const |
Pull a single level of sugar off of this locally-unqualified type. More... | |
bool | isIncompleteType (NamedDecl **Def=nullptr) const |
Types are partitioned into 3 broad categories (C99 6.2.5p1): object types, function types, and incomplete types. More... | |
bool | isIncompleteOrObjectType () const |
Return true if this is an incomplete or object type, in other words, not a function type. More... | |
bool | isObjectType () const |
Determine whether this type is an object type. More... | |
bool | isLiteralType (const ASTContext &Ctx) const |
Return true if this is a literal type (C++11 [basic.types]p10) More... | |
bool | isStandardLayoutType () const |
Test if this type is a standard-layout type. More... | |
bool | isBuiltinType () const |
Helper methods to distinguish type categories. More... | |
bool | isSpecificBuiltinType (unsigned K) const |
Test for a particular builtin type. More... | |
bool | isPlaceholderType () const |
Test for a type which does not represent an actual type-system type but is instead used as a placeholder for various convenient purposes within Clang. More... | |
const BuiltinType * | getAsPlaceholderType () const |
bool | isSpecificPlaceholderType (unsigned K) const |
Test for a specific placeholder type. More... | |
bool | isNonOverloadPlaceholderType () const |
Test for a placeholder type other than Overload; see BuiltinType::isNonOverloadPlaceholderType. More... | |
bool | isIntegerType () const |
isIntegerType() does not include complex integers (a GCC extension). More... | |
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 (const 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 |
isComplexType() does not include complex integers (a GCC extension). More... | |
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 | isDependentAddressSpaceType () const |
bool | isObjCObjectPointerType () const |
bool | isObjCRetainableType () const |
bool | isObjCLifetimeType () const |
Returns true if objects of this type have lifetime semantics under ARC. More... | |
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 | isObjCInertUnsafeUnretainedType () const |
Was this type written with the special inert-in-MRC __unsafe_unretained qualifier? More... | |
bool | isObjCIdOrObjectKindOfType (const ASTContext &ctx, const ObjCObjectType *&bound) const |
Whether the type is Objective-C 'id' or a __kindof type of an object type, e.g., __kindof NSView * or __kindof id <NSCopying>. More... | |
bool | isObjCClassType () const |
bool | isObjCClassOrClassKindOfType () const |
Whether the type is Objective-C 'Class' or a __kindof type of an Class type, e.g., __kindof Class <NSCopying>. More... | |
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 | isAlignValT () const |
bool | isStdByteType () const |
bool | isAtomicType () const |
bool | isImageType () const |
bool | isSamplerT () const |
bool | isEventT () const |
bool | isClkEventT () const |
bool | isQueueT () const |
bool | isReserveIDT () const |
bool | isPipeType () const |
bool | isOpenCLSpecificType () const |
bool | isObjCARCImplicitlyUnretainedType () const |
Determines if this type, which must satisfy isObjCLifetimeType(), is implicitly __unsafe_unretained rather than implicitly __strong. More... | |
Qualifiers::ObjCLifetime | getObjCARCImplicitLifetime () const |
Return the implicit lifetime for this type, which must not be dependent. More... | |
ScalarTypeKind | getScalarTypeKind () const |
Given that this is a scalar type, classify it. More... | |
bool | isDependentType () const |
Whether this type is a dependent type, meaning that its definition somehow depends on a template parameter (C++ [temp.dep.type]). More... | |
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 or similar 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 |
Whether this type is represented natively as a pointer. More... | |
bool | hasObjCPointerRepresentation () const |
Whether this type can represent an objective pointer type for the purpose of GC'ability. More... | |
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 |
If this is a pointer or reference to a RecordType, return the CXXRecordDecl that that type refers to. More... | |
DeducedType * | getContainedDeducedType () const |
Get the DeducedType whose type will be deduced for a variable with an initializer of this type. More... | |
AutoType * | getContainedAutoType () const |
Get the AutoType whose type will be deduced for a variable with an initializer of this type. More... | |
bool | hasAutoForTrailingReturnType () const |
Determine whether this type was written with a leading 'auto' corresponding to a trailing return type (possibly for a nested function type within a pointer to function type or similar). More... | |
template<typename T > | |
const T * | getAs () const |
Member-template getAs<specific type>'. More... | |
template<typename T > | |
const T * | getAsAdjusted () const |
Member-template getAsAdjusted<specific type>. More... | |
const ArrayType * | getAsArrayTypeUnsafe () const |
A variant of getAs<> for array types which silently discards qualifiers from the outermost type. More... | |
template<typename T > | |
const T * | castAs () const |
Member-template castAs<specific type>. More... | |
const ArrayType * | castAsArrayTypeUnsafe () const |
A variant of castAs<> for array type which silently discards qualifiers from the outermost type. More... | |
const Type * | getBaseElementTypeUnsafe () const |
Get the base element type of this type, potentially discarding type qualifiers. More... | |
const Type * | getArrayElementTypeNoTypeQual () const |
If this is an array type, return the element type of the array, potentially with type qualifiers missing. More... | |
const Type * | getPointeeOrArrayElementType () const |
If this is a pointer type, return the pointee type. More... | |
QualType | getPointeeType () const |
If this is a pointer, ObjC object pointer, or block pointer, this returns the respective pointee. More... | |
const Type * | getUnqualifiedDesugaredType () const |
Return the specified type with any "sugar" removed from the type, removing any typedefs, typeofs, etc., as well as any qualifiers. More... | |
bool | isPromotableIntegerType () const |
More type predicates useful for type checking/promotion. More... | |
bool | isSignedIntegerType () const |
Return true if this is an integer type that is signed, according to C99 6.2.5p4 [char, signed char, short, int, long..], or an enum decl which has a signed representation. More... | |
bool | isUnsignedIntegerType () const |
Return true if this is an integer type that is unsigned, according to C99 6.2.5p6 [which returns true for _Bool], or an enum decl which has an unsigned representation. More... | |
bool | isSignedIntegerOrEnumerationType () const |
Determines whether this is an integer type that is signed or an enumeration types whose underlying type is a signed integer type. More... | |
bool | isUnsignedIntegerOrEnumerationType () const |
Determines whether this is an integer type that is unsigned or an enumeration types whose underlying type is a unsigned integer type. More... | |
bool | isConstantSizeType () const |
Return true if this is not a variable sized type, according to the rules of C99 6.7.5p3. More... | |
bool | isSpecifierType () const |
Returns true if this type can be represented by some set of type specifiers. More... | |
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. More... | |
Optional< NullabilityKind > | getNullability (const ASTContext &context) const |
Determine the nullability of the given type. More... | |
bool | canHaveNullability (bool ResultIfUnknown=true) const |
Determine whether the given type can have a nullability specifier applied to it, i.e., if it is any kind of pointer type. More... | |
Optional< ArrayRef< QualType > > | getObjCSubstitutions (const DeclContext *dc) const |
Retrieve the set of substitutions required when accessing a member of the Objective-C receiver type that is declared in the given context. More... | |
bool | acceptsObjCTypeParams () const |
Determines if this is an ObjC interface type that may accept type parameters. More... | |
const char * | getTypeClassName () const |
QualType | getCanonicalTypeInternal () const |
CanQualType | getCanonicalTypeUnqualified () const |
void | dump () const |
void | dump (llvm::raw_ostream &OS) 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, QualType T) |
static bool | classof (const Type *T) |
Friends | |
class | ASTContext |
Additional Inherited Members | |
![]() | |
Type (TypeClass tc, QualType canon, bool Dependent, bool InstantiationDependent, bool VariablyModified, bool ContainsUnexpandedParameterPack) | |
Type * | this_ () |
void | setDependent (bool D=true) |
void | setInstantiationDependent (bool D=true) |
void | setVariablyModified (bool VM=true) |
void | setContainsUnexpandedParameterPack (bool PP=true) |
![]() | |
union { | |
TypeBitfields TypeBits | |
ArrayTypeBitfields ArrayTypeBits | |
AttributedTypeBitfields AttributedTypeBits | |
AutoTypeBitfields AutoTypeBits | |
BuiltinTypeBitfields BuiltinTypeBits | |
FunctionTypeBitfields FunctionTypeBits | |
ObjCObjectTypeBitfields ObjCObjectTypeBits | |
ReferenceTypeBitfields ReferenceTypeBits | |
TypeWithKeywordBitfields TypeWithKeywordBits | |
VectorTypeBitfields VectorTypeBits | |
}; | |
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
' and 'Class
' 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.
using clang::ObjCObjectPointerType::qual_range = llvm::iterator_range<qual_iterator> |
Definition at line 5609 of file Type.h.
References clang::Type::getTypeClass().
|
inline |
|
inline |
If this pointer points to an Objective @interface type, gets the declaration for that interface.
Definition at line 5496 of file Type.h.
References getObjectType().
Referenced by clang::Sema::CheckMessageArgumentTypes(), checkSelfIvarsForInvariantViolation(), CompareDerivedToBaseConversions(), clang::Sema::ConversionToObjCStringLiteralCheck(), findMethodDecl(), getMostInformativeDerivedClassImpl(), hasDefinition(), clang::Type::isBlockCompatibleObjCPointerType(), clang::ento::cocoa::isCocoaObjectRef(), isKnownNonNilCollectionType(), IsNSError(), clang::ASTContext::ObjCQualifiedIdTypesAreCompatible(), and recordFixedType().
const ObjCInterfaceType * ObjCObjectPointerType::getInterfaceType | ( | ) | const |
If this pointer points to an Objective C @interface type, gets the type for that interface.
Any protocol qualifiers on the interface are ignored.
Definition at line 1507 of file Type.cpp.
References clang::Type::castAs(), clang::ObjCObjectType::getInterface(), and getObjectType().
Referenced by clang::ASTContext::canAssignObjCInterfacesInBlockPointer(), clang::Sema::HandleExprPropertyRefExpr(), and SymbolNameForMethod().
|
inline |
Return the number of qualifying protocols on the object type.
Definition at line 5576 of file Type.h.
References getObjectType().
|
inline |
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
*', getObjectType() will return 'A
'. For 'AP*', getObjectType() will return 'A
'. For 'A1*', getObjectType() will return 'A'. For 'A1
*', getObjectType() will return 'A1
'. For 'A1P*', getObjectType() will return 'A1
'. 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).
Definition at line 5481 of file Type.h.
References clang::Type::castAs().
Referenced by clang::ASTContext::areCommonBaseCompatible(), clang::ASTContext::canAssignObjCInterfaces(), clang::Sema::CheckObjCForCollectionOperand(), getMostInformativeDerivedClassImpl(), isNSStringType(), clang::Type::isObjCIdOrObjectKindOfType(), LookupMemberExpr(), ShouldTryAgainWithRedefinitionType(), and SymbolNameForMethod().
|
inline |
Gets the type pointed to by this ObjC pointer.
The result will always be an ObjCObjectType or sugar thereof.
Definition at line 5456 of file Type.h.
Referenced by clang::Sema::HandleExprPropertyRefExpr(), hasIsEqualMethod(), isSynthesizedAccessor(), LookupMethodInReceiverType(), clang::CodeGen::CodeGenFunction::TypeOfSelfObject(), UnwrapDissimilarPointerTypes(), clang::ASTContext::UnwrapSimilarPointerTypes(), and clang::ASTNodeImporter::VisitObjCObjectPointerType().
|
inline |
QualType ObjCObjectPointerType::getSuperClassType | ( | ) | const |
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.
Definition at line 1516 of file Type.cpp.
References clang::ASTContext::getObjCObjectPointerType(), getObjectType(), and clang::QualType::isNull().
Retrieve the type arguments for this type.
Definition at line 5548 of file Type.h.
References getObjectType().
Referenced by checkObjCArrayLiteral(), and checkObjCDictionaryLiteral().
Retrieve the type arguments for this type.
Definition at line 5553 of file Type.h.
References getObjectType().
|
inline |
Whether this is a "__kindof" type.
Definition at line 5530 of file Type.h.
References getObjectType().
Referenced by clang::ASTContext::applyObjCProtocolQualifiers(), clang::ASTContext::canAssignObjCInterfacesInBlockPointer(), clang::Type::isObjCClassOrClassKindOfType(), and clang::Type::isObjCIdOrObjectKindOfType().
|
inline |
True if this is equivalent to the 'Class' type, i.e.
if its object tive is the primitive 'Class' type with no protocols.
Definition at line 5508 of file Type.h.
References getObjectType().
Referenced by CompareDerivedToBaseConversions(), clang::ento::cocoa::isCocoaObjectRef(), clang::Type::isObjCClassOrClassKindOfType(), clang::Type::isObjCIdOrObjectKindOfType(), and LookupMethodInReceiverType().
|
inline |
True if this is equivalent to the 'id' or 'Class' type,.
Definition at line 5513 of file Type.h.
References getObjectType().
|
inline |
True if this is equivalent to the 'id' type, i.e.
if its object type is the primitive 'id' type with no protocols.
Definition at line 5502 of file Type.h.
References getObjectType().
Referenced by clang::ASTContext::canAssignObjCInterfacesInBlockPointer(), canAssignObjCObjectTypes(), CompareDerivedToBaseConversions(), clang::Sema::ConversionToObjCStringLiteralCheck(), hasIsEqualMethod(), clang::Type::isBlockCompatibleObjCPointerType(), clang::ento::cocoa::isCocoaObjectRef(), clang::Type::isObjCIdOrObjectKindOfType(), isObjCTypeSubstitutable(), and recordFixedType().
|
inline |
True if this is equivalent to 'Class.
' for some non-empty set of protocols.
Definition at line 5525 of file Type.h.
References getObjectType().
Referenced by clang::ento::cocoa::isCocoaObjectRef(), clang::Type::isObjCClassOrClassKindOfType(), and clang::Type::isObjCIdOrObjectKindOfType().
|
inline |
True if this is equivalent to 'id.
' for some non-empty set of protocols.
Definition at line 5519 of file Type.h.
References getObjectType().
Referenced by clang::ASTContext::canAssignObjCInterfacesInBlockPointer(), clang::Type::isBlockCompatibleObjCPointerType(), clang::ento::cocoa::isCocoaObjectRef(), and isObjCTypeSubstitutable().
|
inline |
Whether this type is specialized, meaning that it has type arguments.
Definition at line 5533 of file Type.h.
References getObjectType().
Referenced by CompareDerivedToBaseConversions(), getMostInformativeDerivedClassImpl(), and hasDefinition().
|
inline |
Whether this type is specialized, meaning that it has type arguments.
Definition at line 5536 of file Type.h.
References getObjectType().
|
inline |
|
inline |
Whether this type is unspecialized, meaning that is has no type arguments.
Definition at line 5541 of file Type.h.
References getObjectType().
Referenced by getMostInformativeDerivedClassImpl().
|
inline |
|
inline |
Definition at line 5601 of file Type.h.
Referenced by clang::ASTContext::getObjCObjectPointerType().
|
inlinestatic |
Definition at line 5605 of file Type.h.
References clang::QualType::getAsOpaquePtr().
|
inline |
Definition at line 5565 of file Type.h.
References getObjectType().
|
inline |
Definition at line 5573 of file Type.h.
References getObjectType().
Referenced by clang::ASTContext::ObjCQualifiedIdTypesAreCompatible().
|
inline |
Definition at line 5569 of file Type.h.
References getObjectType().
|
inline |
Definition at line 5563 of file Type.h.
Referenced by clang::Type::isBlockCompatibleObjCPointerType(), clang::Sema::LookupMethodInQualifiedType(), clang::ASTContext::ObjCQualifiedClassTypesAreCompatible(), and clang::ASTContext::QIdProtocolsAdoptObjCObjectProtocols().
const ObjCObjectPointerType * ObjCObjectPointerType::stripObjCKindOfTypeAndQuals | ( | const ASTContext & | ctx | ) | const |
Strip off the Objective-C "kindof" type and (with it) any protocol qualifiers.
Definition at line 692 of file Type.cpp.
References clang::Type::castAs(), clang::ASTContext::getObjCObjectPointerType(), getObjectType(), clang::ObjCObjectType::isKindOfType(), clang::ObjCProtocolQualifiers< ObjCObjectType >::qual_empty(), and simpleTransform().
Referenced by clang::ASTContext::canAssignObjCInterfaces(), clang::ASTContext::canAssignObjCInterfacesInBlockPointer(), and hasDefinition().
|
friend |