324986 Commits

Author SHA1 Message Date
Tshepang Mbambo 2d2894c3d1 Merge pull request #2842 from rust-lang/rustc-pull
Rustc pull update
2026-04-21 08:58:57 +02:00
Oli Scherer b1c7595965 Ensure we don't feed owners from ast lowering if we ever make that query tracked 2026-04-21 08:56:02 +02:00
The rustc-josh-sync Cronjob Bot 6fe2465770 Merge ref '84c119007247' from rust-lang/rust
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: rust-lang/rust@84c1190072
Filtered ref: rust-lang/rustc-dev-guide@9762b35681
Upstream diff: https://github.com/rust-lang/rust/compare/d12e1e12ae6fb828df1b663a07c9191bc48c6d6d...84c11900724736a2b9afac4822031d78a9ed8e86

This merge was created using https://github.com/rust-lang/josh-sync.
2026-04-21 06:54:03 +00:00
The rustc-josh-sync Cronjob Bot babfcd8cec Prepare for merging from rust-lang/rust
This updates the rust-version file to 84c1190072.
2026-04-21 06:53:59 +00:00
Jacob Pratt b4bab32075 Rollup merge of #155565 - Lars-Schumann:const-vec-cmp, r=jhpratt
constify `Vec` comparisons

Tracking Issue: https://github.com/rust-lang/rust/issues/143800

