35093 Commits

Author SHA1 Message Date
Chayim Refael Friedman
6b558621a9 Fix link in the book 2025-06-25 06:30:16 +03:00
Lukas Wirth
c68c8a81a7
Merge pull request #20087 from Veykril/push-rrtkwpzmmwwz
Short circuit a couple hir-ty/lower queries
2025-06-24 18:15:42 +00:00
Lukas Wirth
c43e7c71de Short circuit a couple hir-ty/lower queries 2025-06-24 20:04:43 +02:00
Lukas Wirth
70cbf8332a
Merge pull request #20012 from lnicola/bump-literal-escaper
Update to literal-escaper 0.0.4
2025-06-24 08:21:36 +00:00
Lukas Wirth
4589eb8748
Merge pull request #20080 from Veykril/push-vnrwqppplykm
Cleanup `folding_ranges` and support more things
2025-06-24 08:02:55 +00:00
Lukas Wirth
13221eb4e6 Cleanup folding_ranges and support more things 2025-06-24 09:51:44 +02:00
Lukas Wirth
ee012e0749
Merge pull request #20061 from ChayimFriedman2/wrap-ret-ty
fix: In "Wrap return type" assist, don't wrap exit points if they already have the right type
2025-06-24 07:16:46 +00:00
Lukas Wirth
5cda2dd412
Merge pull request #20064 from Wilfred/document_sysroot_project
Document sysroot_project field in rust-project.json
2025-06-24 07:15:19 +00:00
Lukas Wirth
b50d527931
Merge pull request #20036 from Veykril/push-yquvoyrxkksx
Do not default to 'static for trait object lifetimes
2025-06-24 06:59:54 +00:00
Lukas Wirth
2b05bd7d7e Do not default to 'static for trait object lifetimes
We lack trait object default lifetime elision, so `'static` can be wrong at times, confusing the user
2025-06-24 08:49:24 +02:00
Lukas Wirth
95dce2be51
Merge pull request #20062 from ChayimFriedman2/doctests
minor: Don't run doctests
2025-06-24 06:47:24 +00:00
Lukas Wirth
937cd5292e
Merge pull request #20072 from Veykril/push-sorvvvzskywv
fix: Respect `.cargo/config.toml` `build.target-dir`
2025-06-24 05:50:47 +00:00
Laurențiu Nicola
96be3788a6
Merge pull request #20076 from ChayimFriedman2/faq
docs: Add troubleshooting FAQ to the book
2025-06-23 18:27:36 +00:00
Chayim Refael Friedman
84c4dfdee9 Add troubleshooting FAQ to the book
And one frequently asked question.
2025-06-23 21:16:21 +03:00
Lukas Wirth
f7a830724d fix: Respect .cargo/config.toml build.target-dir 2025-06-23 19:47:52 +02:00
Chayim Refael Friedman
64338f2463
Merge pull request #20073 from ShoyuVanilla/fix-fmt-args-hygiene
fix: Use `ROOT` hygiene for `args` inside new `format_args!` expansion
2025-06-23 16:22:07 +00:00
Shoyu Vanilla
254c6ec8e1 fix: Use ROOT hygiene for args inside new format_args! expansion 2025-06-24 01:10:32 +09:00
Lukas Wirth
ab9e7bdc83
Merge pull request #20069 from Veykril/push-mnqkqxomtlxn
fix: Fix cargo project manifest not pointing to the workspace root
2025-06-23 12:19:41 +00:00
Lukas Wirth
44f2cf9700 fix: Fix cargo project manifest not pointing to the workspace root 2025-06-23 14:04:57 +02:00
Laurențiu Nicola
f9e371c32d
Merge pull request #20063 from lnicola/sync-from-rust
minor: sync from downstream
2025-06-23 09:44:54 +00:00
Wilfred Hughes
994831f240 Document sysroot_project field in rust-project.json 2025-06-23 10:43:45 +01:00
Laurențiu Nicola
b9ae87d586 Merge from rust-lang/rust 2025-06-23 12:17:31 +03:00
Laurențiu Nicola
f24c253454 Preparing for merge from rust-lang/rust 2025-06-23 12:17:08 +03:00
bors
17abceca1b Auto merge of #142728 - kornelski:string-track, r=tgross35
Let String pass #[track_caller] to its Vec calls

I've added `#[track_caller]` to `String` methods that delegate to `Vec` methods that already have `#[track_caller]`.

I've also added `#[track_caller]` to methods that have `assert!` or `panic!` due to invalid inputs.
2025-06-22 23:30:10 +00:00
Chayim Refael Friedman
de312d0c71 Don't run doctests 2025-06-23 00:50:22 +03:00
Chayim Refael Friedman
78427be4d7 In "Wrap return type" assist, don't wrap exit points if they already have the right type 2025-06-23 00:45:40 +03:00
bors
5f588570b4 Auto merge of #142706 - fee1-dead-contrib:push-zsznlqyrzsqo, r=oli-obk
completely deduplicate `Visitor` and `MutVisitor`

