304038 Commits

Author SHA1 Message Date
Michael Goulet
e4557f0ea4 Use unnamed lifetime spans as primary spans for MISMATCHED_LIFETIME_SYNTAXES 2025-08-23 22:11:43 +00:00
Urgau
1da4959e54 Prefer verbose suggestions for integer_to_ptr_transmutes lint 2025-08-24 00:03:54 +02:00
Urgau
02a67cc4a5 Adjust clippy lints for rustc integer_to_ptr_transmutes lint 2025-08-24 00:03:54 +02:00
Urgau
3c664785c1 Allow integer_to_ptr_transmutes in tests 2025-08-24 00:03:54 +02:00
Urgau
f25bf37f1f Allow integer_to_ptr_transmutes in core 2025-08-24 00:03:54 +02:00
Urgau
d4cbd9a440 Add lint against integer to pointer transmutes 2025-08-24 00:03:53 +02:00
Havard Eidnes
3a2392bb08 bootstrap.py: follow up tidy output from CI.
I thought tidy would be more allergic to 80-coloumn overflow,
but so be it.
2025-08-23 21:40:19 +00:00
Ada Alakbarova
399f5e244c
std/src/lib.rs: mention "search button" instead of "search bar" 2025-08-23 23:05:30 +02:00
Samuel Tardieu
4d38062da1
Rollup merge of #145791 - samueltardieu:fix-zst-to-enum-mir-validation, r=compiler-errors
Fix ICE when validating transmuting ZST to inhabited enum

MIR validation attempts to determine the number of bytes needed to represent the size of the source type to compute the discriminant for the inhabited target enum. For a ZST source, there is no source data to use as a discriminant so no proper runtime check can be generated.

Since that should never be possible, insert a delayed bug to ensure the problem has been properly reported to the user by the type checker.

Fixes rust-lang/rust#145786
2025-08-23 22:22:22 +02:00
Samuel Tardieu
a1cdd14062
Rollup merge of #145787 - samueltardieu:push-vovspkkxsxtn, r=Kobzol
citool: cleanup `mismatched_lifetime_syntaxes` warnings

Those lifetimes are implicit earlier in the same signature, and should not be hidden in the output type.
2025-08-23 22:22:21 +02:00
Samuel Tardieu
cc90b4f216
Rollup merge of #145782 - karolzwolak:rustdoc-consistent-attributes-rendering, r=GuillaumeGomez
rustdoc: make attributes render consistently

While working on rust-lang/rust#132304, I discovered that even standard attributes aren't consistently rendered.
For some constructs/fields, attributes were missing entirely, and the attributes were only sometimes wrapped in a code-attribute divs so they appear greyed out.

In short this PR:
* makes attributes render inside code elements and inside divs with class `code-attribute`
* renders attributes for macros, associated constants, and struct/union fields

Attributes in `Fields` and `Variants` sections are still not rendered (see struct and enum screenshots), because I wasn't sure we want that.

[Compirison of tests/rustdoc/attributes.rs](90aa25a1c5/tests/rustdoc/attributes.rs)
Before (left) / after (right):

<img width="279" height="97" alt="image" src="https://github.com/user-attachments/assets/baca4b75-f809-4a76-8ac1-e3aa6389aad4" />
<img width="363" height="112" alt="image" src="https://github.com/user-attachments/assets/14970fb0-6fe5-474f-983e-5a95e16175c5" />

<img width="368" height="492" alt="image" src="https://github.com/user-attachments/assets/f9a25583-10e3-49c7-961b-34f3587b552e" />
<img width="415" height="515" alt="image" src="https://github.com/user-attachments/assets/f2fe4aa0-c731-4f2f-a3c2-04e524a858d1" />

<img width="383" height="483" alt="image" src="https://github.com/user-attachments/assets/bccc1b6e-f236-4948-8557-f9b25cad8a07" />
<img width="402" height="528" alt="image" src="https://github.com/user-attachments/assets/2cea9250-37e1-439e-8010-0603905d0f52" />

