Skip to content

Commit

Permalink
remove __default_env
Browse files Browse the repository at this point in the history
  • Loading branch information
ericniebler committed Jan 20, 2024
1 parent 2dc7177 commit 96eb561
Show file tree
Hide file tree
Showing 8 changed files with 44 additions and 46 deletions.
2 changes: 1 addition & 1 deletion include/exec/sequence_senders.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ namespace exec {
}
}

template <class _Sender, class _Env = __default_env>
template <class _Sender, class _Env = empty_env>
constexpr auto operator()(_Sender&&, const _Env&) const noexcept
-> decltype(__impl<_Sender, _Env>()()) {
return {};
Expand Down
2 changes: 0 additions & 2 deletions include/stdexec/__detail/__env.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -478,8 +478,6 @@ namespace stdexec {
template <class... _Ts>
using __make_env_t = __call_result_t<__env::__make_env_t, _Ts...>;

using __default_env = empty_env;

template <class _EnvProvider>
concept environment_provider = //
requires(_EnvProvider& __ep) {
Expand Down
40 changes: 20 additions & 20 deletions include/stdexec/execution.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -767,7 +767,7 @@ namespace stdexec {

// NOT TO SPEC: if we're unable to compute the completion signatures,
// return an error type instead of SFINAE.
template <class _Sender, class _Env = __default_env>
template <class _Sender, class _Env = empty_env>
constexpr auto operator()(_Sender&&, const _Env&) const noexcept
-> decltype(__impl<_Sender, _Env>()()) {
return {};
Expand Down Expand Up @@ -892,79 +892,79 @@ namespace stdexec {

template < //
class _Sender, //
class _Env = __default_env, //
class _Env = empty_env, //
class _Tuple = __q<__decayed_tuple>, //
class _Variant = __q<__variant>>
using __try_value_types_of_t = //
__gather_completions_for<set_value_t, _Sender, _Env, _Tuple, _Variant>;

template < //
class _Sender, //
class _Env = __default_env, //
class _Env = empty_env, //
class _Tuple = __q<__decayed_tuple>, //
class _Variant = __q<__variant>>
requires sender_in<_Sender, _Env>
using __value_types_of_t = //
__msuccess_or_t<__try_value_types_of_t<_Sender, _Env, _Tuple, _Variant>>;

template <class _Sender, class _Env = __default_env, class _Variant = __q<__variant>>
template <class _Sender, class _Env = empty_env, class _Variant = __q<__variant>>
using __try_error_types_of_t =
__gather_completions_for<set_error_t, _Sender, _Env, __q<__midentity>, _Variant>;

template <class _Sender, class _Env = __default_env, class _Variant = __q<__variant>>
template <class _Sender, class _Env = empty_env, class _Variant = __q<__variant>>
requires sender_in<_Sender, _Env>
using __error_types_of_t = __msuccess_or_t<__try_error_types_of_t<_Sender, _Env, _Variant>>;

template < //
class _Sender, //
class _Env = __default_env, //
class _Env = empty_env, //
template <class...> class _Tuple = __decayed_tuple, //
template <class...> class _Variant = __variant>
requires sender_in<_Sender, _Env>
using value_types_of_t = __value_types_of_t<_Sender, _Env, __q<_Tuple>, __q<_Variant>>;

template <class _Sender, class _Env = __default_env, template <class...> class _Variant = __variant>
template <class _Sender, class _Env = empty_env, template <class...> class _Variant = __variant>
requires sender_in<_Sender, _Env>
using error_types_of_t = __error_types_of_t<_Sender, _Env, __q<_Variant>>;

template <class _Tag, class _Sender, class _Env = __default_env>
template <class _Tag, class _Sender, class _Env = empty_env>
using __try_count_of = //
__compl_sigs::__maybe_for_all_sigs<
__completion_signatures_of_t<_Sender, _Env>,
__q<__mfront>,
__mcount<_Tag>>;

template <class _Tag, class _Sender, class _Env = __default_env>
template <class _Tag, class _Sender, class _Env = empty_env>
requires sender_in<_Sender, _Env>
using __count_of = __msuccess_or_t<__try_count_of<_Tag, _Sender, _Env>>;

template <class _Tag, class _Sender, class _Env = __default_env>
template <class _Tag, class _Sender, class _Env = empty_env>
requires __mvalid<__count_of, _Tag, _Sender, _Env>
inline constexpr bool __sends = (__v<__count_of<_Tag, _Sender, _Env>> != 0);

template <class _Sender, class _Env = __default_env>
template <class _Sender, class _Env = empty_env>
requires __mvalid<__count_of, set_stopped_t, _Sender, _Env>
inline constexpr bool sends_stopped = __sends<set_stopped_t, _Sender, _Env>;

template <class _Sender, class _Env = __default_env>
template <class _Sender, class _Env = empty_env>
using __single_sender_value_t =
__value_types_of_t<_Sender, _Env, __msingle_or<void>, __q<__msingle>>;

template <class _Sender, class _Env = __default_env>
template <class _Sender, class _Env = empty_env>
using __single_value_variant_sender_t = value_types_of_t<_Sender, _Env, __types, __msingle>;

template <class _Sender, class _Env = __default_env>
template <class _Sender, class _Env = empty_env>
concept __single_typed_sender =
sender_in<_Sender, _Env> && __mvalid<__single_sender_value_t, _Sender, _Env>;

template <class _Sender, class _Env = __default_env>
template <class _Sender, class _Env = empty_env>
concept __single_value_variant_sender =
sender_in<_Sender, _Env> && __mvalid<__single_value_variant_sender_t, _Sender, _Env>;

template <class... Errs>
using __nofail = __mbool<sizeof...(Errs) == 0>;

template <class _Sender, class _Env = __default_env>
template <class _Sender, class _Env = empty_env>
concept __nofail_sender =
sender_in<_Sender, _Env> && (__v<error_types_of_t<_Sender, _Env, __nofail>>);

Expand Down Expand Up @@ -1000,7 +1000,7 @@ namespace stdexec {

template < //
class _Sender, //
class _Env = __default_env, //
class _Env = empty_env, //
class _Sigs = completion_signatures<>, //
class _SetValue = __q<__default_set_value>, //
class _SetError = __q<__default_set_error>, //
Expand Down Expand Up @@ -1030,7 +1030,7 @@ namespace stdexec {
//
// template <
// sender Sndr,
// class Env = __default_env,
// class Env = empty_env,
// class AddlSigs = completion_signatures<>,
// template <class...> class SetValue = __default_set_value,
// template <class> class SetError = __default_set_error,
Expand Down Expand Up @@ -1078,7 +1078,7 @@ namespace stdexec {
// SendsStopped>` is an alias for an empty struct
template < //
class _Sender, //
class _Env = __default_env, //
class _Env = empty_env, //
__valid_completion_signatures _Sigs = completion_signatures<>, //
template <class...> class _SetValue = __compl_sigs::__default_set_value, //
template <class> class _SetError = __compl_sigs::__default_set_error, //
Expand Down Expand Up @@ -1509,7 +1509,7 @@ namespace stdexec {
template <class _Sig>
using __tag_of_sig_t = decltype(stdexec::__tag_of_sig_((_Sig*) nullptr));

template <class _Sender, class _SetSig, class _Env = __default_env>
template <class _Sender, class _SetSig, class _Env = empty_env>
concept sender_of =
sender_in<_Sender, _Env>
&& same_as<
Expand Down
2 changes: 1 addition & 1 deletion test/stdexec/algos/adaptors/test_split.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ namespace {

SECTION("lvalue split copyable sender") {
auto multishot = ex::split(ex::just(copy_and_movable_type{0}));
ex::get_completion_signatures_t{}(multishot, ex::__default_env{});
ex::get_completion_signatures_t{}(multishot, ex::empty_env{});
auto snd = multishot | ex::then([](const copy_and_movable_type&) {});

REQUIRE(!ex::sender_of<decltype(multishot), ex::set_value_t(copy_and_movable_type)>);
Expand Down
8 changes: 4 additions & 4 deletions test/stdexec/algos/adaptors/test_upon_error.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ namespace {

using S = decltype(snd);
static_assert(ex::sender<S>);
using completion_sigs = decltype(ex::get_completion_signatures(snd, ex::__default_env{}));
using completion_sigs = decltype(ex::get_completion_signatures(snd, ex::empty_env{}));
static_assert(std::same_as< completion_sigs, ex::completion_signatures< ex::set_value_t() >>);
}

Expand Down Expand Up @@ -108,7 +108,7 @@ namespace {

using S = decltype(s);
static_assert(ex::sender<S>);
using completion_sigs = decltype(ex::get_completion_signatures(s, ex::__default_env{}));
using completion_sigs = decltype(ex::get_completion_signatures(s, ex::empty_env{}));
static_assert(
std::same_as<
completion_sigs,
Expand All @@ -124,7 +124,7 @@ namespace {

using S = decltype(s);
static_assert(ex::sender<S>);
using completion_sigs = decltype(ex::get_completion_signatures(s, ex::__default_env{}));
using completion_sigs = decltype(ex::get_completion_signatures(s, ex::empty_env{}));
static_assert(
std::same_as<
completion_sigs,
Expand All @@ -137,7 +137,7 @@ namespace {

using S = decltype(s);
static_assert(ex::sender<S>);
using completion_sigs = decltype(ex::get_completion_signatures(s, ex::__default_env{}));
using completion_sigs = decltype(ex::get_completion_signatures(s, ex::empty_env{}));
static_assert(
std::same_as<
completion_sigs,
Expand Down
2 changes: 1 addition & 1 deletion test/stdexec/algos/consumers/test_sync_wait.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ namespace {
std::tuple<>,
ex::value_types_of_t<
decltype(ex::just()),
ex::__default_env,
ex::empty_env,
decayed_tuple,
std::type_identity_t>>);
}
Expand Down
2 changes: 1 addition & 1 deletion test/stdexec/concepts/test_concepts_sender.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ namespace {
ex::get_env(my_r5_sender0{});
static_assert(ex::sender<my_r5_sender0>);
static_assert(std::same_as<
decltype(ex::get_completion_signatures(my_r5_sender0{}, ex::__default_env{})),
decltype(ex::get_completion_signatures(my_r5_sender0{}, ex::empty_env{})),
my_r5_sender0::completion_signatures>);
}

Expand Down
32 changes: 16 additions & 16 deletions test/stdexec/detail/test_completion_signatures.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,9 @@ namespace {
using set_error_f = stdexec::__q<set_error_sig>;
using tr = stdexec::__transform<set_error_f>;

using sig_eptr = stdexec::__error_types_of_t<snd_eptr_t, ex::__default_env, tr>;
using sig_ec = stdexec::__error_types_of_t<snd_ec_t, ex::__default_env, tr>;
using sig_str = stdexec::__error_types_of_t<snd_str_t, ex::__default_env, tr>;
using sig_eptr = stdexec::__error_types_of_t<snd_eptr_t, ex::empty_env, tr>;
using sig_ec = stdexec::__error_types_of_t<snd_ec_t, ex::empty_env, tr>;
using sig_str = stdexec::__error_types_of_t<snd_str_t, ex::empty_env, tr>;

static_assert(is_same_v<sig_eptr, stdexec::__types<ex::set_error_t(exception_ptr)>>);
static_assert(is_same_v<sig_ec, stdexec::__types<ex::set_error_t(error_code)>>);
Expand Down Expand Up @@ -182,7 +182,7 @@ namespace {
}

TEST_CASE(
"make_completion_signatures with __default_env can replicate the completion signatures of "
"make_completion_signatures with empty_env can replicate the completion signatures of "
"input "
"senders",
"[detail][completion_signatures]") {
Expand All @@ -192,11 +192,11 @@ namespace {
using snd_ec_t = decltype(ex::just_error(error_code{}));
using snd_stopped_t = decltype(ex::just_stopped());

using cs_int = ex::make_completion_signatures<snd_int_t, ex::__default_env>;
using cs_double_char = ex::make_completion_signatures<snd_double_char_t, ex::__default_env>;
using cs_eptr = ex::make_completion_signatures<snd_eptr_t, ex::__default_env>;
using cs_ec = ex::make_completion_signatures<snd_ec_t, ex::__default_env>;
using cs_stopped = ex::make_completion_signatures<snd_stopped_t, ex::__default_env>;
using cs_int = ex::make_completion_signatures<snd_int_t, ex::empty_env>;
using cs_double_char = ex::make_completion_signatures<snd_double_char_t, ex::empty_env>;
using cs_eptr = ex::make_completion_signatures<snd_eptr_t, ex::empty_env>;
using cs_ec = ex::make_completion_signatures<snd_ec_t, ex::empty_env>;
using cs_stopped = ex::make_completion_signatures<snd_stopped_t, ex::empty_env>;

expect_val_types<cs_int, stdexec::__types<stdexec::__types<int>>>();
expect_val_types<cs_double_char, stdexec::__types<stdexec::__types<double, char>>>();
Expand All @@ -217,7 +217,7 @@ namespace {
using snd_double_t = decltype(ex::just_error(std::exception_ptr{}));
using cs_with_ec = ex::make_completion_signatures<
snd_double_t,
ex::__default_env,
ex::empty_env,
ex::completion_signatures<ex::set_error_t(error_code)>>;

expect_val_types<cs_with_ec, stdexec::__types<>>();
Expand All @@ -230,7 +230,7 @@ namespace {
using snd_double_t = decltype(ex::just(3.14));
using cs_with_ec = ex::make_completion_signatures<
snd_double_t,
ex::__default_env,
ex::empty_env,
ex::completion_signatures<ex::set_error_t(exception_ptr)>>;

// exception_ptr appears only once
Expand All @@ -243,7 +243,7 @@ namespace {
using snd_double_t = decltype(ex::just(3.14));
using cs = ex::make_completion_signatures<
snd_double_t,
ex::__default_env,
ex::empty_env,
ex::completion_signatures< //
ex::set_value_t(int), //
ex::set_value_t(double) //
Expand All @@ -265,7 +265,7 @@ namespace {
using snd_double_t = decltype(ex::just(3.14));
using cs = ex::make_completion_signatures<
snd_double_t,
ex::__default_env,
ex::empty_env,
ex::completion_signatures< //
ex::set_value_t(int), //
ex::set_value_t(double) //
Expand All @@ -287,7 +287,7 @@ namespace {
using snd_double_t = decltype(ex::just_error(std::exception_ptr{}));
using cs = ex::make_completion_signatures<
snd_double_t,
ex::__default_env,
ex::empty_env,
ex::completion_signatures< //
ex::set_error_t(error_code) //
>, //
Expand All @@ -304,7 +304,7 @@ namespace {

TEST_CASE("error_types_of_t can be used to get error types", "[detail][completion_signatures]") {
using snd_t = decltype(ex::transfer_just(inline_scheduler{}, 1));
using err_t = ex::error_types_of_t<snd_t, ex::__default_env, stdexec::__types>;
using err_t = ex::error_types_of_t<snd_t, ex::empty_env, stdexec::__types>;
static_assert(is_same_v<err_t, stdexec::__types<>>);
}

Expand All @@ -314,7 +314,7 @@ namespace {
using tr = stdexec::__transform<stdexec::__q<set_error_sig>>;

using snd_t = decltype(ex::transfer_just(inline_scheduler{}, 1));
using err_t = ex::error_types_of_t<snd_t, ex::__default_env, tr::template __f>;
using err_t = ex::error_types_of_t<snd_t, ex::empty_env, tr::template __f>;
static_assert(is_same_v<err_t, stdexec::__types<>>);
}
}

0 comments on commit 96eb561

Please sign in to comment.