rustc: rename ty::maps to ty::query.
Should've never been `maps` but "query system/engine" didn't fully settle from the start.
r? @michaelwoerister or @nikomatsakis
Speed up obligation forest code
Here are the rustc-perf benchmarks that get at least a 1% speedup on one or more of their runs with these patches applied:
```
inflate-check
avg: -8.7% min: -12.1% max: 0.0%
inflate
avg: -5.9% min: -8.6% max: 1.1%
inflate-opt
avg: -1.5% min: -2.0% max: -0.3%
clap-rs-check
avg: -0.6% min: -1.9% max: 0.5%
coercions
avg: -0.2%? min: -1.3%? max: 0.6%?
serde-opt
avg: -0.6% min: -1.0% max: 0.1%
coercions-check
avg: -0.4%? min: -1.0%? max: -0.0%?
```
Refactor: Rename ExistentialPredicate::cmp to ExistentialPredicate::stable_cmp
See https://github.com/rust-lang/rust/pull/51276#discussion_r193549404 for
rationale.
Because stable_cmp takes three arguments and Ord::cmp takes two, I am confident that there is no shadowing happening here.
r? @nikomatsakis
Fix the recent spurious breakage on AppVeyor.
Fixed the spurious error introduced by d2b5b7603b due to a wrongly resolved relative path on AppVeyor.
This only starts to happen today because we just entered the last week of the 6-week cycle.
Removed various update-reference and update-all-references scripts
A PR that addresses #50853 changes that made `update-reference` and `update-all-references` scripts obsolete.
Improve core::task::TaskObj
- Rename `UnsafePoll` to `UnsafeTask` to avoid confusion with `Poll`
- Rename `TaskObj::from_poll_task()` to `TaskObj::new()`
- Rename `TaskObj`'s `poll` and `drop` fields to `poll_fn` and `drop_fn`
- Implement `Future` for `TaskObj`. Reason: It's a custom trait object for a future, so it should implement future
- Remove `unsafe impl Sync` for `TaskObj`. I don't think we need it. Was this safe? `UnsafeTask` only requires to implement `Send`
@cramertj
@aturon
Don't auto-hide inherent impls even if `rustdoc-collapse == true`.
This PR changes the auto-collapse behavior when a page is first loaded:
* Inherent impls will never be collapsed by default (new behavior).
* Trait impls will always be collapsed by default, same as before.
* Other items are collapsed according to localStorage, same as before.
This should be much more useful since there is no hint what the content of a collapsed inherent impl would be (try to collapse everything in https://doc.rust-lang.org/std/vec/struct.Vec.html and guess where a method like `try_reserve` or `splice` would be).
Manually clicking the global [-]/[+] will still collapse/expand everything.
Replace `core::iter::AlwaysOk<T>` by `Result<T, !>`
#43278 has been fixed, so we don't need this struct anymore.
(Actually we don't even need `.unwrap()` thanks to `#![feature(exhaustive_patterns)]`)
Make parse_seq_to_end and parse_path public
(see SergioBenitez/Rocket#660, rust-lang/rust#51265)
Rocket currently uses `parse_seq_to_end` and `parse_path` in its codegen macros. Assuming I tested correctly, this is the minimal set of methods that are currently necessary to build Rocket again. I would be happy to add documentation of this and Rocket's other usages, if desired.
Fix for $crate var normalization in proc macro for externally defined macros
Fixes#51331, a bug that has existed in at least *some* form for a year and a half.
The PR includes the addition of a `fold_qpath` method to `syntax::fold::Folder`. Overriding this method is useful for folds that modify paths in a way that invalidates indices (insertion or removal of a component), as it provides the opportunity to update `qself.position` in `<A as B>::C` paths. I added it because the bugfix is messy without it.
(unfortunately, grepping around the codebase, I did not see anything else that could use it.)
Make span_fatal and parse_block public
span_fatal and parse_block were made private in #51265. These methods are used in stainless.
Related #51498#51504