<img width="372" height="485" alt="image" src="https://github.com/user-attachments/assets/cd49bc0a-90e1-4d08-af0f-084c42af1834" />
<img width="406" height="542" alt="image" src="https://github.com/user-attachments/assets/67fb4ac7-746b-4e20-9c80-97702a71def8" />

<img width="357" height="131" alt="image" src="https://github.com/user-attachments/assets/42769532-1e4d-486d-bdca-6ecc409554b9" />
<img width="366" height="161" alt="image" src="https://github.com/user-attachments/assets/0b4d01d4-dd8e-4467-8cfc-ad58200ba0d7" />

<img width="291" height="65" alt="image" src="https://github.com/user-attachments/assets/43f61335-8eff-491b-a297-1953d17bbfc0" />
<img width="259" height="57" alt="image" src="https://github.com/user-attachments/assets/598618a3-e52f-4a4e-b790-2c8d5f1b4c77" />

r? ``@GuillaumeGomez``
2025-08-23 22:22:21 +02:00
Samuel Tardieu
ec52c9cc11
Rollup merge of #145781 - Kobzol:clippy-remove-profile, r=lqd
Remove profile section from Clippy

To avoid workspace warnings.

[This](https://github.com/rust-lang/rust/pull/145749) subtree sync started causing warnings in Rust builds (https://github.com/rust-lang/rust/issues/145777) because of the `profile` section in Clippy's `Cargo.toml` file. This profile section was added in https://github.com/rust-lang/rust-clippy/pull/13408 last year, and since it also caused issues then, it was later reverted. However, this change recently reappeared in [this commit](90364dd178), so it is again causing issues for rust-lang/rust.

This PR removes the profile section again.

Fixes: https://github.com/rust-lang/rust/issues/145777
2025-08-23 22:22:20 +02:00
Samuel Tardieu
608271f764
Rollup merge of #145774 - Shourya742:2025-08-23-remove-default-opts-method, r=Kobzol
Remove default opts from config

We forgot to remove this method in https://github.com/rust-lang/rust/pull/145352. This PR removes that.

r? ```@Kobzol```
2025-08-23 22:22:20 +02:00
Samuel Tardieu
0b8d7b19a6
Rollup merge of #145744 - RalfJung:miri-inplace-aliasing, r=compiler-errors
miri: also detect aliasing of in-place argument and return place

This is a follow-up to https://github.com/rust-lang/rust/pull/145585 where I forgot to deal with the case of the return place aliasing an in-place argument -- as ``@Amanieu`` mentioned in https://github.com/rust-lang/rust/issues/71117#issuecomment-3212885817, that case must also be forbidden.

r? ``@compiler-errors``
2025-08-23 22:22:19 +02:00
Samuel Tardieu
9088d7a79f
Rollup merge of #145729 - nnethercote:dup-packages, r=calebcartwright
Remove two duplicated crates

These commits remove `toml-0.5.11` and `dirs-sys-0.4.1`. There are later versions of those same crates already in the tree. Found with `cargo tree -d`.

r? ``@jieyouxu``
2025-08-23 22:22:19 +02:00
Samuel Tardieu
9847cb2499
Rollup merge of #145713 - lcnr:const-trait-bootstrap, r=compiler-errors
next-solver: fix `feature(const_trait_impl)` bootstrap

rarw

r? ``@compiler-errors`` ``@fee1-dead``
2025-08-23 22:22:18 +02:00
Samuel Tardieu
e7dc14e59b
Rollup merge of #145670 - jdonszelmann:port-sanitize, r=lcnr
port `sanitize` attribute to the new parsing infrastructure
2025-08-23 22:22:17 +02:00
Samuel Tardieu
95f8b919e6
Rollup merge of #145540 - nia-e:prov-map-range, r=RalfJung
interpret/allocation: get_range on ProvenanceMap

Helper method to grab all provenances in a given address range for an allocation, making some logic in Miri nicer.
2025-08-23 22:22:17 +02:00
Samuel Tardieu
1b9ae8f408
Rollup merge of #145515 - Kmeakin:km/optimize-char-encode-utf8, r=Mark-Simulacrum
Optimize `char::encode_utf8`

Save a few instructions in `encode_utf8_raw_unchecked` by performing manual CSE.
2025-08-23 22:22:16 +02:00
Samuel Tardieu
5a14685a63
Rollup merge of #145234 - dianne:1-tuple-witnesses, r=jackh726
match exhaustiveness diagnostics: show a trailing comma on singleton tuple consructors in witness patterns (and clean up a little)

Constructor patterns of type `(T,)` are written `(pat,)`, not `(pat)`. However, exhaustiveness/usefulness diagnostics would print them as `(pat)` when e.g. providing a witness of non-exhaustiveness and suggesting adding arms to make matches exhaustive; this would result in an error when applied.
rust-analyzer already prints the trailing comma, so it doesn't need changing.

This also includes some cleanup in the second commit, with justification in the commit message.
2025-08-23 22:22:15 +02:00
Samuel Tardieu
982b022b1e
Rollup merge of #144452 - morinmorin:apple/update_read_limit, r=ChrisDenton
std/sys/fd: Relax `READ_LIMIT` on Darwin

Darwin's `read`/`write` syscalls emit `EINVAL` only when `nbyte > INT_MAX`. The case `nbyte == INT_MAX` is valid, so the subtraction (`- 1`) in
```rust
const READ_LIMIT: usize = if cfg!(target_vendor = "apple") {
    libc::c_int::MAX as usize - 1 // <- HERE
} else {
    libc::ssize_t::MAX as usize
};
```
can be removed.

I tested that the case `nbyte == INT_MAX` is valid on various versions of macOS, including old one like Mac OS X 10.5.

The man page says:
- read() and pread() will fail if the parameter nbyte exceeds INT_MAX (link: https://keith.github.io/xcode-man-pages/read.2.html)
- write() and pwrite() will fail if the parameter nbyte exceeds INT_MAX (link: https://keith.github.io/xcode-man-pages/write.2.html)

Here are links to Darwin's code:
- [macOS 15.5] e3723e1f17/bsd/kern/sys_generic.c (L307)
- [Mac OS X 10.2] d738f90084/bsd/kern/sys_generic.c (L220)

Related PR: rust-lang/rust#38622.
2025-08-23 22:22:15 +02:00
Samuel Tardieu
f5210f2ba0
Rollup merge of #143898 - ognevny:opt-dist-rustc-rebuild, r=Kobzol
opt-dist: rebuild rustc when doing static LLVM builds

when building LLVM it's obvious that in case of shared build rustc doesn't need to be recompiled, but with static builds it would be better to compile rustc again to ensure we linked proper library.
maybe I didn't understand the pipeline correctly, but it was strange for me to see that in Stage 5 LLVM is built while rustc is not

r? ```@Kobzol```

try-job: dist-x86_64-msvc
try-job: dist-x86_64-linux
2025-08-23 22:22:14 +02:00
bors
69b76df90c Auto merge of #145706 - lcnr:uniquification, r=BoxyUwU
change HIR typeck region uniquification handling approach

rust-lang/rust#144405 causes structural lookup of opaque types to not work during HIR typeck, so instead avoid uniquifying goals and instead only reprove them if MIR borrowck actually encounters an error.

This doesn't perfectly maintain the property that HIR typeck succeeding implies that MIR typeck succeeds, instead weakening this check to only guarantee that HIR typeck implies that MIR typeck succeeds modulo region uniquification. This means we still get the actually desirable ICEs if we MIR building is broken or we forget to check some property in HIR typeck, without having to deal with the fallout of uniquification in HIR typeck itself.

We report errors using the original obligation sources of HIR typeck so diagnostics aren't that negatively impacted either.

Here's the history of region uniquification while working on the new trait solver:
- rust-lang/rust#107981
- rust-lang/rust#110180
- rust-lang/rust#114117
- rust-lang/rust#130821
- rust-lang/rust#144405
- rust-lang/rust#145706 <- we're here 🎉

r? `@BoxyUwU`
2025-08-23 20:16:58 +00:00
Havard Eidnes
45bcbd99a5 bootstrap.py: Improve CPU detection on NetBSD,
...and add adaptation of detection for some arm variants.
2025-08-23 19:15:46 +00:00
Camille GILLOT
262c8c9238 Remove chunk size from each chunk. 2025-08-23 17:56:37 +00:00
Samuel Tardieu
323e23005a Fix ICE when validating transmuting ZST to inhabited enum
MIR validation attempts to determine the number of bytes needed to
represent the size of the source type to compute the discriminant for
the inhabited target enum. For a ZST source, there is no source data to
use as a discriminant so no proper runtime check can be generated.

Since that should never be possible, insert a delayed bug to ensure the
problem has been properly reported to the user by the type checker.
2025-08-23 19:25:58 +02:00
Michael Goulet
e0fb6ebf7b Nits 2025-08-23 17:13:22 +00:00
bors
c5a6a7bdd8 Auto merge of #145567 - clubby789:cargo_update, r=clubby789
Weekly `cargo update` (with libc pin)

Supersedes rust-lang/rust#145516
Manually pins libc for `compiler` and `rustbook` (both of which use rustix), with fixmes to remove this later.
```
compiler & tools dependencies:
     Locking 28 packages to latest compatible versions
    Updating anyhow v1.0.98 -> v1.0.99
    Updating bitflags v2.9.1 -> v2.9.2
    Updating clap v4.5.43 -> v4.5.45
    Updating clap_builder v4.5.43 -> v4.5.44
    Updating clap_derive v4.5.41 -> v4.5.45
    Updating curl v0.4.48 -> v0.4.49
    Updating curl-sys v0.4.82+curl-8.14.1 -> v0.4.83+curl-8.15.0
    Updating cxx v1.0.166 -> v1.0.168
    Updating cxx-build v1.0.166 -> v1.0.168
    Updating cxxbridge-cmd v1.0.166 -> v1.0.168
    Updating cxxbridge-flags v1.0.166 -> v1.0.168
    Updating cxxbridge-macro v1.0.166 -> v1.0.168
    Updating glob v0.3.2 -> v0.3.3
    Updating object v0.37.2 -> v0.37.3
    Updating proc-macro2 v1.0.95 -> v1.0.101
    Updating rayon v1.10.0 -> v1.11.0
    Updating rayon-core v1.12.1 -> v1.13.0
    Updating serde-untagged v0.1.7 -> v0.1.8
    Updating socket2 v0.5.10 -> v0.6.0
    Updating syn v2.0.104 -> v2.0.106
    Updating thiserror v2.0.12 -> v2.0.15
    Updating thiserror-impl v2.0.12 -> v2.0.15
    Updating uuid v1.17.0 -> v1.18.0
    Updating wasm-encoder v0.236.0 -> v0.236.1
    Updating wasmparser v0.236.0 -> v0.236.1
    Updating wast v236.0.0 -> v236.0.1
    Updating wat v1.236.0 -> v1.236.1
note: pass `--verbose` to see 35 unchanged dependencies behind latest

library dependencies:
     Locking 2 packages to latest compatible versions
    Updating libc v0.2.174 -> v0.2.175
    Updating object v0.37.2 -> v0.37.3
note: pass `--verbose` to see 2 unchanged dependencies behind latest

rustbook dependencies:
     Locking 13 packages to latest compatible versions
    Updating anyhow v1.0.98 -> v1.0.99
    Updating bitflags v2.9.1 -> v2.9.2
    Updating cc v1.2.32 -> v1.2.33
    Updating clap v4.5.43 -> v4.5.45
    Updating clap_builder v4.5.43 -> v4.5.44
    Updating clap_complete v4.5.56 -> v4.5.57
    Updating clap_derive v4.5.41 -> v4.5.45
    Updating proc-macro2 v1.0.95 -> v1.0.101
    Updating syn v2.0.104 -> v2.0.106
    Updating terminal_size v0.4.2 -> v0.4.3
    Updating thiserror v2.0.12 -> v2.0.15
    Updating thiserror-impl v2.0.12 -> v2.0.15
```
2025-08-23 16:59:21 +00:00
Michael Goulet
c957c4e704 Account for impossible bounds making seemingly unsatisfyable dyn-to-dyn casts 2025-08-23 16:49:15 +00:00
bors
6d6a08cf59 Auto merge of #145771 - weihanglo:update-cargo, r=weihanglo
Update cargo submodule

12 commits in 71eb84f21aef43c07580c6aed6f806a6299f5042..623d536836b4cde09ce38609232a024d5b25da81
2025-08-17 17:18:56 +0000 to 2025-08-22 19:05:52 +0000
- test(frontmatter): Match test updates in rustc (rust-lang/cargo#15878)
- chore: fix some typos in comment (rust-lang/cargo#15877)
- Add Arm64 Windows CI jobs (rust-lang/cargo#15790)
- suggest workspace hints for boolean dependencies (rust-lang/cargo#15507)
- make `UnitGenerator` public in cargo-as-a-library (rust-lang/cargo#15873)
- Linting system (rust-lang/cargo#15865)
- Switch to using native mdbook fragment redirects (rust-lang/cargo#15861)
- docs(profile): revert wrong statement of lto options' optimization (rust-lang/cargo#15855)
- docs: avoid ambiguity between update and fetch (rust-lang/cargo#15860)
- docs: mention how Cargo fetch git submodules (rust-lang/cargo#15853)
- feat(unstable): Added `-Zbuild-dir-new-layout` unstable feature (rust-lang/cargo#15848)
- Implement `host`-target substitution (rust-lang/cargo#15838)

r? ghost
2025-08-23 12:21:52 +00:00
Jakub Beránek
412734de29
Allow running rust-installer (and other tools) multiple times with the same arguments 2025-08-23 14:18:30 +02:00
Jakub Beránek
600d9bf149
Use correct mode when printing a build message for std documentation 2025-08-23 14:17:51 +02:00
Samuel Tardieu
d8b40bdb5a citool: cleanup mismatched_lifetime_syntaxes warnings 2025-08-23 13:16:26 +02:00
Jana Dönszelmann
1c03ae19db
port attribute to the new parsing infrastructure 2025-08-23 12:31:07 +02:00
Guillaume Gomez
d0913c571c Update tests/run-make/rustdoc-default-output/ output 2025-08-23 12:15:37 +02:00
Karol Zwolak
90aa25a1c5 rustdoc: update attribute tests 2025-08-23 11:27:03 +02:00
Jakub Beránek
a62488bb27
Handle uplifting in libstd dist step 2025-08-23 11:17:35 +02:00
Jakub Beránek
21c30eac49
Fix install test on Windows 2025-08-23 11:00:32 +02:00
Jakub Beránek
0470945ec8
Remove the x dist rust-std built optimization special-case 2025-08-23 11:00:32 +02:00
Jakub Beránek
3303770847
Don't try to cross-document bootstrap tools 2025-08-23 11:00:32 +02:00
Jakub Beránek
ba1bc64325
Fix doc link 2025-08-23 11:00:32 +02:00
Jakub Beránek
0579f055cd
Add change tracker entry 2025-08-23 11:00:31 +02:00
Jakub Beránek
3ec2abc2f4
Fix staging in x install 2025-08-23 11:00:31 +02:00
Jakub Beránek
2074e1344d
Forbid running install steps on stage 0 2025-08-23 11:00:31 +02:00
Jakub Beránek
e8af2365c0
Cleanup the last few dist steps 2025-08-23 11:00:31 +02:00
Jakub Beránek
699e5fe933
Cleanup dist::Bootstrap and add a simple test for it 2025-08-23 11:00:31 +02:00
Jakub Beránek
e68c93b538
Remove compiler_for from dist::Extended 2025-08-23 11:00:31 +02:00
Jakub Beránek
887831fb7f
Remove compiler_for from dist::Rustfmt 2025-08-23 11:00:31 +02:00
Jakub Beránek
dfc66f08b9
Remove compiler_for from dist::CraneliftCodegenBackend 2025-08-23 11:00:31 +02:00
Jakub Beránek
1f7f7f55a8
Remove compiler_for from dist::Miri 2025-08-23 11:00:31 +02:00