Home | History | Annotate | Download | only in ASTMatchers

Lines Matching refs:EXPECT_TRUE

26     EXPECT_TRUE(notMatches("class X {};", HasEmptyName));
33 EXPECT_TRUE(notMatches("class X {};", HasEmptyName));
40 EXPECT_TRUE(notMatches("class X {};", IsDerivedFromEmpty));
47 EXPECT_TRUE(Finder.addDynamicMatcher(decl(), nullptr));
48 EXPECT_TRUE(Finder.addDynamicMatcher(callExpr(), nullptr));
49 EXPECT_TRUE(Finder.addDynamicMatcher(constantArrayType(hasSize(42)),
59 EXPECT_TRUE(notMatches("", decl(usingDecl())));
60 EXPECT_TRUE(matches("namespace x { class X {}; } using x::X;",
66 EXPECT_TRUE(matches("typedef int X;", NamedX));
67 EXPECT_TRUE(matches("int X;", NamedX));
68 EXPECT_TRUE(matches("class foo { virtual void X(); };", NamedX));
69 EXPECT_TRUE(matches("void foo() try { } catch(int X) { }", NamedX));
70 EXPECT_TRUE(matches("void foo() { int X; }", NamedX));
71 EXPECT_TRUE(matches("namespace X { }", NamedX));
72 EXPECT_TRUE(matches("enum X { A, B, C };", NamedX));
74 EXPECT_TRUE(notMatches("#define X 1", NamedX));
79 EXPECT_TRUE(matches("typedef int Xa;", NamedX));
80 EXPECT_TRUE(matches("int Xb;", NamedX));
81 EXPECT_TRUE(matches("class foo { virtual void Xc(); };", NamedX));
82 EXPECT_TRUE(matches("void foo() try { } catch(int Xdef) { }", NamedX));
83 EXPECT_TRUE(matches("void foo() { int Xgh; }", NamedX));
84 EXPECT_TRUE(matches("namespace Xij { }", NamedX));
85 EXPECT_TRUE(matches("enum X { A, B, C };", NamedX));
87 EXPECT_TRUE(notMatches("#define Xkl 1", NamedX));
90 EXPECT_TRUE(matches("int no_foo;", StartsWithNo));
91 EXPECT_TRUE(matches("class foo { virtual void nobody(); };", StartsWithNo));
94 EXPECT_TRUE(matches("int abc;", Abc));
95 EXPECT_TRUE(matches("int aFOObBARc;", Abc));
96 EXPECT_TRUE(notMatches("int cab;", Abc));
97 EXPECT_TRUE(matches("int cabc;", Abc));
100 EXPECT_TRUE(matches("int k;", StartsWithK));
101 EXPECT_TRUE(matches("int kAbc;", StartsWithK));
102 EXPECT_TRUE(matches("namespace x { int kTest; }", StartsWithK));
103 EXPECT_TRUE(matches("class C { int k; };", StartsWithK));
104 EXPECT_TRUE(notMatches("class C { int ckc; };", StartsWithK));
115 EXPECT_TRUE(matches("", ClassMatcher));
118 EXPECT_TRUE(matches("class X;", ClassX));
119 EXPECT_TRUE(matches("class X {};", ClassX));
120 EXPECT_TRUE(matches("template<class T> class X {};", ClassX));
121 EXPECT_TRUE(notMatches("", ClassX));
127 EXPECT_TRUE(matches("class X {}; class Y : public X {};", IsDerivedFromX));
128 EXPECT_TRUE(notMatches("class X {};", IsDerivedFromX));
129 EXPECT_TRUE(notMatches("class X;", IsDerivedFromX));
130 EXPECT_TRUE(notMatches("class Y;", IsDerivedFromX));
131 EXPECT_TRUE(notMatches("", IsDerivedFromX));
135 EXPECT_TRUE(matches("class X {}; class Y : public X {};", IsAX));
136 EXPECT_TRUE(matches("class X {};", IsAX));
137 EXPECT_TRUE(matches("class X;", IsAX));
138 EXPECT_TRUE(notMatches("class Y;", IsAX));
139 EXPECT_TRUE(notMatches("", IsAX));
143 EXPECT_TRUE(
146 EXPECT_TRUE(
150 EXPECT_TRUE(matches("class X {}; template<class T> class Z : public X {};",
152 EXPECT_TRUE(
156 EXPECT_TRUE(
160 EXPECT_TRUE(
163 EXPECT_TRUE(
166 EXPECT_TRUE(
170 EXPECT_TRUE(
173 EXPECT_TRUE(
178 EXPECT_TRUE(
181 EXPECT_TRUE(
186 EXPECT_TRUE(
189 EXPECT_TRUE(
192 EXPECT_TRUE(matches("class X {}; class Z : public ::X {};",
194 EXPECT_TRUE(
198 EXPECT_TRUE(
203 EXPECT_TRUE(
206 EXPECT_TRUE(
209 EXPECT_TRUE(
213 EXPECT_TRUE(
217 EXPECT_TRUE(
221 EXPECT_TRUE(
224 EXPECT_TRUE(
227 EXPECT_TRUE(
230 EXPECT_TRUE(
233 EXPECT_TRUE(
236 EXPECT_TRUE(
239 EXPECT_TRUE(
242 EXPECT_TRUE(
247 EXPECT_TRUE(
252 EXPECT_TRUE(matches(
258 EXPECT_TRUE(
262 EXPECT_TRUE(matches(
282 EXPECT_TRUE(matches(
286 EXPECT_TRUE(notMatches(
290 EXPECT_TRUE(matches(
307 EXPECT_TRUE(matches(
311 EXPECT_TRUE(notMatches(
315 EXPECT_TRUE(matches(
320 EXPECT_TRUE(matches(
323 EXPECT_TRUE(notMatches(
327 EXPECT_TRUE(matches(
331 EXPECT_TRUE(matches(
339 EXPECT_TRUE(matches("class A { void func(); };",
341 EXPECT_TRUE(notMatches("class A { void func(); };",
346 EXPECT_TRUE(matches(
356 EXPECT_TRUE(matches(
363 EXPECT_TRUE(notMatches(
371 EXPECT_TRUE(matches("namespace {"
379 EXPECT_TRUE(matches("class D{};", decl(hasDeclContext(decl()))));
387 EXPECT_TRUE(matches(
391 EXPECT_TRUE(matches(
398 EXPECT_TRUE(matches("extern \"C\" { void foo() {}; }", linkageSpecDecl()));
399 EXPECT_TRUE
404 EXPECT_TRUE(notMatches("class X;", ClassX));
405 EXPECT_TRUE(notMatches("class X {};", ClassX));
410 EXPECT_TRUE(matches("template<typename T> class X {};", ClassX));
411 EXPECT_TRUE(matches("class Z { template<class T> class X {}; };", ClassX));
415 EXPECT_TRUE(notMatches("template<typename T> class X { };"
422 EXPECT_TRUE(notMatches("template<typename T, typename U> class X { };"
433 EXPECT_TRUE(matches(Program,
436 EXPECT_TRUE(matches(Program,
441 EXPECT_TRUE(matches(Program,
447 EXPECT_TRUE(matches(Program,
457 EXPECT_TRUE(
469 EXPECT_TRUE(matches("class X {}; class Z : public X {};", YOrZDerivedFromX));
470 EXPECT_TRUE(matches("class Y {};", YOrZDerivedFromX));
471 EXPECT_TRUE(
473 EXPECT_TRUE(notMatches("class Z {};", YOrZDerivedFromX));
477 EXPECT_TRUE(matches("class X {};", XOrYOrZOrU));
478 EXPECT_TRUE(notMatches("class V {};", XOrYOrZOrU));
483 EXPECT_TRUE(matches("class X {};", XOrYOrZOrUOrV));
484 EXPECT_TRUE(matches("class Y {};", XOrYOrZOrUOrV));
485 EXPECT_TRUE(matches("class Z {};", XOrYOrZOrUOrV));
486 EXPECT_TRUE(matches("class U {};", XOrYOrZOrUOrV));
487 EXPECT_TRUE(matches("class V {};", XOrYOrZOrUOrV));
488 EXPECT_TRUE(notMatches("class A {};", XOrYOrZOrUOrV));
491 EXPECT_TRUE(matches("int F() { return 1 + 2; }", MixedTypes));
492 EXPECT_TRUE(matches("int F() { if (true) return 1; }", MixedTypes));
493 EXPECT_TRUE(notMatches("int F() { return 1; }", MixedTypes));
495 EXPECT_TRUE(
502 EXPECT_TRUE(matches("class Y { class X {}; };", HasClassX));
503 EXPECT_TRUE(matches("class X {};", HasClassX));
507 EXPECT_TRUE(matches("class Y { class X {}; };", YHasClassX));
508 EXPECT_TRUE(notMatches("class X {};", YHasClassX));
509 EXPECT_TRUE(
526 EXPECT_TRUE(matches(
538 EXPECT_TRUE(matches(
552 EXPECT_TRUE(matches(
591 EXPECT_TRUE(matches("class F {};", Recursive));
592 EXPECT_TRUE(matches("class Z {};", Recursive));
593 EXPECT_TRUE(matches("class C {};", Recursive));
594 EXPECT_TRUE(matches("class M { class N { class X {}; }; };", Recursive));
595 EXPECT_TRUE(matches("class M { class N { class B {}; }; };", Recursive));
596 EXPECT_TRUE(
607 EXPECT_TRUE(notMatches("", NotClassX));
608 EXPECT_TRUE(notMatches("class Y {};", NotClassX));
609 EXPECT_TRUE(matches("class Y {}; class Z : public Y {};", NotClassX));
610 EXPECT_TRUE(notMatches("class Y {}; class X : public Y {};", NotClassX));
611 EXPECT_TRUE(
621 EXPECT_TRUE(matches("class X { class Z {}; };", ClassXHasNotClassY));
622 EXPECT_TRUE(notMatches("class X { class Y {}; class Z {}; };",
627 EXPECT_TRUE(matches("void Foo(){}", NamedNotRecord));
628 EXPECT_TRUE(notMatches("struct Foo {};", NamedNotRecord));
636 EXPECT_TRUE(matches("class Z { class X {}; };", ZDescendantClassX));
637 EXPECT_TRUE(
639 EXPECT_TRUE(
642 EXPECT_TRUE(
645 EXPECT_TRUE(notMatches("class Z {};", ZDescendantClassX));
652 EXPECT_TRUE(matches("class Z { class X { class Y {}; }; };",
654 EXPECT_TRUE(
657 EXPECT_TRUE(notMatches(
675 EXPECT_TRUE(
678 EXPECT_TRUE(matches(
694 EXPECT_TRUE(matches("void f() { int i; }", CannotMemoize));
702 EXPECT_TRUE(notMatches("void f() { int i; }",
704 EXPECT_TRUE(notMatches("void f() { int i; }",
707 EXPECT_TRUE(matches("void f() { int i; }",
712 EXPECT_TRUE(matches("struct __attribute__((warn_unused)) X {};",
719 EXPECT_TRUE(matchesWithCuda("__global__ void f() { }"
722 EXPECT_TRUE(matchesWithCuda("__attribute__((device)) void f() {}",
724 EXPECT_TRUE(notMatchesWithCuda("void f() {}",
785 EXPECT_TRUE(M.count(Id) == 0 ||
803 EXPECT_TRUE(matches("void f() { int i = 3; }",
805 EXPECT_TRUE(matches("void f() { int i = 3; }",
808 EXPECT_TRUE(matches("void f() { int i = 3; }",
810 EXPECT_TRUE(matches("void f() { int i = 3; }",
813 EXPECT_TRUE(notMatches("void f() { float f = 2.0f; }",
816 EXPECT_TRUE(matchAndVerifyResultTrue(
824 EXPECT_TRUE(matches("void f() { int*** i; }",
826 EXPECT_TRUE(matches("void f() { int*** i; }",
829 EXPECT_TRUE(matches("void f() { int*** i; }",
832 EXPECT_TRUE(matchAndVerifyResultTrue(
839 EXPECT_TRUE(matches("int i;",
841 EXPECT_TRUE(notMatches("int** i;",
843 EXPECT_TRUE(matchAndVerifyResultTrue(
850 EXPECT_TRUE(matches(
853 EXPECT_TRUE(notMatches(
859 EXPECT_TRUE(matches("enum EnumType { EnumValue };",
861 EXPECT_TRUE(matches("void FunctionDecl();",
866 EXPECT_TRUE(notMatches("class X {};", enumDecl(hasName("X"))));
870 EXPECT_TRUE(matches("enum X {};", enumDecl(hasName("X"))));
875 EXPECT_TRUE(matches("enum X{ A };", Matcher));
876 EXPECT_TRUE(notMatches("enum X{ B };", Matcher));
877 EXPECT_TRUE(notMatches("enum X {};", Matcher));
885 EXPECT_TRUE(matches(
887 EXPECT_TRUE(notMatches(
896 EXPECT_TRUE(matches(
899 EXPECT_TRUE(notMatches(
907 EXPECT_TRUE(matches("class A { public: A *a; };", TypeA));
908 EXPECT_TRUE(notMatches("class A {};", TypeA));
913 EXPECT_TRUE(matches("class A {}; class B : public A { public: B *b; };",
915 EXPECT_TRUE(notMatches("class A {};", TypeA));
920 EXPECT_TRUE(
923 EXPECT_TRUE(matchesC("struct S {}; void f(void) { struct S s; }",
929 EXPECT_TRUE(matches("typedef int I; void f(I i);",
932 EXPECT_TRUE(matchesObjC("@interface Foo @end void f(Foo *f);",
935 EXPECT_TRUE(matchesObjC(
939 EXPECT_TRUE(matches("template <typename T> void f(T t);",
942 EXPECT_TRUE(matches("template <typename T> void f(T t);",
945 EXPECT_TRUE(matches("template <typename T> struct S {"
949 EXPECT_TRUE(notMatches("template <typename T> struct S {"
954 EXPECT_TRUE(matches("template <typename T> struct S {"
970 EXPECT_TRUE(matches(Using, unresolvedUsingTypenameDecl(hasName("Foo"))));
972 EXPECT_TRUE(matches(Using, parmVarDecl(hasType(namedDecl(hasName("Foo"))))));
978 EXPECT_TRUE(matchAndVerifyResultTrue("class X {};",
981 EXPECT_TRUE(matchAndVerifyResultFalse("class X {};",
987 EXPECT_TRUE(matchAndVerifyResultTrue("class A { public: A *a; class B {}; };",
994 EXPECT_TRUE(matchAndVerifyResultTrue("class A { void x() { x(); } };",
1008 EXPECT_TRUE(matchAndVerifyResultTrue(
1020 EXPECT_TRUE(matchAndVerifyResultTrue(
1029 EXPECT_TRUE(matches("enum X {}; void y(X *x) { x; }",
1035 EXPECT_TRUE(internal::has_getDecl<TypedefType>::value);
1036 EXPECT_TRUE(internal::has_getDecl<RecordType>::value);
1041 EXPECT_TRUE(matches("typedef int X; X a;",
1049 EXPECT_TRUE(matches("template <typename T> class A {}; A<int> a;",
1056 EXPECT_TRUE(
1058 EXPECT_TRUE(
1061 EXPECT_TRUE(
1068 EXPECT_TRUE(
1070 EXPECT_TRUE(
1072 EXPECT_TRUE(
1079 EXPECT_TRUE(
1081 EXPECT_TRUE(
1088 EXPECT_TRUE(
1090 EXPECT_TRUE(
1095 EXPECT_TRUE(matches("int x;",
1099 EXPECT_TRUE(notMatches("class X {}; X x;",
1109 EXPECT_TRUE(matches("class Y { void x() { x(); } };", MethodX));
1110 EXPECT_TRUE(notMatches("class Y { void x() {} };", MethodX));
1115 EXPECT_TRUE(
1118 EXPECT_TRUE(
1121 EXPECT_TRUE(
1124 EXPECT_TRUE(
1127 EXPECT_TRUE(
1134 EXPECT_TRUE(
1137 EXPECT_TRUE(
1140 EXPECT_TRUE(
1143 EXPECT_TRUE(
1146 EXPECT_TRUE(
1152 EXPECT_TRUE(matches("auto f = [] (int i) { return i; };",
1157 EXPECT_TRUE(matches("int as[] = { 1, 2, 3 };"
1160 EXPECT_TRUE(notMatches("void f() { for (int i; i<5; ++i); }",
1169 EXPECT_TRUE(matches("template<int N>\n"
1176 EXPECT_TRUE(matches("template <int N> void f();",
1178 EXPECT_TRUE(
1183 EXPECT_TRUE(matches("template <typename T> void f();",
1185 EXPECT_TRUE(
1190 EXPECT_TRUE(matches("constexpr char operator \"\" _inc (const char i) {"
1198 EXPECT_TRUE(matches("void f() { while(true) { break; } }", breakStmt()));
1199 EXPECT_TRUE(matches("void f() { while(true) { continue; } }",
1201 EXPECT_TRUE(matches("void f() { goto FOO; FOO: ;}", gotoStmt()));
1202 EXPECT_TRUE(matches("void f() { goto FOO; FOO: ;}", labelStmt()));
1203 EXPECT_TRUE(matches("void f() { return; }", returnStmt()));
1207 EXPECT_TRUE(
1210 EXPECT_TRUE(
1213 EXPECT_TRUE(matches("namespace ns { struct A {}; } struct B { ns::A a; };",
1215 EXPECT_TRUE(matches("namespace { struct A {}; } struct B { A a; };",
1222 EXPECT_TRUE(matches("class Y { }; "
1228 // EXPECT_TRUE(NotMatches("#include <stddef.h>\n"
1232 EXPECT_TRUE(notMatches("class Y { }; "
1236 EXPECT_TRUE(matches("class Y { }; "
1241 EXPECT_TRUE(notMatches("bool x = true, y = true; bool t = x && y;", OpCall));
1242 EXPECT_TRUE(notMatches("int t = 5 << 2;", OpCall));
1248 EXPECT_TRUE(matches("class Y { }; "
1253 EXPECT_TRUE(notMatches("class Y { }; "
1259 EXPECT_TRUE(matches("class Y; int operator*(Y &); void f(Y &y) { *y; }",
1263 EXPECT_TRUE(matches("class Y { int operator*(); };",
1265 EXPECT_TRUE(notMatches("class Y { void myOperator(); };",
1268 EXPECT_TRUE(matches("class Y; int operator*(Y &);", AnyOpStar));
1269 EXPECT_TRUE(matches("class Y { int operator*(); };", AnyOpStar));
1273 EXPECT_TRUE(matchAndVerifyResultTrue(
1279 EXPECT_TRUE(matches("class Y { }; "
1283 EXPECT_TRUE(
1294 EXPECT_TRUE(
1297 EXPECT_TRUE(
1300 EXPECT_TRUE(
1303 EXPECT_TRUE(
1306 EXPECT_TRUE(
1310 EXPECT_TRUE(matches(
1326 EXPECT_TRUE(matches(
1336 EXPECT_TRUE(notMatches(
1348 EXPECT_TRUE(matches("void f() { int X; }", M));
1349 EXPECT_TRUE(notMatches("int X;", M));
1350 EXPECT_TRUE(notMatches("void f() { static int X; }", M));
1353 EXPECT_TRUE(notMatches("void f() { int X; }", M));
1354 EXPECT_TRUE(matches("int X;", M));
1355 EXPECT_TRUE(matches("void f() { static int X; }", M));
1362 EXPECT_TRUE(matches(T, varDecl(hasName("x"), hasAutomaticStorageDuration())));
1363 EXPECT_TRUE(
1365 EXPECT_TRUE(
1368 EXPECT_TRUE(matches(T, varDecl(hasName("y"), hasStaticStorageDuration())));
1369 EXPECT_TRUE(matches(T, varDecl(hasName("a"), hasStaticStorageDuration())));
1370 EXPECT_TRUE(notMatches(T, varDecl(hasName("x"), hasStaticStorageDuration())));
1376 EXPECT_TRUE(notMatches(T, varDecl(hasName("x"), hasThreadStorageDuration())));
1377 EXPECT_TRUE(notMatches(T, varDecl(hasName("y"), hasThreadStorageDuration())));
1378 EXPECT_TRUE(notMatches(T, varDecl(hasName("a"), hasThreadStorageDuration())));
1382 EXPECT_TRUE(matches(
1391 EXPECT_TRUE(matches(
1393 EXPECT_TRUE(matches(
1395 EXPECT_TRUE(matches(
1398 EXPECT_TRUE(matches(
1401 EXPECT_TRUE(notMatches(
1408 EXPECT_TRUE(matches("void x() { int a = sizeof(a); }",
1410 EXPECT_TRUE(notMatches("void x() { int a = sizeof(a); }",
1413 // EXPECT_TRUE(matches("void x() { int a = alignof(a); }",
1415 // EXPECT_TRUE(notMatches("void x() { int a = alignof(a); }",
1420 EXPECT_TRUE(matches("void x() { int a = sizeof(a); }", sizeOfExpr(
1422 EXPECT_TRUE(notMatches("void x() { int a = sizeof(a); }", sizeOfExpr(
1424 EXPECT_TRUE(matches(
1427 EXPECT_TRUE(notMatches("void x() { int a = sizeof(a); }", sizeOfExpr(
1432 EXPECT_TRUE(notMatches("class Y { void x() {} };", memberExpr()));
1436 EXPECT_TRUE(matches("class Y { void x() { x(); } };", memberExpr()));
1440 EXPECT_TRUE(
1442 EXPECT_TRUE(
1444 EXPECT_TRUE(
1449 EXPECT_TRUE(matches("class Y { void x() { this->y; } static int y; };",
1451 EXPECT_TRUE(notMatches("class Y { void x() { y; } static int y; };",
1453 EXPECT_TRUE(notMatches("class Y { void x() { Y::y; } static int y; };",
1458 EXPECT_TRUE(matches("int i = 0;", varDecl(hasType(isInteger()))));
1459 EXPECT_TRUE(matches(
1466 EXPECT_TRUE(notMatches("int *i;", varDecl(hasType(isInteger()))));
1467 EXPECT_TRUE(notMatches("struct T {}; T t; void f(T *) { }; void g() {f(&t);}",
1473 EXPECT_TRUE(matches("char i = 0;", varDecl(hasType(isAnyCharacter()))));
1477 EXPECT_TRUE(notMatches("int i;", varDecl(hasType(isAnyCharacter()))));
1481 EXPECT_TRUE(matches("class Y { void x() { this->y; } int y; };",
1483 EXPECT_TRUE(matches("class Y { void x() { y; } int y; };",
1485 EXPECT_TRUE(notMatches("class Y { void x() { (*this).y; } int y; };",
1490 EXPECT_TRUE(matches("class Y { void x() { this->y; } static int y; };",
1492 EXPECT_TRUE(notMatches("class Y { void x() { y; } static int y; };",
1494 EXPECT_TRUE(notMatches("class Y { void x() { (*this).y; } static int y; };",
1499 EXPECT_TRUE(matches("class Y { void x() { this->x(); } };",
1501 EXPECT_TRUE(matches("class Y { void x() { x(); } };",
1503 EXPECT_TRUE(notMatches("class Y { void x() { Y y; y.x(); } };",
1510 EXPECT_TRUE(matches("class Y { void x() { x(); } };", CallMethodX));
1511 EXPECT_TRUE(notMatches("class Y { void x() {} };", CallMethodX));
1514 EXPECT_TRUE(
1516 EXPECT_TRUE(notMatches("struct Y { operator int() const; }; Y y = Y();",
1521 EXPECT_TRUE(matches("struct S { explicit operator int(); };",
1523 EXPECT_TRUE(notMatches("struct S { operator int(); };",
1528 EXPECT_TRUE(matches("class Y { void x() { this->x(); } };",
1530 EXPECT_TRUE(
1537 EXPECT_TRUE(matches("void f() { f(); }", CallFunctionF));
1538 EXPECT_TRUE(notMatches("void f() { }", CallFunctionF));
1544 EXPECT_TRUE(matches("void f(); template <int N> void g() { f(); }",
1546 EXPECT_TRUE(
1552 EXPECT_TRUE(
1555 EXPECT_TRUE(
1560 EXPECT_TRUE(matches("void f(...);", functionDecl(isVariadic())));
1561 EXPECT_TRUE(notMatches("void f(int);", functionDecl(isVariadic())));
1562 EXPECT_TRUE(notMatches("template <typename... Ts> void f(Ts...);",
1564 EXPECT_TRUE(notMatches("void f();", functionDecl(isVariadic())));
1565 EXPECT_TRUE(notMatchesC("void f();", functionDecl(isVariadic())));
1569 EXPECT_TRUE(
1575 EXPECT_TRUE(
1581 EXPECT_TRUE(
1593 EXPECT_TRUE(matches("void x(int) { int y; x(y); }", CallArgumentY));
1594 EXPECT_TRUE(
1596 EXPECT_TRUE(notMatches("void x(int) { int z; x(z); }", CallArgumentY));
1600 EXPECT_TRUE(notMatches("void x(int) { int y; x(y); }", WrongIndex));
1606 EXPECT_TRUE(matches("void x(int, int) { int y; x(1, y); }", CallArgumentY));
1607 EXPECT_TRUE(matches("void x(int, int) { int y; x(y, 42); }", CallArgumentY));
1608 EXPECT_TRUE(notMatches("void x(int, int) { x(1, 2); }", CallArgumentY));
1614 EXPECT_TRUE(matches("void x(int) { x(0); }", Call1Arg));
1615 EXPECT_TRUE(matches("class X { void x(int) { x(0); } };", Call1Arg));
1616 EXPECT_TRUE(notMatches("void x(int, int) { x(0, 0); }", Call1Arg));
1621 EXPECT_TRUE(matches("void f(int i) {}", Function1Arg));
1622 EXPECT_TRUE(matches("class X { void f(int i) {} };", Function1Arg));
1623 EXPECT_TRUE(notMatches("void f() {}", Function1Arg));
1624 EXPECT_TRUE(notMatches("void f(int i, int j, int k) {}", Function1Arg));
1630 EXPECT_TRUE(matches("class X {}; void y(X y) { X &x = y; }",
1632 EXPECT_TRUE(
1636 EXPECT_TRUE(
1638 EXPECT_TRUE(
1640 EXPECT_TRUE(
1645 EXPECT_TRUE(notMatches("typedef int &int_ref;"
1649 EXPECT_TRUE(
1657 EXPECT_TRUE(notMatches("typedef const int const_int; const_int i = 1;",
1659 EXPECT_TRUE(matches("int *const j = nullptr;",
1661 EXPECT_TRUE(matches("int *volatile k;",
1663 EXPECT_TRUE(notMatches("int m;",
1668 EXPECT_TRUE(matches("class X { void x(int) {} };",
1670 EXPECT_TRUE(notMatches("class X { void x(int) {} };",
1675 EXPECT_TRUE(notMatches("class X { void x(int) {} };",
1680 EXPECT_TRUE(matches(
1683 EXPECT_TRUE(notMatches(
1686 EXPECT_TRUE(matches("class X { void x(const X *x) {} };",
1689 EXPECT_TRUE(matches("class X { void x(const X &x) {} };",
1695 EXPECT_TRUE(matches(
1698 EXPECT_TRUE(matches(
1704 EXPECT_TRUE(matches("class Y { int f() { return 1; } };",
1706 EXPECT_TRUE(notMatches("class Y { int f() { return 1; } };",
1708 EXPECT_TRUE(matches("class Y { Y getMe() { return *this; } };",
1714 EXPECT_TRUE(matches("extern \"C\" void f() {}", functionDecl(isExternC())));
1715 EXPECT_TRUE(matches("extern \"C\" { void f() {} }",
1717 EXPECT_TRUE(notMatches("void f() {}", functionDecl(isExternC())));
1721 EXPECT_TRUE(
1723 EXPECT_TRUE(matches("void Func() = delete;",
1728 EXPECT_TRUE(notMatches("void f();", functionDecl(isNoThrow())));
1729 EXPECT_TRUE(notMatches("void f() throw(int);", functionDecl(isNoThrow())));
1730 EXPECT_TRUE(
1732 EXPECT_TRUE(matches("void f() throw();", functionDecl(isNoThrow())));
1733 EXPECT_TRUE(matches("void f() noexcept;", functionDecl(isNoThrow())));
1737 EXPECT_TRUE(matches("constexpr int foo = 42;",
1739 EXPECT_TRUE(matches("constexpr int bar();",
1744 EXPECT_TRUE(notMatches(
1750 EXPECT_TRUE(notMatches("class Y {}; class X { void x() {} };",
1756 EXPECT_TRUE(matches("class Y {}; class X { void x(int x) {} };",
1758 EXPECT_TRUE(notMatches("class Y {}; class X { void x(int) {} };",
1763 EXPECT_TRUE(matches("template<typename T> struct A {};"
1766 EXPECT_TRUE(matches("template<typename T> struct A {}; A<int> a;",
1768 EXPECT_TRUE(notMatches("template<typename T> struct A {};",
1773 EXPECT_TRUE(matches("int x;", declaratorDecl()));
1774 EXPECT_TRUE(notMatches("class A {};", declaratorDecl()));
1778 EXPECT_TRUE(matches("void f(int x);", parmVarDecl()));
1779 EXPECT_TRUE(notMatches("void f();", parmVarDecl()));
1783 EXPECT_TRUE(matches(
1791 EXPECT_TRUE(matches(
1798 EXPECT_TRUE(notMatches(
1804 EXPECT_TRUE(matches(
1811 EXPECT_TRUE(notMatches(
1819 EXPECT_TRUE(matches(
1824 EXPECT_TRUE(notMatches(
1830 EXPECT_TRUE(matches(
1835 EXPECT_TRUE(notMatches(
1843 EXPECT_TRUE(matches("template<typename T> struct C {}; C<int> c;",
1846 EXPECT_TRUE(matches(
1852 EXPECT_TRUE(
1855 EXPECT_TRUE(
1859 EXPECT_TRUE(matches("template<typename T> struct C {}; C<int> c;",
1861 EXPECT_TRUE(
1867 EXPECT_TRUE(matches("template<int T> struct C {}; C<42> c;",
1870 EXPECT_TRUE(notMatches("template<typename T> struct C {}; C<int> c;",
1876 EXPECT_TRUE(matches("template<int T> struct C {}; C<42> c;",
1880 EXPECT_TRUE(notMatches("template<unsigned T> struct C {}; C<42> c;",
1886 EXPECT_TRUE(matches("template<int T> struct C {}; C<42> c;",
1889 EXPECT_TRUE(matches("template<int T> struct C {}; C<-42> c;",
1892 EXPECT_TRUE(matches("template<int T> struct C {}; C<-0042> c;",
1895 EXPECT_TRUE(notMatches("template<int T> struct C {}; C<42> c;",
1901 EXPECT_TRUE(matches("class C { public: int i; };", accessSpecDecl()));
1902 EXPECT_TRUE(
1904 EXPECT_TRUE(
1906 EXPECT_TRUE(
1909 EXPECT_TRUE(notMatches("class C { int i; };", accessSpecDecl()));
1913 EXPECT_TRUE(matches("class X final {};", cxxRecordDecl(isFinal())));
1914 EXPECT_TRUE(matches("class X { virtual void f() final; };",
1916 EXPECT_TRUE(notMatches("class X {};", cxxRecordDecl(isFinal())));
1917 EXPECT_TRUE(
1922 EXPECT_TRUE(matches("class X { virtual int f(); };",
1924 EXPECT_TRUE(notMatches("class X { int f(); };", cxxMethodDecl(isVirtual())));
1928 EXPECT_TRUE(matches("class X { virtual int f() = 0; };",
1930 EXPECT_TRUE(notMatches("class X { int f(); };", cxxMethodDecl(isPure())));
1934 EXPECT_TRUE(matches("class X { X &operator=(X); };",
1936 EXPECT_TRUE(matches("class X { X &operator=(X &); };",
1938 EXPECT_TRUE(matches("class X { X &operator=(const X &); };",
1940 EXPECT_TRUE(matches("class X { X &operator=(volatile X &); };",
1942 EXPECT_TRUE(matches("class X { X &operator=(const volatile X &); };",
1944 EXPECT_TRUE(notMatches("class X { X &operator=(X &&); };",
1949 EXPECT_TRUE(
1951 EXPECT_TRUE(
1956 EXPECT_TRUE(matches("class X { virtual int f(); }; "
1959 EXPECT_TRUE(notMatches("class X { virtual int f(); }; "
1962 EXPECT_TRUE(notMatches("class X { int f(); }; "
1965 EXPECT_TRUE(notMatches("class X { int f(); int f(int); }; ",
1967 EXPECT_TRUE(
1975 EXPECT_TRUE(
1977 EXPECT_TRUE(
1980 EXPECT_TRUE(
1983 EXPECT_TRUE(matches("class X {}; void x(int) { X x; }", Constructor));
1990 EXPECT_TRUE(
1993 EXPECT_TRUE(
1996 EXPECT_TRUE(
1999 EXPECT_TRUE(
2005 EXPECT_TRUE(
2013 EXPECT_TRUE(
2016 EXPECT_TRUE(
2019 EXPECT_TRUE(
2022 EXPECT_TRUE(
2031 EXPECT_TRUE(
2040 EXPECT_TRUE(
2042 EXPECT_TRUE(
2051 EXPECT_TRUE(
2058 EXPECT_TRUE(
2069 EXPECT_TRUE(
2081 EXPECT_TRUE(
2088 EXPECT_TRUE(
2099 EXPECT_TRUE(
2105 EXPECT_TRUE(
2113 EXPECT_TRUE(matches("class Foo { Foo(int i); };",
2115 EXPECT_TRUE(notMatches("class Foo { Foo(int i); };",
2122 EXPECT_TRUE(notMatches("class Foo { };",
2125 EXPECT_TRUE(matches("class Foo { }; Foo* f = new Foo();",
2127 EXPECT_TRUE(matches("class Foo { Foo(){} };",
2130 EXPECT_TRUE(matches("struct A { int x; } a = {0}, b = a; void f() { a = b; }",
2135 EXPECT_TRUE(matches("struct S { explicit S(int); };",
2137 EXPECT_TRUE(notMatches("struct S { S(int); };",
2142 EXPECT_TRUE(matches("struct S { S(); };",
2144 EXPECT_TRUE(notMatches("struct S { S(); };",
2146 EXPECT_TRUE(notMatches("struct S { S(); };",
2149 EXPECT_TRUE(notMatches("struct S { S(const S&); };",
2151 EXPECT_TRUE(matches("struct S { S(const S&); };",
2153 EXPECT_TRUE(notMatches("struct S { S(const S&); };",
2156 EXPECT_TRUE(notMatches("struct S { S(S&&); };",
2158 EXPECT_TRUE(notMatches("struct S { S(S&&); };",
2160 EXPECT_TRUE(matches("struct S { S(S&&); };",
2165 EXPECT_TRUE(matches("class Foo { virtual ~Foo(); };",
2170 EXPECT_TRUE(notMatches("class Foo {};",
2175 EXPECT_TRUE(
2178 EXPECT_TRUE(
2194 EXPECT_TRUE(matches(Code, cxxConstructorDecl(hasAnyConstructorInitializer(
2196 EXPECT_TRUE(matches(Code, cxxConstructorDecl(hasAnyConstructorInitializer(
2198 EXPECT_TRUE(notMatches(Code, cxxConstructorDecl(hasAnyConstructorInitializer(
2208 EXPECT_TRUE(matches(Code, cxxConstructorDecl(hasAnyConstructorInitializer(
2210 EXPECT_TRUE(notMatches(Code, cxxConstructorDecl(hasAnyConstructorInitializer(
2222 EXPECT_TRUE(matches(Code, cxxConstructorDecl(hasAnyConstructorInitializer(
2224 EXPECT_TRUE(notMatches(Code, cxxConstructorDecl(hasAnyConstructorInitializer(
2226 EXPECT_TRUE(matches(Code, cxxConstructorDecl(hasAnyConstructorInitializer(
2240 EXPECT_TRUE(matches(Code, cxxConstructorDecl(allOf(
2243 EXPECT_TRUE(notMatches(Code, cxxConstructorDecl(allOf(
2246 EXPECT_TRUE(matches(Code, cxxConstructorDecl(allOf(
2249 EXPECT_TRUE(notMatches(Code, cxxConstructorDecl(allOf(
2257 EXPECT_TRUE(matches("class X { public: X(); }; void x() { new X; }", New));
2258 EXPECT_TRUE(
2260 EXPECT_TRUE(
2262 EXPECT_TRUE(matches("class X {}; void x(int) { new X; }", New));
2269 EXPECT_TRUE(
2272 EXPECT_TRUE(
2275 EXPECT_TRUE(
2281 EXPECT_TRUE(
2289 EXPECT_TRUE(
2291 EXPECT_TRUE(
2297 EXPECT_TRUE(matches("struct A {}; void f(A* a) { delete a; }",
2304 EXPECT_TRUE(matches("void x(int, int = 0) { int y; x(y); }", Arg));
2305 EXPECT_TRUE(
2307 EXPECT_TRUE(notMatches("void x(int, int = 0) { int y; x(y, 0); }", Arg));
2312 EXPECT_TRUE(matches("const char *s = \"string\";", Literal));
2314 EXPECT_TRUE(matches("const wchar_t *s = L\"string\";", Literal));
2316 EXPECT_TRUE(matches("const char *s = \"\x05five\";", Literal));
2318 EXPECT_TRUE(notMatches("const char s[1] = {'a'};", Literal));
2323 EXPECT_TRUE(matches("const char c = 'c';", CharLiteral));
2325 EXPECT_TRUE(matches("const char c = L'c';", CharLiteral));
2327 EXPECT_TRUE(notMatches("const wchar_t c = 0x2126;", CharLiteral));
2328 EXPECT_TRUE(notMatches("const char c = 0x1;", CharLiteral));
2333 EXPECT_TRUE(matches("int i = 10;", HasIntLiteral));
2334 EXPECT_TRUE(matches("int i = 0x1AB;", HasIntLiteral));
2335 EXPECT_TRUE(matches("int i = 10L;", HasIntLiteral));
2336 EXPECT_TRUE(matches("int i = 10U;", HasIntLiteral));
2339 EXPECT_TRUE(notMatches("int i = L'a';",
2342 EXPECT_TRUE(notMatches("int i = 'a';", HasIntLiteral));
2343 EXPECT_TRUE(notMatches("int i = 1e10;", HasIntLiteral));
2344 EXPECT_TRUE(notMatches("int i = 10.0;", HasIntLiteral));
2349 EXPECT_TRUE(matches("float i = 10.0;", HasFloatLiteral));
2350 EXPECT_TRUE(matches("float i = 10.0f;", HasFloatLiteral));
2351 EXPECT_TRUE(matches("double i = 10.0;", HasFloatLiteral));
2352 EXPECT_TRUE(matches("double i = 10.0L;", HasFloatLiteral));
2353 EXPECT_TRUE(matches("double i = 1e10;", HasFloatLiteral));
2354 EXPECT_TRUE(matches("double i = 5.0;", floatLiteral(equals(5.0))));
2355 EXPECT_TRUE(matches("double i = 5.0;", floatLiteral(equals(5.0f))));
2356 EXPECT_TRUE(
2359 EXPECT_TRUE(notMatches("float i = 10;", HasFloatLiteral));
2360 EXPECT_TRUE(notMatches("double i = 5.0;", floatLiteral(equals(6.0))));
2361 EXPECT_TRUE(notMatches("double i = 5.0;", floatLiteral(equals(6.0f))));
2362 EXPECT_TRUE(
2367 EXPECT_TRUE(matches("int* i = nullptr;", cxxNullPtrLiteralExpr()));
2371 EXPECT_TRUE(matches("int* i = __null;", gnuNullExpr()));
2375 EXPECT_TRUE(matches("void foo() { __asm(\"mov al, 2\"); }", asmStmt()));
2382 EXPECT_TRUE(matches("void x() { if (true) {} }", Condition));
2383 EXPECT_TRUE(notMatches("void x() { if (false) {} }", Condition));
2384 EXPECT_TRUE(notMatches("void x() { bool a = true; if (a) {} }", Condition));
2385 EXPECT_TRUE(notMatches("void x() { if (true || false) {} }", Condition));
2386 EXPECT_TRUE(notMatches("void x() { if (1) {} }", Condition));
2390 EXPECT_TRUE(matches("void f() { if (false) true; else false; }",
2392 EXPECT_TRUE(notMatches("void f() { if (false) false; else true; }",
2394 EXPECT_TRUE(matches("void f() { if (false) false; else true; }",
2396 EXPECT_TRUE(notMatches("void f() { if (false) true; else false; }",
2403 EXPECT_TRUE(matches("void x() { true || false; }", OperatorOr));
2404 EXPECT_TRUE(notMatches("void x() { true && false; }", OperatorOr));
2412 EXPECT_TRUE(matches("void x() { true || false; }", OperatorTrueFalse));
2413 EXPECT_TRUE(matches("void x() { true && false; }", OperatorTrueFalse));
2414 EXPECT_TRUE(notMatches("void x() { false || true; }", OperatorTrueFalse));
2418 EXPECT_TRUE(matches("void x() { 1[\"abc\"]; }", OperatorIntPointer));
2419 EXPECT_TRUE(notMatches("void x() { \"abc\"[1]; }", OperatorIntPointer));
2426 EXPECT_TRUE(matches("void x() { true || false; }", HasOperand));
2427 EXPECT_TRUE(matches("void x() { false && true; }", HasOperand));
2428 EXPECT_TRUE(notMatches("void x() { true || true; }", HasOperand));
2435 EXPECT_TRUE(
2437 EXPECT_TRUE(
2440 EXPECT_TRUE(
2442 EXPECT_TRUE(
2444 EXPECT_TRUE(matches("bool b = 1 < 2;", binaryOperator(hasOperatorName("<"))));
2445 EXPECT_TRUE(
2447 EXPECT_TRUE(
2449 EXPECT_TRUE(
2452 EXPECT_TRUE(matches("bool b = 1 > 2;", binaryOperator(hasOperatorName(">"))));
2453 EXPECT_TRUE(
2455 EXPECT_TRUE(
2457 EXPECT_TRUE(
2460 EXPECT_TRUE(
2462 EXPECT_TRUE(
2465 EXPECT_TRUE(
2467 EXPECT_TRUE(
2470 EXPECT_TRUE(
2472 EXPECT_TRUE(
2475 EXPECT_TRUE(
2478 EXPECT_TRUE(
2480 EXPECT_TRUE(
2483 EXPECT_TRUE(
2486 EXPECT_TRUE(
2488 EXPECT_TRUE(
2491 EXPECT_TRUE(
2493 EXPECT_TRUE(
2496 EXPECT_TRUE(
2498 EXPECT_TRUE(
2501 EXPECT_TRUE(
2503 EXPECT_TRUE(
2506 EXPECT_TRUE(
2509 EXPECT_TRUE(
2514 EXPECT_TRUE(
2519 EXPECT_TRUE(
2523 EXPECT_TRUE(notMatches("int a[42]; void x() { a[23]; }", unaryOperator()));
2526 EXPECT_TRUE(notMatches(
2535 EXPECT_TRUE(matches("void x() { !true; } ", OperatorNot));
2536 EXPECT_TRUE(notMatches("void x() { true; } ", OperatorNot));
2543 EXPECT_TRUE(matches("void x() { !false; }", OperatorOnFalse));
2544 EXPECT_TRUE(notMatches("void x() { !true; }", OperatorOnFalse));
2550 EXPECT_TRUE(matches("bool b = !true;", unaryOperator(hasOperatorName("!"))));
2551 EXPECT_TRUE(
2553 EXPECT_TRUE(matches("int i = ~ 1;", unaryOperator(hasOperatorName("~"))));
2554 EXPECT_TRUE(
2556 EXPECT_TRUE(
2558 EXPECT_TRUE(
2560 EXPECT_TRUE(
2562 EXPECT_TRUE(
2564 EXPECT_TRUE(
2566 EXPECT_TRUE(
2570 EXPECT_TRUE(notMatches("int i; double d = (double)i;", unaryOperator()));
2573 EXPECT_TRUE(notMatches("void f(); void x() { f(); }", unaryOperator()));
2577 EXPECT_TRUE(notMatches(
2587 EXPECT_TRUE(matches("void x() { true ? false : true; }", Conditional));
2588 EXPECT_TRUE(notMatches("void x() { false ? false : true; }", Conditional));
2589 EXPECT_TRUE(notMatches("void x() { true ? true : false; }", Conditional));
2594 EXPECT_TRUE(matches("void x() { true ? true : false; }", ConditionalFalse));
2595 EXPECT_TRUE(
2600 EXPECT_TRUE(matches("int i[2]; void f() { i[1] = 1; }",
2602 EXPECT_TRUE(notMatches("int i; void f() { i = 1; }",
2607 EXPECT_TRUE(matches(
2610 EXPECT_TRUE(matches(
2613 EXPECT_TRUE(notMatches(
2619 EXPECT_TRUE(matches(
2626 EXPECT_TRUE(matches("namespace a { namespace b { class C; } }",
2628 EXPECT_TRUE(matches("namespace a { namespace b { class C; } }",
2630 EXPECT_TRUE(matches("namespace a { namespace b { class C; } }",
2632 EXPECT_TRUE(matches("namespace a { namespace b { class C; } }",
2634 EXPECT_TRUE(notMatches("namespace a { namespace b { class C; } }",
2636 EXPECT_TRUE(notMatches("namespace a { namespace b { class C; } }",
2638 EXPECT_TRUE(notMatches("namespace a { namespace b { class C; } }",
2640 EXPECT_TRUE(notMatches("namespace a { namespace b { class C; } }",
2642 EXPECT_TRUE(notMatches("namespace a { namespace b { class C; } }",
2644 EXPECT_TRUE(notMatches("namespace a { namespace b { class C; } }",
2646 EXPECT_TRUE(notMatches("namespace a { namespace b { class C; } }",
2648 EXPECT_TRUE(notMatches("namespace a { namespace b { class AC; } }",
2653 EXPECT_TRUE(
2656 EXPECT_TRUE(
2659 EXPECT_TRUE(
2662 EXPECT_TRUE(
2665 EXPECT_TRUE(
2668 EXPECT_TRUE(
2671 EXPECT_TRUE(
2674 EXPECT_TRUE(
2677 EXPECT_TRUE(
2680 EXPECT_TRUE(notMatches("class A { class B { class C; }; };",
2682 EXPECT_TRUE(
2690 EXPECT_TRUE(matches("class A {};", DefinitionOfClassA));
2691 EXPECT_TRUE(notMatches("class A;", DefinitionOfClassA));
2695 EXPECT_TRUE(matches("int a;", DefinitionOfVariableA));
2696 EXPECT_TRUE(notMatches("extern int a;", DefinitionOfVariableA));
2700 EXPECT_TRUE(matches("class A { void a() {} };", DefinitionOfMethodA));
2701 EXPECT_TRUE(notMatches("class A { void a(); };", DefinitionOfMethodA));
2708 EXPECT_TRUE(
2710 EXPECT_TRUE(
2713 EXPECT_TRUE(
2719 EXPECT_TRUE(matches(
2725 EXPECT_TRUE(matches(
2745 EXPECT_TRUE(matches(
2773 EXPECT_TRUE(matchAndVerifyResultTrue("class A { class B {}; };",
2776 EXPECT_TRUE(matchAndVerifyResultFalse("class A { class B {}; };",
2779 EXPECT_TRUE(matchAndVerifyResultFalse("class A { class C {}; };",
2796 EXPECT_TRUE(matchAndVerifyResultTrue("class A { class B {}; };",
2799 EXPECT_TRUE(matchAndVerifyResultFalse("class A { class B {}; };",
2802 EXPECT_TRUE(matchAndVerifyResultFalse("class A { class C {}; };",
2808 EXPECT_TRUE(matches("void x() { class B {}; }", StatementHasClassB));
2812 EXPECT_TRUE(matches("void f() { for(;;); }", forStmt()));
2813 EXPECT_TRUE(matches("void f() { if(true) for(;;); }", forStmt()));
2814 EXPECT_TRUE(notMatches("int as[] = { 1, 2, 3 };"
2820 EXPECT_TRUE(matches("void f(){ int i; for (; i < 3 ; ); }",
2822 EXPECT_TRUE(matches("void f() { for (int i = 0; ;); }",
2827 EXPECT_TRUE(matches("void f(){ int a[] {1, 2}; for (int i : a); }",
2829 EXPECT_TRUE(matches(
2835 EXPECT_TRUE(notMatches("void f(){ for (int i = 0; ; ++i); }",
2837 EXPECT_TRUE(notMatches("void f() {int i; for (; i < 4; ++i) {} }",
2842 EXPECT_TRUE(notMatches("void f() { ; }", forStmt()));
2843 EXPECT_TRUE(notMatches("void f() { if(true); }", forStmt()));
2847 EXPECT_TRUE(notMatches("void f();", compoundStmt()));
2848 EXPECT_TRUE(matches("void f() {}", compoundStmt()));
2849 EXPECT_TRUE(matches("void f() {{}}", compoundStmt()));
2855 EXPECT_TRUE(notMatches("namespace n { struct S {}; }",
2857 EXPECT_TRUE(matches("namespace n { struct S { void f() {{}} }; }",
2862 EXPECT_TRUE(matches("void f() { for(;;) {} }",
2864 EXPECT_TRUE(notMatches("void f() { for(;;); }",
2866 EXPECT_TRUE(matches("void f() { while(true) {} }",
2868 EXPECT_TRUE(matches("void f() { do {} while(true); }",
2870 EXPECT_TRUE(matches("void f() { int p[2]; for (auto x : p) {} }",
2878 EXPECT_TRUE(matches("void f() { for (;;); }",
2884 EXPECT_TRUE(notMatches("void f() { if (true) for (;;); }",
2889 EXPECT_TRUE(matches("void f() { if (true) { for (;;); } }",
2894 EXPECT_TRUE(matches("void f() { 1; 2; 3; for (;;); 4; 5; 6; }",
2899 EXPECT_TRUE(matches("void f() { }",
2901 EXPECT_TRUE(notMatches("void f() {}",
2906 EXPECT_TRUE(matches("void f() { 1; }",
2908 EXPECT_TRUE(notMatches("void f() { 1; }",
2910 EXPECT_TRUE(notMatches("void f() { 1; }",
2915 EXPECT_TRUE(matches("void f() { 1; 2; 3; }",
2920 EXPECT_TRUE(matches("void f() { { 1; } { 1; 2; 3; 4; } }",
2922 EXPECT_TRUE(matches("void f() { { 1; } { 1; 2; 3; 4; } }",
2924 EXPECT_TRUE(notMatches("void f() { { 1; } { 1; 2; 3; 4; } }",
2926 EXPECT_TRUE(matches("void f() { { 1; } { 1; 2; 3; 4; } }",
2931 EXPECT_TRUE(matches("struct { int first; } s; int i(s.first);",
2938 EXPECT_TRUE(notMatches("struct { int i; } first; int i(first.i);",
2943 EXPECT_TRUE(matches("void f() {"
2951 EXPECT_TRUE(matches(
2954 EXPECT_TRUE(notMatches(
2960 EXPECT_TRUE(matches(
2962 EXPECT_TRUE(notMatches(
2964 EXPECT_TRUE(notMatches(
2967 EXPECT_TRUE(notMatches(
2969 EXPECT_TRUE(notMatches(
2971 EXPECT_TRUE(matches(
2974 EXPECT_TRUE(notMatches(
2976 EXPECT_TRUE(matches("class A { protected: int i; };",
2978 EXPECT_TRUE(notMatches(
2982 EXPECT_TRUE(notMatches("int i;", varDecl(isPublic(), hasName("i"))));
2983 EXPECT_TRUE(notMatches("int i;", varDecl(isProtected(), hasName("i"))));
2984 EXPECT_TRUE(notMatches("int i;", varDecl(isPrivate(), hasName("i"))));
2989 EXPECT_TRUE(matchesConditionally(
2994 EXPECT_TRUE(matches("class X { void operator delete(void*); };",
2998 EXPECT_TRUE(matchesConditionally(
3005 EXPECT_TRUE(notMatches(
3011 EXPECT_TRUE(matches(
3014 EXPECT_TRUE(matches(
3022 EXPECT_TRUE(matches(
3026 EXPECT_TRUE(matches(
3033 EXPECT_TRUE(notMatches("class X { void m(); };", fieldDecl(hasName("m"))));
3034 EXPECT_TRUE(notMatches("class X { class m {}; };", fieldDecl(hasName("m"))));
3035 EXPECT_TRUE(notMatches("class X { enum { m }; };", fieldDecl(hasName("m"))));
3036 EXPECT_TRUE(notMatches("class X { enum m {}; };", fieldDecl(hasName("m"))));
3040 EXPECT_TRUE(matches("class X { int m; };", fieldDecl(hasName("m"))));
3044 EXPECT_TRUE(matches("volatile int i = 42;",
3046 EXPECT_TRUE(notMatches("volatile int *i;",
3048 EXPECT_TRUE(matches("typedef volatile int v_int; v_int i = 42;",
3053 EXPECT_TRUE(matches("const int i = 42;",
3058 EXPECT_TRUE(matches("int i = 42; int* const p(&i);",
3063 EXPECT_TRUE(matches("typedef const int const_int; const_int i = 42;",
3065 EXPECT_TRUE(matches("typedef int* int_ptr; const int_ptr p(0);",
3070 EXPECT_TRUE(notMatches("typedef int nonconst_int; nonconst_int i = 42;",
3072 EXPECT_TRUE(notMatches("int const* p;",
3077 EXPECT_TRUE(matches("char *p = reinterpret_cast<char *>(&p);",castExpr()));
3078 EXPECT_TRUE(matches("void *p = (void *)(&p);", castExpr()));
3079 EXPECT_TRUE(matches("char q, *p = const_cast<char *>(&q);", castExpr()));
3080 EXPECT_TRUE(matches("char c = char(0);", castExpr()));
3084 EXPECT_TRUE(matches("char c = 0;", castExpr()));
3086 EXPECT_TRUE(matches("char c = 0, d = c;", castExpr()));
3090 EXPECT_TRUE(notMatches("char c = '0';", castExpr()));
3091 EXPECT_TRUE(notMatches("char c, &q = c;", castExpr()));
3092 EXPECT_TRUE(notMatches("int i = (0);", castExpr()));
3093 EXPECT_TRUE(notMatches("int i = 0;", castExpr()));
3097 EXPECT_TRUE(matches("char* p = reinterpret_cast<char*>(&p);",
3102 EXPECT_TRUE(notMatches("char* p = (char*)(&p);", cxxReinterpretCastExpr()));
3103 EXPECT_TRUE(notMatches("char q, *p = const_cast<char*>(&q);",
3105 EXPECT_TRUE(notMatches("void* p = static_cast<void*>(&p);",
3107 EXPECT_TRUE(notMatches("struct B { virtual ~B() {} }; struct D : B {};"
3115 EXPECT_TRUE(matches(foo_class + "void r() { Foo f = Foo(\"hello world\"); }",
3121 EXPECT_TRUE(
3124 EXPECT_TRUE(
3130 EXPECT_TRUE(matches("struct B { virtual ~B() {} }; struct D : B {};"
3137 EXPECT_TRUE(matches("void* p(static_cast<void*>(&p));",
3142 EXPECT_TRUE(notMatches("char* p = (char*)(&p);", cxxStaticCastExpr()));
3143 EXPECT_TRUE(notMatches("char q, *p = const_cast<char*>(&q);",
3145 EXPECT_TRUE(notMatches("void* p = reinterpret_cast<char*>(&p);",
3147 EXPECT_TRUE(notMatches("struct B { virtual ~B() {} }; struct D : B {};"
3154 EXPECT_TRUE(matches("int i = (int) 2.2f;", cStyleCastExpr()));
3158 EXPECT_TRUE(notMatches("char* p = static_cast<char*>(0);"
3168 EXPECT_TRUE(matches("char* p = static_cast<char*>(0);",
3175 EXPECT_TRUE(matches("int x; const int i = x;",
3179 EXPECT_TRUE(matches("int arr[3]; int *p = arr;",
3186 EXPECT_TRUE(notMatches("char c = 0;",
3190 EXPECT_TRUE(notMatches("int arr[3]; int *p = arr;",
3197 EXPECT_TRUE(matches("int x = 0; const int y = x;",
3200 EXPECT_TRUE(matches("char c = 0;",
3203 EXPECT_TRUE(matches("int arr[6]; int *p = arr;",
3212 EXPECT_TRUE(notMatches("int x = 0;",
3214 EXPECT_TRUE(notMatches("int x = 0, &y = x;",
3217 EXPECT_TRUE(notMatches("int x = 0; double d = (double) x;",
3219 EXPECT_TRUE(notMatches("const int *p; int *q = const_cast<int *>(p);",
3222 EXPECT_TRUE(notMatches("int x = (0);",
3230 EXPECT_TRUE(matches("int x = 0; const int y = x;",
3234 EXPECT_TRUE(matches("char x = 0;",
3243 EXPECT_TRUE(notMatches("int x; const int y = x;",
3246 EXPECT_TRUE(notMatches("int x; int y = x;",
3252 EXPECT_TRUE(notMatches("char* p = static_cast<char*>(0);",
3255 EXPECT_TRUE(notMatches("int i = (0);",
3258 EXPECT_TRUE(notMatches("float i = (float)0;",
3261 EXPECT_TRUE(notMatches("float i = float(0);",
3269 EXPECT_TRUE(matches("int x = 0; int &y = x;",
3277 EXPECT_TRUE(matches("int x = (0);",
3280 EXPECT_TRUE(matches("int x = (((((0)))));",
3286 EXPECT_TRUE(matches("char x = (0);",
3290 EXPECT_TRUE(matches("char x = (char)0;",
3293 EXPECT_TRUE(matches("char* p = static_cast<char*>(0);",
3300 EXPECT_TRUE(matches("int x = 0;",
3308 EXPECT_TRUE(notMatches("int x = ((0));",
3314 EXPECT_TRUE(notMatches("char x = ((0));",
3318 EXPECT_TRUE(notMatches("char *x = static_cast<char *>((0));",
3328 EXPECT_TRUE(matches("int x = 0; const int y = x;",
3332 EXPECT_TRUE(matches("const char x = (0);",
3340 EXPECT_TRUE(matches("int x = 0; int &y = x;",
3343 EXPECT_TRUE(matches("int x = 0;",
3352 EXPECT_TRUE(notMatches("char c = ((3));",
3357 EXPECT_TRUE(notMatches("float y = (float(0));",
3360 EXPECT_TRUE(notMatches("float y = (float)0;",
3363 EXPECT_TRUE(notMatches("char* p = static_cast<char*>(0);",
3369 EXPECT_TRUE(matches("class string {}; class URL { public: URL(string s); };"
3376 EXPECT_TRUE(matches("float x = static_cast<float>(42);",
3383 EXPECT_TRUE(notMatches("class X {};", stmt()));
3387 EXPECT_TRUE(matches("void x() {}", stmt()));
3391 EXPECT_TRUE(notMatches("void x() {}", declStmt()));
3395 EXPECT_TRUE(matches("void x() { int a; }", declStmt()));
3399 EXPECT_TRUE(matches("struct Foo { ~Foo(); };"
3408 EXPECT_TRUE(matches("int a[] = { 1, 2 };",
3410 EXPECT_TRUE(matches("struct B { int x, y; }; B b = { 5, 6 };",
3412 EXPECT_TRUE(matches("struct S { S(void (*a)()); };"
3416 EXPECT_TRUE(
3421 EXPECT_TRUE(matches("namespace X { int x; } using X::x;",
3426 EXPECT_TRUE(matches("namespace f { int a; } using f::a;",
3431 EXPECT_TRUE(matches("namespace f { int a; void b(); } using f::b;",
3434 EXPECT_TRUE(notMatches("namespace f { int a; void b(); } using f::a;",
3440 EXPECT_TRUE(matches(
3443 EXPECT_TRUE(notMatches(
3449 EXPECT_TRUE(matches("namespace X { int x; } using namespace X;",
3458 EXPECT_TRUE(matches("void f() {int a = 4;}", SingleDeclStmt));
3459 EXPECT_TRUE(notMatches("void f() {int a;}", SingleDeclStmt));
3460 EXPECT_TRUE(notMatches("void f() {int a = 4, b = 3;}",
3467 EXPECT_TRUE(matches("void f() {int a = 4;}",
3469 EXPECT_TRUE(matches("void f() {int a = 4, b = 3;}",
3473 EXPECT_TRUE(notMatches("void f() {int a = 4, b = 3;}",
3479 EXPECT_TRUE(matches("void f() {int i,j;}",
3481 EXPECT_TRUE(notMatches("void f() {int i,j; int k;}",
3483 EXPECT_TRUE(notMatches("void f() {int i,j, k, l;}",
3488 EXPECT_TRUE(notMatches("void x() {}", whileStmt()));
3489 EXPECT_TRUE(matches("void x() { while(true); }", whileStmt()));
3490 EXPECT_TRUE(notMatches("void x() { do {} while(true); }", whileStmt()));
3494 EXPECT_TRUE(matches("void x() { do {} while(true); }", doStmt()));
3495 EXPECT_TRUE(matches("void x() { do ; while(false); }", doStmt()));
3499 EXPECT_TRUE(notMatches("void x() { while(true) {} }", doStmt()));
3503 EXPECT_TRUE(matches("void x() { switch(42) { case 42:; } }", switchCase()));
3504 EXPECT_TRUE(matches("void x() { switch(42) { default:; } }", switchCase()));
3505 EXPECT_TRUE(matches("void x() { switch(42) default:; }", switchCase()));
3506 EXPECT_TRUE(notMatches("void x() { switch(42) {} }", switchCase()));
3510 EXPECT_TRUE(matches("void x() { switch(42) { case 42:; } }", switchStmt()));
3511 EXPECT_TRUE(matches("void x() { switch(42) { default:; } }", switchStmt()));
3512 EXPECT_TRUE(matches("void x() { switch(42) default:; }", switchStmt()));
3513 EXPECT_TRUE(notMatches("void x() {}", switchStmt()));
3517 EXPECT_TRUE(notMatches("void x() { switch(42); }",
3519 EXPECT_TRUE(matches("void x() { switch(42) case 42:; }",
3521 EXPECT_TRUE(matches("void x() { switch(42) { case 42:; } }",
3523 EXPECT_TRUE(notMatches(
3526 EXPECT_TRUE(matches("void x() { switch(42) { case 1+1: case 4:; } }",
3529 EXPECT_TRUE(notMatches("void x() { switch(42) { case 1+1: case 2+2:; } }",
3532 EXPECT_TRUE(notMatches("void x() { switch(42) { case 1 ... 2:; } }",
3535 EXPECT_TRUE(matchAndVerifyResultTrue(
3542 EXPECT_TRUE(matches(
3548 EXPECT_TRUE(matches("void foo() try { } catch(int X) { }", cxxCatchStmt()));
3549 EXPECT_TRUE(matches("void foo() try { } catch(int X) { }", cxxTryStmt()));
3550 EXPECT_TRUE(
3552 EXPECT_TRUE(matches("void foo() try { throw; } catch(int X) { }",
3554 EXPECT_TRUE(matches("void foo() try { throw 5;} catch(int X) { }",
3556 EXPECT_TRUE(matches("void foo() try { throw; } catch(...) { }",
3558 EXPECT_TRUE(notMatches("void foo() try { throw; } catch(int) { }",
3560 EXPECT_TRUE(matches("void foo() try {} catch(int X) { }",
3562 EXPECT_TRUE(notMatches("void foo() try { int X; } catch (...) { }",
3567 EXPECT_TRUE(notMatches(
3570 EXPECT_TRUE(notMatches(
3576 EXPECT_TRUE(matches(
3582 EXPECT_TRUE(matchAndVerifyResultTrue("class C { int x; };",
3588 EXPECT_TRUE(matchAndVerifyResultTrue("class C { int x; int y; int z; };",
3594 EXPECT_TRUE(matchAndVerifyResultTrue(
3602 EXPECT_TRUE(matchAndVerifyResultTrue("class C { class D { int x; }; };",
3611 EXPECT_TRUE(matchAndVerifyResultTrue(
3619 EXPECT_TRUE(matchAndVerifyResultTrue(
3626 EXPECT_TRUE(matchAndVerifyResultTrue(
3634 EXPECT_TRUE(matchAndVerifyResultTrue(
3643 EXPECT_TRUE(matchAndVerifyResultTrue(
3652 EXPECT_TRUE(matchAndVerifyResultTrue(
3677 EXPECT_TRUE(matchAndVerifyResultTrue(
3683 EXPECT_TRUE(matchAndVerifyResultTrue(
3687 EXPECT_TRUE(matchAndVerifyResultTrue(
3693 EXPECT_TRUE(matchAndVerifyResultTrue(
3697 EXPECT_TRUE(matchAndVerifyResultTrue(
3703 EXPECT_TRUE(matchAndVerifyResultTrue(
3707 EXPECT_TRUE(matchAndVerifyResultTrue(
3711 EXPECT_TRUE(matchAndVerifyResultTrue(
3716 EXPECT_TRUE(matchAndVerifyResultTrue(
3722 EXPECT_TRUE(matchAndVerifyResultTrue(
3726 EXPECT_TRUE(matchAndVerifyResultTrue(
3731 EXPECT_TRUE(matchAndVerifyResultTrue(
3735 EXPECT_TRUE(matchAndVerifyResultTrue(
3742 EXPECT_TRUE(matchAndVerifyResultTrue(
3746 EXPECT_TRUE(matchAndVerifyResultTrue(
3754 EXPECT_TRUE(matchAndVerifyResultTrue(
3758 EXPECT_TRUE(matchAndVerifyResultTrue(
3765 EXPECT_TRUE(matchAndVerifyResultTrue(
3772 EXPECT_TRUE(matchAndVerifyResultTrue(
3779 EXPECT_TRUE(matchAndVerifyResultTrue(
3786 EXPECT_TRUE(matchAndVerifyResultTrue(
3793 EXPECT_TRUE(matchAndVerifyResultTrue(
3801 EXPECT_TRUE(matchAndVerifyResultTrue(
3806 EXPECT_TRUE(matchAndVerifyResultTrue(
3811 EXPECT_TRUE(notMatches(
3821 EXPECT_TRUE(matches(
3825 EXPECT_TRUE(matches(
3832 EXPECT_TRUE(matches(
3839 EXPECT_TRUE(matches(
3848 EXPECT_TRUE(matches(
3856 EXPECT_TRUE(matches(
3869 EXPECT_TRUE(matches(
3879 EXPECT_TRUE(notMatches(
3886 EXPECT_TRUE(notMatches(
3892 EXPECT_TRUE(
3898 EXPECT_TRUE(notMatches("template<typename T> class A { T i; };",
3903 EXPECT_TRUE(matches("template<typename T> struct A { A() { T i; } };"
3909 EXPECT_TRUE(notMatches("template<typename T> struct A { void x() { T i; } };",
3914 EXPECT_TRUE(
3920 EXPECT_TRUE(notMatches("template<typename T> void A(T t) { T i; }",
3925 EXPECT_TRUE(
3931 EXPECT_TRUE(notMatches("template<typename T> void A(T t) { T i; }",
3939 EXPECT_TRUE(notMatches(
3942 EXPECT_TRUE(matches(
3949 EXPECT_TRUE(notMatches(
3952 EXPECT_TRUE(notMatches(
3959 EXPECT_TRUE(notMatches(
3963 EXPECT_TRUE(notMatches(
3971 EXPECT_TRUE(notMatches(
3974 EXPECT_TRUE(notMatches(
3981 EXPECT_TRUE(matches(
3985 EXPECT_TRUE(matches(
3992 EXPECT_TRUE(matches(
3998 EXPECT_TRUE(notMatches(
4004 EXPECT_TRUE(matches(
4011 EXPECT_TRUE(matches(
4017 EXPECT_TRUE(matches(
4023 EXPECT_TRUE(matchAndVerifyResultTrue(
4030 EXPECT_TRUE(matchAndVerifyResultTrue(
4042 EXPECT_TRUE(matchAndVerifyResultTrue(
4056 EXPECT_TRUE(matches(
4064 EXPECT_TRUE(matches(
4072 EXPECT_TRUE(matches(
4075 EXPECT_TRUE(notMatches(
4078 EXPECT_TRUE(notMatches(
4084 EXPECT_TRUE(matches(
4095 EXPECT_TRUE(matches(
4102 EXPECT_TRUE(
4109 EXPECT_TRUE(matches(
4118 EXPECT_TRUE(
4146 EXPECT_TRUE(matches("struct S {};", qualType().bind("loc")));
4150 EXPECT_TRUE(matches("struct S { void func(); };",
4155 EXPECT_TRUE(matches("int a[] = {2,3};", arrayType()));
4156 EXPECT_TRUE(matches("int a[42];", arrayType()));
4157 EXPECT_TRUE(matches("void f(int b) { int a[b]; }", arrayType()));
4159 EXPECT_TRUE(notMatches("struct A {}; A a[7];",
4162 EXPECT_TRUE(matches(
4165 EXPECT_TRUE(matches(
4168 EXPECT_TRUE(matches(
4172 EXPECT_TRUE(notMatches(
4175 EXPECT_TRUE(notMatches(
4178 EXPECT_TRUE(notMatches(
4183 EXPECT_TRUE(matches("int a[2];",
4185 EXPECT_TRUE(matches("const int a = 0;", qualType(isInteger())));
4189 EXPECT_TRUE(matches("void f(int i[]);", valueDecl(hasType(decayedType(hasDecayedType(pointerType()))))));
4190 EXPECT_TRUE(notMatches("int i[7];", decayedType()));
4194 EXPECT_TRUE(matches("_Complex float f;", complexType()));
4195 EXPECT_TRUE(matches(
4198 EXPECT_TRUE(notMatches(
4204 EXPECT_TRUE(matches("int a[2];", constantArrayType()));
4205 EXPECT_TRUE(notMatches(
4209 EXPECT_TRUE(matches("int a[42];", constantArrayType(hasSize(42))));
4210 EXPECT_TRUE(matches("int b[2*21];", constantArrayType(hasSize(42))));
4211 EXPECT_TRUE(notMatches("int c[41], d[43];", constantArrayType(hasSize(42))));
4215 EXPECT_TRUE(matches(
4218 EXPECT_TRUE(notMatches(
4224 EXPECT_TRUE(matches("int a[] = { 2, 3 };", incompleteArrayType()));
4225 EXPECT_TRUE(matches("void f(int a[]) {}", incompleteArrayType()));
4227 EXPECT_TRUE(notMatches("int a[42]; void f() { int b[a[0]]; }",
4232 EXPECT_TRUE(matches("void f(int b) { int a[b]; }", variableArrayType()));
4233 EXPECT_TRUE(notMatches("int a[] = {2, 3}; int b[42];", variableArrayType()));
4235 EXPECT_TRUE(matches(
4245 EXPECT_TRUE(matches("_Atomic(int) i;", atomicType()));
4247 EXPECT_TRUE(matches("_Atomic(int) i;",
4249 EXPECT_TRUE(notMatches("_Atomic(float) f;",
4255 EXPECT_TRUE(matches("auto i = 2;", autoType()));
4256 EXPECT_TRUE(matches("int v[] = { 2, 3 }; void f() { for (int i : v) {} }",
4261 //EXPECT_TRUE(matches("auto a = 1;",
4263 //EXPECT_TRUE(notMatches("auto b = 2.0;",
4268 EXPECT_TRUE(matches("int (*f)(int);", functionType()));
4269 EXPECT_TRUE(matches("void f(int i) {}", functionType()));
4273 EXPECT_TRUE(
4275 EXPECT_TRUE(notMatches("int *array[4];", varDecl(hasType(parenType()))));
4277 EXPECT_TRUE(matches(
4280 EXPECT_TRUE(notMatches(
4289 //EXPECT_TRUE(matchAndVerifyResultTrue(
4293 //EXPECT_TRUE(matchAndVerifyResultTrue(
4297 EXPECT_TRUE(matches(
4300 EXPECT_TRUE(matches(
4303 EXPECT_TRUE(matches(
4308 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"),
4310 EXPECT_TRUE(matches(Fragment, varDecl(hasName("ptr"),
4312 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"),
4314 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"),
4316 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"),
4318 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"),
4322 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"),
4324 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"),
4326 EXPECT_TRUE(matches(Fragment, varDecl(hasName("ptr"),
4328 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"),
4332 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ref"),
4334 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ref"),
4336 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ref"),
4338 EXPECT_TRUE(matches(Fragment, varDecl(hasName("ref"),
4340 EXPECT_TRUE(matches(Fragment, varDecl(hasName("ref"),
4342 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ref"),
4346 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ref"),
4348 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ref"),
4350 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ref"),
4352 EXPECT_TRUE(matches(Fragment, varDecl(hasName("ref"),
4354 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ref"),
4356 EXPECT_TRUE(matches(Fragment, varDecl(hasName("ref"),
4366 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("a"),
4368 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("b"),
4370 EXPECT_TRUE(matches(Fragment, varDecl(hasName("c"),
4372 EXPECT_TRUE(matches(Fragment, varDecl(hasName("c"),
4374 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("c"),
4376 EXPECT_TRUE(matches(Fragment, varDecl(hasName("d"),
4378 EXPECT_TRUE(matches(Fragment, varDecl(hasName("d"),
4380 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("d"),
4382 EXPECT_TRUE(matches(Fragment, varDecl(hasName("e"),
4384 EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("e"),
4386 EXPECT_TRUE(matches(Fragment, varDecl(hasName("e"),
4391 EXPECT_TRUE(matches("int b; int &a = b;",
4393 EXPECT_TRUE(matches("int *a;", pointerType(pointee(builtinType()))));
4395 EXPECT_TRUE(matches("int *a;",
4398 EXPECT_TRUE(matches(
4401 EXPECT_TRUE(notMatches(
4407 EXPECT_TRUE(matches("int b; int * const a = &b;",
4409 EXPECT_TRUE(matches("int b; int * const a = &b;",
4411 EXPECT_TRUE(matches(
4414 EXPECT_TRUE(matches(
4420 EXPECT_TRUE(matches("typedef int X; X a;", varDecl(hasName("a"),
4425 EXPECT_TRUE(matches("template <typename T> class A{}; A<int> a;",
4430 EXPECT_TRUE(matches("class C{}; C c;", recordType()));
4431 EXPECT_TRUE(matches("struct S{}; S s;",
4433 EXPECT_TRUE(notMatches("int i;",
4438 EXPECT_TRUE(matches(
4445 EXPECT_TRUE(matches("class C {} c;", elaboratedType()));
4446 EXPECT_TRUE(notMatches("class C {}; C c;", elaboratedType()));
4450 EXPECT_TRUE(matches(
4458 EXPECT_TRUE(notMatches(
4464 EXPECT_TRUE(notMatches(
4471 EXPECT_TRUE(matches(
4480 EXPECT_TRUE(notMatches(
4496 EXPECT_TRUE(matches(code, binaryOperator(hasRHS(
4501 EXPECT_TRUE(matches("namespace ns { struct A {}; } ns::A a;",
4503 EXPECT_TRUE(matches("template <typename T> class A { typename T::B b; };",
4505 EXPECT_TRUE(matches("struct A { void f(); }; void A::f() {}",
4507 EXPECT_TRUE(matches("namespace a { namespace b {} } namespace ab = a::b;",
4510 EXPECT_TRUE(matches(
4513 EXPECT_TRUE(notMatches(
4519 EXPECT_TRUE(matches("void f() {int i;;}", nullStmt()));
4520 EXPECT_TRUE(notMatches("void f() {int i;}", nullStmt()));
4524 EXPECT_TRUE(notMatches("namespace N {}", namespaceDecl(isAnonymous())));
4525 EXPECT_TRUE(matches("namespace {}", namespaceDecl(isAnonymous())));
4529 EXPECT_TRUE(matches("namespace test {} namespace alias = ::test;",
4536 EXPECT_TRUE(matches("struct A { struct B {}; }; A::B b;", Matcher));
4537 EXPECT_TRUE(matches("struct A { struct B { struct C {}; }; }; A::B::C c;",
4539 EXPECT_TRUE(notMatches("namespace A { struct B {}; } A::B b;", Matcher));
4545 EXPECT_TRUE(matches("namespace ns { struct A {}; } ns::A a;", Matcher));
4546 EXPECT_TRUE(notMatches("namespace xx { struct A {}; } xx::A a;", Matcher));
4547 EXPECT_TRUE(notMatches("struct ns { struct A {}; }; ns::A a;", Matcher));
4551 EXPECT_TRUE(matchAndVerifyResultTrue(
4558 EXPECT_TRUE(matchAndVerifyResultTrue(
4565 EXPECT_TRUE(matches(
4568 EXPECT_TRUE(matches(
4578 EXPECT_TRUE(matches(
4583 EXPECT_TRUE(notMatches(
4588 EXPECT_TRUE(matches(
4596 EXPECT_TRUE(matchAndVerifyResultTrue(
4607 EXPECT_TRUE(matches(
4611 EXPECT_TRUE(matchAndVerifyResultTrue(
4623 EXPECT_TRUE(matches(
4628 EXPECT_TRUE(notMatches(
4633 EXPECT_TRUE(matches(
4639 EXPECT_TRUE(matchAndVerifyResultTrue(
4650 EXPECT_TRUE(matches(
4654 EXPECT_TRUE(matchAndVerifyResultTrue(
4683 EXPECT_TRUE(matchAndVerifyResultTrue(
4688 EXPECT_TRUE(matchAndVerifyResultFalse(
4696 EXPECT_TRUE(matchAndVerifyResultTrue(
4700 EXPECT_TRUE(matchAndVerifyResultFalse(
4707 EXPECT_TRUE(matchAndVerifyResultTrue(
4711 EXPECT_TRUE(matchAndVerifyResultFalse(
4758 EXPECT_TRUE(matchAndVerifyResultTrue(
4761 EXPECT_TRUE(matchAndVerifyResultTrue(
4764 EXPECT_TRUE(matchAndVerifyResultTrue(
4793 EXPECT_TRUE(Called);
4806 EXPECT_TRUE(VerifyCallback.Called);
4812 EXPECT_TRUE(VerifyCallback.Called);
4832 EXPECT_TRUE(VerifyCallback.Called);
4838 EXPECT_TRUE(VerifyCallback.Called);
4842 EXPECT_TRUE(matches(
4846 EXPECT_TRUE(notMatches("int i = 1.f;",
4853 EXPECT_TRUE(notMatches(
4860 EXPECT_TRUE(
4865 EXPECT_TRUE(notMatches(
4871 EXPECT_TRUE(matches(
4876 EXPECT_TRUE(notMatches("class X { class Y {}; };",
4882 EXPECT_TRUE(matches(
4888 EXPECT_TRUE(notMatches(
4896 EXPECT_TRUE(matchAndVerifyResultTrue(
4917 EXPECT_TRUE(matchAndVerifyResultTrue(
4930 EXPECT_TRUE(matchAndVerifyResultTrue(
4962 EXPECT_TRUE(matches("typedef int typedefDeclTest;",
4967 EXPECT_TRUE(matches("void g(); inline void f();",
4969 EXPECT_TRUE(matches("namespace n { inline namespace m {} }",
4977 EXPECT_TRUE(matches("class X {};",
4979 EXPECT_TRUE(notMatches("", recordDecl(isExpansionInMainFile())));
4982 EXPECT_TRUE(matchesConditionally("#include <other>\n",
4990 EXPECT_TRUE(matchesConditionally(
4993 EXPECT_TRUE(matchesConditionally("#include \"other\"\n",
4996 EXPECT_TRUE(notMatches("class X {};",
4998 EXPECT_TRUE(notMatches("", recordDecl(isExpansionInSystemHeader())));
5005 EXPECT_TRUE(matchesConditionally(
5011 EXPECT_TRUE(matchesConditionally(
5024 EXPECT_TRUE(notMatchesObjC("", objcMessageExpr(anything())));
5040 EXPECT_TRUE(matchesObjC(
5043 EXPECT_TRUE(matchesObjC(
5046 EXPECT_TRUE(matchesObjC(
5052 EXPECT_TRUE(notMatchesObjC(
5055 EXPECT_TRUE(matchesObjC(
5058 EXPECT_TRUE(matchesObjC(
5061 EXPECT_TRUE(matchesObjC(