Commit graph

35192 commits

Author SHA1 Message Date
Lukas Wirth
4183bcdcde
Merge pull request #20148 from ShoyuVanilla/sysroot-no-deps
fix: Honor `rust-analyzer.cargo.noDeps` option when fetching sysroot metadata
2025-07-04 08:03:25 +00:00
Lukas Wirth
d91030153c
Merge pull request #20165 from Hmikihiro/migrate-unmerge_match_arm
Migrate `unmerge_match_arm` Assist to use `SyntaxEditor`
2025-07-04 08:02:58 +00:00
Lukas Wirth
e9504252b8
Merge pull request #20167 from ChayimFriedman2/enum-derive-default
fix: Fix some things with builtin derives
2025-07-04 07:59:14 +00:00
Chayim Refael Friedman
040049b799
Merge pull request #20144 from regexident/load-workspace-into-db
Some checks are pending
metrics / build_metrics (push) Waiting to run
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
metrics / generate_final_metrics (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
Add `fn load_workspace_into_db` variant for `ra_ap_load_cargo`'s `fn load_workspace`
2025-07-03 23:08:37 +00:00
Vincent Esche
a0e857f7bc Add fn load_workspace_into_db variant for ra_ap_load_cargo's fn load_workspace 2025-07-03 23:09:49 +02:00
Chayim Refael Friedman
9c4a7705b1 Fix some things with builtin derives
1. Err on unions on derive where it's required.
 2. Err on `#[derive(Default)]` on enums without `#[default]` variant.
 3. Don't add where bounds `T: Default` when expanding `Default` on enums (structs need that, enums not).

Also, because I was annoyed by that, in minicore, add a way to filter on multiple flags in the line-filter (`// :`). This is required for the `Debug` and `Hash` derives, because the derive should be in the prelude but the trait not.
2025-07-03 23:05:56 +03:00
Hayashi Mikihiro
c0ca61b8ff Migrate unmerge_match_arm Assist to use SyntaxEditor
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-04 02:32:55 +09:00
Lukas Wirth
87940a999f
Merge pull request #20161 from ShoyuVanilla/closure-capture
Some checks are pending
metrics / build_metrics (push) Waiting to run
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
metrics / generate_final_metrics (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
fix: Incorrect closure capturing for let exprs
2025-07-03 15:42:11 +00:00
Chayim Refael Friedman
c0d9c95926
Merge pull request #20120 from Hmikihiro/match_bind_not_type
fix: resolve item in match bind
2025-07-03 15:27:07 +00:00
Hayashi Mikihiro
07a1b4e69f fix: resolve item in match bind
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-03 23:57:18 +09:00
Shoyu Vanilla
f3eb22edd0 fix: Closure capturing for let exprs, again 2025-07-03 22:51:16 +09:00
Lukas Wirth
f14bf95931
Merge pull request #20160 from Veykril/push-pqvskktpnylu
fix: Improve diagnostic ranges for `macro_calls!`
2025-07-03 12:23:23 +00:00
Lukas Wirth
2480a42ff4 fix: Improve diagnostic ranges for macro_calls!
We used to point to the entire macro call including its token tree if we couldn't upmap the diagnostic to the input
This generally makes things very noisy as the entire macro call will turn red on errors.
Instead, we now macro the path and `!` (bang) token as the error source range which is a lot nicer on the eyes.
2025-07-03 14:12:27 +02:00
Lukas Wirth
292ab7cf95
Merge pull request #20159 from Veykril/push-kyssnlrxlwsl
Always couple `--compile-time-deps` with
2025-07-03 11:03:36 +00:00
Lukas Wirth
2219f8e175 Always couple --compile-time-deps with
`--all-targets` coupled with `--compile-time-deps` will never actually build binaries and so it won't fail for targets where libtest is missing
2025-07-03 12:52:32 +02:00
Lukas Wirth
5c3b06b4c0
Merge pull request #20158 from Veykril/push-rquozrwuskry
Some checks are pending
metrics / generate_final_metrics (push) Blocked by required conditions
metrics / build_metrics (push) Waiting to run
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
fix: Do not warn about proc-macro srv when sysroot is missing
2025-07-03 10:03:04 +00:00
Lukas Wirth
d1149cba49 fix: Do not warn about proc-macro srv when sysroot is missing 2025-07-03 11:51:31 +02:00
Lukas Wirth
fc2a3bfdab
Merge pull request #20157 from Veykril/push-nxrvpywtvoys
Re-enable fixpoint iteration for variance computation
2025-07-03 09:27:44 +00:00
Lukas Wirth
a3dc41bf97 Re-enable fixpoint iteration for variance computation 2025-07-03 10:48:09 +02:00
Lukas Wirth
661e7d2ac2
Merge pull request #19923 from Veykril/push-rlrsyxsqnxnn
Bump salsa
2025-07-03 08:16:33 +00:00
Lukas Wirth
8029c731ed Bump salsa 2025-07-03 10:05:16 +02:00
Lukas Wirth
115d59f327
Merge pull request #20112 from Veykril/push-ruszuxrqzmvz
Workaround missing none group support in builtin macros
2025-07-03 08:04:16 +00:00
Lukas Wirth
a1f548bce2
Merge pull request #20156 from Veykril/push-knkzxuxkzoyx
Restructure proc-macro loading erros, differentiate hard error property on kind
2025-07-03 07:40:17 +00:00
Lukas Wirth
e54759083a Restructure proc-macro loading erros, differentiate hard error property on kind 2025-07-03 09:28:53 +02:00
Lukas Wirth
422a777143
Merge pull request #20151 from ChayimFriedman2/keyword-hover-link
fix: Remove keyword prefixes (`macro@` or `macro `) from links in the docs only if the link target is inferred
2025-07-03 06:27:39 +00:00
Chayim Refael Friedman
3d88c1e647 Remove keyword prefixes (macro@ or macro ) from links in the docs only if the link target is inferred
That is, do it for `[macro foo]`, but not for `[macro foo](macro foo)`.
2025-07-03 00:41:47 +03:00
Shoyu Vanilla
224b84f843 fix: Honor rust-analyzer.cargo.noDeps option when fetching sysroot metadata 2025-07-03 00:16:05 +09:00
Laurențiu Nicola
11d45c8813
Merge pull request #20137 from Hmikihiro/migrate-wrap_unwrap_cfg_attr-assist-to-syntaxeditor
Some checks are pending
metrics / build_metrics (push) Waiting to run
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
metrics / generate_final_metrics (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
Migrate `wrap_unwrap_cfg_attr` Assist to use `SyntaxEditor`
2025-07-02 05:24:36 +00:00
Hayashi Mikihiro
0b7ad9cd0f Migrate wrap_unwrap_cfg_attr assist to use SyntaxEditor
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-02 01:18:22 +09:00
Laurențiu Nicola
aa16885e62
Merge pull request #20136 from Hmikihiro/migrate-toggle_macro_delimiter
Some checks are pending
metrics / build_metrics (push) Waiting to run
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
metrics / generate_final_metrics (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
Migrate `toggle_macro_delimiter` Assist to use `SyntaxEditor`
2025-07-01 13:53:02 +00:00
Hayashi Mikihiro
3af0f4f6be Migrate toggle_macro_delimiter assist to SyntaxEditor
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-01 22:40:31 +09:00
Laurențiu Nicola
cb52f4c3c9
Merge pull request #20135 from Hmikihiro/migrate-promote_local_to_const-assist-tosyntaxeditor
Migrate `promote_local_to_const` Assist to `SyntaxEditor`
2025-07-01 11:23:23 +00:00
Hayashi Mikihiro
a423b7c7cc Migrate promote_local_to_const Assist to SyntaxEditor
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-01 20:11:52 +09:00
Laurențiu Nicola
ce2c0c968a
Merge pull request #20134 from Hmikihiro/migrate-replace_is_method_with_if_let_method-to-SyntaxFactory
Migrate `replace_is_method_with_if_let_method` Assist to use `SyntaxFactory`
2025-07-01 10:39:30 +00:00
Hayashi Mikihiro
fcc81a38b3 remove if-let chains
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-01 18:38:50 +09:00
Hayashi Mikihiro
f6a247dc57 Migrate replace_is_method_with_if_let_method Assist to use SyntaxFactory
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-01 17:19:16 +09:00
Laurențiu Nicola
eaf37e2c98
Merge pull request #20128 from lnicola/sync-from-rust
Some checks are pending
metrics / build_metrics (push) Waiting to run
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
metrics / generate_final_metrics (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
Sync from downstream
2025-06-30 15:11:33 +00:00
Laurențiu Nicola
07e1072932 Merge from rust-lang/rust 2025-06-30 17:42:03 +03:00
Laurențiu Nicola
02434fda4d Preparing for merge from rust-lang/rust 2025-06-30 17:41:18 +03:00
Lukas Wirth
c5a1078578
Merge pull request #20124 from zachs18/patch-1
Some checks are pending
metrics / build_metrics (push) Waiting to run
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
metrics / generate_final_metrics (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
Remove last use of `rustc_pattern_analysis::Captures`
2025-06-30 05:32:04 +00:00
zachs18
0eb3ee8eb1
Remove last use of rustc_pat_analysis::Captures
It's not necessary anymore due to Rust 2024 lifetime capture rules.
2025-06-29 22:36:53 -05:00
bors
f4728fc613 Auto merge of #142802 - compiler-errors:dedup-analyses, r=lcnr
Collapse Analysis|Borrowck|PostBorrowckAnalysis when there are no opaques

r? lcnr
2025-06-29 19:12:29 +00:00
Chayim Refael Friedman
6df12139bc
Merge pull request #20122 from chenyukang/yukang-fix-remove-parens
Some checks failed
metrics / build_metrics (push) Waiting to run
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
metrics / generate_final_metrics (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
autopublish / publish (push) Has been cancelled
release / dist (aarch64-apple-darwin) (push) Has been cancelled
release / dist (x86_64-apple-darwin) (push) Has been cancelled
release / dist (aarch64-unknown-linux-gnu) (push) Has been cancelled
release / dist (arm-unknown-linux-gnueabihf) (push) Has been cancelled
release / dist (x86_64-unknown-linux-gnu) (push) Has been cancelled
release / dist (aarch64-pc-windows-msvc) (push) Has been cancelled
release / dist (x86_64-pc-windows-msvc) (push) Has been cancelled
release / dist (i686-pc-windows-msvc) (push) Has been cancelled
release / dist (x86_64-unknown-linux-musl) (push) Has been cancelled
release / publish (push) Has been cancelled
Remove unnecessary parens in closure
2025-06-29 15:14:31 +00:00
yukang
d8b424cb4c Remove unnecessary parens in closure 2025-06-29 19:28:48 +08:00
Lukas Wirth
7c3de9df36
Merge pull request #20121 from Veykril/push-vkkuutpsuypq
Some checks are pending
metrics / build_metrics (push) Waiting to run
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
metrics / generate_final_metrics (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
Do not append `--compile-time-deps` to overwritten build script commands
2025-06-29 07:18:59 +00:00
Lukas Wirth
f055cbce1a Do not append --compile-time-deps to overwritten build script commands 2025-06-29 09:07:55 +02:00
bors
88d4ce161e Auto merge of #142625 - cjgillot:inline-nocycle, r=oli-obk
Only compute recursive callees once.

Inlining MIR in a cyclic call graph may create query cycles, which are ICEs. The current implementation `mir_callgraph_reachable(inlining_candidate, being_optimized)` checks if calling `inlining_candidate` may cycle back to `being_optimized` that we are currently inlining into.

This PR replaces this device with query `mir_callgraph_cyclic(being_optimized)` which searches the call graph for all cycles going back to `being_optimized`, and returns the set of functions involved in those cycles.

This is a tradeoff:
- in the current implementation, we perform more walks, but shallower;
- in this new implementation, we perform fewer walks, but exhaust the graph.

I'd have liked to compute this using some kind of SCC, but generic parameters make resolution path-dependent, so usual graph algorithms do not apply.
2025-06-28 19:11:42 +00:00
bors
23aa85e1c6 Auto merge of #141759 - 1c3t3a:discriminants-query, r=saethlin
Insert checks for enum discriminants when debug assertions are enabled

Similar to the existing null-pointer and alignment checks, this checks for valid enum discriminants on creation of enums through unsafe transmutes. Essentially this sanitizes patterns like the following:
```rust
let val: MyEnum = unsafe { std::mem::transmute<u32, MyEnum>(42) };
```

An extension of this check will be done in a follow-up that explicitly sanitizes for extern enum values that come into Rust from e.g. C/C++.

This check is similar to Miri's capabilities of checking for valid construction of enum values.

This PR is inspired by saethlin@'s PR
https://github.com/rust-lang/rust/pull/104862. Thank you so much for keeping this code up and the detailed comments!

I also pair-programmed large parts of this together with vabr-g@.

r? `@saethlin`
2025-06-28 10:25:00 +00:00
Lukas Wirth
13ffda70eb
Merge pull request #20118 from Veykril/push-nolsxzxmykls
Some checks are pending
metrics / other_metrics (diesel-1.4.8) (push) Blocked by required conditions
metrics / build_metrics (push) Waiting to run
metrics / other_metrics (hyper-0.14.18) (push) Blocked by required conditions
metrics / other_metrics (ripgrep-13.0.0) (push) Blocked by required conditions
metrics / other_metrics (self) (push) Blocked by required conditions
metrics / other_metrics (webrender-2022) (push) Blocked by required conditions
metrics / generate_final_metrics (push) Blocked by required conditions
rustdoc / rustdoc (push) Waiting to run
ci: Fix up release workflow
2025-06-28 09:54:42 +00:00
Lukas Wirth
968d2467a8 ci: Fix up release workflow 2025-06-28 11:35:55 +02:00