transform_sender compile error with msvc
koloshmet opened this issue · 0 comments
koloshmet commented
MSVC reports "expression did not evaluate to a constant" at this line
noexcept(__nothrow_callable<__transform_sender_1, _Domain, _Sender, const _Env&...>)
of __transform_sender
's operator()
when I combine sender that requires transformation and let_value
I believe this is the bug of msvc, but probably it requires some workaround. To be honest I can't imagine how to do it, so just report it here.
The error appeared after I switched to the version of stdexec that announced receiver_ref in let_value. It reproduces only with senders that assume transformation before connecting in combination with let_value
Minimal reproducible example
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>
#include <stdexec/execution.hpp>
struct Domain {
template <stdexec::sender Sender> requires stdexec::tag_invocable<Domain, Sender&&>
auto transform_sender(Sender&& s) const noexcept {
return stdexec::tag_invoke(*this, std::forward<Sender>(s));
}
template <stdexec::sender Sender, typename Env> requires stdexec::tag_invocable<Domain, Sender&&>
auto transform_sender(Sender&& s, const Env&) const noexcept {
return this->transform_sender(std::forward<Sender>(s));
}
};
struct FatalOpState {};
template <stdexec::sender TSender>
struct IncompleteSender {
using sender_concept = stdexec::sender_t;
IncompleteSender(TSender s) noexcept: Sender(std::move(s)) {}
template <stdexec::receiver Receiver>
friend auto tag_invoke(stdexec::connect_t, IncompleteSender, Receiver&&) { return FatalOpState{}; }
friend auto tag_invoke(stdexec::get_env_t, const IncompleteSender& s) noexcept { return stdexec::get_env(s.Sender); }
template <typename Env>
friend auto tag_invoke(stdexec::get_completion_signatures_t, const IncompleteSender& s, const Env& e) noexcept {
return stdexec::get_completion_signatures(s.Sender, e);
}
TSender Sender;
};
template <stdexec::sender TSender>
auto tag_invoke(Domain, IncompleteSender<TSender> s) {
return std::move(s.Sender);
}
struct Scheduler {
struct Env {
template <typename T>
friend auto tag_invoke(stdexec::get_completion_scheduler_t<T>, const Env&) noexcept { return Scheduler{}; }
friend auto tag_invoke(stdexec::get_domain_t, const Env&) noexcept { return Domain{}; }
};
struct OpState {
friend void tag_invoke(stdexec::start_t, OpState&) noexcept {}
};
struct Sender {
using sender_concept = stdexec::sender_t;
using completion_signatures = stdexec::completion_signatures<stdexec::set_value_t(), stdexec::set_stopped_t()>;
template <stdexec::receiver Receiver>
friend auto tag_invoke(stdexec::connect_t, Sender, Receiver&&) { return OpState{}; }
friend auto tag_invoke(stdexec::get_env_t, const Sender&) noexcept { return Env{}; }
};
friend auto tag_invoke(stdexec::get_domain_t, const Scheduler&) noexcept { return Domain{}; }
friend auto tag_invoke(stdexec::schedule_t, Scheduler) noexcept { return Sender{}; };
};
struct Env {
friend auto tag_invoke(stdexec::get_scheduler_t, const Env&) noexcept { return Scheduler{}; }
friend auto tag_invoke(stdexec::get_domain_t, const Env&) noexcept { return Domain{}; }
};
TEST_CASE("It's broken") {
Scheduler s;
auto conn =
stdexec::let_value(
IncompleteSender(
stdexec::let_value(
stdexec::schedule(s),
[&]() noexcept {
return stdexec::just(1);
})),
[&](int n) noexcept {
return stdexec::just();
});
auto x = stdexec::get_completion_signatures(conn, Env{});
}
Error produced by MSVC 19.39
>------ Build started: Project: CMakeLists, Configuration: RelWithDebInfo ------
[1/2] Building CXX object tests\CMakeFiles\let_test.dir\let_value.cpp.obj
FAILED: tests/CMakeFiles/let_test.dir/let_value.cpp.obj
C:\PROGRA~1\MICROS~1\2022\COMMUN~1\VC\Tools\MSVC\1439~1.335\bin\HOSTAR~1\x64\cl.exe /nologo /TP -IC:\Users\koloshmet\Programming\uvexec\build-ci\_deps\catch2-src\single_include -IC:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include /DWIN32 /D_WINDOWS /EHsc /Zi /O2 /Ob1 /DNDEBUG -std:c++20 -MD /Zc:__cplusplus /Zc:preprocessor /showIncludes /Fotests\CMakeFiles\let_test.dir\let_value.cpp.obj /Fdtests\CMakeFiles\let_test.dir\ /FS -c C:\Users\koloshmet\Programming\uvexec\tests\let_value.cpp
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(667): error C2131: expression did not evaluate to a constant
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(667): note: failure was caused by a read of an uninitialized symbol
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(667): note: see usage of 'stdexec::__nothrow_callable<stdexec::__domain::__transform_sender_1,stdexec::dependent_domain,stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,const _Tp&>'
with
[
_Tp=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(667): note: the template instantiation context (the oldest one first) is
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(859): note: see reference to function template instantiation 'auto stdexec::__get_completion_signatures::get_completion_signatures_t::__impl<_Sender,_Env>(void)' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(821): note: see reference to alias template instantiation 'stdexec::__get_completion_signatures::__tfx_sender<_Sender,_Env>' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(801): note: see reference to alias template instantiation 'stdexec::transform_sender_result_t<Domain,_Sender,_Env>' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(711): note: see reference to alias template instantiation 'stdexec::__call_result_t<stdexec::transform_sender_t,Domain,_Sender,_Env>' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__meta.hpp(762): note: while compiling class template member function 'decltype(auto) stdexec::__domain::__transform_dependent_sender::operator ()<_Tp,stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>&,Env>(_Domain,_Sender,const _Env &) noexcept(<expr>) const'
with
[
_Tp=Domain,
_Domain=Domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(692): note: while compiling class template member function 'decltype(auto) stdexec::dependent_domain::transform_sender<_Tp&,_Env>(_Sender,const _Env &) noexcept(<expr>) const'
with
[
_Tp=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Env=Env,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(743): note: see reference to function template instantiation 'bool stdexec::dependent_domain::__is_nothrow_transform_sender<_Sender,_Env>(void) noexcept' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(584): note: while compiling class template member function 'unknown-type stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>::apply(_Sender &&,_ApplyFn &&) noexcept(<expr>)'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(587): note: see reference to alias template instantiation 'stdexec::__call_result_t<stdexec::__detail::__captures::<lambda_1>&,stdexec::__cplr,_ApplyFn>' being compiled
with
[
_ApplyFn=stdexec::dependent_domain::__is_nothrow_transform_sender::<lambda_1>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(465): note: while compiling class template member function 'unknown-type stdexec::__detail::__captures::<lambda_1>::operator ()(_Cvref,_Fun &&) noexcept(<expr>)'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(463): note: see reference to alias template instantiation 'stdexec::__call_result_t<_Tp,_Tag,____C_A_T_C_H____T_E_S_T____0::<lambda_2>&,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>>&>' being compiled
with
[
_Tp=stdexec::dependent_domain::__is_nothrow_transform_sender::<lambda_1>,
_Tag=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__meta.hpp(762): note: see reference to function template instantiation 'auto stdexec::dependent_domain::__is_nothrow_transform_sender::<lambda_1>::operator ()<_Tp,____C_A_T_C_H____T_E_S_T____0::<lambda_2>&,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>>&>(_Tag,_Data,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>> &) const' being compiled
with
[
_Tp=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>,
_Tag=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>,
_Data=____C_A_T_C_H____T_E_S_T____0::<lambda_2> &
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(734): note: while compiling class template member function 'decltype(auto) stdexec::__domain::__transform_sender::operator ()<stdexec::__domain::__transform_sender,stdexec::dependent_domain,_Tp,Env>(_Domain,_Sender &&,const Env &) noexcept(<expr>) const'
with
[
_Tp=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(667): note: see reference to variable template 'bool __nothrow_callable<stdexec::__domain::__transform_sender_1,stdexec::dependent_domain,stdexec::__sexpr<stdexec::A0x2990fd92::<lambda_71_>{},stdexec::A0x2990fd92::__anon>,Env const &>' being compiled
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__concepts.hpp(31): note: see reference to variable template 'bool __callable<stdexec::__domain::__transform_sender_1,stdexec::dependent_domain,stdexec::__sexpr<stdexec::A0x2990fd92::<lambda_71_>{},stdexec::A0x2990fd92::__anon>,Env const &>' being compiled
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__concepts.hpp(27): note: while compiling class template member function 'decltype(auto) stdexec::__domain::__transform_sender_1::operator ()<_Domain,_Sender,_Tp>(_Domain,_Sender &&,const _Tp &) noexcept(<expr>) const'
with
[
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Tp=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(649): note: see reference to function template instantiation 'bool stdexec::__domain::__transform_sender_1::__is_nothrow<_Domain,_Sender,const _Tp&>(void) noexcept' being compiled
with
[
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Tp=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(634): note: see reference to variable template 'bool __has_transform_sender<stdexec::dependent_domain,stdexec::__sexpr<stdexec::A0x2990fd92::<lambda_71_>{},stdexec::A0x2990fd92::__anon>,Env const &>' being compiled
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail/__domain.hpp(57): note: while compiling class template member function 'decltype(auto) stdexec::dependent_domain::transform_sender<_Sender,_Tp>(_Sender &&,const _Env &) noexcept(<expr>) const'
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Tp=Env,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(743): note: see reference to function template instantiation 'bool stdexec::dependent_domain::__is_nothrow_transform_sender<_Sender,_Env>(void) noexcept' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(584): note: while compiling class template member function 'unknown-type stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>::apply(_Sender &&,_ApplyFn &&) noexcept(<expr>)'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(587): note: see reference to alias template instantiation 'stdexec::__call_result_t<stdexec::__detail::__captures::<lambda_1>&&,stdexec::__cp,_ApplyFn>' being compiled
with
[
_ApplyFn=stdexec::dependent_domain::__is_nothrow_transform_sender::<lambda_1>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(465): note: while compiling class template member function 'unknown-type stdexec::__detail::__captures::<lambda_1>::operator ()(_Cvref,_Fun &&) noexcept(<expr>)'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(463): note: see reference to alias template instantiation 'stdexec::__call_result_t<_Tp,_Tag,____C_A_T_C_H____T_E_S_T____0::<lambda_2>,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>>>' being compiled
with
[
_Tp=stdexec::dependent_domain::__is_nothrow_transform_sender::<lambda_1>,
_Tag=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__meta.hpp(762): note: see reference to function template instantiation 'auto stdexec::dependent_domain::__is_nothrow_transform_sender::<lambda_1>::operator ()<_Tp,____C_A_T_C_H____T_E_S_T____0::<lambda_2>,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>>>(_Tag,_Data &&,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>> &&) const' being compiled
with
[
_Tp=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>,
_Tag=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>,
_Data=____C_A_T_C_H____T_E_S_T____0::<lambda_2>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(734): note: while compiling class template member function 'decltype(auto) stdexec::__domain::__transform_sender::operator ()<stdexec::__domain::__transform_sender,stdexec::dependent_domain,_Tp,Env>(_Domain,_Sender &&,const Env &) noexcept(<expr>) const'
with
[
_Tp=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(649): error C2131: expression did not evaluate to a constant
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(649): note: failure was caused by call of undefined function or one not declared 'constexpr'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(649): note: see usage of 'stdexec::__domain::__transform_sender_1::__is_nothrow'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(649): note: the template instantiation context (the oldest one first) is
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(718): note: see reference to function template instantiation 'decltype(auto) stdexec::__domain::__transform_sender::operator ()<stdexec::__domain::__transform_sender,stdexec::dependent_domain,_Tp,Env>(_Domain,_Sender &&,const Env &) const' being compiled
with
[
_Tp=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(668): note: see reference to alias template instantiation 'stdexec::__call_result_t<stdexec::__domain::__transform_sender_1,stdexec::dependent_domain,_Tp,const Env&>' being compiled
with
[
_Tp=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__meta.hpp(762): note: while compiling class template member function 'decltype(auto) stdexec::__domain::__transform_sender_1::operator ()<_Domain,_Sender,_Tp>(_Domain,_Sender &&,const _Tp &) noexcept(<expr>) const'
with
[
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Tp=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(763): error C3779: 'stdexec::__domain::__transform_sender::operator ()': a function that returns 'decltype(auto)' cannot be used before it is defined
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(666): note: see declaration of 'stdexec::__domain::__transform_sender::operator ()'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(763): note: the template instantiation context (the oldest one first) is
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__meta.hpp(762): note: see reference to function template instantiation 'decltype(auto) stdexec::__domain::__transform_sender_1::operator ()<_Domain,_Sender,_Tp>(_Domain,_Sender &&,const _Tp &) const' being compiled
with
[
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Tp=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(650): note: see reference to variable template 'bool __has_transform_sender<stdexec::dependent_domain,stdexec::__sexpr<stdexec::A0x2990fd92::<lambda_71_>{},stdexec::A0x2990fd92::__anon>,Env>' being compiled
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail/__domain.hpp(56): note: see reference to function template instantiation 'decltype(auto) stdexec::dependent_domain::transform_sender<_Sender,_Tp>(_Sender &&,const _Env &) const' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Tp=Env,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(584): note: while compiling class template member function 'unknown-type stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>::apply(_Sender &&,_ApplyFn &&) noexcept(<expr>)'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(587): note: see reference to alias template instantiation 'stdexec::__call_result_t<stdexec::__detail::__captures::<lambda_1>&&,stdexec::__cp,_ApplyFn>' being compiled
with
[
_ApplyFn=stdexec::dependent_domain::transform_sender::<lambda_1>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(465): note: while compiling class template member function 'unknown-type stdexec::__detail::__captures::<lambda_1>::operator ()(_Cvref,_Fun &&) noexcept(<expr>)'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(463): note: see reference to alias template instantiation 'stdexec::__call_result_t<_Tp,_Tag,____C_A_T_C_H____T_E_S_T____0::<lambda_2>,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>>>' being compiled
with
[
_Tp=stdexec::dependent_domain::transform_sender::<lambda_1>,
_Tag=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__meta.hpp(762): note: see reference to function template instantiation 'auto stdexec::dependent_domain::transform_sender::<lambda_1>::operator ()<_Tp,____C_A_T_C_H____T_E_S_T____0::<lambda_2>,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>>>(_Tag,_Data &&,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>> &&) const' being compiled
with
[
_Tp=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>,
_Tag=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>,
_Data=____C_A_T_C_H____T_E_S_T____0::<lambda_2>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(748): error C3889: call to object of class type 'stdexec::__detail::__sexpr_apply_t': no matching call operator found
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(634): note: could be 'unknown-type stdexec::__detail::__sexpr_apply_t::operator ()(_Sender &&,_ApplyFn &&) noexcept(<expr>) const'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(721): error C3889: call to object of class type 'stdexec::__detail::__sexpr_apply_t': no matching call operator found
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(634): note: could be 'unknown-type stdexec::__detail::__sexpr_apply_t::operator ()(_Sender &&,_ApplyFn &&) noexcept(<expr>) const'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(721): error C2651: 'unknown-type': left of '::' must be a class, struct or union
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(721): error C2062: type 'unknown-type' unexpected
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(737): error C2039: 'value': is not a member of '`global namespace''
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(743): error C3615: constexpr function 'stdexec::dependent_domain::__is_nothrow_transform_sender' cannot result in a constant expression
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(718): note: failure was caused by control reaching the end of a constexpr function
C:\Users\koloshmet\Programming\uvexec\tests\let_value.cpp(90): error C3889: call to object of class type 'stdexec::__get_completion_signatures::get_completion_signatures_t': no matching call operator found
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(859): note: could be 'unknown-type stdexec::__get_completion_signatures::get_completion_signatures_t::operator ()(_Sender &&,const _Env &) noexcept const'
ninja: build stopped: subcommand failed.