clang
3.7.0
|
An expression that sends a message to the given Objective-C object or class. More...
#include <ExprObjC.h>
Public Member Functions | |
bool | isImplicit () const |
Indicates whether the message send was implicitly generated by the implementation. If false, it was written explicitly in the source code. More... | |
ReceiverKind | getReceiverKind () const |
Determine the kind of receiver that this message is being sent to. More... | |
SourceRange | getReceiverRange () const |
Source range of the receiver. More... | |
bool | isInstanceMessage () const |
Determine whether this is an instance message to either a computed object or to super. More... | |
bool | isClassMessage () const |
Determine whether this is an class message to either a specified class or to super. More... | |
Expr * | getInstanceReceiver () |
Returns the object expression (receiver) for an instance message, or null for a message that is not an instance message. More... | |
const Expr * | getInstanceReceiver () const |
void | setInstanceReceiver (Expr *rec) |
Turn this message send into an instance message that computes the receiver object with the given expression. More... | |
QualType | getClassReceiver () const |
Returns the type of a class message send, or NULL if the message is not a class message. More... | |
TypeSourceInfo * | getClassReceiverTypeInfo () const |
Returns a type-source information of a class message send, or NULL if the message is not a class message. More... | |
void | setClassReceiver (TypeSourceInfo *TSInfo) |
SourceLocation | getSuperLoc () const |
Retrieve the location of the 'super' keyword for a class or instance message to 'super', otherwise an invalid source location. More... | |
QualType | getReceiverType () const |
Retrieve the receiver type to which this message is being directed. More... | |
ObjCInterfaceDecl * | getReceiverInterface () const |
Retrieve the Objective-C interface to which this message is being directed, if known. More... | |
QualType | getSuperType () const |
Retrieve the type referred to by 'super'. More... | |
void | setSuper (SourceLocation Loc, QualType T, bool IsInstanceSuper) |
Selector | getSelector () const |
void | setSelector (Selector S) |
const ObjCMethodDecl * | getMethodDecl () const |
ObjCMethodDecl * | getMethodDecl () |
void | setMethodDecl (ObjCMethodDecl *MD) |
ObjCMethodFamily | getMethodFamily () const |
unsigned | getNumArgs () const |
Return the number of actual arguments in this message, not counting the receiver. More... | |
Expr ** | getArgs () |
Retrieve the arguments to this message, not including the receiver. More... | |
const Expr *const * | getArgs () const |
Expr * | getArg (unsigned Arg) |
getArg - Return the specified argument. More... | |
const Expr * | getArg (unsigned Arg) const |
void | setArg (unsigned Arg, Expr *ArgExpr) |
setArg - Set the specified argument. More... | |
bool | isDelegateInitCall () const |
void | setDelegateInitCall (bool isDelegate) |
SourceLocation | getLeftLoc () const |
SourceLocation | getRightLoc () const |
SourceLocation | getSelectorStartLoc () const |
SourceLocation | getSelectorLoc (unsigned Index) const |
void | getSelectorLocs (SmallVectorImpl< SourceLocation > &SelLocs) const |
unsigned | getNumSelectorLocs () const |
void | setSourceRange (SourceRange R) |
SourceLocation | getLocStart () const LLVM_READONLY |
SourceLocation | getLocEnd () const LLVM_READONLY |
child_range | children () |
arg_iterator | arg_begin () |
arg_iterator | arg_end () |
const_arg_iterator | arg_begin () const |
const_arg_iterator | arg_end () const |
![]() | |
QualType | getType () const |
void | setType (QualType t) |
bool | isValueDependent () const |
void | setValueDependent (bool VD) |
Set whether this expression is value-dependent or not. More... | |
bool | isTypeDependent () const |
void | setTypeDependent (bool TD) |
Set whether this expression is type-dependent or not. More... | |
bool | isInstantiationDependent () const |
Whether this expression is instantiation-dependent, meaning that it depends in some way on a template parameter, even if neither its type nor (constant) value can change due to the template instantiation. More... | |
void | setInstantiationDependent (bool ID) |
Set whether this expression is instantiation-dependent or not. More... | |
bool | containsUnexpandedParameterPack () const |
Whether this expression contains an unexpanded parameter pack (for C++11 variadic templates). More... | |
void | setContainsUnexpandedParameterPack (bool PP=true) |
Set the bit that describes whether this expression contains an unexpanded parameter pack. More... | |
SourceLocation | getExprLoc () const LLVM_READONLY |
bool | isUnusedResultAWarning (const Expr *&WarnExpr, SourceLocation &Loc, SourceRange &R1, SourceRange &R2, ASTContext &Ctx) const |
bool | isLValue () const |
bool | isRValue () const |
bool | isXValue () const |
bool | isGLValue () const |
LValueClassification | ClassifyLValue (ASTContext &Ctx) const |
Reasons why an expression might not be an l-value. More... | |
isModifiableLvalueResult | isModifiableLvalue (ASTContext &Ctx, SourceLocation *Loc=nullptr) const |
Classification | Classify (ASTContext &Ctx) const |
Classify - Classify this expression according to the C++11 expression taxonomy. More... | |
Classification | ClassifyModifiable (ASTContext &Ctx, SourceLocation &Loc) const |
ClassifyModifiable - Classify this expression according to the C++11 expression taxonomy, and see if it is valid on the left side of an assignment. More... | |
ExprValueKind | getValueKind () const |
getValueKind - The value kind that this expression produces. More... | |
ExprObjectKind | getObjectKind () const |
bool | isOrdinaryOrBitFieldObject () const |
void | setValueKind (ExprValueKind Cat) |
setValueKind - Set the value kind produced by this expression. More... | |
void | setObjectKind (ExprObjectKind Cat) |
setObjectKind - Set the object kind produced by this expression. More... | |
bool | refersToBitField () const |
Returns true if this expression is a gl-value that potentially refers to a bit-field. More... | |
FieldDecl * | getSourceBitField () |
If this expression refers to a bit-field, retrieve the declaration of that bit-field. More... | |
const FieldDecl * | getSourceBitField () const |
const ObjCPropertyRefExpr * | getObjCProperty () const |
If this expression is an l-value for an Objective C property, find the underlying property reference expression. More... | |
bool | isObjCSelfExpr () const |
Check if this expression is the ObjC 'self' implicit parameter. More... | |
bool | refersToVectorElement () const |
Returns whether this expression refers to a vector element. More... | |
bool | hasPlaceholderType () const |
Returns whether this expression has a placeholder type. More... | |
bool | hasPlaceholderType (BuiltinType::Kind K) const |
Returns whether this expression has a specific placeholder type. More... | |
bool | isKnownToHaveBooleanValue () const |
bool | isIntegerConstantExpr (llvm::APSInt &Result, const ASTContext &Ctx, SourceLocation *Loc=nullptr, bool isEvaluated=true) const |
bool | isIntegerConstantExpr (const ASTContext &Ctx, SourceLocation *Loc=nullptr) const |
bool | isCXX98IntegralConstantExpr (const ASTContext &Ctx) const |
bool | isCXX11ConstantExpr (const ASTContext &Ctx, APValue *Result=nullptr, SourceLocation *Loc=nullptr) const |
bool | isConstantInitializer (ASTContext &Ctx, bool ForRef, const Expr **Culprit=nullptr) const |
bool | EvaluateAsRValue (EvalResult &Result, const ASTContext &Ctx) const |
bool | EvaluateAsBooleanCondition (bool &Result, const ASTContext &Ctx) const |
bool | EvaluateAsInt (llvm::APSInt &Result, const ASTContext &Ctx, SideEffectsKind AllowSideEffects=SE_NoSideEffects) const |
bool | isEvaluatable (const ASTContext &Ctx) const |
bool | HasSideEffects (const ASTContext &Ctx, bool IncludePossibleEffects=true) const |
bool | hasNonTrivialCall (const ASTContext &Ctx) const |
Determine whether this expression involves a call to any function that is not trivial. More... | |
llvm::APSInt | EvaluateKnownConstInt (const ASTContext &Ctx, SmallVectorImpl< PartialDiagnosticAt > *Diag=nullptr) const |
void | EvaluateForOverflow (const ASTContext &Ctx) const |
bool | EvaluateAsLValue (EvalResult &Result, const ASTContext &Ctx) const |
bool | EvaluateAsInitializer (APValue &Result, const ASTContext &Ctx, const VarDecl *VD, SmallVectorImpl< PartialDiagnosticAt > &Notes) const |
bool | EvaluateWithSubstitution (APValue &Value, ASTContext &Ctx, const FunctionDecl *Callee, ArrayRef< const Expr * > Args) const |
NullPointerConstantKind | isNullPointerConstant (ASTContext &Ctx, NullPointerConstantValueDependence NPC) const |
bool | isOBJCGCCandidate (ASTContext &Ctx) const |
bool | isBoundMemberFunction (ASTContext &Ctx) const |
Returns true if this expression is a bound member function. More... | |
Expr * | IgnoreImpCasts () LLVM_READONLY |
Expr * | IgnoreImplicit () LLVM_READONLY |
const Expr * | IgnoreImplicit () const LLVM_READONLY |
Expr * | IgnoreParens () LLVM_READONLY |
Expr * | IgnoreParenCasts () LLVM_READONLY |
Expr * | IgnoreCasts () LLVM_READONLY |
Ignore casts. Strip off any CastExprs, returning their operand. More... | |
Expr * | IgnoreParenImpCasts () LLVM_READONLY |
Expr * | IgnoreConversionOperator () LLVM_READONLY |
const Expr * | IgnoreConversionOperator () const LLVM_READONLY |
const Expr * | IgnoreParenImpCasts () const LLVM_READONLY |
Expr * | IgnoreParenLValueCasts () LLVM_READONLY |
const Expr * | IgnoreParenLValueCasts () const LLVM_READONLY |
Expr * | IgnoreParenNoopCasts (ASTContext &Ctx) LLVM_READONLY |
Expr * | ignoreParenBaseCasts () LLVM_READONLY |
Ignore parentheses and derived-to-base casts. More... | |
const Expr * | ignoreParenBaseCasts () const LLVM_READONLY |
bool | isDefaultArgument () const |
Determine whether this expression is a default function argument. More... | |
bool | isTemporaryObject (ASTContext &Ctx, const CXXRecordDecl *TempTy) const |
Determine whether the result of this expression is a temporary object of the given class type. More... | |
bool | isImplicitCXXThis () const |
Whether this expression is an implicit reference to 'this' in C++. More... | |
const Expr * | IgnoreImpCasts () const LLVM_READONLY |
const Expr * | IgnoreParens () const LLVM_READONLY |
const Expr * | IgnoreParenCasts () const LLVM_READONLY |
const Expr * | IgnoreCasts () const LLVM_READONLY |
Strip off casts, but keep parentheses. More... | |
const Expr * | IgnoreParenNoopCasts (ASTContext &Ctx) const LLVM_READONLY |
const CXXRecordDecl * | getBestDynamicClassType () const |
For an expression of class type or pointer to class type, return the most derived class decl the expression is known to refer to. More... | |
const Expr * | skipRValueSubobjectAdjustments (SmallVectorImpl< const Expr * > &CommaLHS, SmallVectorImpl< SubobjectAdjustment > &Adjustments) const |
Static Public Member Functions | |
static ObjCMessageExpr * | Create (const ASTContext &Context, QualType T, ExprValueKind VK, SourceLocation LBracLoc, SourceLocation SuperLoc, bool IsInstanceSuper, QualType SuperType, Selector Sel, ArrayRef< SourceLocation > SelLocs, ObjCMethodDecl *Method, ArrayRef< Expr * > Args, SourceLocation RBracLoc, bool isImplicit) |
Create a message send to super. More... | |
static ObjCMessageExpr * | Create (const ASTContext &Context, QualType T, ExprValueKind VK, SourceLocation LBracLoc, TypeSourceInfo *Receiver, Selector Sel, ArrayRef< SourceLocation > SelLocs, ObjCMethodDecl *Method, ArrayRef< Expr * > Args, SourceLocation RBracLoc, bool isImplicit) |
Create a class message send. More... | |
static ObjCMessageExpr * | Create (const ASTContext &Context, QualType T, ExprValueKind VK, SourceLocation LBracLoc, Expr *Receiver, Selector Sel, ArrayRef< SourceLocation > SeLocs, ObjCMethodDecl *Method, ArrayRef< Expr * > Args, SourceLocation RBracLoc, bool isImplicit) |
Create an instance message send. More... | |
static ObjCMessageExpr * | CreateEmpty (const ASTContext &Context, unsigned NumArgs, unsigned NumStoredSelLocs) |
Create an empty Objective-C message expression, to be filled in by subsequent calls. More... | |
static bool | classof (const Stmt *T) |
![]() | |
static ExprValueKind | getValueKindForType (QualType T) |
static bool | isPotentialConstantExpr (const FunctionDecl *FD, SmallVectorImpl< PartialDiagnosticAt > &Diags) |
static bool | isPotentialConstantExprUnevaluated (Expr *E, const FunctionDecl *FD, SmallVectorImpl< PartialDiagnosticAt > &Diags) |
static QualType | findBoundMemberType (const Expr *expr) |
Given an expression of bound-member type, find the type of the member. Returns null if this is an overloaded bound member expression. More... | |
static bool | hasAnyTypeDependentArguments (ArrayRef< Expr * > Exprs) |
static bool | classof (const Stmt *T) |
Friends | |
class | ASTStmtReader |
class | ASTStmtWriter |
Additional Inherited Members | |
![]() | |
Expr (StmtClass SC, QualType T, ExprValueKind VK, ExprObjectKind OK, bool TD, bool VD, bool ID, bool ContainsUnexpandedParameterPack) | |
Expr (StmtClass SC, EmptyShell) | |
Construct an empty expression. More... | |
An expression that sends a message to the given Objective-C object or class.
The following contains two message send expressions:
The innermost message send invokes the "alloc" class method on the NSString class, while the outermost message send invokes the "initWithString" instance method on the object returned from NSString's "alloc". In all, an Objective-C message send can take on four different (although related) forms:
All four kinds of message sends are modeled by the ObjCMessageExpr class, and can be distinguished via getReceiverKind()
. Example:
Definition at line 858 of file ExprObjC.h.
Definition at line 1350 of file ExprObjC.h.
Definition at line 1351 of file ExprObjC.h.
The kind of receiver this message is sending to.
Enumerator | |
---|---|
Class |
The receiver is a class. |
Instance |
The receiver is an object instance. |
SuperClass |
The receiver is a superclass. |
SuperInstance |
The receiver is the instance of the superclass object. |
Definition at line 998 of file ExprObjC.h.
|
inline |
Definition at line 1353 of file ExprObjC.h.
References getArgs().
Referenced by clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr().
|
inline |
Definition at line 1357 of file ExprObjC.h.
References getArgs().
|
inline |
Definition at line 1354 of file ExprObjC.h.
References getArgs().
Referenced by clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr().
|
inline |
Definition at line 1360 of file ExprObjC.h.
References getArgs().
Stmt::child_range ObjCMessageExpr::children | ( | ) |
Definition at line 4188 of file Expr.cpp.
References getArgs(), getNumArgs(), getReceiverKind(), and Instance.
Definition at line 1343 of file ExprObjC.h.
|
static |
Create a message send to super.
Context | The ASTContext in which this expression will be created. |
T | The result type of this message. |
VK | The value kind of this message. A message returning a l-value or r-value reference will be an l-value or x-value, respectively. |
LBracLoc | The location of the open square bracket '['. |
SuperLoc | The location of the "super" keyword. |
IsInstanceSuper | Whether this is an instance "super" message (otherwise, it's a class "super" message). |
Sel | The selector used to determine which method gets called. |
Method | The Objective-C method against which this message send was type-checked. May be NULL. |
Args | The message send arguments. |
RBracLoc | The location of the closing square bracket ']'. |
Definition at line 3597 of file Expr.cpp.
References isImplicit().
Referenced by clang::Sema::BuildClassMessage(), and clang::Sema::BuildInstanceMessage().
|
static |
Create a class message send.
Context | The ASTContext in which this expression will be created. |
T | The result type of this message. |
VK | The value kind of this message. A message returning a l-value or r-value reference will be an l-value or x-value, respectively. |
LBracLoc | The location of the open square bracket '['. |
Receiver | The type of the receiver, including source-location information. |
Sel | The selector used to determine which method gets called. |
Method | The Objective-C method against which this message send was type-checked. May be NULL. |
Args | The message send arguments. |
RBracLoc | The location of the closing square bracket ']'. |
Definition at line 3622 of file Expr.cpp.
References isImplicit().
|
static |
Create an instance message send.
Context | The ASTContext in which this expression will be created. |
T | The result type of this message. |
VK | The value kind of this message. A message returning a l-value or r-value reference will be an l-value or x-value, respectively. |
LBracLoc | The location of the open square bracket '['. |
Receiver | The expression used to produce the object that will receive this message. |
Sel | The selector used to determine which method gets called. |
Method | The Objective-C method against which this message send was type-checked. May be NULL. |
Args | The message send arguments. |
RBracLoc | The location of the closing square bracket ']'. |
Definition at line 3645 of file Expr.cpp.
References isImplicit().
|
static |
getArg - Return the specified argument.
Definition at line 1286 of file ExprObjC.h.
References getArgs().
Referenced by clang::Sema::checkRetainCycles(), doRewriteToUTF8StringBoxedExpressionHelper(), clang::edit::rewriteObjCRedundantCallWithLiteral(), rewriteToArrayLiteral(), rewriteToArraySubscriptSet(), rewriteToDictionaryLiteral(), rewriteToDictionarySubscriptSet(), rewriteToNumberLiteral(), rewriteToNumericBoxedExpression(), rewriteToStringBoxedExpression(), rewriteToSubscriptGetCommon(), and shouldNotRewriteImmediateMessageArgs().
Definition at line 1290 of file ExprObjC.h.
References getArgs().
|
inline |
Retrieve the arguments to this message, not including the receiver.
Definition at line 1278 of file ExprObjC.h.
Referenced by arg_begin(), arg_end(), children(), getArg(), getSelectorLoc(), and setArg().
|
inline |
Definition at line 1281 of file ExprObjC.h.
|
inline |
Returns the type of a class message send, or NULL if the message is not a class message.
Definition at line 1171 of file ExprObjC.h.
References getClassReceiverTypeInfo().
Referenced by clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), GetAssumedMessageSendExprType(), getReceiverType(), and maybeAdjustInterfaceForSubscriptingCheck().
|
inline |
Returns a type-source information of a class message send, or NULL if the message is not a class message.
Definition at line 1180 of file ExprObjC.h.
References Class, and getReceiverKind().
Referenced by getClassReceiver(), and getReceiverRange().
|
inline |
Returns the object expression (receiver) for an instance message, or null for a message that is not an instance message.
Definition at line 1152 of file ExprObjC.h.
References getReceiverKind(), and Instance.
Referenced by canRewriteToSubscriptSyntax(), checkForLiteralCreation(), clang::Sema::checkRetainCycles(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), GetAssumedMessageSendExprType(), getInstanceReceiver(), clang::ento::NilReceiverBRVisitor::getNilReceiver(), getReceiverRange(), getReceiverType(), clang::arcmt::trans::hasSideEffects(), clang::sema::FunctionScopeInfo::recordUseOfWeak(), rewriteToArraySubscriptSet(), rewriteToDictionarySubscriptSet(), rewriteToSubscriptGetCommon(), and shouldExtendReceiverForInnerPointerMessage().
|
inline |
Definition at line 1158 of file ExprObjC.h.
References getInstanceReceiver().
|
inline |
Definition at line 1306 of file ExprObjC.h.
|
inline |
Definition at line 1341 of file ExprObjC.h.
|
inline |
Definition at line 1340 of file ExprObjC.h.
Referenced by getSelectorStartLoc().
|
inline |
Definition at line 1248 of file ExprObjC.h.
Referenced by checkForLiteralCreation(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::Sema::EmitRelatedResultTypeNote(), GetAssumedMessageSendExprType(), getMethodFamily(), clang::ObjCMethodCall::getRuntimeDefinition(), IsReadonlyMessage(), clang::Expr::isUnusedResultAWarning(), and clang::edit::rewriteToObjCSubscriptSyntax().
|
inline |
Definition at line 1255 of file ExprObjC.h.
|
inline |
Definition at line 1267 of file ExprObjC.h.
References getMethodDecl(), clang::ObjCMethodDecl::getMethodFamily(), clang::Selector::getMethodFamily(), and getSelector().
Referenced by clang::Sema::BuildInstanceMessage(), clang::arcmt::trans::hasSideEffects(), and clang::Expr::isUnusedResultAWarning().
|
inline |
Return the number of actual arguments in this message, not counting the receiver.
Definition at line 1274 of file ExprObjC.h.
Referenced by clang::Sema::checkRetainCycles(), children(), getSelectorLoc(), clang::sema::FunctionScopeInfo::recordUseOfWeak(), clang::edit::rewriteObjCRedundantCallWithLiteral(), rewriteToArrayLiteral(), rewriteToArraySubscriptSet(), rewriteToDictionaryLiteral(), rewriteToDictionarySubscriptSet(), rewriteToNumberLiteral(), rewriteToNumericBoxedExpression(), clang::edit::rewriteToObjCSubscriptSyntax(), rewriteToStringBoxedExpression(), rewriteToSubscriptGetCommon(), and shouldNotRewriteImmediateMessageArgs().
|
inline |
Definition at line 1327 of file ExprObjC.h.
References clang::Selector::getNumArgs(), getSelector(), isImplicit(), and clang::Selector::isUnarySelector().
Referenced by getSelectorLoc(), and getSelectorLocs().
ObjCInterfaceDecl * ObjCMessageExpr::getReceiverInterface | ( | ) | const |
Retrieve the Objective-C interface to which this message is being directed, if known.
This routine cross-cuts all of the different kinds of message sends to determine what the underlying (statically known) type of the receiver will be; use getReceiverKind()
to determine whether the message is a class or an instance method, whether it is a send to super or not, etc.
Definition at line 3739 of file Expr.cpp.
References clang::Type::getAs(), and getReceiverType().
Referenced by checkForLiteralCreation(), getMethodReceiverIfKnownImmutable(), GetNSMutableArrayArgumentIndex(), GetNSMutableDictionaryArgumentIndex(), GetNSSetArgumentIndex(), clang::ObjCMethodCall::getRuntimeDefinition(), and clang::ObjCNoReturn::isImplicitNoReturn().
|
inline |
Determine the kind of receiver that this message is being sent to.
Definition at line 1133 of file ExprObjC.h.
Referenced by checkForLiteralCreation(), clang::Sema::checkRetainCycles(), children(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), GetAssumedMessageSendExprType(), getClassReceiverTypeInfo(), getInstanceReceiver(), getReceiverRange(), getReceiverType(), getSuperLoc(), getSuperType(), clang::arcmt::trans::hasSideEffects(), isClassMessage(), isInstanceMessage(), maybeAdjustInterfaceForSubscriptingCheck(), clang::edit::rewriteToObjCSubscriptSyntax(), and shouldExtendReceiverForInnerPointerMessage().
SourceRange ObjCMessageExpr::getReceiverRange | ( | ) | const |
Source range of the receiver.
Definition at line 3702 of file Expr.cpp.
References Class, getClassReceiverTypeInfo(), getInstanceReceiver(), getReceiverKind(), clang::TypeLoc::getSourceRange(), getSuperLoc(), clang::TypeSourceInfo::getTypeLoc(), Instance, SuperClass, and SuperInstance.
QualType ObjCMessageExpr::getReceiverType | ( | ) | const |
Retrieve the receiver type to which this message is being directed.
This routine cross-cuts all of the different kinds of message sends to determine what the underlying (statically known) type of the receiver will be; use getReceiverKind()
to determine whether the message is a class or an instance method, whether it is a send to super or not, etc.
Definition at line 3725 of file Expr.cpp.
References Class, getClassReceiver(), getInstanceReceiver(), getReceiverKind(), getSuperType(), clang::Expr::getType(), Instance, SuperClass, and SuperInstance.
Referenced by getReceiverInterface().
|
inline |
Definition at line 1307 of file ExprObjC.h.
Selector ObjCMessageExpr::getSelector | ( | ) | const |
Definition at line 3718 of file Expr.cpp.
Referenced by applyCocoaAPICheck(), clang::Sema::checkRetainCycles(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), GetAssumedMessageSendExprType(), getMethodFamily(), GetNSMutableArrayArgumentIndex(), GetNSMutableDictionaryArgumentIndex(), GetNSSetArgumentIndex(), getNumSelectorLocs(), clang::ObjCMethodCall::getRuntimeDefinition(), getSelectorLoc(), clang::ObjCNoReturn::isImplicitNoReturn(), clang::edit::rewriteObjCRedundantCallWithLiteral(), rewriteToArrayLiteral(), rewriteToBoolLiteral(), rewriteToCharLiteral(), rewriteToDictionaryLiteral(), rewriteToNumberLiteral(), rewriteToNumericBoxedExpression(), clang::edit::rewriteToObjCSubscriptSyntax(), rewriteToStringBoxedExpression(), and shouldNotRewriteImmediateMessageArgs().
|
inline |
Definition at line 1314 of file ExprObjC.h.
References getArgs(), getNumArgs(), getNumSelectorLocs(), getSelector(), clang::getStandardSelectorLoc(), and clang::SelLoc_StandardWithSpace.
Referenced by getSelectorLocs(), and getSelectorStartLoc().
void ObjCMessageExpr::getSelectorLocs | ( | SmallVectorImpl< SourceLocation > & | SelLocs | ) | const |
Definition at line 3696 of file Expr.cpp.
References getNumSelectorLocs(), and getSelectorLoc().
|
inline |
Definition at line 1309 of file ExprObjC.h.
References getLocStart(), getSelectorLoc(), and isImplicit().
|
inline |
Retrieve the location of the 'super' keyword for a class or instance message to 'super', otherwise an invalid source location.
Definition at line 1193 of file ExprObjC.h.
References getReceiverKind(), SuperClass, and SuperInstance.
Referenced by clang::Sema::checkRetainCycles(), and getReceiverRange().
|
inline |
Retrieve the type referred to by 'super'.
The returned type will either be an ObjCInterfaceType (for an class message to super) or an ObjCObjectPointerType that refers to a class (for an instance message to super);
Definition at line 1228 of file ExprObjC.h.
References clang::QualType::getFromOpaquePtr(), getReceiverKind(), SuperClass, and SuperInstance.
Referenced by clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), getReceiverType(), clang::ObjCMethodCall::getRuntimeDefinition(), and maybeAdjustInterfaceForSubscriptingCheck().
|
inline |
Determine whether this is an class message to either a specified class or to super.
Definition at line 1146 of file ExprObjC.h.
References Class, getReceiverKind(), and SuperClass.
|
inline |
isDelegateInitCall - Answers whether this message send has been tagged as a "delegate init call", i.e. a call to a method in the -init family on self from within an -init method implementation.
Definition at line 1303 of file ExprObjC.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr().
|
inline |
Indicates whether the message send was implicitly generated by the implementation. If false, it was written explicitly in the source code.
Definition at line 1129 of file ExprObjC.h.
Referenced by checkForLiteralCreation(), Create(), getNumSelectorLocs(), getSelectorStartLoc(), and clang::edit::rewriteToObjCSubscriptSyntax().
|
inline |
Determine whether this is an instance message to either a computed object or to super.
Definition at line 1140 of file ExprObjC.h.
References getReceiverKind(), Instance, and SuperInstance.
Referenced by clang::Sema::checkRetainCycles(), clang::ObjCMethodCall::getRuntimeDefinition(), clang::ObjCNoReturn::isImplicitNoReturn(), and clang::Expr::isUnusedResultAWarning().
setArg - Set the specified argument.
Definition at line 1295 of file ExprObjC.h.
References getArgs().
|
inline |
Definition at line 1186 of file ExprObjC.h.
References Class.
|
inline |
Definition at line 1304 of file ExprObjC.h.
Referenced by clang::Sema::BuildInstanceMessage().
|
inline |
Turn this message send into an instance message that computes the receiver object with the given expression.
Definition at line 1164 of file ExprObjC.h.
References Instance.
|
inline |
Definition at line 1262 of file ExprObjC.h.
|
inline |
Definition at line 1243 of file ExprObjC.h.
References clang::Selector::getAsOpaquePtr().
|
inline |
Definition at line 1336 of file ExprObjC.h.
References clang::SourceRange::getBegin(), and clang::SourceRange::getEnd().
|
inline |
Definition at line 1235 of file ExprObjC.h.
References clang::QualType::getAsOpaquePtr(), SuperClass, and SuperInstance.
|
friend |
Definition at line 1364 of file ExprObjC.h.
|
friend |
Definition at line 1365 of file ExprObjC.h.