clang API Documentation
#include <Type.h>
ObjCObjectType - Represents a class type in Objective C. Every Objective C type is a combination of a base type and a list of protocols.
Given the following declarations:
'C' is an ObjCInterfaceType C. It is sugar for an ObjCObjectType with base C and no protocols.
'C
' is an ObjCObjectType with base C and protocol list [P].
'id' is a TypedefType which is sugar for an ObjCObjectPointerType whose pointee is an ObjCObjectType with base BuiltinType::ObjCIdType and no protocols.
'id
' is an ObjCObjectPointerType whose pointee is an ObjCObjectType with base BuiltinType::ObjCIdType and protocol list [P]. Eventually this should get its own sugar class to better represent the source.
typedef ObjCProtocolDecl* const* clang::ObjCObjectType::qual_iterator |
Reimplemented in clang::ObjCInterfaceType.
typedef llvm::iterator_range<qual_iterator> clang::ObjCObjectType::qual_range |
enum clang::ObjCObjectType::Nonce_ObjCInterface [protected] |
ObjCObjectType::ObjCObjectType | ( | QualType | Canonical, |
QualType | Base, | ||
ObjCProtocolDecl *const * | Protocols, | ||
unsigned | NumProtocols | ||
) | [protected] |
Definition at line 472 of file Type.cpp.
References getNumProtocols(), and clang::Type::ObjCObjectTypeBits.
clang::ObjCObjectType::ObjCObjectType | ( | enum | Nonce_ObjCInterface | ) | [inline, protected] |
static bool clang::ObjCObjectType::classof | ( | const Type * | T | ) | [inline, static] |
Reimplemented in clang::ObjCInterfaceType.
Definition at line 4394 of file Type.h.
References clang::Type::getTypeClass().
QualType clang::ObjCObjectType::desugar | ( | ) | const [inline] |
Reimplemented in clang::ObjCInterfaceType.
QualType clang::ObjCObjectType::getBaseType | ( | ) | const [inline] |
getBaseType - Gets the base type of this object type. This is always (possibly sugar for) one of:
Definition at line 4348 of file Type.h.
Referenced by clang::ObjCObjectPointerType::getInterfaceType(), IsStructurallyEquivalent(), clang::ObjCObjectTypeImpl::Profile(), and clang::ASTNodeImporter::VisitObjCObjectType().
ObjCInterfaceDecl * clang::ObjCObjectType::getInterface | ( | ) | const [inline] |
Gets the interface declaration for this object type, if the base type really is an interface.
Definition at line 4475 of file Type.h.
Referenced by clang::Sema::ActOnCompatibilityAlias(), clang::Sema::ActOnStartClassInterface(), clang::ASTContext::areCommonBaseCompatible(), clang::Sema::BuildClassMessage(), clang::ASTContext::canAssignObjCInterfaces(), clang::Sema::checkInitMethod(), clang::Sema::CheckObjCForCollectionOperand(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), getIntersectionOfProtocols(), isNSStringType(), clang::Sema::LookupMethodInObjectType(), maybeAdjustInterfaceForSubscriptingCheck(), and ShouldTryAgainWithRedefinitionType().
unsigned clang::ObjCObjectType::getNumProtocols | ( | ) | const [inline] |
getNumProtocols - Return the number of qualifying protocols in this interface type, or 0 if there are none.
Definition at line 4383 of file Type.h.
Referenced by clang::ASTContext::canAssignObjCInterfaces(), getIntersectionOfProtocols(), IsStructurallyEquivalent(), ObjCObjectType(), and clang::ObjCObjectTypeImpl::Profile().
ObjCProtocolDecl* clang::ObjCObjectType::getProtocol | ( | unsigned | I | ) | const [inline] |
Fetch a protocol by index.
Definition at line 4386 of file Type.h.
Referenced by IsStructurallyEquivalent().
bool clang::ObjCObjectType::isObjCClass | ( | ) | const [inline] |
Definition at line 4353 of file Type.h.
Referenced by clang::Sema::checkInitMethod(), LookupMemberExpr(), and ShouldTryAgainWithRedefinitionType().
bool clang::ObjCObjectType::isObjCId | ( | ) | const [inline] |
Definition at line 4350 of file Type.h.
Referenced by clang::Sema::checkInitMethod(), LookupMemberExpr(), and ShouldTryAgainWithRedefinitionType().
bool clang::ObjCObjectType::isObjCQualifiedClass | ( | ) | const [inline] |
Definition at line 4366 of file Type.h.
Referenced by clang::ASTContext::canAssignObjCInterfaces().
bool clang::ObjCObjectType::isObjCQualifiedId | ( | ) | const [inline] |
Definition at line 4365 of file Type.h.
Referenced by clang::ASTContext::canAssignObjCInterfaces().
bool clang::ObjCObjectType::isObjCUnqualifiedClass | ( | ) | const [inline] |
bool clang::ObjCObjectType::isObjCUnqualifiedId | ( | ) | const [inline] |
bool clang::ObjCObjectType::isObjCUnqualifiedIdOrClass | ( | ) | const [inline] |
Definition at line 4358 of file Type.h.
Referenced by clang::ASTContext::canAssignObjCInterfaces().
bool clang::ObjCObjectType::isSugared | ( | ) | const [inline] |
Reimplemented in clang::ObjCInterfaceType.
qual_iterator clang::ObjCObjectType::qual_begin | ( | ) | const [inline] |
Definition at line 4376 of file Type.h.
Referenced by getIntersectionOfProtocols(), and clang::ObjCObjectTypeImpl::Profile().
bool clang::ObjCObjectType::qual_empty | ( | ) | const [inline] |
Definition at line 4379 of file Type.h.
Referenced by clang::Sema::CheckObjCForCollectionOperand().
qual_iterator clang::ObjCObjectType::qual_end | ( | ) | const [inline] |
Definition at line 4377 of file Type.h.
Referenced by getIntersectionOfProtocols().
qual_range clang::ObjCObjectType::quals | ( | ) | const [inline] |
Definition at line 4375 of file Type.h.
Referenced by clang::ASTContext::canAssignObjCInterfaces(), clang::Sema::LookupMethodInObjectType(), and clang::ASTNodeImporter::VisitObjCObjectType().