Skip to content

Commit 096a664

Browse files
authored
fixed a few coroutine related issues (#113)
* fixed a few coroutine related issues * fixed formatting issues * reverted te chnage checking the result from unhandled_stopped().
1 parent ad1bb84 commit 096a664

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

include/beman/execution26/detail/product_type.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
#include <memory>
88
#include <cstddef>
99

10+
#include <beman/execution26/detail/suppress_push.hpp>
11+
1012
// ----------------------------------------------------------------------------
1113

1214
namespace beman::execution26::detail {
@@ -126,4 +128,6 @@ struct tuple_element<I, T> {
126128

127129
// ----------------------------------------------------------------------------
128130

131+
#include <beman/execution26/detail/suppress_pop.hpp>
132+
129133
#endif

include/beman/execution26/detail/single_sender_value_type.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ struct single_sender_value_type_helper<Sender, Env> {
2727

2828
template <typename Sender, typename Env>
2929
requires ::std::same_as<::std::variant<::std::tuple<>>,
30+
::beman::execution26::value_types_of_t<Sender, Env, ::std::tuple, ::std::variant>> ||
31+
::std::same_as<::std::variant<>,
3032
::beman::execution26::value_types_of_t<Sender, Env, ::std::tuple, ::std::variant>>
3133
struct single_sender_value_type_helper<Sender, Env> {
3234
using type = void;

tests/beman/execution26/execution-syn.test.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,18 +225,18 @@ auto test_single_sender_value_type() -> void {
225225
test_detail::single_sender_value_type<multi_type_sender, test_std::empty_env>>);
226226
test_single_sender_value_type<true>(single_type_sender{}, test_std::empty_env{});
227227
test_single_sender_value_type<true>(single_type_sender{}, test_env{});
228-
test_single_sender_value_type<false>(single_type_sender{}, no_value_env{});
228+
test_single_sender_value_type<true>(single_type_sender{}, no_value_env{});
229229
test_single_sender_value_type<false>(multi_single_sender{}, test_std::empty_env{});
230-
test_single_sender_value_type<false>(no_value_sender{}, test_std::empty_env{});
230+
test_single_sender_value_type<true>(no_value_sender{}, test_std::empty_env{});
231231
}
232232

233233
auto test_single_sender() -> void {
234234
static_assert(test_detail::single_sender<single_type_sender, test_std::empty_env>);
235-
static_assert(not test_detail::single_sender<single_type_sender, no_value_env>);
235+
static_assert(test_detail::single_sender<single_type_sender, no_value_env>);
236236
static_assert(test_detail::single_sender<void_sender, test_std::empty_env>);
237237
static_assert(not test_detail::single_sender<multi_single_sender, test_std::empty_env>);
238238
static_assert(test_detail::single_sender<multi_type_sender, test_std::empty_env>);
239-
static_assert(not test_detail::single_sender<no_value_sender, test_std::empty_env>);
239+
static_assert(test_detail::single_sender<no_value_sender, test_std::empty_env>);
240240
}
241241

242242
struct connect_sender {

0 commit comments

Comments
 (0)