bool VisitDeclRefExpr(DeclRefExpr *E);
bool VisitBlockExpr(BlockExpr *B);
bool VisitExplicitCastExpr(ExplicitCastExpr *E);
- bool VisitObjCMessageExpr(ObjCMessageExpr *E);
bool VisitObjCEncodeExpr(ObjCEncodeExpr *E);
bool VisitOffsetOfExpr(OffsetOfExpr *E);
bool VisitSizeOfAlignOfExpr(SizeOfAlignOfExpr *E);
DATA_RECURSIVE_VISIT(InitListExpr)
DATA_RECURSIVE_VISIT(ForStmt)
DATA_RECURSIVE_VISIT(MemberExpr)
+ DATA_RECURSIVE_VISIT(ObjCMessageExpr)
DATA_RECURSIVE_VISIT(OverloadExpr)
DATA_RECURSIVE_VISIT(SwitchStmt)
DATA_RECURSIVE_VISIT(WhileStmt)
return false;
}
-bool CursorVisitor::VisitObjCMessageExpr(ObjCMessageExpr *E) {
- if (TypeSourceInfo *TSInfo = E->getClassReceiverTypeInfo())
- if (Visit(TSInfo->getTypeLoc()))
- return true;
-
- return VisitExpr(E);
-}
-
bool CursorVisitor::VisitObjCEncodeExpr(ObjCEncodeExpr *E) {
return Visit(E->getEncodedTypeSourceInfo()->getTypeLoc());
}
WLAddStmt(WL, C, M->getBase());
break;
}
+ case Stmt::ObjCMessageExprClass:
+ EnqueueChildren(WL, C, S);
+ WLAddTypeLoc(WL, C, cast<ObjCMessageExpr>(S)->getClassReceiverTypeInfo());
+ break;
case Stmt::ParenExprClass: {
WLAddStmt(WL, C, cast<ParenExpr>(S)->getSubExpr());
break;
case Stmt::IfStmtClass:
case Stmt::InitListExprClass:
case Stmt::MemberExprClass:
+ case Stmt::ObjCMessageExprClass:
case Stmt::ParenExprClass:
case Stmt::SwitchStmtClass:
case Stmt::UnaryOperatorClass: