class ObjCPropertyRefExpr

Declaration

class ObjCPropertyRefExpr : public Expr { /* full declaration omitted */ };

Description

ObjCPropertyRefExpr - A dot-syntax expression to access an ObjC property.

Declared at: clang/include/clang/AST/ExprObjC.h:614

Inherits from: Expr

Member Variables

private llvm::PointerIntPair<NamedDecl*, 1, bool> PropertyOrGetter
If the bool is true, this is an implicit property reference; the pointer is an (optional) ObjCMethodDecl and Setter may be set. if the bool is false, this is an explicit property reference; the pointer is an ObjCPropertyDecl and Setter is always null.
private llvm::PointerIntPair<ObjCMethodDecl*, 2, unsigned int> SetterAndMethodRefFlags
Contains the Setter method pointer and MethodRefFlags bit flags.
private clang::SourceLocation IdLoc
private clang::SourceLocation ReceiverLoc
When the receiver in property access is 'super', this is the location of the 'super' keyword. When it's an interface, this is that interface.
private llvm::PointerUnion<Stmt*, const Type*, ObjCInterfaceDecl*> Receiver

Inherited from Stmt:

protected

Method Overview

Inherited from Expr:

Inherited from ValueStmt:

Inherited from Stmt:

Methods

ObjCPropertyRefExpr(clang::ObjCPropertyDecl* PD,
                    clang::QualType t,
                    clang::ExprValueKind VK,
                    clang::ExprObjectKind OK,
                    clang::SourceLocation l,
                    clang::SourceLocation sl,
                    clang::QualType st)

Declared at: clang/include/clang/AST/ExprObjC.h:656

Parameters

clang::ObjCPropertyDecl* PD
clang::QualType t
clang::ExprValueKind VK
clang::ExprObjectKind OK
clang::SourceLocation l
clang::SourceLocation sl
clang::QualType st

ObjCPropertyRefExpr(clang::ObjCMethodDecl* Getter,
                    clang::ObjCMethodDecl* Setter,
                    clang::QualType T,
                    clang::ExprValueKind VK,
                    clang::ExprObjectKind OK,
                    clang::SourceLocation IdLoc,
                    clang::Expr* Base)

Declared at: clang/include/clang/AST/ExprObjC.h:665

Parameters

clang::ObjCMethodDecl* Getter
clang::ObjCMethodDecl* Setter
clang::QualType T
clang::ExprValueKind VK
clang::ExprObjectKind OK
clang::SourceLocation IdLoc
clang::Expr* Base

ObjCPropertyRefExpr(
    clang::ObjCMethodDecl* Getter,
    clang::ObjCMethodDecl* Setter,
    clang::QualType T,
    clang::ExprValueKind VK,
    clang::ExprObjectKind OK,
    clang::SourceLocation IdLoc,
    clang::SourceLocation SuperLoc,
    clang::QualType SuperTy)

Declared at: clang/include/clang/AST/ExprObjC.h:675

Parameters

clang::ObjCMethodDecl* Getter
clang::ObjCMethodDecl* Setter
clang::QualType T
clang::ExprValueKind VK
clang::ExprObjectKind OK
clang::SourceLocation IdLoc
clang::SourceLocation SuperLoc
clang::QualType SuperTy

ObjCPropertyRefExpr(
    clang::ObjCMethodDecl* Getter,
    clang::ObjCMethodDecl* Setter,
    clang::QualType T,
    clang::ExprValueKind VK,
    clang::ExprObjectKind OK,
    clang::SourceLocation IdLoc,
    clang::SourceLocation ReceiverLoc,
    clang::ObjCInterfaceDecl* Receiver)

Declared at: clang/include/clang/AST/ExprObjC.h:686

Parameters

clang::ObjCMethodDecl* Getter
clang::ObjCMethodDecl* Setter
clang::QualType T
clang::ExprValueKind VK
clang::ExprObjectKind OK
clang::SourceLocation IdLoc
clang::SourceLocation ReceiverLoc
clang::ObjCInterfaceDecl* Receiver

ObjCPropertyRefExpr(clang::Stmt::EmptyShell Empty)

Declared at: clang/include/clang/AST/ExprObjC.h:697

Parameters

clang::Stmt::EmptyShell Empty

ObjCPropertyRefExpr(clang::ObjCPropertyDecl* PD,
                    clang::QualType t,
                    clang::ExprValueKind VK,
                    clang::ExprObjectKind OK,
                    clang::SourceLocation l,
                    clang::Expr* base)

Declared at: clang/include/clang/AST/ExprObjC.h:648

Parameters

clang::ObjCPropertyDecl* PD
clang::QualType t
clang::ExprValueKind VK
clang::ExprObjectKind OK
clang::SourceLocation l
clang::Expr* base

clang::Stmt::const_child_range children() const

Declared at: clang/include/clang/AST/ExprObjC.h:794

clang::Stmt::child_range children()