Due to `Cow` not implementing `const Deref` (https://github.com/rust-lang/rust/issues/147964), the comparisons including a `Cow` were not constified.
2026-04-21 02:20:28 -04:00
Jacob Pratt 53b9b9a108 Rollup merge of #155564 - tshakalekholoane:tshaka/const_default/cstr, r=jhpratt
Implement const Default for &CStr

Implements `const Default` for `&CStr`.

Tracking issue: rust-lang/rust#143894.
2026-04-21 02:20:27 -04:00
Jacob Pratt 64b897180d Rollup merge of #155559 - safer-rust:fix-doc2, r=jhpratt
add safety doc (section header) to two unsafe methods in `NonZero`

This PR adds a Safety section to two unsafe methods in `NonZero`:
- [unchecked_add](https://doc.rust-lang.org/nightly/core/num/struct.NonZero.html#method.unchecked_add)
- [unchecked_mul](https://doc.rust-lang.org/nightly/core/num/struct.NonZero.html#method.unchecked_mul)

The safety documentation is now consistent with that of [`u8::unchecked_add`](https://doc.rust-lang.org/nightly/core/primitive.u8.html#method.unchecked_add) and [`u8::unchecked_mul`](https://doc.rust-lang.org/nightly/core/primitive.u8.html#method.unchecked_mul).
2026-04-21 02:20:26 -04:00
Jacob Pratt 156cc9fb23 Rollup merge of #155558 - nivekithan:issue-154000-fix, r=jhpratt
Clarify that isqrt returns the principal (non-negative) square root

Clarify which root is returned from `isqrt` and `checked_isqrt`

Fixes: https://github.com/rust-lang/rust/issues/154000
Previous PRs: https://github.com/rust-lang/rust/pull/154462
2026-04-21 02:20:26 -04:00
Jacob Pratt 387df6efb1 Rollup merge of #155532 - StepfenShawn:patch-1, r=jhpratt
Fix redundant boolean comparison in `Mutex::try_lock`

Simplify boolean return in `Mutex::try_lock`.
Replace `expr == false` with `!expr` for cleaner code.
2026-04-21 02:20:25 -04:00
Nicholas Nethercote 21cd762cd1 Rewrite FlatMapInPlace.
Replace the hacky macro with a generic function and a new
`FlatMapInPlaceVec` trait. More verbose but more readable and typical.

LLM disclosure: I asked Claude Code to critique this file and it
suggested the generic function + trait idea. I implemented the idea
entirely by hand.
2026-04-21 15:52:55 +10:00
bors 9ab01ae53c Auto merge of #155491 - ohadravid:faster-storage-in-copyprop-and-gvn, r=saethlin
Fix performance regression introduced in #142531 by excluding `Storage{Live,Dead}` from CGU size estimation



Fix performance regression introduced in rust-lang/rust#142531 ([rust-timer comment](https://github.com/rust-lang/rust/pull/142531#issuecomment-4273712294)) by excluding `Storage{Live,Dead}` from CGU size estimation.

Also, avoid unneeded work for storage removal in non-opt builds in CopyProp and GVN
by allocating local sets for the storage accounting only when `tcx.sess.emit_lifetime_markers()`. 

r? saethlin
2026-04-21 05:35:16 +00:00
John Kåre Alsaker 0add85cbe6 Remove nodes_in_current_session field and related assertions 2026-04-21 05:05:44 +02:00
bors 84c1190072 Auto merge of #155576 - jhpratt:rollup-F5kv4Uy, r=jhpratt
Rollup of 5 pull requests

Successful merges:

 - rust-lang/rust#153411 (Offload slice support)
 - rust-lang/rust#154557 (Make E0284 generic argument suggestions more explicit)
 - rust-lang/rust#154933 (Suggest removing `&` when awaiting a reference to a future)
 - rust-lang/rust#155524 (Fix LLVM offload install docs to use semicolon-separated CMake lists)
 - rust-lang/rust#155568 (Update books)
2026-04-21 02:16:22 +00:00
Jacob Pratt c7ccec1549 Rollup merge of #155568 - rustbot:docs-update, r=ehuss
Update books

## rust-embedded/book

2 commits in 2463edeb8003c5743918b3739a9f6870b86396f5..0789b0f29e73ecb91213cac10ad0eec1b9333770
2026-04-11 08:46:22 UTC to 2026-04-10 14:01:38 UTC

- remove IO chapter, is covered in next chapter (rust-embedded/book#411)
- add embassy chapter (rust-embedded/book#412)

## rust-lang/reference

10 commits in d2715c07e9dd9839c0c7675ecfa18bec539a6ee9..8c88f9d0bdd75ffdc0691676d83212ae22a18cee
2026-04-20 15:20:24 UTC to 2026-04-07 16:25:09 UTC

- typo in example code (rust-lang/reference#2232)
- oxford comma (rust-lang/reference#2233)
- improve readability (rust-lang/reference#2234)
- typo (rust-lang/reference#2230)
- Clarify items.fn.generics.param-bounds (rust-lang/reference#2229)
- follow formatting style guideline (rust-lang/reference#2228)
- Update `derive` export locations (rust-lang/reference#2223)
- Clarify that `{self}` imports require a module parent (rust-lang/reference#2221)
- stabilize s390x vector registers (rust-lang/reference#2215)
- Fix misuse of *usage* throughout the Reference (rust-lang/reference#2222)

## rust-lang/rust-by-example

2 commits in b31e3b8da01eeba0460f86a52a55af82709fadf5..898f0ac1479223d332309e0fce88d44b39927d28
2026-04-19 11:40:28 UTC to 2026-04-19 11:38:45 UTC

- remove debug printing for the u32 and bool in variable_bindings.md (rust-lang/rust-by-example#1999)
- Update for.md (rust-lang/rust-by-example#2008)
2026-04-20 20:50:23 -04:00
Jacob Pratt adce5da870 Rollup merge of #155524 - sharesth23:fixing-llvm-doc, r=ZuseZ4
Fix LLVM offload install docs to use semicolon-separated CMake lists

Update  so the LLVM CMake example uses  and , which is the correct list separator syntax for LLVM CMake options.[Docs] Remove shortcode from models page heading
2026-04-20 20:50:22 -04:00
Jacob Pratt 03dc6a3a28 Rollup merge of #154933 - fru1tworld:fix-87211-ref-future-diagnostic, r=chenyukang
Suggest removing `&` when awaiting a reference to a future

Fixes rust-lang/rust#87211

When `.await`ing `&impl Future`, suggest removing the `&` instead of removing `.await`.
2026-04-20 20:50:22 -04:00
Jacob Pratt a8e1664fd8 Rollup merge of #154557 - Muhtasim-Rasheed:issue-147313-improve-help, r=chenyukang
Make E0284 generic argument suggestions more explicit

Closes rust-lang/rust#147313

Previously, when type annotations were missing for a function call, rust suggested: "consider specifying the generic argument". This PR improves the diagnostics:

- If only one generic type is missing:
  "consider specifying a concrete type for the generic type `<T>`" with the turbofish being "::\<SomeConcreteType>"
- If only one const generic is missing:
  "consider specifying a const for the const generic `<CONST>`" with the turbofish being "::<SOME_CONST>"

Multiple missing generics still produce the original more general suggestion
2026-04-20 20:50:21 -04:00
Jacob Pratt 4c7e6565ef Rollup merge of #153411 - Sa4dUs:offload-slices, r=ZuseZ4
Offload slice support

This PR allows offload to support slice type arguments.

~NOTE: this is built on top of https://github.com/rust-lang/rust/pull/152283~

r? @ZuseZ4
2026-04-20 20:50:20 -04:00
bors 4fbae3e309 Auto merge of #154945 - oli-obk:merge-visitors-def-collector-brg, r=petrochenkov
Merge BuildReducedGraphVisitor into DefPathVisitor

These two visitors run right after each other on the same immutable AST. There's also a hash map for transferring the TyCtxtFeed created in the def collector to the BRG when it visits the same items. There are possibly more avenues for sharing logic, but I want to keep this PR simple.

only opening for perf runs for now. I'm still investigating how to ensure that future changes don't introduce subtle bugs by forgetting that def collection and reduced graph building are one pass now

Best reviewed commit-by-commit. I took a lot of care for making the individual changes reviewable, but all the `Merge *` commits aren't able to compile libcore until the last one.
2026-04-20 23:10:06 +00:00
niacdoial 6dfa52ca93 ImproperCTypes: regroup Box/Ptr/Ref logic
Another interal change that shouldn't impact rustc users.
This time, regroup into `visit_indirections` the code dealing with the
FFI safety of Boxes, Refs and RawPtrs.
2026-04-21 00:50:25 +02:00
niacdoial d75c93dad2 ImproperCTypes: reorder simple type checks
Another interal change that shouldn't impact rustc users.
the list of simpler type-based decisions made by `visit_type` are
reordered and are given better documentation.
2026-04-21 00:50:25 +02:00
niacdoial 05d6cdb52c ImproperCTypes: move ADT logic into separate visit_ methods
Another interal change that shouldn't impact rustc users.
The goal (of this commit and a few afterwards) is to break apart the gigantic
visit_type function into more managable and easily-editable bits that focus
on specific parts of FFI safety.
For now, we break the code specific to enums one side, and
structs/unions on the other, into separate visit_? methods
2026-04-21 00:50:25 +02:00
Eric Huss 69dae5941e Update shebang reference rule names
This updates the rule names for shebang which were changed in
rust-lang/reference#2192 and rust-lang/reference#2199.
2026-04-20 15:08:37 -07:00
bors 66da6cae1a Auto merge of #155567 - JonathanBrouwer:rollup-0zpjwMk, r=JonathanBrouwer
Rollup of 7 pull requests

Successful merges:

 - rust-lang/rust#155556 (`rust-analyzer` subtree update)
 - rust-lang/rust#152162 (Suggest returning a reference for unsized place from a closure)
 - rust-lang/rust#155389 (Simplify macros for target-modifier and mitigation flags)
 - rust-lang/rust#155553 (miri subtree update)
 - rust-lang/rust#153546 (tests/ui/extern: add annotations for reference rules)
 - rust-lang/rust#155475 (Make reparsed guard metavars collect tokens)
 - rust-lang/rust#155560 (Remove `AttributeLintKind` variants - part 4)
2026-04-20 19:35:12 +00:00
Marcelo Domínguez af839a8a96 Add offload slice support 2026-04-20 19:15:52 +02:00
rustbot 231acce8cc Update books 2026-04-20 19:00:33 +02:00
Jonathan Brouwer ca0710af53 Rollup merge of #155560 - GuillaumeGomez:rm-attributelintkind, r=JonathanBrouwer
Remove `AttributeLintKind` variants - part 4

Part of https://github.com/rust-lang/rust/issues/153099.

r? @JonathanBrouwer
2026-04-20 18:57:04 +02:00
Jonathan Brouwer 13b537002b Rollup merge of #155475 - cijiugechu:missing-tokens, r=jieyouxu
Make reparsed guard metavars collect tokens

This should avoid missing tokens.

Closes rust-lang/rust#155333
2026-04-20 18:57:03 +02:00
Jonathan Brouwer caa265ec8b Rollup merge of #153546 - DanielEScherzer:test-references-extern, r=ehuss
tests/ui/extern: add annotations for reference rules
2026-04-20 18:57:03 +02:00
Jonathan Brouwer 1b64473ea4 Rollup merge of #155553 - RalfJung:miri, r=RalfJung
miri subtree update

Subtree update of `miri` to https://github.com/rust-lang/miri/commit/16dd940bb92f3ed98f588a5dbe58efe005d10ffc.

Created using https://github.com/rust-lang/josh-sync.

r? @ghost
2026-04-20 18:57:02 +02:00
Jonathan Brouwer 074ed7b651 Rollup merge of #155389 - Zalathar:flag-macros, r=mati865
Simplify macros for target-modifier and mitigation flags

- Rebased and revised version of https://github.com/rust-lang/rust/pull/154501.
---

The macros used for handling command-line flags that are “target modifiers” or “mitigations” are quite complicated, and can be significantly simplified by tweaking their syntax and by making use of `${ignore(..)}` metavars.

It's possible that more code could be moved out of macros (e.g. declaring some of the enums by hand), but that can be investigated in a potential follow-up.

There should be no change to compiler behaviour.
2026-04-20 18:57:01 +02:00
Jonathan Brouwer 515c670b35 Rollup merge of #152162 - chenyukang:yukang-fix-152064-unsized-closure-return, r=petrochenkov
Suggest returning a reference for unsized place from a closure

Fixes rust-lang/rust#152064

There are 3 similar note:
`the size for values of type str cannot be known at compilation time`
for different spans, maybe need more work to remove some of them.

This PR only adds a suggestion for using a reference.
2026-04-20 18:57:00 +02:00
Jonathan Brouwer 64d875f6c2 Rollup merge of #155556 - lnicola:sync-from-ra, r=lnicola
`rust-analyzer` subtree update

Subtree update of `rust-analyzer` to https://github.com/rust-lang/rust-analyzer/commit/cc5bc48b256d8c996a98fa13ae52a0af29b302fa.

Created using https://github.com/rust-lang/josh-sync.

r? @ghost
2026-04-20 18:56:59 +02:00
bors c28e303778 Auto merge of #155552 - JonathanBrouwer:rollup-JKIpTuW, r=JonathanBrouwer
Rollup of 11 pull requests

Successful merges:

 - rust-lang/rust#154654 (Move `std::io::ErrorKind` to `core::io`)
 - rust-lang/rust#145270 (Fix an ICE observed with an explicit tail-call in a default trait method)
 - rust-lang/rust#154895 (borrowck: Apply `user_arg_index` nomenclature more broadly)
 - rust-lang/rust#155213 (resolve: Make sure visibilities of import declarations make sense)
 - rust-lang/rust#155346 (`single_use_lifetimes`: respect `anonymous_lifetime_in_impl_trait`)
 - rust-lang/rust#155517 (Add a test for Mach-O `#[link_section]` API inherited from LLVM)
 - rust-lang/rust#155549 (Remove some unnecessary lifetimes.)
 - rust-lang/rust#154248 (resolve :  mark repr_simd as internal)
 - rust-lang/rust#154772 (slightly optimize the `non-camel-case-types` lint)
 - rust-lang/rust#155541 (Add `#[rust_analyzer::prefer_underscore_import]` to the traits in `rustc_type_ir::inherent`)
 - rust-lang/rust#155544 (bootstrap: Make "detected modifications" for download-rustc less verbose)
2026-04-20 16:15:13 +00:00
Lars Schumann 2ba7b3b537 constify vec comparisons 2026-04-20 16:00:18 +00:00
Tshaka Lekholoane 339a2f0ba0 Implement const Default for &CStr 2026-04-20 17:40:30 +02:00
Guillaume Gomez ea690c3d7b Remove AttributeLintKind::DocAutoCfgWrongLiteral variant 2026-04-20 16:59:14 +02:00
Guillaume Gomez 1aee0e07b4 Remove AttributeLintKind::DocUnknownAny variant 2026-04-20 16:54:15 +02:00
Guillaume Gomez 0ad35a24fd Remove AttributeLintKind::DocUnknownPlugins variant 2026-04-20 16:49:55 +02:00
aisr 0bfdb18855 add safety sections to two unsafe methods in NonZero 2026-04-20 22:46:10 +08:00
Guillaume Gomez 7007737f11 Remove AttributeLintKind::DocUnknownPasses variant 2026-04-20 16:46:06 +02:00
Guillaume Gomez 1e57ed26db Remove AttributeLintKind::DocUnknownSpotlight variant 2026-04-20 16:46:06 +02:00
cijiugechu ffcbfc1cf4 Use singular wording for single _ placeholders in type suggestions 2026-04-20 22:21:51 +08:00
Tshepang Mbambo 02e975b8ca Merge pull request #2841 from rust-lang/rustc-pull
Rustc pull update
2026-04-20 15:29:30 +02:00
Nivekithan 6b8cb42ee3 update doc to be more clear 2026-04-20 18:55:05 +05:30
The rustc-josh-sync Cronjob Bot 5a7193da12 Merge ref 'd12e1e12ae6f' from rust-lang/rust
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: rust-lang/rust@d12e1e12ae
Filtered ref: rust-lang/rustc-dev-guide@f2b52d051c
Upstream diff: https://github.com/rust-lang/rust/compare/e22c616e4e87914135c1db261a03e0437255335e...d12e1e12ae6fb828df1b663a07c9191bc48c6d6d

This merge was created using https://github.com/rust-lang/josh-sync.
2026-04-20 13:01:20 +00:00
The rustc-josh-sync Cronjob Bot ae92374ad5 Prepare for merging from rust-lang/rust
This updates the rust-version file to d12e1e12ae.
2026-04-20 13:01:17 +00:00
bors 91367b0f73 Auto merge of #154924 - nnethercote:rm-impl-HashStable-for-Attr-slice, r=JonathanBrouwer
Remove `HashStable` impl for `[hir::Attribute]`.



This impl skips:
- All doc comments
- A handful of other attributes, mostly `rustc_*` ones related to incremental compilation testing.
    
This skipping originated in rust-lang/rust#36025 and was extended a couple of times, e.g. in rust-lang/rust#36370. Those PRs don't have any explanation of why the skipping exists. Perhaps the reasoning was that doc comments should only affect rustdoc and rustdoc doesn't use incremental compilation? But doc comments end up in metadata, and there is a query `attrs_for_def` that returns a `&'tcx [hir::Attribute]`. So skipping some attributes just seems plainly wrong.
    
This commit removes the impl, which means `[hir::Attribute]` hashing falls back to the default impl for `[T]`. This has no noticeable effect on the test suite. It does slightly hurt performance, because of the doc comments. This perf regression seems worth it for the correctness benefits.
2026-04-20 12:55:41 +00:00
Nivekithan 440ed80b31 add warning message when using x fix 2026-04-20 18:07:13 +05:30
Chayim Refael Friedman 5d84f89497 Merge pull request #22101 from ChayimFriedman2/port-infer-call
fix: Port call expr type checking and closure upvar inference from rustc
2026-04-20 12:01:40 +00:00