Open
Description
[exec.let] para 13 reads:
- Let
sndr
andenv
be subexpressions, and letSndr
bedecltype((sndr))
. Ifsender-for<Sndr, decayed-typeof<let-cpo>>
isfalse
, then the expressionlet-cpo.transform_env(sndr, env)
is ill-formed. Otherwise, it is equal toJOIN-ENV(let-env(sndr), FWD-ENV(env))
.
the sender passed to let-env
here should be the child of sndr
.
Proposed resolution
Change [exec.let] para 13 as follows:
13. Let sndr and env be subexpressions, and let Sndr be decltype((sndr)). If
sender-for<Sndr, decayed-typeof<let-cpo>> is false, then the expression
let-cpo.transform_env(sndr, env) is ill-formed. Otherwise, it is equal to
- JOIN-ENV(let-env(sndr), FWD-ENV(env)).
+
+ auto& [_, _, child] = sndr;
+ return JOIN-ENV(let-env(child), FWD-ENV(env));