[libcxx-commits] [libcxx] ef2cdfe - [libc++][NFC] Remove uses of 'using namespace std; ' in the test suite

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Fri Sep 3 10:15:19 PDT 2021


Author: Louis Dionne
Date: 2021-09-03T13:15:10-04:00
New Revision: ef2cdfe393d01cd4935c806387ac912b5a2c8ced

URL: https://github.com/llvm/llvm-project/commit/ef2cdfe393d01cd4935c806387ac912b5a2c8ced
DIFF: https://github.com/llvm/llvm-project/commit/ef2cdfe393d01cd4935c806387ac912b5a2c8ced.diff

LOG: [libc++][NFC] Remove uses of 'using namespace std;' in the test suite

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

Added: 
    libcxx/test/std/strings/basic.string.literals/literal.verify.cpp
    libcxx/test/std/strings/string.view/string_view.literals/literal.verify.cpp

Modified: 
    libcxx/test/libcxx/numerics/c.math/fdelayed-template-parsing.pass.cpp
    libcxx/test/std/containers/associative/map/map.access/index_tuple.pass.cpp
    libcxx/test/std/containers/unord/unord.map/unord.map.elem/index_tuple.pass.cpp
    libcxx/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp
    libcxx/test/std/numerics/complex.number/complex.literals/literals2.pass.cpp
    libcxx/test/std/re/re.const/re.matchflag/match_prev_avail.pass.cpp
    libcxx/test/std/strings/basic.string.literals/literal.pass.cpp
    libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp
    libcxx/test/std/utilities/meta/meta.unary/meta.unary.cat/function.pass.cpp
    libcxx/test/support/any_helpers.h

Removed: 
    libcxx/test/std/strings/basic.string.literals/literal1.compile.fail.cpp
    libcxx/test/std/strings/basic.string.literals/literal1.pass.cpp
    libcxx/test/std/strings/basic.string.literals/literal2.compile.fail.cpp
    libcxx/test/std/strings/basic.string.literals/literal2.pass.cpp
    libcxx/test/std/strings/basic.string.literals/literal3.pass.cpp
    libcxx/test/std/strings/string.view/string_view.literals/literal1.compile.fail.cpp
    libcxx/test/std/strings/string.view/string_view.literals/literal1.pass.cpp
    libcxx/test/std/strings/string.view/string_view.literals/literal2.compile.fail.cpp
    libcxx/test/std/strings/string.view/string_view.literals/literal2.pass.cpp
    libcxx/test/std/strings/string.view/string_view.literals/literal3.pass.cpp


################################################################################
diff  --git a/libcxx/test/libcxx/numerics/c.math/fdelayed-template-parsing.pass.cpp b/libcxx/test/libcxx/numerics/c.math/fdelayed-template-parsing.pass.cpp
index 8cebf75e458e4..a366e8ea40d6b 100644
--- a/libcxx/test/libcxx/numerics/c.math/fdelayed-template-parsing.pass.cpp
+++ b/libcxx/test/libcxx/numerics/c.math/fdelayed-template-parsing.pass.cpp
@@ -6,7 +6,10 @@
 //
 //===----------------------------------------------------------------------===//
 
-// test that cmath builds with -fdelayed-template-parsing
+// Test that cmath builds with -fdelayed-template-parsing.
+// This is a regression test for an issue introduced in ae22f0b24231,
+// where Clang's limited support for -fdelayed-template-parsing would
+// choke on <cmath>.
 
 // REQUIRES: fdelayed-template-parsing
 // ADDITIONAL_COMPILE_FLAGS: -fdelayed-template-parsing
@@ -14,8 +17,6 @@
 #include <cmath>
 #include <cassert>
 
