about summary refs log tree commit diff
path: root/src/tools
AgeCommit message (Collapse)AuthorLines
2025-06-03Rollup merge of #141881 - lnicola:sync-from-ra, r=lnicolaMatthias Krüger-298/+641
Subtree update of `rust-analyzer` r? `@ghost`
2025-06-03chore(deps): bump tar-fs from 2.1.2 to 2.1.3 in /editors/codedependabot[bot]-3/+3
Bumps [tar-fs](https://github.com/mafintosh/tar-fs) from 2.1.2 to 2.1.3. - [Commits](https://github.com/mafintosh/tar-fs/commits) --- updated-dependencies: - dependency-name: tar-fs dependency-version: 2.1.3 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
2025-06-03move `test-float-parse` tool into `src/tools` dironur-ozkan-1/+2396
Obviously `test-float-parse` is a tool like any other in `src/tools`. Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-06-03Merge pull request #19869 from MatrixFrog/publicize_fieldLukas Wirth-182/+138
Add a quickfix for accessing a private field of a struct
2025-06-03Merge pull request #19894 from ShoyuVanilla/some-query-cyclesLukas Wirth-7/+72
fix: Cycle handlers for `HirDatabase::infer, const_param_ty_with_diagnostics`
2025-06-03Merge pull request #19901 from BazookaMusic/masterLukas Wirth-12/+192
Enable Assist edit for tuple<->named struct for the struct and visiblity keywords
2025-06-02Add a quickfix for accessing a private field of a structTyler Breisacher-182/+138
2025-06-03Rollup merge of #141741 - nnethercote:overhaul-UsePath, r=petrochenkovMatthias Krüger-29/+32
Overhaul `UsePath` It currently uses `SmallVec<[Res; 3]>` which is really weird. Details in the individual commits. r? `@petrochenkov`
2025-06-03Merge from rustcThe Miri Cronjob Bot-679/+2038
2025-06-03Preparing for merge from rustcThe Miri Cronjob Bot-1/+1
2025-06-03fix: Cycle handlers for `HirDatabase::infer, const_param_ty_with_diagnosticsShoyu Vanilla-7/+72
2025-06-02feat: implement completion for diagnostic moduleRyan Mehri-17/+175
2025-06-03Overhaul `UsePath`.Nicholas Nethercote-26/+29
`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-02simplify expression that checks the offsetBazookaMusic-36/+30
2025-06-02fix: don't duplicate must_use for functions and traitsRyan Mehri-2/+2
2025-06-02Clarify why we are talking about a failed const eval at a random placeOli Scherer-4/+4
2025-06-02Use the informative error as the main const eval error messageOli Scherer-12/+12
2025-06-02Support derive-macros for rename prefix magicLukas Wirth-117/+211
2025-06-02fix: Fix edition handling for names in rename logicLukas Wirth-115/+161
2025-06-02Enhance renaming to include identifiers that are generated from the original ↵Lukas Wirth-44/+251
symbol Co-authored-by: Jake Goulding <jake.goulding@integer32.com>
2025-06-02Auto merge of #141814 - flip1995:clippy-subtree-update, r=Manishearthbors-671/+1995
Clippy subtree update r? `@Manishearth`
2025-06-02internal: Use 'ProjectJson' consistentlyWilfred Hughes-5/+5
The Rust source code previously mised ProjectJson and JsonProject, and the TypeScript definition didn't match either. Use 'ProjectJson' everywhere. This is purely an internal change.
2025-06-02Merge pull request #19897 from aibaars/patch-2Lukas Wirth-21/+69
Produce ClosureBinder node in atom.rs
2025-06-02Auto merge of #119899 - onur-ozkan:redesign-stage0-std, ↵bors-3/+26
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-02Invert the sense of `is_not_macro_export`.Nicholas Nethercote-5/+5
I find it much easier to think about in the positive sense.
2025-06-01Auto merge of #141869 - GuillaumeGomez:rollup-vicg807, r=GuillaumeGomezbors-5/+17
Rollup of 9 pull requests Successful merges: - rust-lang/rust#140370 (Improve diagnostics for usage of qualified paths within tuple struct exprs/pats) - rust-lang/rust#141224 (terminology: allocated object → allocation) - rust-lang/rust#141622 (implement `va_arg` for `powerpc`) - rust-lang/rust#141666 (source_span_for_markdown_range: fix utf8 violation) - rust-lang/rust#141789 (Exclude `CARGO_HOME` from `generate-copyright` in-tree determination) - rust-lang/rust#141823 (Drive-by refactor: use `OnceCell` for the reverse region SCC graph) - rust-lang/rust#141834 (Add unimplemented `current_dll_path()` for WASI) - rust-lang/rust#141846 (Fix TLS model on bootstrap for cygwin) - rust-lang/rust#141852 (resolve if-let-chain FIXME on bootstrap) r? `@ghost` `@rustbot` modify labels: rollup
2025-06-01Rollup merge of #141789 - ↵Guillaume Gomez-5/+17
ferrocene:hoverbear/exclude-cargo-home-from-in-tree-consideration, r=clubby789 Exclude `CARGO_HOME` from `generate-copyright` in-tree determination On Ferrocene, we noticed that in our releases the out-of-tree notices were not being included. When `x.py run generate-copyright` was ran on local development machines, it worked fine. After some investigations ``@tshepang`` and I determined that the problem was that the cargo registry (located in `CARGO_HOME`) started with the source directory on CI jobs, and was being excluded by this line: https://github.com/rust-lang/rust/blob/15825b7161f8bd6a3482211fbf6727a52aa1166b/src/tools/generate-copyright/src/cargo_metadata.rs#L85-L88 In Ferrocene's `run.sh` we set `CARGO_HOME` to be `build/cargo-home`: https://github.com/ferrocene/ferrocene/blob/96a45dd9a18c6e54d3cd81750a78fe459fa48af0/ferrocene/ci/run.sh#L34-L46 which caused this issue. This PR passes the `CARGO_HOME` variable to the `generate-copyright` tool and expands the consideration of in-tree-ness to be aware of `CARGO_HOME`. It is an upstreaming of https://github.com/ferrocene/ferrocene/pull/1491. ## Testing Run `CARGO_HOME=build/cargo-home ./x.py run generate-copyright` on `master`, then check `build/host/doc/COPYRIGHT` and look for out of tree dependencies (at the bottom). Then, try running the same command in this branch.
2025-06-01tweak comment and use a weaker fenceRalf Jung-1/+4
2025-06-01Make sure to sync on file-io.rs tokio testNoratrieb-0/+1
Tokio `AsyncWriteExt::write` doesn't actually ensure that the contents have written, it just *starts* the write operation. To ensure that the file has actually been written, we need to `sync_all` first.
2025-06-01Fix tokio/file-io.rs test relying on `read`/`write` not being shortNoratrieb-3/+3
The test did `write` and `read` and hoped that it would read/write everything, which doesn't always happen and caused CI failures. Switch to `write_all` and `read_to_end` to make it more reliable.
2025-06-01Merge from rustcThe Miri Cronjob Bot-94/+31
2025-06-01Preparing for merge from rustcThe Miri Cronjob Bot-1/+1
2025-06-01clippy and more formattingBazookaMusic-9/+4
2025-06-01rename function so it makes more senseBazookaMusic-5/+5
2025-06-01Formatting issues resolvedBazookaMusic-13/+18
2025-06-01add missing public keywordBazookaMusic-1/+1
2025-06-01Allow assist edit for converting structs to appear also on struct keyword ↵BazookaMusic-6/+192
and on visibility
2025-06-01Rollup merge of #141521 - ruancomelli:const-float-rounding, r=RalfJungJacob Pratt-61/+0
Add `const` support for float rounding methods # Add `const` support for float rounding methods This PR makes the following float rounding methods `const`: - `f64::{floor, ceil, trunc, round, round_ties_even}` - and the corresponding methods for `f16`, `f32` and `f128` Tracking issue: https://github.com/rust-lang/rust/issues/141555 ## Procedure I followed https://github.com/rust-lang/rust/commit/c09ed3e767a73d83673790f74c357432fa44d320 as closely as I could in making float methods `const`, and also received great guidance from https://internals.rust-lang.org/t/const-rounding-methods-in-float-types/22957/3?u=ruancomelli. ## Note This is my first code contribution to the Rust project, so please let me know if I missed anything - I'd be more than happy to revise and learn more. Thank you for taking the time to review it!
2025-06-01Rollup merge of #141072 - Rynibami:stabilize-const-result-flatten, r=jhprattJacob Pratt-12/+10
Stabilize feature `result_flattening` Stabilizes the `Result::flatten` method ## Implementations - [x] Implementation `Result::flatten`: https://github.com/rust-lang/rust/pull/70140 - [x] Implementation `const` `Result::flatten`: https://github.com/rust-lang/rust/pull/130692 - [x] Update stabilization attribute macros (this PR) ## Stabilization process - [x] Created this PR [suggested](https://github.com/rust-lang/rust/issues/70142#issuecomment-2885044548) by ``@RalfJung`` - [x] FCP (haven't found any, is it applicable here?) - [ ] Close issue rust-lang/rust#70142
2025-05-31Add const support for float rounding methodsRuan Comelli-61/+0
Add const support for the float rounding methods floor, ceil, trunc, fract, round and round_ties_even. This works by moving the calculation logic from src/tools/miri/src/intrinsics/mod.rs into compiler/rustc_const_eval/src/interpret/intrinsics.rs. All relevant method definitions were adjusted to include the `const` keyword for all supported float types: f16, f32, f64 and f128. The constness is hidden behind the feature gate feature(const_float_round_methods) which is tracked in https://github.com/rust-lang/rust/issues/141555 This commit is a squash of the following commits: - test: add tests that we expect to pass when float rounding becomes const - feat: make float rounding methods `const` - fix: replace `rustc_allow_const_fn_unstable(core_intrinsics)` attribute with `#[rustc_const_unstable(feature = "f128", issue = "116909")]` in `library/core/src/num/f128.rs` - revert: undo update to `library/stdarch` - refactor: replace multiple `float_<mode>_intrinsic` rounding methods with a single, parametrized one - fix: add `#[cfg(not(bootstrap))]` to new const method tests - test: add extra sign tests to check `+0.0` and `-0.0` - revert: undo accidental changes to `round` docs - fix: gate `const` float round method behind `const_float_round_methods` - fix: remove unnecessary `#![feature(const_float_methods)]` - fix: remove unnecessary `#![feature(const_float_methods)]` [2] - revert: undo changes to `tests/ui/consts/const-eval/float_methods.rs` - fix: adjust after rebase - test: fix float tests - test: add tests for `fract` - chore: add commented-out `const_float_round_methods` feature gates to `f16` and `f128` - fix: adjust NaN when rounding floats - chore: add FIXME comment for de-duplicating float tests - test: remove unnecessary test file `tests/ui/consts/const-eval/float_methods.rs` - test: fix tests after upstream simplification of how float tests are run
2025-05-31Rollup merge of #141740 - nnethercote:hir-ItemKind-field-order, r=fee1-deadMatthias Krüger-21/+21
Hir item kind field order A follow-up to rust-lang/rust#141675. r? `@fee1-dead`
2025-05-31Merge pull request #19900 from Veykril/push-zurosouxqxzzLukas Wirth-2/+2
fix: Fix manual not containing diagnostics documentation
2025-05-31fix: Fix manual not containing diagnostics documentationLukas Wirth-2/+2
2025-05-31Merge commit '57cbadd68ac473bc50453f6b1320a02b68115f12'Philipp Krones-671/+1995
2025-05-31Account for `Generate` actions when filtering the allowed onesKirill Bulatov-0/+1
2025-05-31Merge pull request #4361 from nia-e/remove-oopsieRalf Jung-46/+0
Remove useless file
2025-05-31accidentally committed fileNia Espera-46/+0
2025-05-31Merge pull request #19898 from Veykril/push-ykumpuwmuvmuLukas Wirth-19/+8
refactor: Remove unncessary duplication in highlight_related
2025-05-31refactor: Remove unncessary duplication in highlight_relatedLukas Wirth-19/+8
2025-05-31Merge from rustcThe Miri Cronjob Bot-7/+141