r? oli-obk

This closes rust-lang/rust#127615.

### Discussion

> * Give every `MutVisitor::visit_*` method a corresponding `flat_map_*` method.

Not every AST node exists in a location where they can be mapped to multiple instances of themselves. Not every AST node exists in a location where they can be removed from existence (e.g. `filter_map_expr`). I don't think this is doable.

> * Give every `MutVisitor::visit_*` method a corresponding `Visitor` method and vice versa

The only three remaining method-level asymmetries after this PR are `visit_stmt` and `visit_nested_use_tree` (only on `Visitor`) and `visit_span` (only on `MutVisitor`).

`visit_stmt` doesn't seem applicable to `MutVisitor` because `walk_flat_map_stmt_kind` will ask `flat_map_item` / `filter_map_expr` to potentially turn a single `Stmt` to multiple based on what a visitor wants. So only using `flat_map_stmt` seems appropriate.

`visit_nested_use_tree` is used for `rustc_resolve` to track stuff. Not useful for `MutVisitor` for now.

`visit_span` is currently not used for `MutVisitor` already, it was just kept in case we want to revive rust-lang/rust#127241. cc `@cjgillot` maybe we could remove for now and re-insert later if we find a use-case? It does involve some extra effort to maintain.

* Remaining FIXMEs

`visit_lifetime` has an extra param for `Visitor` that's not in `MutVisitor`. This is again something only used by `rustc_resolve`. I think we can keep that symmetry for now.
2025-06-22 14:03:44 +00:00
bors
89a89dfb17 Auto merge of #142675 - tmiasko:preserve-cache, r=oli-obk
Preserve caches in a call to shrink_to_fit

A small follow up to rust-lang/rust#142542.
2025-06-22 06:49:02 +00:00
Chayim Refael Friedman
0100bc7373
Merge pull request #20056 from ShoyuVanilla/fmt-args-new
Minic rustc's new `format_args!` expansion
2025-06-23
2025-06-22 04:35:11 +00:00
Shoyu Vanilla
4f8767d790 Minic rustc's new format_args! expansion 2025-06-22 13:22:28 +09:00
Shoyu Vanilla
c13859903c Implement region negation to minicore and add a flag fmt_before_1_89_0 2025-06-22 12:01:19 +09:00
bors
d0a47b279b Auto merge of #142667 - yotamofek:pr/rustdoc/more-write-shared-perf, r=nnethercote
Avoid a few more allocations in `write_shared.rs`

Inspired by rust-lang/rust#141421 , avoids a few `Vec`, `PathBuf` and `String` allocations in `write_shared.rs`. I don't think these will show up on benchmarks, but are still worthwhile IMHO.
Also includes a few small cleanups.
r? nnethercote - if you'd like :)
2025-06-21 23:18:00 +00:00
Chayim Refael Friedman
0ddaf2cd7b
Merge pull request #20050 from LHolten/better-docs-for-exclude-imports-in-symbol-search
Add better documentation for excluding imports from symbol search
2025-06-21 20:34:56 +00:00
bors
5c38587c8e Auto merge of #142546 - cjgillot:reachable-jump, r=compiler-errors
Only traverse reachable blocks in JumpThreading.

Fixes https://github.com/rust-lang/rust/issues/131451

We only compute loop headers for reachable blocks. We shouldn't try to perform an opt on unreachable blocks anyway.
2025-06-21 18:54:29 +00:00
bors
3bf5a844c1 Auto merge of #142817 - matthiaskrgr:rollup-mrobovy, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - rust-lang/rust#142502 (rustdoc_json: improve handling of generic args)
 - rust-lang/rust#142597 (error on calls to ABIs that cannot be called)
 - rust-lang/rust#142785 (fix(linkcheck): Build using the lockfile)
 - rust-lang/rust#142787 (Add diagnostic items for Clippy)
 - rust-lang/rust#142788 (add doc(alias("AsciiChar")) to core::ascii::Char)
 - rust-lang/rust#142801 (Use gen blocks in the compiler instead of `from_coroutine`)
 - rust-lang/rust#142804 (Rename `LayoutS` to `LayoutData` in comments)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-21 10:03:08 +00:00
Lukas Wirth
56de2113f1
Merge pull request #20047 from ShoyuVanilla/comp-time-deps
internal: Utilize `cargo check --compile-time-deps`
2025-06-21 09:19:44 +00:00
Matthias Krüger
df90ae3119
Rollup merge of #142804 - zachs18:rename-layouts-to-layoutdata-in-comments, r=saethlin
Rename `LayoutS` to `LayoutData` in comments

