Rollup of 8 pull requests - #161031
Open
jhpratt wants to merge 21 commits into
Open
Conversation
multiple `FulfillmentErrorCode::Ambiguity` obligations on the same inference variable only ever reported the first — the rest got dropped after `set_tainted_by_errors` fired. grouped them by sub-unification-table root and fold Trait/Projection predicates from the group into notes on the primary. uses the sub root not the raw TyVid so variables unified by a pending Coerce obligation correctly land in the same group. fixes rust-lang#103911
Currently it will always load proc-macros for the host. In the future it may also start loading wasm proc-macros. This way rust-analyzer doesn't have to pick between both options itself.
an error pointing at a different expression labels that expression and suggests how to annotate it, and a note on the merged diagnostic carries none of that, so it kept getting dropped. such errors are reported on their own again, and the bounds behind the errors that do get merged are now explained on the merged diagnostic.
Variadic alternatives to `min` and `max` using `splat`.
The function can check `cfg!(test)` internally, without needing any macro magic. This lets us remove a crate-root definition and a `#[macro_export]`.
…, r=khyperia merge ambiguity errors that blame the same inference variable multiple `FulfillmentErrorCode::Ambiguity` obligations on the same inference variable only ever reported the first. the rest got dropped after `set_tainted_by_errors` fired. grouped them by sub-unification-table root and fold Trait/Projection predicates from the group into notes on the primary. uses the sub root not the raw TyVid so variables unified by a pending Coerce obligation correctly land in the same group. fixes rust-lang#103911 r? @lcnr
…_max, r=nia-e Experiment: Add `core::cmp::smallest` and `core::cmp::largest` Tracking Issue: rust-lang#160728 Zulip: [#t-libs-api/api-changes > variadic min/max](https://rust-lang.zulipchat.com/#narrow/channel/327149-t-libs-api.2Fapi-changes/topic/variadic.20min.2Fmax/with/570428142) # Description Adds variadic alternatives to `cmp::min` and `cmp::max` which use `#[rustc_splat]` to allow anywhere from 1 to 12 arguments to be compared. Twelve chosen as an arbitrary limit. This doesn't have a pre-existing ACP or tracking issue (linking the `splat` issue since it's the most relevant), so I've added these two functions, `smallest` and `largest` under a new feature, `cmp_splat`. This mostly exists to demonstrate a possible solution to the problem posited in the linked Zulip thread. Happy to close if undesirable, as my current focus is on `no_std` I/O.
…h-err, r=lcnr Replace infers and non-rigid aliases with `Ty/Const::Error` if param env normalization fails Fixes rust-lang#160196 Fixes rust-lang#148630 Previously we use unnormalized param env if we fail to normalize it. This causes problem for places which expect normalized param env, like in lexical region solving. I also sneak in a one-line change that we resolve regions with normalized param env in param env normalization now. This fixes ICEs in `polkadot` and `zerocopy` which had non-rigid const aliases in type outlive env before. I can split it into another PR if that's preferred. r? lcnr
bootstrap: Overhaul matching of command-line selectors to steps The existing bootstrap code for matching command-line selectors (paths) to steps has to jump through hoops to reconstruct the relative order of command-line arguments, and to keep track of which selectors didn't end up matching any steps. It also makes an awkward distinction between test-suite paths and other kinds of path/alias. We can simplify the matching process by iterating over the command-line selectors in an outer loop, and retaining that ordering in the resulting collection of work items as much as possible. Specifically, we keep an ordered list of steps to run, and an ordered list of selected anchors to pass to each step. After deduplicating those lists, the resulting run order is mostly consistent with command-line order, while batching each step's work as much as possible. --- This new implementation should give *mostly* the same outcomes as the previous implementation, with a few known differences: - The order of selected anchors passed to each step is *more* consistent with command-line order in some cases (e.g. see the core+alloc+stdarch snapshot test). - Test-suite paths are no longer processed in a separate earlier pass, so invocations like `./x test compiler ui` will now run the compiler-crate unit tests before the UI tests. - If multiple test paths are passed for the same test suite, snapshot tests no longer see multiple invocations of the underlying test step. (Step-caching would already prevent the duplicate invocations from actually running.) --- There are further tweaks or enhancements that could be made, but I decided to stop here to stick to preserve existing behaviour as much as possible, outside of the differences that naturally fall out of the simpler implementation.
…rk-Simulacrum Remove target argument from get_proc_macros Currently it will always load proc-macros for the host. In the future it may also start loading wasm proc-macros. This way rust-analyzer doesn't have to pick between both options itself. Part of rust-lang#160389
…clubby789 bootstrap: Replace the `exit!` macro with a function `helpers::exit_process` The function can check `cfg!(test)` internally, without needing any macro magic. This lets us remove a crate-root definition and a `#[macro_export]`.
Make tidy::Version public
The tidy library in `src/tools/tidy` is used to implement the `tidy` tool, but is also used by other in-tree crates like `feature-status-dump` to analyze which features are defined in the project. This PR makes the `Version` struct public. This has the effect of being able to construct a version using `Version::from_str("1.80.0").unwrap()`. This can then be used to compare (via the already implemented PartialEq trait) the version where a feature was introduced against a user-provided value, rather than only against other features' versions.
I would like this change because I am working on a tool to filter features for several metrics (stability, first version, activity of tracking issue, etc) to help find abandoned features that need someone to push to stabilize them.
This is my first PR here. I hope it is welcome.
mailmap: Update my default email
Member
Author
Contributor
This comment has been minimized.
This comment has been minimized.
rust-bors Bot
pushed a commit
that referenced
this pull request
Aug 13, 2026
Rollup of 8 pull requests try-job: dist-various-1 try-job: test-various try-job: x86_64-gnu-aux try-job: x86_64-gnu-llvm-21-3 try-job: x86_64-msvc-1 try-job: aarch64-apple-* try-job: x86_64-mingw-1 try-job: i686-msvc-*
Contributor
|
⌛ Testing commit 5a3fcad with merge ba28ff7... Workflow: https://github.com/rust-lang/rust/actions/runs/31690970305 |
rust-bors Bot
pushed a commit
that referenced
this pull request
Aug 13, 2026
Rollup of 8 pull requests Successful merges: - #159593 (merge ambiguity errors that blame the same inference variable) - #160687 (Experiment: Add `core::cmp::smallest` and `core::cmp::largest`) - #160856 (Replace infers and non-rigid aliases with `Ty/Const::Error` if param env normalization fails) - #160961 (bootstrap: Overhaul matching of command-line selectors to steps) - #160975 (Remove target argument from get_proc_macros) - #161023 (bootstrap: Replace the `exit!` macro with a function `helpers::exit_process`) - #160932 (Make tidy::Version public) - #161029 (mailmap: Update my default email)
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Successful merges:
core::cmp::smallestandcore::cmp::largest#160687 (Experiment: Addcore::cmp::smallestandcore::cmp::largest)Ty/Const::Errorif param env normalization fails #160856 (Replace infers and non-rigid aliases withTy/Const::Errorif param env normalization fails)exit!macro with a functionhelpers::exit_process#161023 (bootstrap: Replace theexit!macro with a functionhelpers::exit_process)r? @ghost
Create a similar rollup