-#include "test_macros.h"
-
 int main(int, char**) {
   assert(std::isfinite(1.0));
   assert(!std::isinf(1.0));
@@ -24,4 +25,4 @@ int main(int, char**) {
   return 0;
 }
 
-using namespace std;
+using namespace std; // on purpose

diff  --git a/libcxx/test/std/containers/associative/map/map.access/index_tuple.pass.cpp b/libcxx/test/std/containers/associative/map/map.access/index_tuple.pass.cpp
index 4a31a748f0c79..cf75e1ebb570f 100644
--- a/libcxx/test/std/containers/associative/map/map.access/index_tuple.pass.cpp
+++ b/libcxx/test/std/containers/associative/map/map.access/index_tuple.pass.cpp
@@ -17,18 +17,11 @@
 // https://llvm.org/PR16542
 
 #include <map>
-
-
 #include <tuple>
 
-#include "test_macros.h"
-
-
-int main(int, char**)
-{
-    using namespace std;
-    map<tuple<int,int>, size_t> m;
-    m[make_tuple(2,3)]=7;
+int main(int, char**) {
+    std::map<std::tuple<int, int>, std::size_t> m;
+    m[std::make_tuple(2, 3)] = 7;
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/containers/unord/unord.map/unord.map.elem/index_tuple.pass.cpp b/libcxx/test/std/containers/unord/unord.map/unord.map.elem/index_tuple.pass.cpp
index 5b504a66fec46..78b5fbd36fe39 100644
--- a/libcxx/test/std/containers/unord/unord.map/unord.map.elem/index_tuple.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.map/unord.map.elem/index_tuple.pass.cpp
@@ -18,22 +18,17 @@
 
 // https://llvm.org/PR16542
 
-#include <unordered_map>
+#include <cstddef>
 #include <tuple>
+#include <unordered_map>
 
-#include "test_macros.h"
-
-using namespace std;
-
-struct my_hash
-{
-    size_t operator()(const tuple<int,int>&) const {return 0;}
+struct my_hash {
+    std::size_t operator()(const std::tuple<int, int>&) const { return 0; }
 };
 
-int main(int, char**)
-{
-    unordered_map<tuple<int,int>, size_t, my_hash> m;
-    m[make_tuple(2,3)]=7;
+int main(int, char**) {
+    std::unordered_map<std::tuple<int, int>, std::size_t, my_hash> m;
+    m[std::make_tuple(2, 3)] = 7;
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp b/libcxx/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp
index 4e175ba0cf3cf..817742a568701 100644
--- a/libcxx/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp
+++ b/libcxx/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp
@@ -20,27 +20,41 @@
 #include "count_new.h"
 #include "filesystem_test_helper.h"
 
-
 // NOTE: this is tested in path.members/path.modifiers via the member swap.
 int main(int, char**)
 {
   using namespace fs;
   const char* value1 = "foo/bar/baz";
   const char* value2 = "_THIS_IS_LONG_THIS_IS_LONG_THIS_IS_LONG_THIS_IS_LONG_THIS_IS_LONG_THIS_IS_LONG_THIS_IS_LONG";
-  path p1(value1);
-  path p2(value2);
-  fs::path::string_type ps1 = p1.native();
-  fs::path::string_type ps2 = p2.native();
   {
-    using namespace std; using namespace fs;
+    path p1(value1);
+    path p2(value2);
+    fs::path::string_type ps1 = p1.native();
+    fs::path::string_type ps2 = p2.native();
+
+    DisableAllocationGuard g;
+    swap(p1, p2);
     ASSERT_NOEXCEPT(swap(p1, p2));
     ASSERT_SAME_TYPE(void, decltype(swap(p1, p2)));
+    assert(p1.native() == ps2);
+    assert(p2.native() == ps1);
+    swap(p1, p2);
+    assert(p1.native() == ps1);
+    assert(p2.native() == ps2);
   }
+
+  // Test the swap two-step idiom
   {
+    path p1(value1);
+    path p2(value2);
+    fs::path::string_type ps1 = p1.native();
+    fs::path::string_type ps2 = p2.native();
+
     DisableAllocationGuard g;
     using namespace std;
-    using namespace fs;
     swap(p1, p2);
+    ASSERT_NOEXCEPT(swap(p1, p2));
+    ASSERT_SAME_TYPE(void, decltype(swap(p1, p2)));
     assert(p1.native() == ps2);
     assert(p2.native() == ps1);
     swap(p1, p2);

diff  --git a/libcxx/test/std/numerics/complex.number/complex.literals/literals2.pass.cpp b/libcxx/test/std/numerics/complex.number/complex.literals/literals2.pass.cpp
index 00590ff3f04cb..59a13786e8e52 100644
--- a/libcxx/test/std/numerics/complex.number/complex.literals/literals2.pass.cpp
+++ b/libcxx/test/std/numerics/complex.number/complex.literals/literals2.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11
-// <chrono>
+// <complex>
 
 #include <complex>
 #include <type_traits>

diff  --git a/libcxx/test/std/re/re.const/re.matchflag/match_prev_avail.pass.cpp b/libcxx/test/std/re/re.const/re.matchflag/match_prev_avail.pass.cpp
index 00aebe0265dbe..508b8dd43be95 100644
--- a/libcxx/test/std/re/re.const/re.matchflag/match_prev_avail.pass.cpp
+++ b/libcxx/test/std/re/re.const/re.matchflag/match_prev_avail.pass.cpp
@@ -13,70 +13,72 @@
 //     match_not_bol and match_not_bow shall be ignored by the regular
 //     expression algorithms (30.11) and iterators (30.12)
 
-#include <cassert>
 #include <regex>
-using namespace std;
+
+#include <cassert>
+#include <string>
 
 int main(int, char**) {
   char str1[] = "\na";
   auto str1_scnd = str1 + 1;
+
   // Assert that match_prev_avail disables match_not_bol and this matches
-  assert(regex_match(str1 + 1, str1 + 2, regex("^a"),
-                     regex_constants::match_not_bol |
-                         regex_constants::match_prev_avail));
+  assert(std::regex_match(str1 + 1, str1 + 2, std::regex("^a"),
+                     std::regex_constants::match_not_bol |
+                         std::regex_constants::match_prev_avail));
   // Manually passing match_prev_avail defines that --str1 is a valid position
-  assert(regex_match(str1_scnd, regex("a"),
-                     regex_constants::match_not_bol |
-                         regex_constants::match_prev_avail));
+  assert(std::regex_match(str1_scnd, std::regex("a"),
+                     std::regex_constants::match_not_bol |
+                         std::regex_constants::match_prev_avail));
 
   //Assert that match_prev_avail disables match_not_bow and this matches
-  assert(regex_search(str1, regex("\\ba")));
-  assert(regex_match(str1 + 1, str1 + 2, regex("\\ba\\b"),
-                     regex_constants::match_not_bow |
-                         regex_constants::match_prev_avail));
-  assert(regex_search(str1_scnd, regex("\\ba"),
-                      regex_constants::match_not_bow |
-                          regex_constants::match_prev_avail));
+  assert(std::regex_search(str1, std::regex("\\ba")));
+  assert(std::regex_match(str1 + 1, str1 + 2, std::regex("\\ba\\b"),
+                     std::regex_constants::match_not_bow |
+                         std::regex_constants::match_prev_avail));
+  assert(std::regex_search(str1_scnd, std::regex("\\ba"),
+                      std::regex_constants::match_not_bow |
+                          std::regex_constants::match_prev_avail));
 
   //Assert that match_prev_avail disables both match_not_bow and match_not_bol
-  assert(regex_match(str1 + 1, str1 + 2, regex("^a"),
-                     regex_constants::match_not_bol |
-                         regex_constants::match_not_bow |
-                         regex_constants::match_prev_avail));
-  assert(regex_match(str1_scnd, regex("\\ba"),
-                     regex_constants::match_not_bol |
-                         regex_constants::match_not_bow |
-                         regex_constants::match_prev_avail));
+  assert(std::regex_match(str1 + 1, str1 + 2, std::regex("^a"),
+                     std::regex_constants::match_not_bol |
+                         std::regex_constants::match_not_bow |
+                         std::regex_constants::match_prev_avail));
+  assert(std::regex_match(str1_scnd, std::regex("\\ba"),
+                     std::regex_constants::match_not_bol |
+                         std::regex_constants::match_not_bow |
+                         std::regex_constants::match_prev_avail));
 
   // pr 42199
-  string S = " cd";
-  string::iterator Start = S.begin() + 1;
-  string::iterator End = S.end();
-  assert(regex_search(Start, End, regex("^cd")));
+  std::string S = " cd";
+  std::string::iterator Start = S.begin() + 1;
+  std::string::iterator End = S.end();
+  assert(std::regex_search(Start, End, std::regex("^cd")));
 
-  assert(
-      !regex_search(Start, End, regex("^cd"), regex_constants::match_not_bol));
-  assert(!regex_search(Start, End, regex(".*\\bcd\\b"),
-                       regex_constants::match_not_bow));
-  assert(!regex_search(Start, End, regex("^cd"),
-                       regex_constants::match_not_bol |
-                           regex_constants::match_not_bow));
-  assert(!regex_search(Start, End, regex(".*\\bcd\\b"),
-                       regex_constants::match_not_bol |
-                           regex_constants::match_not_bow));
+  assert(!std::regex_search(Start, End, std::regex("^cd"),
+            std::regex_constants::match_not_bol));
+  assert(!std::regex_search(Start, End, std::regex(".*\\bcd\\b"),
+            std::regex_constants::match_not_bow));
+  assert(!std::regex_search(Start, End, std::regex("^cd"),
+            std::regex_constants::match_not_bol |
+            std::regex_constants::match_not_bow));
+  assert(!std::regex_search(Start, End, std::regex(".*\\bcd\\b"),
+            std::regex_constants::match_not_bol |
+            std::regex_constants::match_not_bow));
 
-  assert(regex_search(Start, End, regex("^cd"),
-                      regex_constants::match_prev_avail));
+  assert(std::regex_search(Start, End, std::regex("^cd"),
+            std::regex_constants::match_prev_avail));
 
-  assert(regex_search(Start, End, regex("^cd"),
-                      regex_constants::match_not_bol |
-                          regex_constants::match_prev_avail));
-  assert(regex_search(Start, End, regex("^cd"),
-                      regex_constants::match_not_bow |
-                          regex_constants::match_prev_avail));
-  assert(regex_match(Start, End, regex("\\bcd\\b"),
-                     regex_constants::match_not_bol |
-                         regex_constants::match_not_bow |
-                         regex_constants::match_prev_avail));
+  assert(std::regex_search(Start, End, std::regex("^cd"),
+            std::regex_constants::match_not_bol |
+            std::regex_constants::match_prev_avail));
+  assert(std::regex_search(Start, End, std::regex("^cd"),
+            std::regex_constants::match_not_bow |
+            std::regex_constants::match_prev_avail));
+  assert(std::regex_match(Start, End, std::regex("\\bcd\\b"),
+            std::regex_constants::match_not_bol |
+            std::regex_constants::match_not_bow |
+            std::regex_constants::match_prev_avail));
   return 0;
 }

diff  --git a/libcxx/test/std/strings/basic.string.literals/literal.pass.cpp b/libcxx/test/std/strings/basic.string.literals/literal.pass.cpp
index 0e3e49ba1dd48..bc21ff1fd2afc 100644
--- a/libcxx/test/std/strings/basic.string.literals/literal.pass.cpp
+++ b/libcxx/test/std/strings/basic.string.literals/literal.pass.cpp
@@ -20,40 +20,50 @@
     typedef std::string   u8string;
 #endif
 
+int main(int, char**) {
+    {
+        using namespace std::literals::string_literals;
 
-int main(int, char**)
-{
-    using namespace std::literals::string_literals;
-
-    static_assert ( std::is_same<decltype(   "Hi"s), std::string>::value, "" );
-    static_assert ( std::is_same<decltype( u8"Hi"s), u8string>::value, "" );
-    static_assert ( std::is_same<decltype(  L"Hi"s), std::wstring>::value, "" );
-    static_assert ( std::is_same<decltype(  u"Hi"s), std::u16string>::value, "" );
-    static_assert ( std::is_same<decltype(  U"Hi"s), std::u32string>::value, "" );
-
-    std::string foo;
-    std::wstring Lfoo;
-    u8string u8foo;
-    std::u16string ufoo;
-    std::u32string Ufoo;
-
-    foo   =   ""s;     assert(  foo.size() == 0);
-    u8foo = u8""s;     assert(u8foo.size() == 0);
-    Lfoo  =  L""s;     assert( Lfoo.size() == 0);
-    ufoo  =  u""s;     assert( ufoo.size() == 0);
-    Ufoo  =  U""s;     assert( Ufoo.size() == 0);
-
-    foo   =   " "s;    assert(  foo.size() == 1);
-    u8foo = u8" "s;    assert(u8foo.size() == 1);
-    Lfoo  =  L" "s;    assert( Lfoo.size() == 1);
-    ufoo  =  u" "s;    assert( ufoo.size() == 1);
-    Ufoo  =  U" "s;    assert( Ufoo.size() == 1);
-
-    foo   =   "ABC"s;     assert(  foo ==   "ABC");   assert(  foo == std::string   (  "ABC"));
-    u8foo = u8"ABC"s;     assert(u8foo == u8"ABC");   assert(u8foo == u8string      (u8"ABC"));
-    Lfoo  =  L"ABC"s;     assert( Lfoo ==  L"ABC");   assert( Lfoo == std::wstring  ( L"ABC"));
-    ufoo  =  u"ABC"s;     assert( ufoo ==  u"ABC");   assert( ufoo == std::u16string( u"ABC"));
-    Ufoo  =  U"ABC"s;     assert( Ufoo ==  U"ABC");   assert( Ufoo == std::u32string( U"ABC"));
-
-  return 0;
+        ASSERT_SAME_TYPE(decltype(  "Hi"s), std::string);
+        ASSERT_SAME_TYPE(decltype(u8"Hi"s), u8string);
+        ASSERT_SAME_TYPE(decltype( L"Hi"s), std::wstring);
+        ASSERT_SAME_TYPE(decltype( u"Hi"s), std::u16string);
+        ASSERT_SAME_TYPE(decltype( U"Hi"s), std::u32string);
+
+        std::string foo;
+        std::wstring Lfoo;
+        u8string u8foo;
+        std::u16string ufoo;
+        std::u32string Ufoo;
+
+        foo   =   ""s;     assert(  foo.size() == 0);
+        u8foo = u8""s;     assert(u8foo.size() == 0);
+        Lfoo  =  L""s;     assert( Lfoo.size() == 0);
+        ufoo  =  u""s;     assert( ufoo.size() == 0);
+        Ufoo  =  U""s;     assert( Ufoo.size() == 0);
+
+        foo   =   " "s;    assert(  foo.size() == 1);
+        u8foo = u8" "s;    assert(u8foo.size() == 1);
+        Lfoo  =  L" "s;    assert( Lfoo.size() == 1);
+        ufoo  =  u" "s;    assert( ufoo.size() == 1);
+        Ufoo  =  U" "s;    assert( Ufoo.size() == 1);
+
+        foo   =   "ABC"s;     assert(  foo ==   "ABC");   assert(  foo == std::string   (  "ABC"));
+        u8foo = u8"ABC"s;     assert(u8foo == u8"ABC");   assert(u8foo == u8string      (u8"ABC"));
+        Lfoo  =  L"ABC"s;     assert( Lfoo ==  L"ABC");   assert( Lfoo == std::wstring  ( L"ABC"));
+        ufoo  =  u"ABC"s;     assert( ufoo ==  u"ABC");   assert( ufoo == std::u16string( u"ABC"));
+        Ufoo  =  U"ABC"s;     assert( Ufoo ==  U"ABC");   assert( Ufoo == std::u32string( U"ABC"));
+    }
+    {
+        using namespace std::literals;
+        std::string foo = ""s;
+        assert(foo == std::string());
+    }
+    {
+        using namespace std;
+        std::string foo = ""s;
+        assert(foo == std::string());
+    }
+
+    return 0;
 }

diff  --git a/libcxx/test/std/strings/basic.string.literals/literal1.compile.fail.cpp b/libcxx/test/std/strings/basic.string.literals/literal.verify.cpp
similarity index 72%
rename from libcxx/test/std/strings/basic.string.literals/literal1.compile.fail.cpp
rename to libcxx/test/std/strings/basic.string.literals/literal.verify.cpp
index e51164142866a..64dd7d09c049b 100644
--- a/libcxx/test/std/strings/basic.string.literals/literal1.compile.fail.cpp
+++ b/libcxx/test/std/strings/basic.string.literals/literal.verify.cpp
@@ -10,13 +10,13 @@
 // UNSUPPORTED: c++03, c++11
 
 #include <string>
-#include <cassert>
 
-int main(int, char**)
-{
+void f() {
+  {
     using std::string;
-
-    string foo  =   ""s;  // should fail w/conversion operator not found
-
-  return 0;
+    string foo = ""s; // expected-error {{no matching literal operator}}
+  }
+  {
+    std::string foo = ""s; // expected-error {{no matching literal operator}}
+  }
 }

diff  --git a/libcxx/test/std/strings/basic.string.literals/literal1.pass.cpp b/libcxx/test/std/strings/basic.string.literals/literal1.pass.cpp
deleted file mode 100644
index 37e8d9d8ff508..0000000000000
--- a/libcxx/test/std/strings/basic.string.literals/literal1.pass.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++03, c++11
-
-#include <string>
-#include <cassert>
-
-#include "test_macros.h"
-
-int main(int, char**)
-{
-    using namespace std::literals;
-
-    std::string foo  =   ""s;
-
-  return 0;
-}

diff  --git a/libcxx/test/std/strings/basic.string.literals/literal2.compile.fail.cpp b/libcxx/test/std/strings/basic.string.literals/literal2.compile.fail.cpp
deleted file mode 100644
index 3ab9696115d89..0000000000000
--- a/libcxx/test/std/strings/basic.string.literals/literal2.compile.fail.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++03, c++11
-
-#include <string>
-#include <cassert>
-
-int main(int, char**)
-{
-    std::string foo  =   ""s;  // should fail w/conversion operator not found
-
-  return 0;
-}

diff  --git a/libcxx/test/std/strings/basic.string.literals/literal2.pass.cpp b/libcxx/test/std/strings/basic.string.literals/literal2.pass.cpp
deleted file mode 100644
index 6309d71fe55b4..0000000000000
--- a/libcxx/test/std/strings/basic.string.literals/literal2.pass.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++03, c++11
-
-#include <string>
-#include <cassert>
-
-#include "test_macros.h"
-
-int main(int, char**)
-{
-    using namespace std::literals::string_literals;
-
-    std::string foo  =   ""s;
-
-  return 0;
-}

diff  --git a/libcxx/test/std/strings/basic.string.literals/literal3.pass.cpp b/libcxx/test/std/strings/basic.string.literals/literal3.pass.cpp
deleted file mode 100644
index 614e76afe249b..0000000000000
--- a/libcxx/test/std/strings/basic.string.literals/literal3.pass.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++03, c++11
-
-#include <string>
-#include <cassert>
-
-#include "test_macros.h"
-
-int main(int, char**)
-{
-    using namespace std;
-
-    string foo  =   ""s;
-
-  return 0;
-}

diff  --git a/libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp b/libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp
index 114cf9a600f98..5e0beb4812866 100644
--- a/libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp
@@ -22,52 +22,62 @@
     typedef std::string_view   u8string_view;
 #endif
 
-int main(int, char**)
-{
-    using namespace std::literals::string_view_literals;
+int main(int, char**) {
+    {
+        using namespace std::literals::string_view_literals;
 
-    static_assert ( std::is_same<decltype(   "Hi"sv), std::string_view>::value, "" );
-    static_assert ( std::is_same<decltype( u8"Hi"sv), u8string_view>::value, "" );
-    static_assert ( std::is_same<decltype(  L"Hi"sv), std::wstring_view>::value, "" );
-    static_assert ( std::is_same<decltype(  u"Hi"sv), std::u16string_view>::value, "" );
-    static_assert ( std::is_same<decltype(  U"Hi"sv), std::u32string_view>::value, "" );
+        ASSERT_SAME_TYPE(decltype(  "Hi"sv), std::string_view);
+        ASSERT_SAME_TYPE(decltype(u8"Hi"sv), u8string_view);
+        ASSERT_SAME_TYPE(decltype( L"Hi"sv), std::wstring_view);
+        ASSERT_SAME_TYPE(decltype( u"Hi"sv), std::u16string_view);
+        ASSERT_SAME_TYPE(decltype( U"Hi"sv), std::u32string_view);
 
-    std::string_view foo;
-    std::wstring_view Lfoo;
-    u8string_view u8foo;
-    std::u16string_view ufoo;
-    std::u32string_view Ufoo;
+        std::string_view foo;
+        std::wstring_view Lfoo;
+        u8string_view u8foo;
+        std::u16string_view ufoo;
+        std::u32string_view Ufoo;
 
+        foo  =    ""sv;     assert(  foo.size() == 0);
+        u8foo = u8""sv;     assert(u8foo.size() == 0);
+        Lfoo  =  L""sv;     assert( Lfoo.size() == 0);
+        ufoo  =  u""sv;     assert( ufoo.size() == 0);
+        Ufoo  =  U""sv;     assert( Ufoo.size() == 0);
 
-    foo  =    ""sv;     assert(  foo.size() == 0);
-    u8foo = u8""sv;     assert(u8foo.size() == 0);
-    Lfoo  =  L""sv;     assert( Lfoo.size() == 0);
-    ufoo  =  u""sv;     assert( ufoo.size() == 0);
-    Ufoo  =  U""sv;     assert( Ufoo.size() == 0);
+        foo   =   " "sv;    assert(  foo.size() == 1);
+        u8foo = u8" "sv;    assert(u8foo.size() == 1);
+        Lfoo  =  L" "sv;    assert( Lfoo.size() == 1);
+        ufoo  =  u" "sv;    assert( ufoo.size() == 1);
+        Ufoo  =  U" "sv;    assert( Ufoo.size() == 1);
 
-    foo   =   " "sv;    assert(  foo.size() == 1);
-    u8foo = u8" "sv;    assert(u8foo.size() == 1);
-    Lfoo  =  L" "sv;    assert( Lfoo.size() == 1);
-    ufoo  =  u" "sv;    assert( ufoo.size() == 1);
-    Ufoo  =  U" "sv;    assert( Ufoo.size() == 1);
+        foo   =   "ABC"sv;  assert(  foo ==   "ABC");   assert(  foo == std::string_view   (  "ABC"));
+        u8foo = u8"ABC"sv;  assert(u8foo == u8"ABC");   assert(u8foo == u8string_view      (u8"ABC"));
+        Lfoo  =  L"ABC"sv;  assert( Lfoo ==  L"ABC");   assert( Lfoo == std::wstring_view  ( L"ABC"));
+        ufoo  =  u"ABC"sv;  assert( ufoo ==  u"ABC");   assert( ufoo == std::u16string_view( u"ABC"));
+        Ufoo  =  U"ABC"sv;  assert( Ufoo ==  U"ABC");   assert( Ufoo == std::u32string_view( U"ABC"));
 
-    foo   =   "ABC"sv;  assert(  foo ==   "ABC");   assert(  foo == std::string_view   (  "ABC"));
-    u8foo = u8"ABC"sv;  assert(u8foo == u8"ABC");   assert(u8foo == u8string_view      (u8"ABC"));
-    Lfoo  =  L"ABC"sv;  assert( Lfoo ==  L"ABC");   assert( Lfoo == std::wstring_view  ( L"ABC"));
-    ufoo  =  u"ABC"sv;  assert( ufoo ==  u"ABC");   assert( ufoo == std::u16string_view( u"ABC"));
-    Ufoo  =  U"ABC"sv;  assert( Ufoo ==  U"ABC");   assert( Ufoo == std::u32string_view( U"ABC"));
+        static_assert(  "ABC"sv.size() == 3, "");
+        static_assert(u8"ABC"sv.size() == 3, "");
+        static_assert( L"ABC"sv.size() == 3, "");
+        static_assert( u"ABC"sv.size() == 3, "");
+        static_assert( U"ABC"sv.size() == 3, "");
 
-    static_assert(  "ABC"sv.size() == 3, "");
-    static_assert(u8"ABC"sv.size() == 3, "");
-    static_assert( L"ABC"sv.size() == 3, "");
-    static_assert( u"ABC"sv.size() == 3, "");
-    static_assert( U"ABC"sv.size() == 3, "");
+        ASSERT_NOEXCEPT(  "ABC"sv);
+        ASSERT_NOEXCEPT(u8"ABC"sv);
+        ASSERT_NOEXCEPT( L"ABC"sv);
+        ASSERT_NOEXCEPT( u"ABC"sv);
+        ASSERT_NOEXCEPT( U"ABC"sv);
+    }
+    {
+        using namespace std::literals;
+        std::string_view foo = ""sv;
+        assert(foo.length() == 0);
+    }
+    {
+        using namespace std;
+        std::string_view foo = ""sv;
+        assert(foo.length() == 0);
+    }
 
-    static_assert(noexcept(  "ABC"sv), "");
-    static_assert(noexcept(u8"ABC"sv), "");
-    static_assert(noexcept( L"ABC"sv), "");
-    static_assert(noexcept( u"ABC"sv), "");
-    static_assert(noexcept( U"ABC"sv), "");
-
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/strings/string.view/string_view.literals/literal1.compile.fail.cpp b/libcxx/test/std/strings/string.view/string_view.literals/literal.verify.cpp
similarity index 71%
rename from libcxx/test/std/strings/string.view/string_view.literals/literal1.compile.fail.cpp
rename to libcxx/test/std/strings/string.view/string_view.literals/literal.verify.cpp
index 9e8d7c9434dec..b286ed5b5bef2 100644
--- a/libcxx/test/std/strings/string.view/string_view.literals/literal1.compile.fail.cpp
+++ b/libcxx/test/std/strings/string.view/string_view.literals/literal.verify.cpp
@@ -10,13 +10,13 @@
 // UNSUPPORTED: c++03, c++11
 
 #include <string_view>
-#include <cassert>
 
-int main(int, char**)
-{
+void f() {
+  {
     using std::string_view;
-
-    string_view foo  =   ""sv;  // should fail w/conversion operator not found
-
-  return 0;
+    string_view foo = ""sv; // expected-error {{no matching literal operator}}
+  }
+  {
+    std::string_view foo = ""sv; // expected-error {{no matching literal operator}}
+  }
 }

diff  --git a/libcxx/test/std/strings/string.view/string_view.literals/literal1.pass.cpp b/libcxx/test/std/strings/string.view/string_view.literals/literal1.pass.cpp
deleted file mode 100644
index 6aa059c8da144..0000000000000
--- a/libcxx/test/std/strings/string.view/string_view.literals/literal1.pass.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++03, c++11
-
-// Note: libc++ supports string_view before C++17, but literals were introduced in C++14
-
-#include <string_view>
-#include <cassert>
-
-#include "test_macros.h"
-
-int main(int, char**)
-{
-    using namespace std::literals;
-
-    std::string_view foo  =   ""sv;
-    assert(foo.length() == 0);
-
-  return 0;
-}

diff  --git a/libcxx/test/std/strings/string.view/string_view.literals/literal2.compile.fail.cpp b/libcxx/test/std/strings/string.view/string_view.literals/literal2.compile.fail.cpp
deleted file mode 100644
index 821ffc43f7bfd..0000000000000
--- a/libcxx/test/std/strings/string.view/string_view.literals/literal2.compile.fail.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++03, c++11
-
-#include <string_view>
-#include <cassert>
-
-int main(int, char**)
-{
-    std::string_view foo  =   ""sv;  // should fail w/conversion operator not found
-
-  return 0;
-}

diff  --git a/libcxx/test/std/strings/string.view/string_view.literals/literal2.pass.cpp b/libcxx/test/std/strings/string.view/string_view.literals/literal2.pass.cpp
deleted file mode 100644
index 0da751e72c355..0000000000000
--- a/libcxx/test/std/strings/string.view/string_view.literals/literal2.pass.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++03, c++11
-
-// Note: libc++ supports string_view before C++17, but literals were introduced in C++14
-
-#include <string_view>
-#include <cassert>
-
-#include "test_macros.h"
-
-int main(int, char**)
-{
-    using namespace std::literals::string_view_literals;
-
-    std::string_view foo  =   ""sv;
-    assert(foo.length() == 0);
-
-  return 0;
-}

diff  --git a/libcxx/test/std/strings/string.view/string_view.literals/literal3.pass.cpp b/libcxx/test/std/strings/string.view/string_view.literals/literal3.pass.cpp
deleted file mode 100644
index d715ffe581616..0000000000000
--- a/libcxx/test/std/strings/string.view/string_view.literals/literal3.pass.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++03, c++11
-
-// Note: libc++ supports string_view before C++17, but literals were introduced in C++14
-
-#include <string_view>
-#include <cassert>
-
-#include "test_macros.h"
-
-int main(int, char**)
-{
-    using namespace std;
-
-    string_view foo  =   ""sv;
-    assert(foo.length() == 0);
-
-  return 0;
-}

diff  --git a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.cat/function.pass.cpp b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.cat/function.pass.cpp
index d7453be469cc8..1fc79cf7c3f5f 100644
--- a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.cat/function.pass.cpp
+++ b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.cat/function.pass.cpp
@@ -13,8 +13,6 @@
 #include <type_traits>
 #include "test_macros.h"
 
-using namespace std;
-
 class Class {};
 
 enum Enum1 {};

diff  --git a/libcxx/test/support/any_helpers.h b/libcxx/test/support/any_helpers.h
index 6bdc3fd4336e7..7fc5f93cad274 100644
--- a/libcxx/test/support/any_helpers.h
+++ b/libcxx/test/support/any_helpers.h
@@ -52,10 +52,9 @@ bool isSmallType() {
 // of type 'LastType' check that it can no longer be accessed.
 template <class LastType = int>
 void assertEmpty(std::any const& a) {
-    using namespace std;
     assert(!a.has_value());
     RTTI_ASSERT(a.type() == typeid(void));
-    assert(any_cast<LastType const>(&a) == nullptr);
+    assert(std::any_cast<LastType const>(&a) == nullptr);
 }
 
 template <class Type>
@@ -89,11 +88,9 @@ assertContains(std::any const& a, Value value) {
 template <class Type>
 _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST
 void modifyValue(std::any& a, int value) {
-    using namespace std;
-    using namespace std::experimental;
     assert(a.has_value());
     assert(containsType<Type>(a));
-    any_cast<Type&>(a).value = value;
+    std::any_cast<Type&>(a).value = value;
 }
 
 // A test type that will trigger the small object optimization within 'any'.
@@ -422,11 +419,9 @@ static_assert(!IsSmallObject<large_tracked_t>::value, "must not be small");
 
 template <class Type, class ...Args>
 void assertArgsMatch(std::any const& a) {
-    using namespace std;
-    using namespace std::experimental;
     assert(a.has_value());
     assert(containsType<Type>(a));
-    assert(any_cast<Type const &>(a).arg_types == &makeArgumentID<Args...>());
+    assert(std::any_cast<Type const &>(a).arg_types == &makeArgumentID<Args...>());
 };
 
 


        


More information about the libcxx-commits mailing list