`LayoutS` was renamed to `LayoutData`, but some comments in the compiler were not changed. This updates comments in the compiler (and one section of commented-out code in rust-analyzer) to refer to `LayoutData` instead of `LayoutS`.

cc <https://github.com/rust-lang/rust/pull/132252>, `@workingjubilee`
2025-06-21 10:53:28 +02:00
Laurențiu Nicola
19c23eadf2
Merge pull request #20053 from ze/master
fix: Correct grammar in remove all unused imports assist
2025-06-21 06:27:06 +00:00
Zakaria Elkatani
333808877b fix: Correct grammar in remove all unused imports assist 2025-06-21 01:48:55 -04:00
Shoyu Vanilla
98c92fa879 internal: Utilize cargo check --compile-time-deps 2025-06-21 14:36:44 +09:00
Zachary S
55968213fc rust-analyzer: Rename LayoutS to LayoutData in comments 2025-06-20 12:50:55 -05:00
Lucas Holten
7492b63c18 Add better documentation for excluding imports from symbol search 2025-06-20 13:26:59 +02:00
Florian Diebold
b0552d779f
Merge pull request #20046 from regexident/type-param-parent-getter
Add `fn parent(self, db) -> GenericDef` to `hir::TypeParam`
2025-06-20 07:41:04 +00:00
bors
daf891e11b Auto merge of #142286 - Kobzol:clippy-jemalloc, r=flip1995,blyxyas
Use jemalloc for Clippy

The tool macros are annoying, we should IMO just get rid of them, create separate steps for each tool and (re)use some builders in them to share the build code.

r? `@ghost`
2025-06-20 06:33:35 +00:00
bors
d152dbb0e8 Auto merge of #142294 - GuillaumeGomez:specialize-tostring-on-128-integers, r=tgross35
Use a distinct `ToString` implementation for `u128` and `i128`

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

Follow-up of rust-lang/rust#136264.

When working on https://github.com/rust-lang/rust/pull/142098, I realized that `i128` and `u128` could also benefit from a distinct `ToString` implementation so here it.

The last commit is just me realizing that I forgot to add the format tests for `usize` and `isize`.

Here is the bench comparison:

| bench name | last nightly | with this PR | diff |
|-|-|-|-|
| bench_i128 | 29.25 ns/iter (+/- 0.66) | 17.52 ns/iter (+/- 0.7) | -40.1% |
| bench_u128 | 34.06 ns/iter (+/- 0.21) | 16.1 ns/iter (+/- 0.6) | -52.7% |

I used this code to test:

```rust
#![feature(test)]

extern crate test;

use test::{Bencher, black_box};

#[inline(always)]
fn convert_to_string<T: ToString>(n: T) -> String {
    n.to_string()
}

macro_rules! decl_benches {
    ($($name:ident: $ty:ident,)+) => {
        $(
	    #[bench]
            fn $name(c: &mut Bencher) {
                c.iter(|| convert_to_string(black_box({ let nb: $ty = 20; nb })));
            }
	)+
    }
}

decl_benches! {
    bench_u128: u128,
    bench_i128: i128,
}
```
2025-06-20 02:55:43 +00:00
HKalbasi
dc2e14d5f3
Merge pull request #20035 from joshka/jm/test-explorer-color
Add --color=always to test explorer command
2025-06-20 00:11:57 +00:00
Vincent Esche
90f392108c Add fn parent(self, db) -> GenericDef to hir::TypeParam 2025-06-19 18:04:46 +02:00
bors
60f977bd80 Auto merge of #141864 - Berrysoft:cygwin-path, r=ChrisDenton
Handle win32 separator for cygwin paths

This PR handles a issue that cygwin actually supports Win32 path, so we need to handle the Win32 prefix and separaters.

r? `@mati865`

cc `@jeremyd2019`

~~Not sure if I should handle the prefix like the windows target... Cygwin *does* support win32 paths directly going through the APIs, but I think it's not the recommended way.~~

Here I just use `cygwin_conv_path` because it handles both cygwin and win32 paths correctly and convert them into absolute POSIX paths.

UPDATE: Windows path prefix is handled.
2025-06-19 13:38:37 +00:00
bors
9269c82c63 Auto merge of #142245 - marcoieni:split-gnu-tools, r=Kobzol
ci: split x86_64-gnu-tools job

try-job: x86_64-gnu-tools
try-job: x86_64-gnu-miri
try-job: aarch64-gnu
2025-06-19 10:39:00 +00:00
Lukas Wirth
df50136c23
Merge pull request #20042 from Veykril/push-uosxynulorzn
fix: Temporarily disable `+` typing handler as it moves the cursor position
2025-06-19 06:40:37 +00:00