From 7a945d8f40cf946538ca2170a7adcf6dcd1e2509 Mon Sep 17 00:00:00 2001 From: "Ralf W. Grosse-Kunstleve" Date: Mon, 10 Jun 2024 19:05:21 -0700 Subject: [PATCH] Revert "cast.h return_value_policy_override _clif_automatic (#4364)" This reverts commit 8720cf94d69a3fce302c2e2f7abed464a9e485c6. --- include/pybind11/cast.h | 1 - tests/CMakeLists.txt | 1 - tests/test_return_value_policy_override.cpp | 82 --------------------- tests/test_return_value_policy_override.py | 13 ---- 4 files changed, 97 deletions(-) delete mode 100644 tests/test_return_value_policy_override.cpp delete mode 100644 tests/test_return_value_policy_override.py diff --git a/include/pybind11/cast.h b/include/pybind11/cast.h index a35894e90..97e73c1aa 100644 --- a/include/pybind11/cast.h +++ b/include/pybind11/cast.h @@ -1170,7 +1170,6 @@ struct return_value_policy_override< void>> { static return_value_policy policy(return_value_policy p) { return !std::is_lvalue_reference::value && !std::is_pointer::value - && p != return_value_policy::_clif_automatic ? return_value_policy::move : p; } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d8e050eca..c5458837b 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -167,7 +167,6 @@ set(PYBIND11_TEST_FILES test_pickling test_python_multiple_inheritance test_pytypes - test_return_value_policy_override test_sequences_and_iterators test_smart_ptr test_stl diff --git a/tests/test_return_value_policy_override.cpp b/tests/test_return_value_policy_override.cpp deleted file mode 100644 index 130f99055..000000000 --- a/tests/test_return_value_policy_override.cpp +++ /dev/null @@ -1,82 +0,0 @@ -#include "pybind11_tests.h" - -namespace test_return_value_policy_override { - -struct some_type {}; - -} // namespace test_return_value_policy_override - -using test_return_value_policy_override::some_type; - -namespace pybind11 { -namespace detail { - -const char *return_value_policy_name(return_value_policy policy) { - switch (policy) { - case return_value_policy::automatic: - return "automatic"; - case return_value_policy::automatic_reference: - return "automatic_reference"; - case return_value_policy::take_ownership: - return "take_ownership"; - case return_value_policy::copy: - return "copy"; - case return_value_policy::move: - return "move"; - case return_value_policy::reference: - return "reference"; - case return_value_policy::reference_internal: - return "reference_internal"; - case return_value_policy::_return_as_bytes: - return "_return_as_bytes"; - case return_value_policy::_clif_automatic: - return "_clif_automatic"; - default: - return "Expected to be unreachable."; - } -}; - -template <> -struct type_caster : type_caster_base { - - static handle cast(some_type &&, return_value_policy policy, handle /*parent*/) { - return str(std::string(return_value_policy_name(policy))).release().ptr(); - } - - static handle cast(some_type *, return_value_policy policy, handle /*parent*/) { - return str(std::string(return_value_policy_name(policy))).release().ptr(); - } -}; - -} // namespace detail -} // namespace pybind11 - -TEST_SUBMODULE(return_value_policy_override, m) { - m.def("return_value_with_default_policy", []() { return some_type(); }); - m.def( - "return_value_with_policy_copy", - []() { return some_type(); }, - py::return_value_policy::copy); - m.def( - "return_value_with_policy_clif_automatic", - []() { return some_type(); }, - py::return_value_policy::_clif_automatic); - m.def("return_pointer_with_default_policy", []() { - static some_type value; - return &value; - }); - m.def( - "return_pointer_with_policy_move", - []() { - static some_type value; - return &value; - }, - py::return_value_policy::move); - m.def( - "return_pointer_with_policy_clif_automatic", - []() { - static some_type value; - return &value; - }, - py::return_value_policy::_clif_automatic); -} diff --git a/tests/test_return_value_policy_override.py b/tests/test_return_value_policy_override.py deleted file mode 100644 index 36cb5bbf0..000000000 --- a/tests/test_return_value_policy_override.py +++ /dev/null @@ -1,13 +0,0 @@ -from pybind11_tests import return_value_policy_override as m - - -def test_return_value(): - assert m.return_value_with_default_policy() == "move" - assert m.return_value_with_policy_copy() == "move" - assert m.return_value_with_policy_clif_automatic() == "_clif_automatic" - - -def test_return_pointer(): - assert m.return_pointer_with_default_policy() == "automatic" - assert m.return_pointer_with_policy_move() == "move" - assert m.return_pointer_with_policy_clif_automatic() == "_clif_automatic"