Home | History | Annotate | Download | only in Sema

Lines Matching full:receiver

1077   //   - if the receiver is super, T is a pointer to the class of the 
1086 // - if the receiver is the name of a class U, T is a pointer to U
1090 // - if the receiver is of type Class or qualified Class type,
1096 // - if the receiver is id, qualified id, Class, or qualified Class, T
1097 // is the receiver type, otherwise
1098 // - T is the type of the receiver expression.
1367 bool Sema::isSelfExpr(Expr *receiver) {
1373 receiver = receiver->IgnoreParenLValueCasts();
1374 if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(receiver))
1421 static void DiagnoseARCUseOfWeakReceiver(Sema &S, Expr *Receiver) {
1422 if (!Receiver)
1425 if (OpaqueValueExpr *OVE = dyn_cast<OpaqueValueExpr>(Receiver))
1426 Receiver = OVE->getSourceExpr();
1428 Expr *RExpr = Receiver->IgnoreParenImpCasts();
1451 // See if receiver is a method which envokes a synthesized getter
1658 // If the "receiver" is 'super' in a method, handle it as an expression-like
1997 /// receiver of this message. This may be NULL, in which case we are
2043 // If the receiver type is dependent, we can't type-check anything
2136 ParsedType Receiver,
2143 QualType ReceiverType = GetTypeFromParser(Receiver, &ReceiverTypeInfo);
2156 ExprResult Sema::BuildInstanceMessageImplicit(Expr *Receiver,
2162 return BuildInstanceMessage(Receiver, ReceiverType,
2163 /*SuperLoc=*/!Receiver ? Loc : SourceLocation(),
2173 /// \param Receiver The expression that computes the object that will
2179 /// message. When a \p Receiver expression is provided, this is the
2196 ExprResult Sema::BuildInstanceMessage(Expr *Receiver,
2206 // The location of the receiver.
2207 SourceLocation Loc = SuperLoc.isValid()? SuperLoc : Receiver->getLocStart();
2209 SuperLoc.isValid()? SuperLoc : Receiver->getSourceRange();
2222 // If we have a receiver expression, perform appropriate promotions
2223 // and determine receiver type.
2224 if (Receiver) {
2225 if (Receiver->hasPlaceholderType()) {
2227 if (Receiver->getType() == Context.UnknownAnyTy)
2228 Result = forceUnknownAnyToType(Receiver, Context.getObjCIdType());
2230 Result = CheckPlaceholderExpr(Receiver);
2232 Receiver = Result.take();
2235 if (Receiver->isTypeDependent()) {
2236 // If the receiver is type-dependent, we can't type-check anything
2242 VK_RValue, LBracLoc, Receiver, Sel,
2248 // If necessary, apply function/array conversion to the receiver.
2250 ExprResult Result = DefaultFunctionArrayLvalueConversion(Receiver);
2253 Receiver = Result.take();
2254 ReceiverType = Receiver->getType();
2256 // If the receiver is an ObjC pointer, a block pointer, or an
2258 // special conversion in order to look up a receiver.
2269 << Receiver->getSourceRange();
2271 Receiver = ImpCastExprToType(Receiver, Context.getObjCIdType(),
2275 bool IsNull = Receiver->isNullPointerConstant(Context,
2278 Receiver = ImpCastExprToType(Receiver, Context.getObjCIdType(),
2281 ReceiverType = Receiver->getType();
2283 ExprResult result = PerformContextuallyConvertToObjCPointer(Receiver);
2285 Receiver = result.take();
2286 ReceiverType = Receiver->getType();
2293 // of the more detailed type-checking on the receiver.
2299 (Receiver && Context.isObjCNSObjectType(Receiver->getType()))) {
2340 if (!Receiver || !isSelfExpr(Receiver)) {
2387 Receiver? Receiver->getSourceRange()
2393 Diag(Receiver ? Receiver->getLocStart()
2415 if (!Method && (!Receiver || !isSelfExpr(Receiver))) {
2432 // Reject other random receiver types (e.g. structs).
2434 << ReceiverType << Receiver->getSourceRange();
2547 Receiver, Sel, SelectorLocs, Method,
2555 DiagnoseARCUseOfWeakReceiver(*this, Receiver);
2559 (SuperLoc.isValid() || isSelfExpr(Receiver))) {
2613 Expr *Receiver,
2619 if (!Receiver)
2623 if (isa<ParenListExpr>(Receiver)) {
2624 ExprResult Result = MaybeConvertParenListExprToParenExpr(S, Receiver);
2626 Receiver = Result.take();
2636 return BuildInstanceMessage(Receiver, Receiver->getType(),