Auto merge of #60077 - RalfJung:miri-alloc-tests, r=joshtriplett
make liballoc internal test suite mostly pass in Miri
I discovered, to my surprise, that liballoc has two test suites: `liballoc/tests`, and a bunch of stuff embedded directly within liballoc. The latter was not covered by [miri-test-libstd](https://github.com/RalfJung/miri-test-libstd) yet. This disables in Miri the tests that Miri cannot support or runs too slowly.
Auto merge of #60104 - Centril:rollup-7vmae1a, r=Centril
Rollup of 16 pull requests
Successful merges:
- #59915 (Implement event filtering for self-profiler.)
- #59933 (Make clear that format padding doesn't work for Debug)
- #60023 (implement specialized nth_back() for Bytes, Fuse and Enumerate)
- #60032 (Remove unwanted z-index change)
- #60041 (Simplify the returning of a Result a bit)
- #60045 (Suggest appropriate path when calling associated item on bare types)
- #60052 (Correct unused parameter diagnostic)
- #60056 (Update rustfmt to 1.2.1)
- #60060 (whitelist RTM x86 target cpu feature)
- #60061 (Change suggestion of field when not in self context)
- #60064 (Point at try `?` on errors affecting the err match arm of the desugared code)
- #60078 (Use more realistic example for thread builder)
- #60080 (Fix small errors in docs for `rchunks_exact` and `rchunks_exact_mut`.)
- #60082 (Update miri)
- #60097 (Use -mergefunc-use-aliases for any LLVM >= 8)
- #60098 (libcore: deny `elided_lifetimes_in_paths`)
Rollup merge of #60097 - cuviper:llvm8-mergefunc-use-aliases, r=rkruppe
Use -mergefunc-use-aliases for any LLVM >= 8
This functionality is not specific to Rust's LLVM, but any starting in LLVM 8.0,
as noted in <https://github.com/rust-lang/rust/pull/56358#discussion_r237702197>.
Rollup merge of #60060 - mtak-:rtm-x86-feature, r=petrochenkov
whitelist RTM x86 target cpu feature
This PR adds support for intels restricted transactional memory cpu feature. I mostly copied what was done for the [movbe](https://github.com/rust-lang/rust/pull/57999) feature.
Rollup merge of #60045 - estebank:suggest-std, r=petrochenkov
Suggest appropriate path when calling associated item on bare types
When looking at the documentation for `std::f32` or `std::str`, for
example, it is easy to get confused and assume `std::f32` and `f32`
are the same thing. Because of this, it is not uncommon to attempt
writing `f32::consts::PI` instead of the correct
`std::f32::consts::PI`. When encountering the former, which results
in an access error due to it being an inexistent path, try to access
the same path under `std`. If this succeeds, this information is
stored for later tweaking of the final E0599 to provide an
appropriate suggestion.
Rollup merge of #59915 - michaelwoerister:sp-event-filters-1, r=wesleywiser
Implement event filtering for self-profiler.
This is a first sketch for event filtering in the self-profiler, something that we'll want in order to keep profiling overhead low in the common case. The PR contains the commits from https://github.com/rust-lang/rust/pull/59515 and, for the moment, is meant for performance testing.
Suggest appropriate path when calling associated item on bare types
When looking at the documentation for `std::f32` or `std::str`, for
example, it is easy to get confused and assume `std::f32` and `f32`
are the same thing. Because of this, it is not uncommon to attempt
writing `f32::consts::PI` instead of the correct
`std::f32::consts::PI`. When encountering the former, which results
in an access error due to it being an inexistent path, try to access
the same path under `std`. If this succeeds, this information is
stored for later tweaking of the final E0599 to provide an
appropriate suggestion.
This suggestion applies to both E0233 and E0599 and is only checked
when the first ident of a path corresponds to a primitive type.
Rollup merge of #60037 - eddyb:actually-its-param, r=estebank
Resolve inconsistency in error messages between "parameter" and "variable".
The inconsistency was introduced in 104fe1c4db24f860b890dfd25577f23ee111279a (#33619), when a label saying `type variable` was added to an error with a message talking about `type parameters`.
Given that `parameter` is far more prevalent when referring to generics in the context of Rust, IMO it should be that in both the message and the label.
Rollup merge of #59984 - gluyas:collections-with_capacity-doc-fix, r=rkruppe
Remove collection-specific `with_capacity` documentation from `std::collections`
Fixes #59931
The style of `std::collections` module doc is very much a beginner friendly guide, and documenting niche, collection-specific behaviour feels out of place, if not brittle.
The note about `VecDeque` is outdated (see issue), and while `Vec` probably won't change its guarantees any time soon, the users who are interested in its allocation properties will find that in its own documentation.
Auto merge of #59527 - matklad:sized-index, r=Centril
Add test checking that Index<T: ?Sized> works
I've noticed that we have an `Idx: ?Sized` bound on the **index** in the `Index`, which seems strange given that we accept index by value. My guess is that it was meant to be removed in https://github.com/rust-lang/rust/pull/23601, but was overlooked.
If I remove this bound, `./x.py src/libstd/ src/libcore/` passes, which means at least that this is not covered by test.
I think there's three things we can do here:
* run crater with the bound removed to check if there are any regressions, and merge this, to be consistent with other operator traits
* run crater, get regressions, write a test for this with a note that "hey, we tried to fix it, its unfixable"
* decide, in the light of by-value DSTs, that this is a feature rather than a bug, and add a test
cc @rust-lang/libs
EDIT: the forth alternative is that there exist a genuine reason why this is the case, but I failed to see it :D
Auto merge of #60030 - Centril:rollup-3d0t24t, r=Centril
Rollup of 5 pull requests
Successful merges:
- #59128 (Emit ansi color codes in the `rendered` field of json diagnostics)
- #59646 (const fn: Improve wording)
- #59986 (Miri: refactor new allocation tagging)
- #60003 (LLD is not supported on Darwin)
- #60018 (Miri now supports entropy, but is still slow)
Rollup merge of #59986 - RalfJung:miri-new-alloc, r=oli-obk
Miri: refactor new allocation tagging
Tagging and initializing `AllocExtra` now go hand-in-hand so one cannot forget to do one when doing the other. In particular, `memory.allocate` is now much easier to use correctly (because it will already return a tagged pointer).
Auto merge of #60027 - jethrogb:jb/sgx-reentry-abort, r=cramertj
SGX target: change re-entry abort logic
Even though re-entry after exit is generally not acceptable, there is a race condition where the enclave thinks it's exited but userspace doesn't know that yet. An entry during that time will currently result in an enclave panic (see https://github.com/rust-lang/rust/pull/59997#issuecomment-483846291, https://github.com/rust-lang/rust/pull/60003#issuecomment-483888170). Instead of panicking, just do a regular exit on re-entry.