// for those accesses Sema::PerformObjectMemberConversion always inserts an
// UncheckedDerivedToBase ImplicitCastExpr between the this expr and the
// object expression
- auto FoundExprs =
- match(findAll(memberExpr(hasObjectExpression(cxxThisExpr())).bind("ME")),
- *Initializer->getInit(), Context);
+ auto FoundExprs = match(
+ traverse(
+ TK_AsIs,
+ findAll(memberExpr(hasObjectExpression(cxxThisExpr())).bind("ME"))),
+ *Initializer->getInit(), Context);
for (BoundNodes &BN : FoundExprs)
if (auto *MemExpr = BN.getNodeAs<MemberExpr>("ME"))
if (auto *FD = dyn_cast<FieldDecl>(MemExpr->getMemberDecl()))
MatchFinder F;
Callback CB(this, BR, AM.getAnalysisDeclContext(D));
- F.addMatcher(stmt(forEachDescendant(FinalM)), &CB);
+ F.addMatcher(traverse(TK_AsIs, stmt(forEachDescendant(FinalM))), &CB);
F.match(*D->getBody(), AM.getASTContext());
}
)))
))));
- auto PointerSortM = stmt(callExpr(allOf(SortFuncM, IteratesPointerEltsM))
- ).bind(WarnAtNode);
+ auto PointerSortM = traverse(
+ TK_AsIs,
+ stmt(callExpr(allOf(SortFuncM, IteratesPointerEltsM))).bind(WarnAtNode));
return decl(forEachDescendant(PointerSortM));
}
Parser::parseMatcherExpression(Code, nullptr, nullptr, &Error));
EXPECT_EQ("", Error.toStringFull());
Matcher<Stmt> MCastStmt =
- implicitIntBooleanCast->unconditionalConvertTo<Stmt>();
+ traverse(TK_AsIs, implicitIntBooleanCast->unconditionalConvertTo<Stmt>());
EXPECT_TRUE(matches("bool X = 1;", MCastStmt));
EXPECT_FALSE(matches("bool X = true;", MCastStmt));