about summary refs log tree commit diff
path: root/src/tools
AgeCommit message (Collapse)AuthorLines
2025-09-26Merge pull request #20748 from A4-Tacks/migrate-arith-op-precShoyu Vanilla (Flint)-12/+15
Migrate `replace_arith_op` assist to use `SyntaxEditor`
2025-09-26Merge pull request #20599 from A4-Tacks/bang-de-morganShoyu Vanilla (Flint)-7/+28
Add applicable on bang `!` for apply_demorgan
2025-09-26Migrate `replace_arith_op` assist to use `SyntaxEditor`A4-Tacks-12/+15
2025-09-26Merge pull request #20611 from A4-Tacks/replace-arith-op-precShoyu Vanilla (Flint)-1/+22
Fix precedence parenthesis for replace_arith_op
2025-09-26Merge pull request #20604 from A4-Tacks/cfg-attr-compShoyu Vanilla (Flint)-1/+53
Add cfg_attr predicate completion
2025-09-26Merge pull request #20729 from A4-Tacks/const-param-kwdShoyu Vanilla (Flint)-1/+28
Add const parameter keyword completion
2025-09-26Merge pull request #20731 from A4-Tacks/expand-rest-pat-in-tuple-slice-patShoyu Vanilla (Flint)-19/+289
Fix expand rest pattern in tuple and slice pattern
2025-09-26Fix expand rest pattern in tuple and slice patternA4-Tacks-19/+289
Assist: expand_tuple_rest_pattern Fills fields by replacing rest pattern in tuple patterns. Example --- ``` fn foo(bar: (char, i32, i32)) { let (ch, ..$0) = bar; } ``` -> ``` fn foo(bar: (char, i32, i32)) { let (ch, _1, _2) = bar; } ``` --- Assist: expand_slice_rest_pattern Fills fields by replacing rest pattern in slice patterns. Example --- ``` fn foo(bar: [i32; 3]) { let [first, ..$0] = bar; } ``` -> ``` fn foo(bar: [i32; 3]) { let [first, _1, _2] = bar; } ```
2025-09-26Merge pull request #20598 from A4-Tacks/let-chain-sup-conv-to-guarded-retShoyu Vanilla (Flint)-45/+252
Add let-chain support for convert_to_guarded_return
2025-09-26Merge pull request #20736 from A4-Tacks/fix-invert-if-let-chainShoyu Vanilla (Flint)-4/+13
Fix applicable on if-let-chain for invert_if
2025-09-26Merge pull request #20742 from A4-Tacks/unused-raw-varShoyu Vanilla (Flint)-2/+16
Fix fixes for unused raw variables
2025-09-25Add applicable in closure for convert_to_guarded_returnA4-Tacks-5/+49
Example --- ```rust fn main() { let _f = || { bar(); if$0 true { foo(); // comment bar(); } } } ``` -> ```rust fn main() { let _f = || { bar(); if false { return; } foo(); // comment bar(); } } ```
2025-09-25Fix not applicable for if-expr in let-stmtA4-Tacks-6/+28
Example --- ```rust fn main() { let _x = loop { if$0 let Ok(x) = Err(92) { foo(x); } }; } ``` **Before**: Assist not applicable **After**: ```rust fn main() { let _x = loop { let Ok(x) = Err(92) else { continue }; foo(x); }; } ```
2025-09-25Add let-chain support for convert_to_guarded_returnA4-Tacks-38/+179
- And add early expression `None` in function `Option` return Example --- ```rust fn main() { if$0 let Ok(x) = Err(92) && x < 30 && let Some(y) = Some(8) { foo(x, y); } } ``` -> ```rust fn main() { let Ok(x) = Err(92) else { return }; if x >= 30 { return; } let Some(y) = Some(8) else { return }; foo(x, y); } ```
2025-09-25Fix fixes for unused raw variablesA4-Tacks-2/+16
Example --- ``` fn main() { let $0r#type = 2; } ``` **Before this PR**: ```rust fn main() { let _r#type = 2; } ``` **After this PR**: ```rust fn main() { let _type = 2; } ```
2025-09-25Merge pull request #20738 from jackh726/next-trait-solver-next4Shoyu Vanilla (Flint)-127/+97
Remove non-ns version of impl_self_ty and impl_trait
2025-09-25Merge pull request #20735 from itsjunetime/fix_scip_salsaShoyu Vanilla (Flint)-1/+1
fix SCIP panicking due to salsa not attaching
2025-09-25Install cargo for proc-macro-srv testsLaurențiu Nicola-2/+2
2025-09-25Also install rustfmt on stableLaurențiu Nicola-3/+3
2025-09-25Merge ref 'caccb4d0368b' from rust-lang/rustThe rustc-josh-sync Cronjob Bot-10361/+24181
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: caccb4d0368bd918ef6668af8e13834d07040417 Filtered ref: 0f345ed05d559bbfb754f1403b16199366cda2e0 Upstream diff: https://github.com/rust-lang/rust/compare/21a19c297d4f5a03501d92ca251bd7a17073c08a...caccb4d0368bd918ef6668af8e13834d07040417 This merge was created using https://github.com/rust-lang/josh-sync.
2025-09-25Prepare for merging from rust-lang/rustThe rustc-josh-sync Cronjob Bot-1/+1
This updates the rust-version file to caccb4d0368bd918ef6668af8e13834d07040417.
2025-09-24fix SCIP panicking due to salsa not attachingitsjunetime-1/+1
2025-09-24Rollup merge of #146969 - RalfJung:maybe-null-errors, r=oli-obkMatthias Krüger-1/+1
const-eval: better wording for errors involving maybe-null pointers Fixes https://github.com/rust-lang/rust/issues/146748 r? ``@oli-obk``
2025-09-24Rollup merge of #146932 - ShoyuVanilla:ra-in-tree-hack, r=lcnrMatthias Krüger-40/+5
Switch next-solver related rustc dependencies of r-a to crates.io ones r? ``@ghost`` cc ``@lnicola`` ``@lcnr``
2025-09-24Implement fallback properlyChayim Refael Friedman-230/+770
fallback.rs was ported straight from rustc (minus the lint parts). This fixes the `!` regressions.
2025-09-24Merge pull request #20683 from regexident/inference-result-types-iterChayim Refael Friedman-0/+20
Expose iterators over an inference result's types
2025-09-24Switch next-solver related rustc dependencies of r-a to crates.io onesShoyu Vanilla-40/+5
2025-09-24const validation: better error for maybe-null referencesRalf Jung-1/+1
2025-09-24Fix applicable on if-let-chain for invert_ifA4-Tacks-4/+13
Example --- ```rust fn f() { i$0f x && let Some(_) = Some(1) { 1 } else { 0 } } ``` **Before this PR**: ```rust fn f() { if !(x && let Some(_) = Some(1)) { 0 } else { 1 } } ``` **After this PR**: Assist not applicable
2025-09-24Remove non-ns version of impl_self_ty and impl_traitjackh726-127/+97
2025-09-24Merge pull request #20733 from jackh726/next-trait-solver-next3Shoyu Vanilla (Flint)-528/+461
Convert more things from chalk to next solver
2025-09-23Auto merge of #146931 - RalfJung:miri, r=RalfJungbors-444/+370
miri subtree update Subtree update of `miri` to https://github.com/rust-lang/miri/commit/f6466ce655ff6b203de81ba6f4cbfe8d8dd6756f. Created using https://github.com/rust-lang/josh-sync. r? `@ghost`
2025-09-23Be sure to instantiate and pass up trait refs in ↵Jack Huey-12/+15
named_associated_type_shorthand_candidates
2025-09-23Remove all non-ns diagnostics queries, naming consistenlyJack Huey-154/+90
2025-09-23Use lower_nextsolver::callable_item_signature instead of ↵Jack Huey-141/+188
lower::callable_item_signature
2025-09-23Rollup merge of #146784 - dpaoliello:findmsvc, r=wesleywiserMatthias Krüger-0/+1
[win] Use find-msvc-tools instead of cc to find the linker and rc on Windows `find-msvc-tools` was factored out from `cc` to allow updating the use in `rustc_codegen_ssa` (finding the linker when running the Rust compiler) and `rustc_windows_rc` (finding the Windows Resource Compiler when running the Rust compiler) to be separate from the use in `rustc_llvm` (building LLVM as part of building the Rust compiler).
2025-09-23Rollup merge of #146731 - Muscraft:svg-test-terminal-url, r=jdonszelmannMatthias Krüger-1/+1
test: Use SVG for terminal url test I came across the test for `-Zterminal-urls` and found its output a bit hard to read. So, I decided to switch it to an SVG test, as I found it easier to differentiate the link and link text. Note: `anstyle-svg` needed to be upgraded to at least `0.1.8` to support links in SVGs, so I went ahead and upgraded it to the latest version (`0.1.11`).
2025-09-23Merge pull request #20543 from sgasho/fix/19443_replace_match_with_if_letShoyu Vanilla (Flint)-1/+23
Fix "Replace match with if let" not to trigger when invalid transformations occur
2025-09-23Expose iterators over an inference result's typesVincent Esche-0/+20
(This re-introduces a reduced access to a couple of previously public fields on `InferenceResult`)
2025-09-23Remove lower::value_ty in favor of lower_nextsolver::value_tyJack Huey-134/+61
2025-09-23Remove lower::ty in favor of lower_nextsolver::tyJack Huey-92/+112
2025-09-23Merge ref 'f6092f224d2b' from rust-lang/rustRalf Jung-9836/+39450
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: f6092f224d2b1774b31033f12d0bee626943b02f Filtered ref: f843cd4f29bdcd8d474dbb9e5e4365eb7f263ec6 This merge was created using https://github.com/rust-lang/josh-sync.
2025-09-23Prepare for merging from rust-lang/rustRalf Jung-1/+1
This updates the rust-version file to f6092f224d2b1774b31033f12d0bee626943b02f.
2025-09-23Merge pull request #20730 from A4-Tacks/migrate-expand-rest-patShoyu Vanilla (Flint)-12/+11
Migrate `expand_record_rest_pattern` assist to use `SyntaxEditor`
2025-09-23Auto merge of #146317 - saethlin:panic=immediate-abort, r=nnethercotebors-7/+35
Add panic=immediate-abort MCP: https://github.com/rust-lang/compiler-team/issues/909 This adds a new panic strategy, `-Cpanic=immediate-abort`. This panic strategy essentially just codifies use of `-Zbuild-std-features=panic_immediate_abort`. This PR is intended to just set up infrastructure, and while it will change how the compiler is invoked for users of the feature, there should be no other impacts. In many parts of the compiler, `PanicStrategy::ImmediateAbort` behaves just like `PanicStrategy::Abort`, because actually most parts of the compiler just mean to ask "can this unwind?" so I've added a helper function so we can say `sess.panic_strategy().unwinds()`. The panic and unwind strategies have some level of compatibility, which mostly means that we can pre-compile the sysroot with unwinding panics then the sysroot can be linked with aborting panics later. The immediate-abort strategy is all-or-nothing, enforced by `compiler/rustc_metadata/src/dependency_format.rs` and this is tested for in `tests/ui/panic-runtime/`. We could _technically_ be more compatible with the other panic strategies, but immediately-aborting panics primarily exist for users who want to eliminate all the code size responsible for the panic runtime. I'm open to other use cases if people want to present them, but not right now. This PR is already large. `-Cpanic=immediate-abort` sets both `cfg(panic = "immediate-abort")` _and_ `cfg(panic = "abort")`. bjorn3 pointed out that people may be checking for the abort cfg to ask if panics will unwind, and also the sysroot feature this is replacing used to require `-Cpanic=abort` so this seems like a good back-compat step. At least for the moment. Unclear if this is a good idea indefinitely. I can imagine this being confusing. The changes to the standard library attributes are purely mechanical. Apart from that, I removed an `unsafe` we haven't needed for a while since the `abort` intrinsic became safe, and I've added a helpful diagnostic for people trying to use the old feature. To test that `-Cpanic=immediate-abort` conflicts with other panic strategies, I've beefed up the core-stubs infrastructure a bit. There is now a separate attribute to set flags on it. I've added a test that this produces the desired codegen, called `tests/run-make-cargo/panic-immediate-abort-codegen/` and also a separate run-make-cargo test that checks that we can build a binary.
2025-09-23Migrate `expand_record_rest_pattern` assist to use `SyntaxEditor`A4-Tacks-12/+11
Because `add_field` uses `ted`
2025-09-23Add const parameter keyword completionA4-Tacks-1/+28
Example --- ```rust fn foo<c$0>() {} ``` -> ```rust fn foo<const $1: $0>() {} ```
2025-09-23Use ParamEnv in TraitEnvironmentJack Huey-170/+216
2025-09-23Add 'db to TraitEnvironmentJack Huey-109/+122
2025-09-23Make Field::ty return TypeNsjackh726-31/+51