rust/src/tools
bors f967532a47 Auto merge of #118420 - compiler-errors:async-gen, r=eholk
Introduce support for `async gen` blocks

I'm delighted to demonstrate that `async gen` block are not very difficult to support. They're simply coroutines that yield `Poll<Option<T>>` and return `()`.

**This PR is WIP and in draft mode for now** -- I'm mostly putting it up to show folks that it's possible. This PR needs a lang-team experiment associated with it or possible an RFC, since I don't think it falls under the jurisdiction of the `gen` RFC that was recently authored by oli (https://github.com/rust-lang/rfcs/pull/3513, https://github.com/rust-lang/rust/issues/117078).

### Technical note on the pre-generator-transform yield type:

The reason that the underlying coroutines yield `Poll<Option<T>>` and not `Poll<T>` (which would make more sense, IMO, for the pre-transformed coroutine), is because the `TransformVisitor` that is used to turn coroutines into built-in state machine functions would have to destructure and reconstruct the latter into the former, which requires at least inserting a new basic block (for a `switchInt` terminator, to match on the `Poll` discriminant).

This does mean that the desugaring (at the `rustc_ast_lowering` level) of `async gen` blocks is a bit more involved. However, since we already need to intercept both `.await` and `yield` operators, I don't consider it much of a technical burden.

r? `@ghost`
2023-12-08 19:13:57 +00:00
..
build-manifest Add riscv32 imafc bare metal target 2023-12-05 11:05:52 +00:00
build_helper rename github_repository to git_repository 2023-11-06 15:53:32 +01:00
bump-stage0 Upgrade to indexmap 2.0.0 2023-07-03 13:51:54 -07:00
cargo@9787229614 Update cargo 2023-12-05 23:39:30 -05:00
cargotest Don't ask for a specific branch in cargotest 2023-12-04 12:11:44 +02:00
clippy Auto merge of #118420 - compiler-errors:async-gen, r=eholk 2023-12-08 19:13:57 +00:00
collect-license-metadata Re-format let-else per rustfmt update 2023-07-12 21:49:27 -04:00
compiletest also print 'immutable' flag 2023-12-07 17:46:36 +01:00
coverage-dump Add tool src/tools/coverage-dump for use by some new coverage tests 2023-09-05 11:11:48 +10:00
error_index_generator rustc_log: provide a way to init logging based on the values, not names, of the env vars 2023-11-11 15:24:33 +01:00
expand-yaml-anchors
generate-copyright
generate-windows-sys Update windows-bindgen 2023-11-17 12:18:04 +00:00
html-checker
jsondocck jsondocck: bump jsonpath to 0.3, dropping few dup dependencies 2023-11-18 12:56:54 +03:00
jsondoclint rustdoc: Rename typedef to type alias in jsondoclint 2023-08-23 11:47:35 -07:00
linkchecker linkchecker: Remove unneeded FIXME about intra-doc links 2023-08-06 13:28:43 +02:00
lint-docs Revert "Fix x test lint-docs when download-rustc is enabled" 2023-07-11 22:30:28 -05:00
lld-wrapper linker: Remove -Zgcc-ld option 2023-10-08 10:05:25 +03:00
miri Auto merge of #118568 - DianQK:no-builtins-symbols, r=pnkfelix 2023-12-07 20:31:55 +00:00
miropt-test-tools Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
opt-dist Partial Revert: "Auto merge of #117018 - Kobzol:opt-dist-cargo-stage0" 2023-10-23 16:10:52 +02:00
remote-test-client
remote-test-server
replace-version-placeholder
rls Don't use serde-derive in the rls shim 2023-07-10 14:53:57 -07:00
rust-analyzer Rollup merge of #118123 - RalfJung:internal-lib-features, r=compiler-errors 2023-12-05 14:52:41 -05:00
rust-demangler
rust-installer bump some deps 2023-11-07 15:33:59 +03:00
rustbook
rustdoc
rustdoc-gui Improve display of parallel jobs in rustdoc-gui tester script 2023-10-16 20:16:08 +02:00
rustdoc-gui-test Make try_run return a Result<(), ()> instead of a boolean 2023-06-23 17:07:34 +02:00
rustdoc-js rustdoc-search: add support for associated types 2023-11-19 18:54:36 -07:00
rustdoc-themes Ensure build/tmp exists in rustdoc_themes::get_themes 2023-09-20 08:31:33 +02:00
rustfmt Auto merge of #118420 - compiler-errors:async-gen, r=eholk 2023-12-08 19:13:57 +00:00
suggest-tests Add test suggestions for mir-opt and coverage 2023-11-16 14:02:51 +11:00
tidy Auto merge of #117072 - betrusted-io:unwinding-crate-support, r=cuviper 2023-12-06 02:23:01 +00:00
tier-check
unicode-table-generator
unstable-book-gen
x
cherry-pick.sh
publish_toolstate.py Apply changes to fix python linting errors 2023-06-16 20:56:01 -04:00