[libcxx-commits] [libcxx] ae318be - [libc++] Post-commit review on D99928.

Arthur O'Dwyer via libcxx-commits libcxx-commits at lists.llvm.org
Tue Apr 6 12:32:08 PDT 2021


Author: Arthur O'Dwyer
Date: 2021-04-06T15:31:55-04:00
New Revision: ae318beb35517c70505114cab8d1fb286f99ab4b

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

LOG: [libc++] Post-commit review on D99928.

The "user-defined conversion by implicit constructor" codepath is already
handled by `B(int)`; we don't need to test `A(const A&)` a second time
via `DA` (nor the isomorphic case with `DB`).
We don't need `&` anywhere in this test.
Generally, `operator()` should be const; this test needn't be special.
(No functional change in test coverage.)

Added: 
    

Modified: 
    libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
    libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
index 5b15f156427c4..ffad6d6d41b3b 100644
--- a/libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
+++ b/libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
@@ -226,26 +226,14 @@ struct multiple_overloads {
   struct B { B(int); };
   struct AB : A, B {};
   struct O {};
-  struct DA : A {};
-  struct DB : B {};
-  void operator()(A) {};
-  void operator()(B) {};
+  void operator()(A) const;
+  void operator()(B) const;
 };
-static_assert(std::invocable<multiple_overloads&, multiple_overloads::A>);
-static_assert(std::invocable<multiple_overloads&, multiple_overloads::B>);
-static_assert(std::invocable<multiple_overloads&, multiple_overloads::DA>);
-static_assert(std::invocable<multiple_overloads&, multiple_overloads::DB>);
-static_assert(std::invocable<multiple_overloads&, int>);
-static_assert(!std::invocable<multiple_overloads&, multiple_overloads::AB>);
-static_assert(!std::invocable<multiple_overloads&, multiple_overloads::O>);
-
-static_assert(std::invocable<multiple_overloads&, multiple_overloads::A&>);
-static_assert(std::invocable<multiple_overloads&, multiple_overloads::B&>);
-static_assert(std::invocable<multiple_overloads&, multiple_overloads::DA&>);
-static_assert(std::invocable<multiple_overloads&, multiple_overloads::DB&>);
-static_assert(std::invocable<multiple_overloads&, int&>);
-static_assert(!std::invocable<multiple_overloads&, multiple_overloads::AB&>);
-static_assert(!std::invocable<multiple_overloads&, multiple_overloads::O&>);
+static_assert(std::invocable<multiple_overloads, multiple_overloads::A>);
+static_assert(std::invocable<multiple_overloads, multiple_overloads::B>);
+static_assert(std::invocable<multiple_overloads, int>);
+static_assert(!std::invocable<multiple_overloads, multiple_overloads::AB>);
+static_assert(!std::invocable<multiple_overloads, multiple_overloads::O>);
 } // namespace function_objects
 
 namespace pointer_to_member_functions {

diff  --git a/libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.pass.cpp
index 49111858caa87..0e0570f1c14ae 100644
--- a/libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.pass.cpp
+++ b/libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.pass.cpp
@@ -252,26 +252,14 @@ struct multiple_overloads {
   struct B { B(int); };
   struct AB : A, B {};
   struct O {};
-  struct DA : A {};
-  struct DB : B {};
-  void operator()(A) {};
-  void operator()(B) {};
+  void operator()(A) const;
+  void operator()(B) const;
 };
-static_assert(std::regular_invocable<multiple_overloads&, multiple_overloads::A>);
-static_assert(std::regular_invocable<multiple_overloads&, multiple_overloads::B>);
-static_assert(std::regular_invocable<multiple_overloads&, multiple_overloads::DA>);
-static_assert(std::regular_invocable<multiple_overloads&, multiple_overloads::DB>);
-static_assert(std::regular_invocable<multiple_overloads&, int>);
-static_assert(!std::regular_invocable<multiple_overloads&, multiple_overloads::AB>);
-static_assert(!std::regular_invocable<multiple_overloads&, multiple_overloads::O>);
-
-static_assert(std::regular_invocable<multiple_overloads&, multiple_overloads::A&>);
-static_assert(std::regular_invocable<multiple_overloads&, multiple_overloads::B&>);
-static_assert(std::regular_invocable<multiple_overloads&, multiple_overloads::DA&>);
-static_assert(std::regular_invocable<multiple_overloads&, multiple_overloads::DB&>);
-static_assert(std::regular_invocable<multiple_overloads&, int&>);
-static_assert(!std::regular_invocable<multiple_overloads&, multiple_overloads::AB&>);
-static_assert(!std::regular_invocable<multiple_overloads&, multiple_overloads::O&>);
+static_assert(std::regular_invocable<multiple_overloads, multiple_overloads::A>);
+static_assert(std::regular_invocable<multiple_overloads, multiple_overloads::B>);
+static_assert(std::regular_invocable<multiple_overloads, int>);
+static_assert(!std::regular_invocable<multiple_overloads, multiple_overloads::AB>);
+static_assert(!std::regular_invocable<multiple_overloads, multiple_overloads::O>);
 } // namespace function_objects
 
 namespace pointer_to_member_functions {


        


More information about the libcxx-commits mailing list