Home | History | Annotate | Download | only in Edit

Lines Matching refs:Msg

26 static bool checkForLiteralCreation(const ObjCMessageExpr *Msg,
29 if (!Msg || Msg->isImplicit() || !Msg->getMethodDecl())
32 const ObjCInterfaceDecl *Receiver = Msg->getReceiverInterface();
37 if (Msg->getReceiverKind() == ObjCMessageExpr::Class)
43 if (Msg->getReceiverKind() == ObjCMessageExpr::Instance) {
45 Msg->getInstanceReceiver()->IgnoreParenImpCasts())) {
59 bool edit::rewriteObjCRedundantCallWithLiteral(const ObjCMessageExpr *Msg,
62 if (!checkForLiteralCreation(Msg, II, NS.getASTContext().getLangOpts()))
64 if (Msg->getNumArgs() != 1)
67 const Expr *Arg = Msg->getArg(0)->IgnoreParenImpCasts();
68 Selector Sel = Msg->getSelector();
86 commit.replaceWithInner(Msg->getSourceRange(),
87 Msg->getArg(0)->getSourceRange());
157 const ObjCMessageExpr *Msg,
160 const Expr *Rec = Msg->getInstanceReceiver();
181 static bool rewriteToSubscriptGetCommon(const ObjCMessageExpr *Msg,
183 if (Msg->getNumArgs() != 1)
185 const Expr *Rec = Msg->getInstanceReceiver();
189 SourceRange MsgRange = Msg->getSourceRange();
191 SourceRange ArgRange = Msg->getArg(0)->getSourceRange();
204 const ObjCMessageExpr *Msg,
207 if (!canRewriteToSubscriptSyntax(IFace, Msg, NS.getASTContext(),
210 return rewriteToSubscriptGetCommon(Msg, commit);
214 const ObjCMessageExpr *Msg,
217 if (!canRewriteToSubscriptSyntax(IFace, Msg, NS.getASTContext(),
220 return rewriteToSubscriptGetCommon(Msg, commit);
224 const ObjCMessageExpr *Msg,
227 if (!canRewriteToSubscriptSyntax(IFace, Msg, NS.getASTContext(),
231 if (Msg->getNumArgs() != 2)
233 const Expr *Rec = Msg->getInstanceReceiver();
237 SourceRange MsgRange = Msg->getSourceRange();
239 SourceRange Arg0Range = Msg->getArg(0)->getSourceRange();
240 SourceRange Arg1Range = Msg->getArg(1)->getSourceRange();
258 const ObjCMessageExpr *Msg,
261 if (!canRewriteToSubscriptSyntax(IFace, Msg, NS.getASTContext(),
265 if (Msg->getNumArgs() != 2)
267 const Expr *Rec = Msg->getInstanceReceiver();
271 SourceRange MsgRange = Msg->getSourceRange();
273 SourceRange Arg0Range = Msg->getArg(0)->getSourceRange();
274 SourceRange Arg1Range = Msg->getArg(1)->getSourceRange();
290 bool edit::rewriteToObjCSubscriptSyntax(const ObjCMessageExpr *Msg,
292 if (!Msg || Msg->isImplicit() ||
293 Msg->getReceiverKind() != ObjCMessageExpr::Instance)
295 const ObjCMethodDecl *Method = Msg->getMethodDecl();
303 Selector Sel = Msg->getSelector();
306 return rewriteToArraySubscriptGet(IFace, Msg, NS, commit);
309 return rewriteToDictionarySubscriptGet(IFace, Msg, NS, commit);
311 if (Msg->getNumArgs() != 2)
315 return rewriteToArraySubscriptSet(IFace, Msg, NS, commit);
318 return rewriteToDictionarySubscriptSet(IFace, Msg, NS, commit);
327 static bool rewriteToArrayLiteral(const ObjCMessageExpr *Msg,
330 static bool rewriteToDictionaryLiteral(const ObjCMessageExpr *Msg,
332 static bool rewriteToNumberLiteral(const ObjCMessageExpr *Msg,
334 static bool rewriteToNumericBoxedExpression(const ObjCMessageExpr *Msg,
336 static bool rewriteToStringBoxedExpression(const ObjCMessageExpr *Msg,
339 bool edit::rewriteToObjCLiteralSyntax(const ObjCMessageExpr *Msg,
343 if (!checkForLiteralCreation(Msg, II, NS.getASTContext().getLangOpts()))
347 return rewriteToArrayLiteral(Msg, NS, commit, PMap);
349 return rewriteToDictionaryLiteral(Msg, NS, commit);
351 return rewriteToNumberLiteral(Msg, NS, commit);
353 return rewriteToStringBoxedExpression(Msg, NS, commit);
358 /// \brief Returns true if the immediate message arguments of \c Msg should not
368 static bool shouldNotRewriteImmediateMessageArgs(const ObjCMessageExpr *Msg,
378 static bool rewriteToArrayLiteral(const ObjCMessageExpr *Msg,
383 dyn_cast_or_null<ObjCMessageExpr>(PMap->getParentIgnoreParenCasts(Msg));
388 Selector Sel = Msg->getSelector();
389 SourceRange MsgRange = Msg->getSourceRange();
392 if (Msg->getNumArgs() != 0)
399 if (Msg->getNumArgs() != 1)
401 objectifyExpr(Msg->getArg(0), commit);
402 SourceRange ArgRange = Msg->getArg(0)->getSourceRange();
410 if (Msg->getNumArgs() == 0)
412 const Expr *SentinelExpr = Msg->getArg(Msg->getNumArgs() - 1);
416 for (unsigned i = 0, e = Msg->getNumArgs() - 1; i != e; ++i)
417 Msg->getArg(i), commit);
419 if (Msg->getNumArgs() == 1) {
423 SourceRange ArgRange(Msg->getArg(0)->getLocStart(),
424 Msg->getArg(Msg->getNumArgs()-2)->getLocEnd());
437 /// \brief If \c Msg is an NSArray creation message or literal, this gets the
449 if (const ObjCMessageExpr *Msg = dyn_cast<ObjCMessageExpr>(E)) {
451 if (!checkForLiteralCreation(Msg, Cls, NS.getASTContext().getLangOpts()))
457 Selector Sel = Msg->getSelector();
462 if (Msg->getNumArgs() != 1)
464 Objs.push_back(Msg->getArg(0));
470 if (Msg->getNumArgs() == 0)
472 const Expr *SentinelExpr = Msg->getArg(Msg->getNumArgs() - 1);
476 for (unsigned i = 0, e = Msg->getNumArgs() - 1; i != e; ++i)
477 Objs.push_back(Msg->getArg(i));
490 static bool rewriteToDictionaryLiteral(const ObjCMessageExpr *Msg,
492 Selector Sel = Msg->getSelector();
493 SourceRange MsgRange = Msg->getSourceRange();
496 if (Msg->getNumArgs() != 0)
504 if (Msg->getNumArgs() != 2)
507 objectifyExpr(Msg->getArg(0), commit);
508 objectifyExpr(Msg->getArg(1), commit);
510 SourceRange ValRange = Msg->getArg(0)->getSourceRange();
511 SourceRange KeyRange = Msg->getArg(1)->getSourceRange();
526 if (Msg->getNumArgs() % 2 != 1)
528 unsigned SentinelIdx = Msg->getNumArgs() - 1;
529 const Expr *SentinelExpr = Msg->getArg(SentinelIdx);
533 if (Msg->getNumArgs() == 1) {
539 objectifyExpr(Msg->getArg(i), commit);
540 objectifyExpr(Msg->getArg(i+1), commit);
542 SourceRange ValRange = Msg->getArg(i)->getSourceRange();
543 SourceRange KeyRange = Msg->getArg(i+1)->getSourceRange();
553 SourceRange ArgRange(Msg->getArg(1)->getLocStart(),
554 Msg->getArg(SentinelIdx-1)->getLocEnd());
563 if (Msg->getNumArgs() != 2)
567 if (!getNSArrayObjects(Msg->getArg(0), NS, Vals))
571 if (!getNSArrayObjects(Msg->getArg(1), NS, Keys))
604 static bool shouldNotRewriteImmediateMessageArgs(const ObjCMessageExpr *Msg,
606 if (!Msg)
610 if (!checkForLiteralCreation(Msg, II, NS.getASTContext().getLangOpts()))
616 Selector Sel = Msg->getSelector();
620 if (Msg->getNumArgs() != 2)
624 if (!getNSArrayObjects(Msg->getArg(0), NS, Vals))
628 if (!getNSArrayObjects(Msg->getArg(1), NS, Keys))
644 static bool rewriteToCharLiteral(const ObjCMessageExpr *Msg,
650 Msg->getSelector())) {
652 commit.replaceWithInner(Msg->getSourceRange(), ArgRange);
657 return rewriteToNumericBoxedExpression(Msg, NS, commit);
660 static bool rewriteToBoolLiteral(const ObjCMessageExpr *Msg,
664 Msg->getSelector())) {
666 commit.replaceWithInner(Msg->getSourceRange(), ArgRange);
671 return rewriteToNumericBoxedExpression(Msg, NS, commit);
754 static bool rewriteToNumberLiteral(const ObjCMessageExpr *Msg,
756 if (Msg->getNumArgs() != 1)
759 const Expr *Arg = Msg->getArg(0)->IgnoreParenImpCasts();
761 return rewriteToCharLiteral(Msg, CharE, NS, commit);
763 return rewriteToBoolLiteral(Msg, BE, NS, commit);
765 return rewriteToBoolLiteral(Msg, BE, NS, commit);
776 return rewriteToNumericBoxedExpression(Msg, NS, commit);
779 Selector Sel = Msg->getSelector();
796 return rewriteToNumericBoxedExpression(Msg, NS, commit);
826 QualType CallTy = Msg->getArg(0)->getType();
830 commit.replaceWithInner(Msg->getSourceRange(), ArgRange);
838 return rewriteToNumericBoxedExpression(Msg, NS, commit);
845 return rewriteToNumericBoxedExpression(Msg, NS, commit);
856 return rewriteToNumericBoxedExpression(Msg, NS, commit);
860 return rewriteToNumericBoxedExpression(Msg, NS, commit);
865 commit.replaceWithInner(CharSourceRange::getTokenRange(Msg->getSourceRange()),
973 static bool rewriteToNumericBoxedExpression(const ObjCMessageExpr *Msg,
975 if (Msg->getNumArgs() != 1)
978 const Expr *Arg = Msg->getArg(0);
983 Selector Sel = Msg->getSelector();
1087 Diags.Report(Msg->getExprLoc(), diagID) << OrigTy << FinalTy
1088 << Msg->getSourceRange();
1093 commit.replaceWithInner(Msg->getSourceRange(), ArgRange);
1108 const ObjCMessageExpr *Msg,
1110 const Expr *Arg = Msg->getArg(0);
1123 commit.replaceWithInner(Msg->getSourceRange(), StrE->getSourceRange());
1132 commit.replaceWithInner(Msg->getSourceRange(), ArgRange);
1146 static bool rewriteToStringBoxedExpression(const ObjCMessageExpr *Msg,
1148 Selector Sel = Msg->getSelector();
1152 if (Msg->getNumArgs() != 1)
1154 return doRewriteToUTF8StringBoxedExpressionHelper(Msg, NS, commit);
1158 if (Msg->getNumArgs() != 2)
1161 const Expr *encodingArg = Msg->getArg(1);
1164 return doRewriteToUTF8StringBoxedExpressionHelper(Msg, NS, commit);