bool MatchQuery::run(llvm::raw_ostream &OS, QuerySession &QS) const {
unsigned MatchCount = 0;
- for (llvm::ArrayRef<ASTUnit *>::iterator I = QS.ASTs.begin(),
- E = QS.ASTs.end();
- I != E; ++I) {
- ASTUnit *AST = *I;
+ for (auto &AST : QS.ASTs) {
MatchFinder Finder;
std::vector<BoundNodes> Matches;
DynTypedMatcher MaybeBoundMatcher = Matcher;
using namespace clang::tooling;
class QueryEngineTest : public ::testing::Test {
- ArrayRef<ASTUnit *> mkASTUnit2(ASTUnit *a, ASTUnit *b) {
- ASTs[0] = a;
- ASTs[1] = b;
- return ArrayRef<ASTUnit *>(ASTs);
+ ArrayRef<std::unique_ptr<ASTUnit>> mkASTUnit2(std::unique_ptr<ASTUnit> a,
+ std::unique_ptr<ASTUnit> b) {
+ ASTs[0] = std::move(a);
+ ASTs[1] = std::move(b);
+ return ArrayRef<std::unique_ptr<ASTUnit>>(ASTs);
}
protected:
QueryEngineTest()
- : FooAST(buildASTFromCode("void foo1(void) {}\nvoid foo2(void) {}",
- "foo.cc")),
- BarAST(buildASTFromCode("void bar1(void) {}\nvoid bar2(void) {}",
- "bar.cc")),
- S(mkASTUnit2(FooAST.get(), BarAST.get())), OS(Str) {}
-
- std::unique_ptr<ASTUnit> FooAST;
- std::unique_ptr<ASTUnit> BarAST;
- ASTUnit *ASTs[2];
+ : S(mkASTUnit2(std::unique_ptr<ASTUnit>(buildASTFromCode(
+ "void foo1(void) {}\nvoid foo2(void) {}", "foo.cc")),
+ std::unique_ptr<ASTUnit>(buildASTFromCode(
+ "void bar1(void) {}\nvoid bar2(void) {}", "bar.cc")))),
+ OS(Str) {}
+
+ std::unique_ptr<ASTUnit> ASTs[2];
QuerySession S;
std::string Str;
class QueryParserTest : public ::testing::Test {
protected:
- QueryParserTest() : QS(llvm::ArrayRef<ASTUnit *>()) {}
+ QueryParserTest() : QS(llvm::ArrayRef<std::unique_ptr<ASTUnit>>()) {}
QueryRef parse(StringRef Code) { return QueryParser::parse(Code, QS); }
QuerySession QS;