Lines Matching full:receiver
1072 // - if the receiver is super, T is a pointer to the class of the
1081 // - if the receiver is the name of a class U, T is a pointer to U
1085 // - if the receiver is of type Class or qualified Class type,
1091 // - if the receiver is id, qualified id, Class, or qualified Class, T
1092 // is the receiver type, otherwise
1093 // - T is the type of the receiver expression.
1244 bool Sema::isSelfExpr(Expr *receiver) {
1250 receiver = receiver->IgnoreParenLValueCasts();
1251 if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(receiver))
1298 static void DiagnoseARCUseOfWeakReceiver(Sema &S, Expr *Receiver) {
1299 if (!Receiver)
1302 if (OpaqueValueExpr *OVE = dyn_cast<OpaqueValueExpr>(Receiver))
1303 Receiver = OVE->getSourceExpr();
1305 Expr *RExpr = Receiver->IgnoreParenImpCasts();
1328 // See if receiver is a method which envokes a synthesized getter
1540 // If the "receiver" is 'super' in a method, handle it as an expression-like
1879 /// receiver of this message. This may be NULL, in which case we are
1920 // If the receiver type is dependent, we can't type-check anything
2012 ParsedType Receiver,
2019 QualType ReceiverType = GetTypeFromParser(Receiver, &ReceiverTypeInfo);
2032 ExprResult Sema::BuildInstanceMessageImplicit(Expr *Receiver,
2038 return BuildInstanceMessage(Receiver, ReceiverType,
2039 /*SuperLoc=*/!Receiver ? Loc : SourceLocation(),
2049 /// \param Receiver The expression that computes the object that will
2055 /// message. When a \p Receiver expression is provided, this is the
2072 ExprResult Sema::BuildInstanceMessage(Expr *Receiver,
2082 // The location of the receiver.
2083 SourceLocation Loc = SuperLoc.isValid()? SuperLoc : Receiver->getLocStart();
2091 // If we have a receiver expression, perform appropriate promotions
2092 // and determine receiver type.
2093 if (Receiver) {
2094 if (Receiver->hasPlaceholderType()) {
2096 if (Receiver->getType() == Context.UnknownAnyTy)
2097 Result = forceUnknownAnyToType(Receiver, Context.getObjCIdType());
2099 Result = CheckPlaceholderExpr(Receiver);
2101 Receiver = Result.take();
2104 if (Receiver->isTypeDependent()) {
2105 // If the receiver is type-dependent, we can't type-check anything
2111 VK_RValue, LBracLoc, Receiver, Sel,
2117 // If necessary, apply function/array conversion to the receiver.
2119 ExprResult Result = DefaultFunctionArrayLvalueConversion(Receiver);
2122 Receiver = Result.take();
2123 ReceiverType = Receiver->getType();
2130 (Receiver && Context.isObjCNSObjectType(Receiver->getType()))) {
2171 if (!Receiver || !isSelfExpr(Receiver)) {
2218 Receiver? Receiver->getSourceRange()
2224 Diag(Receiver ? Receiver->getLocStart()
2245 if (!Method && (!Receiver || !isSelfExpr(Receiver))) {
2268 << Receiver->getSourceRange();
2270 Receiver = ImpCastExprToType(Receiver, Context.getObjCIdType(),
2274 bool IsNull = Receiver->isNullPointerConstant(Context,
2277 Receiver = ImpCastExprToType(Receiver, Context.getObjCIdType(),
2280 ReceiverType = Receiver->getType();
2284 ReceiverRes = PerformContextuallyConvertToObjCPointer(Receiver);
2286 Receiver = ReceiverRes.take();
2287 return BuildInstanceMessage(Receiver,
2297 // Reject other random receiver types (e.g. structs).
2299 << ReceiverType << Receiver->getSourceRange();
2415 Receiver, Sel, SelectorLocs, Method,
2423 DiagnoseARCUseOfWeakReceiver(*this, Receiver);
2427 (SuperLoc.isValid() || isSelfExpr(Receiver))) {
2451 Expr *Receiver,
2457 if (!Receiver)
2460 return BuildInstanceMessage(Receiver, Receiver->getType(),