Use updated indexes to build reverse map for delegation generics
Fixesrust-lang/rust#150673.
This was a bug that built the `param_def_id_to_index` map with indexes before the new generics were renumbered.
r? @petrochenkov
rustc_parse_format: improve diagnostics for unsupported python numeric grouping
Detect Python-style numeric grouping syntax in format strings (e.g. `{x:,}`)
and emit a clear diagnostic explaining that it is not supported in Rust.
This helps users coming from Python understand the error without exposing
the full set of valid Rust format specifiers.
Use a hook to decouple `rustc_mir_transform` from `rustc_mir_build`
I noticed that the only point of direct contact between the `rustc_mir_transform` and `rustc_mir_build` crates is a single `build_mir` function, which could easily be changed to a hook function instead.
By making that function a hook, we can make `rustc_mir_transform` no longer have a dependency on `rustc_mir_build`, allowing them to be built/rebuilt independently. That should hopefully allow slightly more parallelism in clean builds and incremental rebuilds of the compiler.
I don't think it is necessary anymore. As I understand it from issue
39504 the original problem was that rustbuild changed a hardlink in the
cargo build dir to point to copy in the sysroot while cargo may have
hardlinked it to the original first. I don't think this happens anymore
and as such this workaround is no longer necessary.
Move can be used only when both the compared operand and the operand on switch are move operands.
This commit directly changes to Copy, because I don't know if Move has beneficial.
Use the old homu bors e-mail address again
Now that new bors knows how to use the old homu e-mail address (https://github.com/rust-lang/bors/pull/614), we can revert to the old address. I modified the code to keep compatibility with both addresses, so that everything should still work for every merged commit in the past few days. In a few weeks/months, we could remove the temporary bors e-mail address, as at that point no one will likely care about these few merged commits anymore.
Should not be merged until https://github.com/rust-lang/bors/pull/614 is deployed, although the current version in `main` should already mostly work with both addresses, except for CI postprocessing statistics.
Should be backported.
Removes the double subject "it" in the safety documentation of
`core::ptr::split_at_mut` for raw slice pointers, as it does not refer
to anything.
Reported-by: Johnathan Van Why <jrvanwhy@betterbytes.org>
build-manifest: Add `rust-mingw` also as extension for "pc-windows-gnu" hosts.
This should enable `rustup component add --target aarch64-pc-windows-gnullvm rust-mingw` when running an `x86_64-pc-windows-gnullvm` toolchain (and vice-versa).
Which itself enables proper cross-compiling of Windows ARM64 binaries on a Windows x64 host without using commercial MSVC.
CC @mati865
Rollup of 9 pull requests
Successful merges:
- rust-lang/rust#147938 (Add const cloning of slices and tests)
- rust-lang/rust#149718 (Add freeze file times on Windows)
- rust-lang/rust#150438 (Remove mentions of debootstrap and chroots from the m68k-unknown-none-elf platform support doc)
- rust-lang/rust#150790 (feat: invisible character help string)
- rust-lang/rust#150906 (Simplify `#[eii]` macro using methods on ecx)
- rust-lang/rust#150938 (Port `#[collapse_debuginfo]` to the new attribute parsing system)
- rust-lang/rust#150953 (std: sys: fs: uefi: Implement copy)
- rust-lang/rust#150964 (Completely list all unparsed attributes)
- rust-lang/rust#150975 (ui: add test for normalizing const projections with assoc const equality)
Failed merges:
- rust-lang/rust#150972 (Rename EII attributes slightly (being consistent in naming things foreign items, not extern items))
r? @ghost
The read and read_vectored methods were returning the length of the
input buffer, rather than the number of bytes actually read. Fix by
changing read_inner to return the correct value, and have both read and
read_vectored return that.
ui: add test for normalizing const projections with assoc const equality
This adds a UI test to associated-const-bindings (created new) directory to ensure that constant projections with associated const equality bounds are correctly normalized.
File added:
- `tests/ui/const-generics/associated-const-bindings/normalization-via-param-env.rs`
r? @fmease
r? @camelid
Fixesrust-lang/rust#120905
std: sys: fs: uefi: Implement copy
- Using the implementation from sys::fs::common since ther is no built-in copy implementation in UEFI.
- Tested with OVMF on QEMU.
@rustbot label +O-UEFI
Port `#[collapse_debuginfo]` to the new attribute parsing system
Tracking issue: https://github.com/rust-lang/rust/issues/131229
Felt like doing one again, has been a while :3
r? @jdonszelmann
feat: invisible character help string
I was playing around with zero width spaces in different programming languages and thought that this error message could be more helpful. Hopefully it's a good first contribution! :)
Remove mentions of debootstrap and chroots from the m68k-unknown-none-elf platform support doc
I left the mentions of qemu-user-static as it's one of the only easily accessible emulators for m68k, even though you would have to write your own `_start` and such. The C toolchain that is mentioned is also the easiest way I've found so far to get a linker, which is still needed unless I'm missing something.
closesrust-lang/rust#150414
r? @Noratrieb
- Remove the vacuous `Types`, which provides extremely little value.
- Make sure `src` comes before `dst` in all transmute-related functions.
(Currently it's a mix: sometimes `src` is first, sometimes it is
second`.)
Because these folders only change regions.
Note: `BottomUpFolder` folds all regions, while `fold_regions` skips
some bound regions. But that's ok because these two folders only modify
`ReVar`s.
resolve: Use `Macros20NormalizedIdent` in more interfaces
It allows to avoid expensive double normalization in some cases.
This is an attempt to fix the perf regressions from https://github.com/rust-lang/rust/pull/149681.
Detect Python-style numeric grouping syntax in format strings (e.g. `{x:,}`)
and emit a clear diagnostic explaining that it is not supported in Rust.
This helps users coming from Python understand the error without exposing
the full set of valid Rust format specifiers.
Signed-off-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
Update cargo submodule
5 commits in 8c133afcd5e0d69932fe11f5907683723f8d361d..6d1bd93c47f059ec1344cb31e68a2fb284cbc6b1
2026-01-09 03:50:15 +0000 to 2026-01-10 12:53:59 +0000
- fix: preserve `dep_name` for build script metadata (rust-lang/cargo#16494)
- refactor(toml): clarify `to_dependency` for config patch (rust-lang/cargo#16492)
- Add `--id` flag to `cargo report timings` and `cargo report rebuilds` (rust-lang/cargo#16490)
- Display lockfile path in very verbose mode when blocking (rust-lang/cargo#16491)
- fix(info): resolve underscore vs hyphen mismatch in schema lookup (rust-lang/cargo#16455)
---
An extra submodule update right after <https://github.com/rust-lang/rust/pull/150739> due to a relatively impactful nightly regression <https://github.com/rust-lang/cargo/issues/16493>