Skip to content

Commit f335293

Browse files
committed
fix diagnostic for passing a fallible sender to spawn
fixes #1991
1 parent 73584a8 commit f335293

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

include/stdexec/__detail/__spawn.hpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,15 @@ namespace STDEXEC
130130
}
131131

132132
template <sender _Sender, scope_token _Token, class _Env>
133+
requires __sends<STDEXEC::set_error_t, _Sender, _Env>
134+
void operator()(_Sender&& __sndr, _Token __tkn, _Env&& __env) const
135+
{
136+
static_assert(__never_sends<STDEXEC::set_error_t, _Sender, _Env>,
137+
"spawn does not support senders that can complete with an error");
138+
}
139+
140+
template <sender _Sender, scope_token _Token, class _Env>
141+
requires __never_sends<STDEXEC::set_error_t, _Sender, _Env>
133142
void operator()(_Sender&& __sndr, _Token __tkn, _Env&& __env) const
134143
{
135144
auto __wrapped_sender = __tkn.wrap(static_cast<_Sender&&>(__sndr));

0 commit comments

Comments
 (0)