about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-06-03Add impl for `llvm.roundeven` in cg_clifsayantn-9/+9
- remove unused `llvm.aarch64.neon.frintn` from cg_clif
2025-06-03Update stdarch submodulesayantn-0/+0
2025-06-03Auto merge of #141944 - matthiaskrgr:rollup-e7xhp6w, r=matthiaskrgrbors-192/+380
Rollup of 8 pull requests Successful merges: - rust-lang/rust#140715 (Clarify &mut-methods' docs on sync::OnceLock) - rust-lang/rust#141677 (Async drop - type instead of async drop fn, fixes rust-lang/rust#140484) - rust-lang/rust#141741 (Overhaul `UsePath`) - rust-lang/rust#141873 (Fixed a typo in `ManuallyDrop`'s doc) - rust-lang/rust#141876 (Don't declare variables in `ExprKind::Let` in invalid positions) - rust-lang/rust#141886 (Add missing 2015 edition directives) - rust-lang/rust#141889 (Add missing `dyn` keywords to tests that do not test for them) - rust-lang/rust#141891 (Fix borrowck mentioning a name from an external macro we (deliberately) don't save) r? `@ghost` `@rustbot` modify labels: rollup
2025-06-03Rollup merge of #141891 - jdonszelmann:fix-141764, r=jieyouxuMatthias Krüger-8/+53
Fix borrowck mentioning a name from an external macro we (deliberately) don't save Most of the info is already in the title :shrug: Closes rust-lang/rust#141764
2025-06-03Rollup merge of #141889 - ferrocene:lw/missing-dyn-kw, r=petrochenkovMatthias Krüger-34/+33
Add missing `dyn` keywords to tests that do not test for them This ensures that these tests can be run on editions other than 2015
2025-06-03Rollup merge of #141886 - ferrocene:lw/2015-edition-directives, ↵Matthias Krüger-15/+22
r=compiler-errors Add missing 2015 edition directives These tests specifically test 2015 edition behavior, so ensure that they can only be run with this edition
2025-06-03Rollup merge of #141876 - compiler-errors:missing-let-ty, r=SparrowLiiMatthias Krüger-3/+46
Don't declare variables in `ExprKind::Let` in invalid positions Handle `let` expressions in invalid positions specially during resolve in order to avoid making destructuring-assignment expressions that reference (invalid) variables that have not yet been delcared yet. See further explanation in test and comment in the source. Fixes rust-lang/rust#141844
2025-06-03Rollup merge of #141873 - neeko-cat:patch-1, r=tgross35Matthias Krüger-1/+1
Fixed a typo in `ManuallyDrop`'s doc I noticed a typo in `ManuallyDrop`'s documentation (someone wrote "iff" instead of "if"). I fixed it in this PR.
2025-06-03Rollup merge of #141741 - nnethercote:overhaul-UsePath, r=petrochenkovMatthias Krüger-96/+121
Overhaul `UsePath` It currently uses `SmallVec<[Res; 3]>` which is really weird. Details in the individual commits. r? `@petrochenkov`
2025-06-03Rollup merge of #141677 - ↵Matthias Krüger-30/+91
azhogin:azhogin/async-drop-unexpected-type-instead-of-drop-fn-fix, r=oli-obk Async drop - type instead of async drop fn, fixes #140484 Fixes: rust-lang/rust#140484 Fixes: rust-lang/rust#140500 Fixes ICE, when type is provided in AsyncDrop trait instead of `async fn drop()`. Fixes ICE, when async drop fn has wrong signature.
2025-06-03Rollup merge of #140715 - lukaslueg:oncecellsyncdocs, r=tgross35Matthias Krüger-5/+13
Clarify &mut-methods' docs on sync::OnceLock Three small changes to the docs of `sync::OnceLock`: * The docs for `OnceLock::take()` used to [say](https://doc.rust-lang.org/std/sync/struct.OnceLock.html#method.take) "**Safety** is guaranteed by requiring a mutable reference." (emphasis mine). While technically correct, imho its not necessary to even mention safety - as opposed to unsafety - here: Safety never comes up wrt `OnceLock`, as there is (currently) no way to interact with a `OnceLock` in an unsafe way; there are no unsafe methods on `OnceLock`, so there is "safety" guarantee required anywhere. What we simply meant to say is "**Synchronization** is guaranteed...". * I've add that phrase to the other methods of `OnceLock` which take a `&mut self`, to highlight the fact that having a `&mut OnceLock` guarantees that synchronization with other threads is not required. This is the same as with [`Mutex::get_mut()`](https://doc.rust-lang.org/std/sync/struct.Mutex.html#method.get_mut), [`Cell::get_mut()`](https://doc.rust-lang.org/std/cell/struct.Cell.html#method.get_mut), and others. * In that spirit, the half-sentence "or being initialized" was removed from `get_mut()`, as there is no way that the `OnceLock` is being initialized while we are holding `&mut` to it. Probably a copy&paste from `.get()`
2025-06-03Auto merge of #141210 - RalfJung:miri-std-doctests, r=saethlinbors-12/+11
tools-aux ci runner: also cross-test doctests in Miri Miri now supports running doctests across different targets. Let's use that to run the std doctests on aarch64-apple-darwin, i686-pc-windows-msvc. try-job: x86_64-gnu-aux
2025-06-02Auto merge of #141750 - Noratrieb:gold-rush, r=bjorn3bors-1/+58
Warn when gold was used as the linker gold has been deprecated recently and is known to behave incorrectly around Rust programs, including miscompiling `#[used(linker)]`. Tell people to switch to a different linker instead. closes rust-lang/rust#141748 r? bjorn3
2025-06-03Overhaul `UsePath`.Nicholas Nethercote-86/+112
`UsePath` contains a `SmallVec<[Res; 3]>`. This holds up to three `Res` results, one per namespace (type, value, or macro). `lower_import_res` takes a `PerNS<Option<Res<NodeId>>>` result and lowers it into the `SmallVec`. This is pretty weird. The input `PerNS` makes it clear which `Res` belongs to which namespace, but the `SmallVec` throws that information away. And code that operates on the `SmallVec` tends to use iteration (or even just grabbing the first entry!) without knowing which namespace the `Res` belongs to. Even weirder! Also, `SmallVec` is an overly flexible type to use here, because it can contain any number of elements (even though it's optimized for 3 in this case). This commit changes `UsePath` so it also contains a `PerNS<Option<Res<HirId>>>`. This type preserves more information and is more self-documenting. The commit also changes a lot of the use sites to access the result for a particular namespace. E.g. if you're looking up a trait, it will be in the `Res` for the type namespace if it's present; it's silly to look in the `Res` for the value namespace or macro namespace. Overall I find the new code much easier to understand. However, some use sites still iterate. These now use `present_items` because that filters out the `None` results. Also, `redundant_pub_crate.rs` gets a bigger change. A `UseKind:ListStem` item gets no `Res` results, which means the old `all` call in `is_not_macro_export` would succeed (because `all` succeeds on an empty iterator) and the `ListStem` would be ignored. This is what we want, but was more by luck than design. The new code detects `ListStem` explicitly. The commit generalizes the name of that function accordingly. Finally, the commit also removes the `use_path` arena, because `PerNS<Option<Res>>` impls `Copy` (unlike `SmallVec`) and it can be allocated in the arena shared by all `Copy` types.
2025-06-02Auto merge of #141912 - Kobzol:rollup-wurlnsx, r=Kobzolbors-6/+33
Rollup of 5 pull requests Successful merges: - rust-lang/rust#141767 (ci: use free runner for aarch64-gnu-llvm-19-1 PR job) - rust-lang/rust#141858 (Fix typo in `StructuralPartialEq` docs) - rust-lang/rust#141865 (Optionally don't steal the THIR) - rust-lang/rust#141874 (add f16_epsilon and f128_epsilon diagnostic items) - rust-lang/rust#141904 (test-float-parse: apply `cfg(not(bootstrap))`) r? `@ghost` `@rustbot` modify labels: rollup
2025-06-02Auto merge of #141906 - chenyukang:rollup-k6v59ty, r=chenyukangbors-139/+369
Rollup of 6 pull requests Successful merges: - rust-lang/rust#141884 (allow macro_use as first segment) - rust-lang/rust#141885 ([RTE-484] Update SGX maintainers) - rust-lang/rust#141892 (Fix false positive lint error from no_implicit_prelude attr) - rust-lang/rust#141894 (rustc-dev-guide subtree update) - rust-lang/rust#141895 (tshepang has a new email) - rust-lang/rust#141897 (Fix citool tests when executed locally) r? `@ghost` `@rustbot` modify labels: rollup
2025-06-02Rollup merge of #141904 - jieyouxu:test-float-parse, r=Mark-SimulacrumJakub Beránek-0/+2
test-float-parse: apply `cfg(not(bootstrap))` Prior to stage 0 redesign, `test-float-parse` ran against in-tree std but now it runs against beta std. `f16::FromStr` is only present in in-tree std and not yet beta std, so apply `cfg(not(bootstrap))` gating to unbrick `./x check --stage=0`. Fixes rust-lang/rust#141900. `./x check --stage=0` in CI is intended for follow-up. r? `@Mark-Simulacrum` (or bootstrap/libs) cc `@tgross35`
2025-06-02Rollup merge of #141874 - usamoi:eps, r=tgross35Jakub Beránek-0/+4
add f16_epsilon and f128_epsilon diagnostic items cc https://github.com/rust-lang/rust/issues/116909 r? ``@tgross35``
2025-06-02Rollup merge of #141865 - Nadrieril:dont-steal-thir, r=oli-obkJakub Beránek-4/+25
Optionally don't steal the THIR The THIR being stolen is a recurrent pain for authors of rustc drivers. This makes it optional, so that the `thir_body` query can still be used after analysis of the crate has completed.
2025-06-02Rollup merge of #141858 - zacryol:spe-docs-typo, r=aDotInTheVoidJakub Beránek-1/+1
Fix typo in `StructuralPartialEq` docs `equialent` => `equivalent`
2025-06-02Rollup merge of #141767 - marcoieni:free-pr-job, r=KobzolJakub Beránek-1/+1
ci: use free runner for aarch64-gnu-llvm-19-1 PR job
2025-06-02Rollup merge of #141897 - Kobzol:fix-citool-tests, r=marcoieniYukang-0/+2
Fix citool tests when executed locally They couldn't be executed locally before due to some additional environment reads. I also investigated the annoying rebuilds that we see on CI all the time, and they are caused by `ring`'s build script. It should be fixed in the next ring release (https://github.com/briansmith/ring/issues/2525), so we can just wait for that and then update `ring`. r? `@marcoieni`
2025-06-02Rollup merge of #141895 - tshepang:new-address, r=jieyouxuYukang-1/+1
tshepang has a new email
2025-06-02Rollup merge of #141894 - tshepang:rdg-push, r=jieyouxuYukang-133/+281
rustc-dev-guide subtree update r? `@ghost`
2025-06-02Rollup merge of #141892 - chenyukang:yukang-fix-141785-extern-crate, ↵Yukang-0/+21
r=petrochenkov Fix false positive lint error from no_implicit_prelude attr Fixes rust-lang/rust#141785 r? `@petrochenkov`
2025-06-02Rollup merge of #141885 - raoulstrackx:raoul/rte-484-update_sgx_maintainers, ↵Yukang-1/+1
r=Noratrieb [RTE-484] Update SGX maintainers `@mzohreva` is no longer with Fortanix. We need to change the SGX maintainers accordingly.
2025-06-02Rollup merge of #141884 - bvanjoi:issue-140255, r=petrochenkovYukang-4/+63
allow macro_use as first segment Fixes rust-lang/rust#140255 This issue may raise a question: It's reasonable an external crate name or import target be legally named `macro_use`?
2025-06-02Auto merge of #141814 - flip1995:clippy-subtree-update, r=Manishearthbors-718/+2000
Clippy subtree update r? `@Manishearth`
2025-06-02test-float-parse: apply `cfg(not(bootstrap))`Jieyou Xu-0/+2
Prior to stage 0 redesign, `test-float-parse` ran against in-tree std but now it runs against beta std. `f16::FromStr` were only present in in-tree std and not yet beta std, so apply `cfg(not(bootstrap))` gating to unbrick `./x check --stage=0`.
2025-06-02add fixme to improve error matchingJana Dönszelmann-1/+2
2025-06-02Fix citool tests when executed ocallyJakub Beránek-0/+2
They couldn't be executed locally before due to some additional environment reads.
2025-06-02tshepang has a new emailTshepang Mbambo-1/+1
2025-06-02Merge pull request #2386 from Lysxia/fix-linkTshepang Mbambo-1/+1
Fix link to GatherBorrows
2025-06-02Merge pull request #2435 from smanilov/patch-19Tshepang Mbambo-0/+3
Add opaque type attributes
2025-06-02Fix false positive lint error from no_implicit_prelude attryukang-0/+21
2025-06-02Merge pull request #2437 from rust-lang/rustc-pullTshepang Mbambo-22230/+36636
Rustc pull update
2025-06-02fix bug where borrowck tries to describe a name from a macro in another crateJana Dönszelmann-8/+37
2025-06-02add test for 141764Jana Dönszelmann-0/+15
2025-06-02Merge pull request #2438 from smanilov/patch-20Tshepang Mbambo-1/+1
Trivial: fix typo (change `foo` to `bar`)
2025-06-02Add missing `dyn` keywords to tests that do not test for themLukas Wirth-34/+33
This ensures that these tests can be run on editions other than 2015
2025-06-02Add missing 2015 edition directivesLukas Wirth-15/+22
These tests specifically test 2015 edition behavior, so ensure that they can only be run with this edition
2025-06-02allow macro_use as first segmentbohan-4/+63
2025-06-02Trivial: fix typo (change `foo` to `bar`)Stan Manilov-1/+1
There is no `foo` symbol in the preceding example. I assume the method `bar` is meant.
2025-06-02Auto merge of #119899 - onur-ozkan:redesign-stage0-std, ↵bors-499/+526
r=albertlarsan68,jieyouxu,mark-simulacrum,kobzol,jyn514,Noratrieb,WaffleLapkin,RalfJung,bjorn3 redesign stage 0 std ### Summary **Blog post: https://blog.rust-lang.org/inside-rust/2025/05/29/redesigning-the-initial-bootstrap-sequence/** This PR changes how bootstrap builds the stage 1 compiler by switching to precompiled stage 0 standard library instead of building the in-tree one. The goal was to update bootstrap to use the beta standard library at stage 0 rather than compiling it from source (see the motivation at https://github.com/rust-lang/compiler-team/issues/619). Previously, to build a stage 1 compiler bootstrap followed this path: ``` download stage0 compiler -> build in-tree std -> compile stage1 compiler with in-tree std ``` With this PR, the new path is: ``` download stage0 compiler -> compile stage1 compiler with precompiled stage0 std ``` This also means that `cfg(bootstrap)`/`cfg(not(bootstrap))` is no longer needed for library development. ### Building "library" Since stage0 `std` is no longer in-tree `x build/test/check library --stage 0` is now no-op. The minimum supported stage to build `std` is now 1. For the same reason, default stage values in the library profile is no longer 0. Because building the in-tree library now requires a stage1 compiler, I highly recommend library developers to enable `download-rustc` to speed up compilation time. <hr> **Blog post: https://blog.rust-lang.org/inside-rust/2025/05/29/redesigning-the-initial-bootstrap-sequence/** If you encounter a bug or unexpected results please open a topic in the [#t-infra/bootstrap](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap) Zulip channel or create a [bootstrap issue](https://github.com/rust-lang/rust/issues/new?template=bootstrap.md). (Review thread: https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Review.20thread.3A.20stage.200.20redesign.20PR/with/508271433) ~~Blocked on https://github.com/rust-lang/rust/pull/122709~~ try-job: dist-x86_64-linux try-job: `x86_64-msvc*` try-job: `x86_64-apple-*` try-job: `aarch64-apple` try-job: x86_64-gnu try-job: `x86_64-gnu-llvm*`
2025-06-02Auto merge of #141773 - oli-obk:coro-borrow-parallel-loop, r=compiler-errorsbors-4/+0
Merge coroutine obligation checking into borrowck parallel loop r? `@ghost` attempts at increasing parallelism in parallel rustc by merging parallel blocks that run in sequence
2025-06-02Merge from rustcThe rustc-dev-guide Cronjob Bot-22229/+36635
2025-06-02Preparing for merge from rustcThe rustc-dev-guide Cronjob Bot-1/+1
2025-06-02Suppress redundant errorMichael Goulet-14/+7
2025-06-02Don't declare variables in ExprKind::Let in invalid positionsMichael Goulet-1/+51
2025-06-02Auto merge of #141760 - bjorn3:intrinsic_rework_part2, r=fee1-deadbors-163/+127
Improve intrinsic handling in cg_ssa (part 2) * Avoid computing function type and signature for intrinsics where possible * Nicer handling of bool returning intrinsics Follow up to https://github.com/rust-lang/rust/pull/141404