Emit StorageDead along unwind paths for generators
Completion of the work done in #60840. That PR made a change to implicitly consider a local `StorageDead` after Drop, but that was incorrect for DropAndReplace (see also #61060 which tried to fix this in a different way).
This finally enables the optimization implemented in #60187.
r? @eddyb
cc @Zoxc @cramertj @RalfJung
Implementation of RFC 2289 (associated_type_bounds)
This PR implements the [`asociated_type_bounds` feature](https://github.com/rust-lang/rfcs/blob/master/text/2289-associated-type-bounds.md).
Associated type bounds are implemented in:
- function/method arguments and return types
- structs, enums, unions
- associated items in traits
- type aliases
- type parameter defaults
- trait objects
- let bindings
CC @nikomatsakis @centril
Also removes stage1, stage2 cfgs being passed to rustc to ensure that
stage1 and stage2 are only differentiated as a group (i.e., only through
not bootstrap).
The proper name of the library is `annotate-snippet`, not `annotate-rs`,
this commit should get rid of any confusing `AnnotateRs` names.
1. Renames `annotate_rs_emitter.rs` to
`annotate_snippet_emitter_writer.rs` so that the difference between the
`Emitter` trait and the implementers is more clear.
2. Renames `AnnotateRsEmitterWriter` to `AnnotateSnippetEmitterWriter`
3. Renames `HumanReadableErrorType::AnnotateRs` to `HumanReadableErrorType::AnnotateSnippet`
Currently `rustfmt` is excluded from the "don't build dependencies
twice" check but it's currently building dependencies twice! Namely big
dependencies like `rustc-ap-syntax` are built once for rustfmt and once
for the RLS. This commit includes `rustfmt` in these checks and then
fixes the resulting feature mismatches for winapi.
Rollup of 5 pull requests
Successful merges:
- #61503 (Fix cfg(test) build for x86_64-fortanix-unknown-sgx)
- #61534 (Edit docs of ExitStatus)
- #61536 (Don't allow using const fn arguments as "args_required_const")
- #61538 (Don't use GNU noexec stack note)
- #61546 (azure: Fix some minor issues which have broken our configuration )
Failed merges:
r? @ghost
azure: Fix some minor issues which have broken our configuration
* Ensure that when we enable IPv6 for Docker on Linux that the various directories before writing a config file
* Delete a previously installed rustup if any since it seems to interfere with Cargo's test suite.
Add "type_name" support in emulate_intrinsic()
I did some dumb Git things and deleted my original fork repo semi-accidentally (but probably for the best as I'd messed up the history.)
This is the same issue as #61399, which was obviously auto-closed, to be clear.
Looks like Azure has updated images recently to install Rust by default,
but that can interfere with our own compiler (for example Cargo's test
suite we think) so be sure to uninstall it before proceeding.