]> granicus.if.org Git - clang/commitdiff
[clang][NFC] Move matcher ignoringElidableConstructorCall's tests to appropriate...
authorYitzhak Mandelbaum <yitzhakm@google.com>
Thu, 8 Aug 2019 18:55:42 +0000 (18:55 +0000)
committerYitzhak Mandelbaum <yitzhakm@google.com>
Thu, 8 Aug 2019 18:55:42 +0000 (18:55 +0000)
Summary:
`ignoringElidableConstructorCall` is a traversal matcher, but its tests are
grouped with narrowing-matcher tests. This revision moves them to the correct
file.

Reviewers: gribozavr

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D65963

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@368326 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
unittests/ASTMatchers/ASTMatchersTraversalTest.cpp

index 1b95d3d54eea995d9ead69deb658d6942fe741de..2038e9b6c005f5b2a3c348f22b6dd67beb2569b7 100644 (file)
@@ -603,91 +603,6 @@ TEST(Matcher, BindMatchedNodes) {
                                        llvm::make_unique<VerifyIdIsBoundTo<CXXMemberCallExpr>>("x")));
 }
 
-TEST(Matcher, IgnoresElidableConstructors) {
-  EXPECT_TRUE(
-      matches("struct H {};"
-              "template<typename T> H B(T A);"
-              "void f() {"
-              "  H D1;"
-              "  D1 = B(B(1));"
-              "}",
-              cxxOperatorCallExpr(hasArgument(
-                  1, callExpr(hasArgument(
-                         0, ignoringElidableConstructorCall(callExpr()))))),
-              LanguageMode::Cxx11OrLater));
-  EXPECT_TRUE(
-      matches("struct H {};"
-              "template<typename T> H B(T A);"
-              "void f() {"
-              "  H D1;"
-              "  D1 = B(1);"
-              "}",
-              cxxOperatorCallExpr(hasArgument(
-                  1, callExpr(hasArgument(0, ignoringElidableConstructorCall(
-                                                 integerLiteral()))))),
-              LanguageMode::Cxx11OrLater));
-  EXPECT_TRUE(matches(
-      "struct H {};"
-      "H G();"
-      "void f() {"
-      "  H D = G();"
-      "}",
-      varDecl(hasInitializer(anyOf(
-          ignoringElidableConstructorCall(callExpr()),
-          exprWithCleanups(has(ignoringElidableConstructorCall(callExpr())))))),
-      LanguageMode::Cxx11OrLater));
-}
-
-TEST(Matcher, IgnoresElidableInReturn) {
-  auto matcher = expr(ignoringElidableConstructorCall(declRefExpr()));
-  EXPECT_TRUE(matches("struct H {};"
-                      "H f() {"
-                      "  H g;"
-                      "  return g;"
-                      "}",
-                      matcher, LanguageMode::Cxx11OrLater));
-  EXPECT_TRUE(notMatches("struct H {};"
-                         "H f() {"
-                         "  return H();"
-                         "}",
-                         matcher, LanguageMode::Cxx11OrLater));
-}
-
-TEST(Matcher, IgnoreElidableConstructorDoesNotMatchConstructors) {
-  EXPECT_TRUE(matches("struct H {};"
-                      "void f() {"
-                      "  H D;"
-                      "}",
-                      varDecl(hasInitializer(
-                          ignoringElidableConstructorCall(cxxConstructExpr()))),
-                      LanguageMode::Cxx11OrLater));
-}
-
-TEST(Matcher, IgnoresElidableDoesNotPreventMatches) {
-  EXPECT_TRUE(matches("void f() {"
-                      "  int D = 10;"
-                      "}",
-                      expr(ignoringElidableConstructorCall(integerLiteral())),
-                      LanguageMode::Cxx11OrLater));
-}
-
-TEST(Matcher, IgnoresElidableInVarInit) {
-  auto matcher =
-      varDecl(hasInitializer(ignoringElidableConstructorCall(callExpr())));
-  EXPECT_TRUE(matches("struct H {};"
-                      "H G();"
-                      "void f(H D = G()) {"
-                      "  return;"
-                      "}",
-                      matcher, LanguageMode::Cxx11OrLater));
-  EXPECT_TRUE(matches("struct H {};"
-                      "H G();"
-                      "void f() {"
-                      "  H D = G();"
-                      "}",
-                      matcher, LanguageMode::Cxx11OrLater));
-}
-
 TEST(Matcher, BindTheSameNameInAlternatives) {
   StatementMatcher matcher = anyOf(
     binaryOperator(hasOperatorName("+"),
index 7c17a9b85a867cda3c1185a2f63298a032b3748c..495fd1fa2f883b8b70983b8bf8491d13103ea5ba 100644 (file)
@@ -1461,6 +1461,91 @@ TEST(HasImplicitDestinationType, DoesNotMatchIncorrectly) {
                            unless(anything())))));
 }
 
