Skip to content

Commit 7aae78f

Browse files
committed
improve the diagnostics of invalid fork expressions
1 parent 47185ef commit 7aae78f

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

include/exec/fork.hpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ namespace exec {
117117
struct _opstate_t {
118118
using operation_state_concept = stdexec::operation_state_t;
119119
using _env_t = stdexec::__call_result_t<stdexec::__env::__fwd_fn, stdexec::env_of_t<Rcvr>>;
120-
using _child_completions_t = stdexec::completion_signatures_of_t<Sndr, _env_t>;
120+
using _child_completions_t = stdexec::__completion_signatures_of_t<Sndr, _env_t>;
121121
using _domain_t = stdexec::__early_domain_of_t<Sndr, stdexec::__none_such>;
122122
using _when_all_sndr_t = fork_t::_when_all_sndr_t<_child_completions_t, Closures, _domain_t>;
123123
using _child_opstate_t =
@@ -233,10 +233,12 @@ namespace exec {
233233
using namespace stdexec;
234234
using _domain_t = __early_domain_of_t<Sndr, __none_such>;
235235
using _child_t = __copy_cvref_t<Self, Sndr>;
236-
using _child_completions_t = completion_signatures_of_t<_child_t, __fwd_env_t<Env>...>;
236+
using _child_completions_t = __completion_signatures_of_t<_child_t, __fwd_env_t<Env>...>;
237237
using __decay_copyable_results_t = stdexec::__decay_copyable_results_t<_child_completions_t>;
238238

239-
if constexpr (!__decay_copyable_results_t::value) {
239+
if constexpr (!stdexec::__valid_completion_signatures<_child_completions_t>) {
240+
return _child_completions_t{};
241+
} else if constexpr (!__decay_copyable_results_t::value) {
240242
return _ERROR_<
241243
_WHAT_<>(PREDECESSOR_RESULTS_ARE_NOT_DECAY_COPYABLE),
242244
_IN_ALGORITHM_(exec::fork_t)>();

0 commit comments

Comments
 (0)