Lines Matching refs:Msg

25 static bool checkForLiteralCreation(const ObjCMessageExpr *Msg,
28 if (!Msg || Msg->isImplicit() || !Msg->getMethodDecl())
31 const ObjCInterfaceDecl *Receiver = Msg->getReceiverInterface();
36 if (Msg->getReceiverKind() == ObjCMessageExpr::Class)
42 if (Msg->getReceiverKind() == ObjCMessageExpr::Instance) {
44 Msg->getInstanceReceiver()->IgnoreParenImpCasts())) {
58 bool edit::rewriteObjCRedundantCallWithLiteral(const ObjCMessageExpr *Msg,
61 if (!checkForLiteralCreation(Msg, II, NS.getASTContext().getLangOpts()))
63 if (Msg->getNumArgs() != 1)
66 const Expr *Arg = Msg->getArg(0)->IgnoreParenImpCasts();
67 Selector Sel = Msg->getSelector();
85 commit.replaceWithInner(Msg->getSourceRange(),
86 Msg->getArg(0)->getSourceRange());
156 const ObjCMessageExpr *Msg,
159 const Expr *Rec = Msg->getInstanceReceiver();
180 static bool rewriteToSubscriptGetCommon(const ObjCMessageExpr *Msg,
182 if (Msg->getNumArgs() != 1)
184 const Expr *Rec = Msg->getInstanceReceiver();
188 SourceRange MsgRange = Msg->getSourceRange();
190 SourceRange ArgRange = Msg->getArg(0)->getSourceRange();
203 const ObjCMessageExpr *Msg,
206 if (!canRewriteToSubscriptSyntax(IFace, Msg, NS.getASTContext(),
209 return rewriteToSubscriptGetCommon(Msg, commit);
213 const ObjCMessageExpr *Msg,
216 if (!canRewriteToSubscriptSyntax(IFace, Msg, NS.getASTContext(),
219 return rewriteToSubscriptGetCommon(Msg, commit);
223 const ObjCMessageExpr *Msg,
226 if (!canRewriteToSubscriptSyntax(IFace, Msg, NS.getASTContext(),
230 if (Msg->getNumArgs() != 2)
232 const Expr *Rec = Msg->getInstanceReceiver();
236 SourceRange MsgRange = Msg->getSourceRange();
238 SourceRange Arg0Range = Msg->getArg(0)->getSourceRange();
239 SourceRange Arg1Range = Msg->getArg(1)->getSourceRange();
257 const ObjCMessageExpr *Msg,
260 if (!canRewriteToSubscriptSyntax(IFace, Msg, NS.getASTContext(),
264 if (Msg->getNumArgs() != 2)
266 const Expr *Rec = Msg->getInstanceReceiver();
270 SourceRange MsgRange = Msg->getSourceRange();
272 SourceRange Arg0Range = Msg->getArg(0)->getSourceRange();
273 SourceRange Arg1Range = Msg->getArg(1)->getSourceRange();
289 bool edit::rewriteToObjCSubscriptSyntax(const ObjCMessageExpr *Msg,
291 if (!Msg || Msg->isImplicit() ||
292 Msg->getReceiverKind() != ObjCMessageExpr::Instance)
294 const ObjCMethodDecl *Method = Msg->getMethodDecl();
302 Selector Sel = Msg->getSelector();
305 return rewriteToArraySubscriptGet(IFace, Msg, NS, commit);
308 return rewriteToDictionarySubscriptGet(IFace, Msg, NS, commit);
310 if (Msg->getNumArgs() != 2)
314 return rewriteToArraySubscriptSet(IFace, Msg, NS, commit);
317 return rewriteToDictionarySubscriptSet(IFace, Msg, NS, commit);
326 static bool rewriteToArrayLiteral(const ObjCMessageExpr *Msg,
329 static bool rewriteToDictionaryLiteral(const ObjCMessageExpr *Msg,
331 static bool rewriteToNumberLiteral(const ObjCMessageExpr *Msg,
333 static bool rewriteToNumericBoxedExpression(const ObjCMessageExpr *Msg,
335 static bool rewriteToStringBoxedExpression(const ObjCMessageExpr *Msg,
338 bool edit::rewriteToObjCLiteralSyntax(const ObjCMessageExpr *Msg,
342 if (!checkForLiteralCreation(Msg, II, NS.getASTContext().getLangOpts()))
346 return rewriteToArrayLiteral(Msg, NS, commit, PMap);
348 return rewriteToDictionaryLiteral(Msg, NS, commit);
350 return rewriteToNumberLiteral(Msg, NS, commit);
352 return rewriteToStringBoxedExpression(Msg, NS, commit);
357 /// Returns true if the immediate message arguments of \c Msg should not
367 static bool shouldNotRewriteImmediateMessageArgs(const ObjCMessageExpr *Msg,
377 static bool rewriteToArrayLiteral(const ObjCMessageExpr *Msg,
382 dyn_cast_or_null<ObjCMessageExpr>(PMap->getParentIgnoreParenCasts(Msg));
387 Selector Sel = Msg->getSelector();
388 SourceRange MsgRange = Msg->getSourceRange();
391 if (Msg->getNumArgs() != 0)
398 if (Msg->getNumArgs() != 1)
400 objectifyExpr(Msg->getArg(0), commit);
401 SourceRange ArgRange = Msg->getArg(0)->getSourceRange();
409 if (Msg->getNumArgs() == 0)
411 const Expr *SentinelExpr = Msg->getArg(Msg->getNumArgs() - 1);
415 for (unsigned i = 0, e = Msg->getNumArgs() - 1; i != e; ++i)
416 objectifyExpr(Msg->getArg(i), commit);
418 if (Msg->getNumArgs() == 1) {
422 SourceRange ArgRange(Msg->getArg(0)->getBeginLoc(),
423 Msg->getArg(Msg->getNumArgs() - 2)->getEndLoc());
436 /// If \c Msg is an NSArray creation message or literal, this gets the
448 if (const ObjCMessageExpr *Msg = dyn_cast<ObjCMessageExpr>(E)) {
450 if (!checkForLiteralCreation(Msg, Cls, NS.getASTContext().getLangOpts()))
456 Selector Sel = Msg->getSelector();
461 if (Msg->getNumArgs() != 1)
463 Objs.push_back(Msg->getArg(0));
469 if (Msg->getNumArgs() == 0)
471 const Expr *SentinelExpr = Msg->getArg(Msg->getNumArgs() - 1);
475 for (unsigned i = 0, e = Msg->getNumArgs() - 1; i != e; ++i)
476 Objs.push_back(Msg->getArg(i));
489 static bool rewriteToDictionaryLiteral(const ObjCMessageExpr *Msg,
491 Selector Sel = Msg->getSelector();
492 SourceRange MsgRange = Msg->getSourceRange();
495 if (Msg->getNumArgs() != 0)
503 if (Msg->getNumArgs() != 2)
506 objectifyExpr(Msg->getArg(0), commit);
507 objectifyExpr(Msg->getArg(1), commit);
509 SourceRange ValRange = Msg->getArg(0)->getSourceRange();
510 SourceRange KeyRange = Msg->getArg(1)->getSourceRange();
525 if (Msg->getNumArgs() % 2 != 1)
527 unsigned SentinelIdx = Msg->getNumArgs() - 1;
528 const Expr *SentinelExpr = Msg->getArg(SentinelIdx);
532 if (Msg->getNumArgs() == 1) {
538 objectifyExpr(Msg->getArg(i), commit);
539 objectifyExpr(Msg->getArg(i+1), commit);
541 SourceRange ValRange = Msg->getArg(i)->getSourceRange();
542 SourceRange KeyRange = Msg->getArg(i+1)->getSourceRange();
552 SourceRange ArgRange(Msg->getArg(1)->getBeginLoc(),
553 Msg->getArg(SentinelIdx - 1)->getEndLoc());
562 if (Msg->getNumArgs() != 2)
566 if (!getNSArrayObjects(Msg->getArg(0), NS, Vals))
570 if (!getNSArrayObjects(Msg->getArg(1), NS, Keys))
602 static bool shouldNotRewriteImmediateMessageArgs(const ObjCMessageExpr *Msg,
604 if (!Msg)
608 if (!checkForLiteralCreation(Msg, II, NS.getASTContext().getLangOpts()))
614 Selector Sel = Msg->getSelector();
618 if (Msg->getNumArgs() != 2)
622 if (!getNSArrayObjects(Msg->getArg(0), NS, Vals))
626 if (!getNSArrayObjects(Msg->getArg(1), NS, Keys))
642 static bool rewriteToCharLiteral(const ObjCMessageExpr *Msg,
648 Msg->getSelector())) {
650 commit.replaceWithInner(Msg->getSourceRange(), ArgRange);
655 return rewriteToNumericBoxedExpression(Msg, NS, commit);
658 static bool rewriteToBoolLiteral(const ObjCMessageExpr *Msg,
662 Msg->getSelector())) {
664 commit.replaceWithInner(Msg->getSourceRange(), ArgRange);
669 return rewriteToNumericBoxedExpression(Msg, NS, commit);
752 static bool rewriteToNumberLiteral(const ObjCMessageExpr *Msg,
754 if (Msg->getNumArgs() != 1)
757 const Expr *Arg = Msg->getArg(0)->IgnoreParenImpCasts();
759 return rewriteToCharLiteral(Msg, CharE, NS, commit);
761 return rewriteToBoolLiteral(Msg, BE, NS, commit);
763 return rewriteToBoolLiteral(Msg, BE, NS, commit);
774 return rewriteToNumericBoxedExpression(Msg, NS, commit);
777 Selector Sel = Msg->getSelector();
794 return rewriteToNumericBoxedExpression(Msg, NS, commit);
828 QualType CallTy = Msg->getArg(0)->getType();
832 commit.replaceWithInner(Msg->getSourceRange(), ArgRange);
840 return rewriteToNumericBoxedExpression(Msg, NS, commit);
847 return rewriteToNumericBoxedExpression(Msg, NS, commit);
858 return rewriteToNumericBoxedExpression(Msg, NS, commit);
862 return rewriteToNumericBoxedExpression(Msg, NS, commit);
867 commit.replaceWithInner(CharSourceRange::getTokenRange(Msg->getSourceRange()),
975 static bool rewriteToNumericBoxedExpression(const ObjCMessageExpr *Msg,
977 if (Msg->getNumArgs() != 1)
980 const Expr *Arg = Msg->getArg(0);
985 Selector Sel = Msg->getSelector();
1101 Diags.Report(Msg->getExprLoc(), diagID) << OrigTy << FinalTy
1102 << Msg->getSourceRange();
1107 commit.replaceWithInner(Msg->getSourceRange(), ArgRange);
1122 const ObjCMessageExpr *Msg,
1124 const Expr *Arg = Msg->getArg(0);
1137 commit.replaceWithInner(Msg->getSourceRange(), StrE->getSourceRange());
1146 commit.replaceWithInner(Msg->getSourceRange(), ArgRange);
1160 static bool rewriteToStringBoxedExpression(const ObjCMessageExpr *Msg,
1162 Selector Sel = Msg->getSelector();
1167 if (Msg->getNumArgs() != 1)
1169 return doRewriteToUTF8StringBoxedExpressionHelper(Msg, NS, commit);
1173 if (Msg->getNumArgs() != 2)
1176 const Expr *encodingArg = Msg->getArg(1);
1179 return doRewriteToUTF8StringBoxedExpressionHelper(Msg, NS, commit);