Declared at: clang/include/clang/AST/ExprObjC.h:786

static bool classof(const clang::Stmt* T)

Declared at: clang/include/clang/AST/ExprObjC.h:799

Parameters

const clang::Stmt* T

const clang::Expr* getBase() const

Declared at: clang/include/clang/AST/ExprObjC.h:752

clang::Expr* getBase()

Declared at: clang/include/clang/AST/ExprObjC.h:755

clang::SourceLocation getBeginLoc() const

Declared at: clang/include/clang/AST/ExprObjC.h:778

clang::ObjCInterfaceDecl* getClassReceiver() const

Declared at: clang/include/clang/AST/ExprObjC.h:767

clang::SourceLocation getEndLoc() const

Declared at: clang/include/clang/AST/ExprObjC.h:783

clang::ObjCPropertyDecl* getExplicitProperty()
    const

Declared at: clang/include/clang/AST/ExprObjC.h:703

clang::Selector getGetterSelector() const

Declared at: clang/include/clang/AST/ExprObjC.h:718

clang::ObjCMethodDecl* getImplicitPropertyGetter()
    const

Declared at: clang/include/clang/AST/ExprObjC.h:708

clang::ObjCMethodDecl* getImplicitPropertySetter()
    const

Declared at: clang/include/clang/AST/ExprObjC.h:713

clang::SourceLocation getLocation() const

Declared at: clang/include/clang/AST/ExprObjC.h:759

clang::SourceLocation getReceiverLocation() const

Declared at: clang/include/clang/AST/ExprObjC.h:761

clang::QualType getReceiverType(
    const clang::ASTContext& ctx) const

Description

Determine the type of the base, regardless of the kind of receiver.

Declared at: clang/include/clang/AST/ExprObjC.h:776

Parameters

const clang::ASTContext& ctx

clang::Selector getSetterSelector() const

Declared at: clang/include/clang/AST/ExprObjC.h:724

clang::QualType getSuperReceiverType() const

Declared at: clang/include/clang/AST/ExprObjC.h:763

bool isClassReceiver() const

Declared at: clang/include/clang/AST/ExprObjC.h:773

bool isExplicitProperty() const

Declared at: clang/include/clang/AST/ExprObjC.h:701

bool isImplicitProperty() const

Declared at: clang/include/clang/AST/ExprObjC.h:700

bool isMessagingGetter() const

Description

True if the property reference will result in a message to the getter. This applies to both implicit and explicit property references.

Declared at: clang/include/clang/AST/ExprObjC.h:733

bool isMessagingSetter() const

Description

True if the property reference will result in a message to the setter. This applies to both implicit and explicit property references.

Declared at: clang/include/clang/AST/ExprObjC.h:740

bool isObjectReceiver() const

Declared at: clang/include/clang/AST/ExprObjC.h:771

bool isSuperReceiver() const

Declared at: clang/include/clang/AST/ExprObjC.h:772

void setBase(clang::Expr* Base)

Declared at: clang/include/clang/AST/ExprObjC.h:822

Parameters

clang::Expr* Base

void setClassReceiver(clang::ObjCInterfaceDecl* D)

Declared at: clang/include/clang/AST/ExprObjC.h:824

Parameters

clang::ObjCInterfaceDecl* D

void setExplicitProperty(
    clang::ObjCPropertyDecl* D,
    unsigned int methRefFlags)

Declared at: clang/include/clang/AST/ExprObjC.h:807

Parameters

clang::ObjCPropertyDecl* D
unsigned int methRefFlags

void setImplicitProperty(
    clang::ObjCMethodDecl* Getter,
    clang::ObjCMethodDecl* Setter,
    unsigned int methRefFlags)

Declared at: clang/include/clang/AST/ExprObjC.h:814

Parameters

clang::ObjCMethodDecl* Getter
clang::ObjCMethodDecl* Setter
unsigned int methRefFlags

void setIsMessagingGetter(bool val = true)

Declared at: clang/include/clang/AST/ExprObjC.h:744

Parameters

bool val = true

void setIsMessagingSetter(bool val = true)

Declared at: clang/include/clang/AST/ExprObjC.h:748

Parameters

bool val = true

void setLocation(clang::SourceLocation L)

Declared at: clang/include/clang/AST/ExprObjC.h:826

Parameters

clang::SourceLocation L

void setMethodRefFlag(
    clang::ObjCPropertyRefExpr::MethodRefFlags
        flag,
    bool val)

Declared at: clang/include/clang/AST/ExprObjC.h:829

Parameters

clang::ObjCPropertyRefExpr::MethodRefFlags flag
bool val

void setReceiverLocation(
    clang::SourceLocation Loc)

Declared at: clang/include/clang/AST/ExprObjC.h:827

Parameters

clang::SourceLocation Loc

void setSuperReceiver(clang::QualType T)

Declared at: clang/include/clang/AST/ExprObjC.h:823

Parameters

clang::QualType T