diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2021-12-11 17:35:27 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-11 17:35:27 +0100 |
| commit | ed81098fcca409261db3408115725d07729ac39a (patch) | |
| tree | f24f94686d343aea73170bbead142b770da14f74 /compiler/rustc_codegen_llvm/src | |
| parent | 60b9f3130d1e41cf6c53ea8159ac44457ea8fe04 (diff) | |
| parent | 67ab53daee2fd42a8ae643225acfc7c7c074e0f7 (diff) | |
| download | rust-ed81098fcca409261db3408115725d07729ac39a.tar.gz rust-ed81098fcca409261db3408115725d07729ac39a.zip | |
Rollup merge of #91721 - danielhenrymantilla:patch-1, r=joshtriplett
Minor improvements to `future::join!`'s implementation This is a follow-up from #91645, regarding [some remarks I made](https://rust-lang.zulipchat.com/#narrow/stream/187312-wg-async-foundations/topic/join!/near/264293660). Mainly: - it hides the recursive munching through a private `macro`, to avoid leaking such details (a corollary is getting rid of the need to use ``@`` to disambiguate); - it uses a `match` binding, _outside_ the `async move` block, to better match the semantics from function-like syntax; - it pre-pins the future before calling into `poll_fn`, since `poll_fn`, alone, cannot guarantee that its capture does not move (to clarify: I believe the previous code was sound, thanks to the outer layer of `async`. But I find it clearer / more robust to refactorings this way 🙂). - it uses `@ibraheemdev's` very neat `.ready()?`; - it renames `Took` to `Taken` for consistency with `Done` (tiny nit 😄). ~~TODO~~Done: - [x] Add unit tests to enforce the function-like `:value` semantics are respected. r? `@nrc`
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