+TEST(Matcher, IgnoresElidableConstructors) {
+  EXPECT_TRUE(
+      matches("struct H {};"
+              "template<typename T> H B(T A);"
+              "void f() {"
+              "  H D1;"
+              "  D1 = B(B(1));"
+              "}",
+              cxxOperatorCallExpr(hasArgument(
+                  1, callExpr(hasArgument(
+                         0, ignoringElidableConstructorCall(callExpr()))))),
+              LanguageMode::Cxx11OrLater));
+  EXPECT_TRUE(
+      matches("struct H {};"
+              "template<typename T> H B(T A);"
+              "void f() {"
+              "  H D1;"
+              "  D1 = B(1);"
+              "}",
+              cxxOperatorCallExpr(hasArgument(
+                  1, callExpr(hasArgument(0, ignoringElidableConstructorCall(
+                                                 integerLiteral()))))),
+              LanguageMode::Cxx11OrLater));
+  EXPECT_TRUE(matches(
+      "struct H {};"
+      "H G();"
+      "void f() {"
+      "  H D = G();"
+      "}",
+      varDecl(hasInitializer(anyOf(
+          ignoringElidableConstructorCall(callExpr()),
+          exprWithCleanups(has(ignoringElidableConstructorCall(callExpr())))))),
+      LanguageMode::Cxx11OrLater));
+}
+
+TEST(Matcher, IgnoresElidableInReturn) {
+  auto matcher = expr(ignoringElidableConstructorCall(declRefExpr()));
+  EXPECT_TRUE(matches("struct H {};"
+                      "H f() {"
+                      "  H g;"
+                      "  return g;"
+                      "}",
+                      matcher, LanguageMode::Cxx11OrLater));
+  EXPECT_TRUE(notMatches("struct H {};"
+                         "H f() {"
+                         "  return H();"
+                         "}",
+                         matcher, LanguageMode::Cxx11OrLater));
+}
+
+TEST(Matcher, IgnoreElidableConstructorDoesNotMatchConstructors) {
+  EXPECT_TRUE(matches("struct H {};"
+                      "void f() {"
+                      "  H D;"
+                      "}",
+                      varDecl(hasInitializer(
+                          ignoringElidableConstructorCall(cxxConstructExpr()))),
+                      LanguageMode::Cxx11OrLater));
+}
+
+TEST(Matcher, IgnoresElidableDoesNotPreventMatches) {
+  EXPECT_TRUE(matches("void f() {"
+                      "  int D = 10;"
+                      "}",
+                      expr(ignoringElidableConstructorCall(integerLiteral())),
+                      LanguageMode::Cxx11OrLater));
+}
+
+TEST(Matcher, IgnoresElidableInVarInit) {
+  auto matcher =
+      varDecl(hasInitializer(ignoringElidableConstructorCall(callExpr())));
+  EXPECT_TRUE(matches("struct H {};"
+                      "H G();"
+                      "void f(H D = G()) {"
+                      "  return;"
+                      "}",
+                      matcher, LanguageMode::Cxx11OrLater));
+  EXPECT_TRUE(matches("struct H {};"
+                      "H G();"
+                      "void f() {"
+                      "  H D = G();"
+                      "}",
+                      matcher, LanguageMode::Cxx11OrLater));
+}
+
 TEST(IgnoringImplicit, MatchesImplicit) {
   EXPECT_TRUE(matches("class C {}; C a = C();",
                       varDecl(has(ignoringImplicit(cxxConstructExpr())))));