diff options
Diffstat (limited to 'clang/unittests/ASTMatchers/ASTMatchersTest.cpp')
| -rw-r--r-- | clang/unittests/ASTMatchers/ASTMatchersTest.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/unittests/ASTMatchers/ASTMatchersTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersTest.cpp index 4ce56fd0238..9d9b2a15b79 100644 --- a/clang/unittests/ASTMatchers/ASTMatchersTest.cpp +++ b/clang/unittests/ASTMatchers/ASTMatchersTest.cpp @@ -1966,6 +1966,17 @@ TEST(Matcher, Conditions) { EXPECT_TRUE(notMatches("void x() { if (1) {} }", Condition)); } +TEST(IfStmt, ChildTraversalMatchers) { + EXPECT_TRUE(matches("void f() { if (false) true; else false; }", + ifStmt(hasThen(boolLiteral(equals(true)))))); + EXPECT_TRUE(notMatches("void f() { if (false) false; else true; }", + ifStmt(hasThen(boolLiteral(equals(true)))))); + EXPECT_TRUE(matches("void f() { if (false) false; else true; }", + ifStmt(hasElse(boolLiteral(equals(true)))))); + EXPECT_TRUE(notMatches("void f() { if (false) true; else false; }", + ifStmt(hasElse(boolLiteral(equals(true)))))); +} + TEST(MatchBinaryOperator, HasOperatorName) { StatementMatcher OperatorOr = binaryOperator(hasOperatorName("||")); |

