Merged
Conversation
Incremental revisions beginning with `rfail` would cause the incremental test runner to build the test program, expecting success, and then run the test program, expecting failure. Expecting incremental tests to fail at runtime is of questionable utility, because in almost all cases an equivalent test program can be made to succeed at runtime instead. Removing `rfail` support is a small step towards cleaning up compiletest's incremental test runner, and its overall handling of pass/fail expectations. There was one existing regression test using `rfail` revisions: `tests/incremental/issue-80691-bad-eval-cache.rs`. The test code is complex, and reverting the fix in RUST-83220 does not actually cause the test to fail, suggesting that it is no longer a useful regression test. This commit therefore deletes that test.
compiletest: Remove `rfail` support from incremental tests Incremental revisions beginning with `rfail` would cause the incremental test runner to build the test program, expecting success, and then run the test program, expecting failure. Expecting incremental tests to fail at runtime is of questionable utility, because in almost all cases an equivalent test program can be made to succeed at runtime instead. Removing `rfail` support is a small step towards cleaning up compiletest's incremental test runner, and its overall handling of pass/fail expectations. There was one existing regression test using `rfail` revisions: `tests/incremental/issue-80691-bad-eval-cache.rs`. The test code is complex, and reverting the fix in rust-lang/rust#83220 does not actually cause the test to fail, suggesting that it is no longer a useful regression test. This PR therefore deletes that test. (An earlier draft of this PR ported the test to run-make, but now it has been removed entirely.)
Update books ## rust-lang/reference 6 commits in 7446bf9697c95d155eef33c6a9d91fbd29a5e359..d2715c07e9dd9839c0c7675ecfa18bec539a6ee9 2026-03-31 18:18:16 UTC to 2026-03-23 21:49:16 UTC - Guarantee size and alignment of more integer primitives (rust-lang/reference#2205) - [type layout] usize and isize have the same size and alignment (rust-lang/reference#2200) - Update reference for attribute order changes (rust-lang/reference#2213) - Fix note for non_exhaustive enum read (rust-lang/reference#2211) - Update link_name duplicates note (rust-lang/reference#2216) - Note scoping differences between `*x` and `*x.deref()` , and `a[b]` and `*a.index(b)` (rust-lang/reference#2073) ## rust-lang/rust-by-example 8 commits in 5383db524711c0c9c43c3ca9e5e706089672ed6a..b31e3b8da01eeba0460f86a52a55af82709fadf5 2026-04-01 11:59:18 UTC to 2026-03-30 12:17:12 UTC - fix: correct into_iter() example to compile properly (rust-lang/rust-by-example#2001) - fix: correct destruction order comments in Drop TempFile example (rust-lang/rust-by-example#2002) - fix: replace confusing 'module' with 'item' in formatted print docs (rust-lang/rust-by-example#2003) - fix: clarify misleading 'Error' comment in print_display example (rust-lang/rust-by-example#2004) - fix: clarify comment about tuple struct field access in testcase_list (rust-lang/rust-by-example#2005) - fix: correct iter/into_iter type comments in iter_find example (rust-lang/rust-by-example#2006) - fix: replace year-to-days conversion with miles-to-km in newtype example (rust-lang/rust-by-example#2007) - Add a pub use example (rust-lang/rust-by-example#2000)
Rollup of 6 pull requests Successful merges: - rust-lang/rust#154627 (Move `rustc_middle::mir::mono` to `rustc_middle::mono`) - rust-lang/rust#154729 (de-non_const some `Iterator` methods) - rust-lang/rust#154891 (implement `StructuralPartialEq` for `MaybeDangling`) - rust-lang/rust#154894 (Slightly refactor mplace<->ptr conversions) - rust-lang/rust#154751 (compiletest: Remove `rfail` support from incremental tests) - rust-lang/rust#154901 (Update books)
`ty::Alias` refactor
This PR changes the following alias-related types from this:
```rust
pub enum AliasTyKind {
Projection,
Inherent,
Opaque,
Free,
}
pub struct AliasTy<I: Interner> {
pub args: I::GenericArgs,
pub def_id: I::DefId,
}
pub enum TyKind<I: Interner> {
...
Alias(AliasTyKind, AliasTy<I>),
}
```
Into this:
```rust
pub enum AliasTyKind<I: Interner> {
Projection { def_id: I::DefId },
Inherent { def_id: I::DefId },
Opaque { def_id: I::DefId },
Free { def_id: I::DefId },
}
pub struct AliasTy<I: Interner> {
pub args: I::GenericArgs,
pub kind: AliasTyKind<I>,
}
pub enum TyKind<I: Interner> {
...
Alias(AliasTy<I>),
}
```
... and then does a thousand other changes to accommodate for this change everywhere.
This brings us closer to being able to have `AliasTyKind`s which don't require a `DefId` (and thus can be more easily created, etc). Although notably we depend on both `AliasTyKind -> DefId` and `DefId -> AliasTyKind` conversions in a bunch of places still.
r? lcnr
----
A lot of these changes were done either by search & replace (via `ast-grep`) or on auto pilot, so I'm not quite sure I didn't mess up somewhere, but at least tests pass...
…notriddle,GuillaumeGomez Fix no results when searching for == in doc Fixes rust-lang/rust#150921 r? @GuillaumeGomez
…trochenkov Remove `TaggedQueryKey::def_kind` This removes `TaggedQueryKey::def_kind` by accessing the relevant query keys directly.
Split out the creation of `Cycle` to a new `process_cycle` function This splits out the creation of `CycleError` to a new `process_cycle` function. This makes it a bit clearer which operations are done for diagnostic purposes vs. what's needed to break cycles.
Do not attempt generating DllImport for extern types Fixes rust-lang/rust#154111
…arycat Update Fira Mono License Information Update license information for Fira Mono font. The license itself seems to be identical as `FiraSans` license, but didn't reuse it's file as it was explicitly named `FiraSans-LICENSE`. Added a new LICENSE from https://github.com/mozilla/Fira/blob/master/LICENSE and updated `build` and `static` files setup. `./x doc library` worked fine locally and was able to see the mono license being minified and served as well.
…r=Kobzol,jieyouxu bootstrap: minor improvements to download-rustc Split out from rust-lang/rust#154243.
…rouwer Stabilize check-cfg suggestions for symbol When I was working on rust-lang/rust#154794, I found a weird CI fail rust-lang/rust#154794 (comment), I finally found this caused by unstable cfg suggestions by using `FxHashSet`(from PR rust-lang/rust#154777). Because my PR by luck insert a new symbol, which makes the final diagnostic order changed. It's a standalone issue, so it's better to fix in a separate PR.
…rk-Simulacrum Update wasm-component-ld to 0.5.22 Same as rust-lang/rust#147495, just keeping it up-to-date.
Fix pin docs Split a long sentence to improve readability. The original sentence required multiple readings for me to understand as a non-native speaker. The revised version is clearer and more readable, and likely easier for others as well.
…petrochenkov delegation: generate more verbose error delegation After this PR we generate more verbose error delegation including path lowering, as there can be other code in generic args as in rust-lang/rust#154820. Now we access information for delegation lowering through ty-level queries and they require that the code should be lowered, even if it is in unresolved delegation. Fixes rust-lang/rust#154820, part of rust-lang/rust#118212. r? @petrochenkov
GCI: During reachability analysis don't try to evaluate the initializer of overly generic free const items We generally don't want the initializer of free const items to get evaluated if they have any non-lifetime generic parameters. However, while I did account for that in HIR analysis & mono item collection (rust-lang/rust#136168 & rust-lang/rust#136429), I didn't account for reachability analysis so far which means that on main we still evaluate such items if they are *public* for example. The closed PR rust-lang/rust#142293 from a year ago did address that as a byproduct but of course it wasn't merged since its primary goal was misguided. This PR extracts & improves upon the relevant parts of that PR which are necessary to fix said issue. Follow up to rust-lang/rust#136168 & rust-lang/rust#136429. Partially supersedes rust-lang/rust#142293. Part of rust-lang/rust#113521. r? @BoxyUwU
…ts-02, r=Kivooeo
Migrate some tests from `tests/ui/issues` to appropriate directories
The following changes have been made in the pull request:
- `tests/ui/issues/issue-25746-bool-transmute.rs` ➝ `tests/ui/transmute/transmute-bool-u8.rs`
- `tests/ui/issues/issue-32377.{rs,stderr}` ➝ `tests/ui/intrinsics/transmute-phantomdata-generic-unequal-size.{rs,stderr}`
The issue links have also been added at the top of each `.rs` file.
r? Kivooeo
Use a different name for fast try builds Based on discussion in https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/try.20build.20that.20includes.20Miri.3F/with/581602033.
…ent-order, r=jhpratt coretests: add argument order regression tests for min_by/max_by/minmax_by PR rust-lang/rust#136307 introduced a regression in min_by, max_by, and minmax_by: the compare closure received arguments as (v2, v1) instead of (v1, v2), contrary to the documented contract. Although this was fixed in rust-lang/rust#139357, no regression tests were added. This PR adds regression tests for all three functions, verifying that compare always receives arguments in the documented order (v1, v2). As a bonus: first coretests coverage for minmax_by.
Add more info about where autodiff can be applied It's taken quite a few years, but we finally have a PR open to distribute Enzyme: rust-lang/rust#154754 I therefore went over the docs once more and noticed we don't explain a lot of the most basic features, which we added over the years and have since taken for granted. @Sa4dUs, do you think there are more interesting cases that we are missing? Generally, there's still a lot of complexity in it, especially for people who haven't used Enzyme before. To some extent, that's just a result of my general design goal to expose all performance-relevant features of Enzyme, and let users explore nice abstractions on top if it, via crates. Since we don't have those nightly users yet, users haven't had time to build nicer abstractions on top of it. I also feel like a more guided book would be a better first introduction to Enzyme, but for now I just focused on the list of features. r? @oli-obk
Post-attribute ports cleanup pt. 1 r? @jdonszelmann This cleans up some checks I could find were for non-parsed attributes, and works towards removing BUILTIN_ATTRIBUTES All commits do one thing and every commit passes tests, so best reviewed commit by commit
constify `Step for NonZero<u*>` Tracking Issue: rust-lang/rust#42168 I missed the constification of `Step for NonZero<u*>` in the recent rust-lang/rust#153821, so here they are. Had to constify the `Clone` / `TrivialClone` impls along the way rust-lang/rust#142757 .
library: std: motor: use OS' process::exit in abort_internal abort_internal() is used in panics; if it calls core::intrinsics::abort(), the process triggers an invalid op code (on x86_64), which is a much harder "abort" than a user-controlled exit via a panic. Most other OSes don't use core::intrinsics::abort() here, but either libc::abort(), or a native OS abort/exit API.
…r=Kivooeo add regression test for #146514 Fixes: rust-lang/rust#146514
c-b: Export inverse hyperbolic trigonometric functions
Since a1feab16381b ("Use libm for acosh and asinh"), the standard library may link these functions to get a more accurate approximation; however, some targets do not have the needed symbols available. Add them to the compiler-builtins export list to make sure the fallback is usable.
Closes: rust-lang/rust#154919
…chenkov delegation(small cleanup): remove not needed PhantomData r? @petrochenkov
library: no `cfg(target_arch)` on scalable intrinsics These intrinsics don't technically need to be limited to a specific architecture, they'll probably only make sense to use on AArch64, but this just makes it harder to use them in stdarch where it is appropriate (such as on `arm64ec`): requiring a rustc patch to land and be on nightly before stdarch work can proceed. So let's just not `cfg` them at all, they're perma-unstable anyway. Fixes CI failure in rust-lang/stdarch#2071
Update cargo submodule 15 commits in 888f675344eb1cf2308fd53183e667bdd2c58e51..a357df4c26fc14514e66aae2a269456b5545c7db 2026-03-30 16:59:25 +0000 to 2026-04-03 16:47:15 +0000 - chore: downgrade to libz-sys@1.1.24 (rust-lang/cargo#16833) - feat: add frame-pointers profile option (rust-lang/cargo#16742) - upgrade to gix@0.81.0 (rust-lang/cargo#16828) - refactor(network): use async for registry network operations (rust-lang/cargo#16745) - fix(compile): Don't hide hard warnings with build.warnings=allow (rust-lang/cargo#16827) - chore: Upgrade incompatible dependencies (rust-lang/cargo#16825) - fix(compile): build.warnings=allow should not hide denied diagnostics (rust-lang/cargo#16824) - fix(install): Ignore resolver.lockfile-path (rust-lang/cargo#16823) - chore(deps): update compatible (rust-lang/cargo#16820) - refactor(compile): Consolidate output options (rust-lang/cargo#16821) - refactor: Export public dependencies from internal crates (rust-lang/cargo#16819) - refactor(progress): Make the code more approachable (rust-lang/cargo#16813) - Simplified build script bin names in new layout (rust-lang/cargo#16812) - fix: set CARGO env var during rustc -vV probe (rust-lang/cargo#16811) - Split out `cargo-util-terminal` (rust-lang/cargo#16809)
…uwer Rollup of 22 pull requests Successful merges: - rust-lang/rust#150965 (Fix no results when searching for == in doc) - rust-lang/rust#153999 (Remove `TaggedQueryKey::def_kind`) - rust-lang/rust#154146 (Split out the creation of `Cycle` to a new `process_cycle` function) - rust-lang/rust#154147 (Do not attempt generating DllImport for extern types) - rust-lang/rust#154812 (Update Fira Mono License Information) - rust-lang/rust#154880 (bootstrap: minor improvements to download-rustc) - rust-lang/rust#154886 (Stabilize check-cfg suggestions for symbol) - rust-lang/rust#154889 (Update wasm-component-ld to 0.5.22) - rust-lang/rust#154928 (Fix pin docs) - rust-lang/rust#154942 (delegation: generate more verbose error delegation) - rust-lang/rust#153269 (GCI: During reachability analysis don't try to evaluate the initializer of overly generic free const items) - rust-lang/rust#154506 (Migrate some tests from `tests/ui/issues` to appropriate directories) - rust-lang/rust#154673 (Use a different name for fast try builds) - rust-lang/rust#154761 (coretests: add argument order regression tests for min_by/max_by/minmax_by) - rust-lang/rust#154795 (Add more info about where autodiff can be applied) - rust-lang/rust#154808 (Post-attribute ports cleanup pt. 1) - rust-lang/rust#154825 (constify `Step for NonZero<u*>`) - rust-lang/rust#154837 (library: std: motor: use OS' process::exit in abort_internal) - rust-lang/rust#154866 (add regression test for rust-lang/rust#146514) - rust-lang/rust#154922 (c-b: Export inverse hyperbolic trigonometric functions) - rust-lang/rust#154931 (delegation(small cleanup): remove not needed PhantomData) - rust-lang/rust#154950 (library: no `cfg(target_arch)` on scalable intrinsics)
Store `chunk_domain_size` explicitly in `Chunk`. Currently we compute it on demand, but it's a little simpler and slightly faster to store it. r? @ghost
Explicitly forget the zero remaining elements in `vec::IntoIter::fold()`. [Original description:] ~~This seems to help LLVM notice that dropping the elements in the destructor of `IntoIter` is not necessary. In cases it doesn’t help, it should be cheap since it is just one assignment.~~ This PR adds a function to `vec::IntoIter()` which is used used by `fold()` and `spec_extend()`, when those operations complete, to forget the zero remaining elements and only deallocate the allocation, ensuring that there will never be a useless loop to drop zero remaining elements when the iterator is dropped. This is my first ever attempt at this kind of codegen micro-optimization in the standard library, so please let me know what should go into the PR or what sort of additional systematic testing might indicate this is a good or bad idea.
This updates the rust-version file to 30d0309fa821f7a0984a9629e0d227ca3c0d2eda.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@30d0309 Filtered ref: 8572b41 Upstream diff: rust-lang/rust@9602bda...30d0309 This merge was created using https://github.com/rust-lang/josh-sync.
Collaborator
|
Thanks for the PR. If you have write access, feel free to merge this PR if it does not need reviews. You can request a review using |
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.
Latest update from rustc.