Lines Matching refs:Receiver
1273 /// Determine the result type of a message send based on the receiver type,
1316 // - if the receiver is super, T is a pointer to the class of the
1327 // - if the receiver is the name of a class U, T is a pointer to U
1330 // - if the receiver is of type Class or qualified Class type,
1337 // - if the receiver is id, qualified id, Class, or qualified Class, T
1338 // is the receiver type, otherwise
1339 // - T is the type of the receiver expression.
1353 // If this is a class message, ignore the nullability of the receiver.
1366 // The table of nullability mappings, indexed by the receiver's nullability
1708 bool Sema::isSelfExpr(Expr *receiver, const ObjCMethodDecl *method) {
1711 receiver = receiver->IgnoreParenLValueCasts();
1712 if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(receiver))
1935 // If the "receiver" is 'super' in a method, handle it as an expression-like
2295 /// receiver of this message. This may be NULL, in which case we are
2341 // If the receiver type is dependent, we can't type-check anything
2459 ParsedType Receiver,
2466 QualType ReceiverType = GetTypeFromParser(Receiver, &ReceiverTypeInfo);
2480 ExprResult Sema::BuildInstanceMessageImplicit(Expr *Receiver,
2486 return BuildInstanceMessage(Receiver, ReceiverType,
2487 /*SuperLoc=*/!Receiver ? Loc : SourceLocation(),
2497 /// \param Receiver The expression that computes the object that will
2503 /// message. When a \p Receiver expression is provided, this is the
2520 ExprResult Sema::BuildInstanceMessage(Expr *Receiver,
2530 // The location of the receiver.
2531 SourceLocation Loc = SuperLoc.isValid()? SuperLoc : Receiver->getLocStart();
2533 SuperLoc.isValid()? SuperLoc : Receiver->getSourceRange();
2546 // If we have a receiver expression, perform appropriate promotions
2547 // and determine receiver type.
2548 if (Receiver) {
2549 if (Receiver->hasPlaceholderType()) {
2551 if (Receiver->getType() == Context.UnknownAnyTy)
2552 Result = forceUnknownAnyToType(Receiver, Context.getObjCIdType());
2554 Result = CheckPlaceholderExpr(Receiver);
2556 Receiver = Result.get();
2559 if (Receiver->isTypeDependent()) {
2560 // If the receiver is type-dependent, we can't type-check anything
2566 Context, Context.DependentTy, VK_RValue, LBracLoc, Receiver, Sel,
2571 // If necessary, apply function/array conversion to the receiver.
2573 ExprResult Result = DefaultFunctionArrayLvalueConversion(Receiver);
2576 Receiver = Result.get();
2577 ReceiverType = Receiver->getType();
2579 // If the receiver is an ObjC pointer, a block pointer, or an
2581 // special conversion in order to look up a receiver.
2592 << Receiver->getSourceRange();
2594 Receiver = ImpCastExprToType(Receiver, Context.getObjCIdType(),
2598 bool IsNull = Receiver->isNullPointerConstant(Context,
2601 Receiver = ImpCastExprToType(Receiver, Context.getObjCIdType(),
2604 ReceiverType = Receiver->getType();
2606 // The receiver must be a complete type.
2607 if (RequireCompleteType(Loc, Receiver->getType(),
2611 ExprResult result = PerformContextuallyConvertToObjCPointer(Receiver);
2613 Receiver = result.get();
2614 ReceiverType = Receiver->getType();
2621 // of the more detailed type-checking on the receiver.
2632 (Receiver && Context.isObjCNSObjectType(Receiver->getType()))) {
2685 if (!Receiver || !isSelfExpr(Receiver)) {
2736 Receiver? Receiver->getSourceRange()
2742 Diag(Receiver ? Receiver->getLocStart()
2764 if (!Method && (!Receiver || !isSelfExpr(Receiver))) {
2789 // Reject other random receiver types (e.g. structs).
2791 << ReceiverType << Receiver->getSourceRange();
2803 (SuperLoc.isValid() || isSelfExpr(Receiver))) {
2835 (SuperLoc.isValid() || isSelfExpr(Receiver))) {
2953 Receiver, Sel, SelectorLocs, Method,
2963 (SuperLoc.isValid() || isSelfExpr(Receiver))) {
3012 Expr *Receiver,
3018 if (!Receiver)
3022 if (isa<ParenListExpr>(Receiver)) {
3023 ExprResult Result = MaybeConvertParenListExprToParenExpr(S, Receiver);
3025 Receiver = Result.get();
3035 return BuildInstanceMessage(Receiver, Receiver->getType(),