Commit Graph

37834 Commits

Author SHA1 Message Date
Jonathan Brouwer
f2e76266df Rollup merge of #150267 - lnicola:sync-from-ra, r=lnicola
`rust-analyzer` subtree update

Subtree update of `rust-analyzer` to 31d2019672.

Created using https://github.com/rust-lang/josh-sync.

r? `@ghost`
2025-12-22 17:33:37 +01:00
Jonathan Brouwer
f46d635fb5 Rollup merge of #150155 - Aditya-PS-05:fix/ice-150103-root-in-suggestions, r=estebank
fix ICE when {{root}} appears in import suggestions

Fixes rust-lang/rust#150103

When wrong nested imports like `use A::{::Fish}` were used, the internal {{root}} would appear in diagnostic suggestions, causing an ICE in `join_path_idents` which asserted that **{{root}} should only appear at the start of a path**.

r? ``@matthiaskrgr``
2025-12-22 17:33:37 +01:00
Jonathan Brouwer
a464c104e9 Rollup merge of #150098 - Bryntet:perf-testing, r=JonathanBrouwer
remove `legacy_const_generic_args` cache

putting this here to run perf
2025-12-22 17:33:36 +01:00
Ralf Jung
fe5be23897 Merge pull request #4757 from royAmmerschuber/feature/multi_exposed_main
Tree Borrows: multiple invalid exposed nodes on main subtree
2025-12-22 16:23:05 +00:00
bit-aloo
2c71fa8cd4 rename PostcardNew to bidirectional-postcard-prototype 2025-12-22 20:56:16 +05:30
Laurențiu Nicola
ea18787e9c Fix name collision warning 2025-12-22 16:44:06 +02:00
bit-aloo
a79fa074fe remove envelop and keep it simple 2025-12-22 20:04:35 +05:30
bit-aloo
2a6cc5c9fc comment out disabled workflow 2025-12-22 19:21:22 +05:30
bit-aloo
f010e28689 remove request_id, rename postcardNew to BidirectionalPostcardPrototype and remove JsonNew 2025-12-22 19:21:05 +05:30
Laurențiu Nicola
624761a864 Merge pull request #21318 from rust-lang/rustc-pull
minor: Rustc pull update
2025-12-22 13:49:55 +00:00
Lukas Wirth
31d2019672 Merge pull request #20521 from A4-Tacks/suggest-break-expr
Add BreakExpr completion suggest
2025-12-22 12:36:29 +00:00
A4-Tacks
ac01f880d7 Add BreakExpr completion suggest
- Move `ide::goto_definition::find_loops`
  into `ide_db::syntax_helpers::node_ext::find_loops`
2025-12-22 20:13:56 +08:00
Lukas Wirth
d1a3407ff8 Merge pull request #20595 from A4-Tacks/conv-iter-for-to-for-indent
Fix indent for convert_iter_for_each_to_for
2025-12-22 07:51:03 +00:00
bors
f562c1eb3d Auto merge of #148766 - cjgillot:mir-const-runtime-checks, r=RalfJung,saethlin
Replace Rvalue::NullaryOp by a variant in mir::Operand.

Based on https://github.com/rust-lang/rust/pull/148151

This PR fully removes the MIR `Rvalue::NullaryOp`. After rust-lang/rust#148151, it was only useful for runtime checks like `ub_checks`, `contract_checks` and `overflow_checks`.

These are "runtime" checks, boolean constants that may only be `true` in codegen. It depends on a rustc flag passed to codegen, so we need to represent those flags cross-crate.

This PR replaces those runtime checks by special variants in MIR `ConstValue`. This allows code that expects constants to manipulate those as such, even if we may not always be able to evaluate them to actual scalars.
2025-12-22 06:58:28 +00:00
A4-Tacks
d6a1e31373 Fix indent for convert_iter_for_each_to_for
Example
---
```rust
fn main() {
    {
        let it = core::iter::repeat(92);
        it.$0for_each(|param| match param {
            (x, y) => println!("x: {}, y: {}", x, y),
        });
    }
}
```

**Before this PR**:

```rust
fn main() {
    {
        let it = core::iter::repeat(92);
        for param in it {
            match param {
                    (x, y) => println!("x: {}, y: {}", x, y),
                }
        }
    }
}
```

**After this PR**:

```rust
fn main() {
    {
        let it = core::iter::repeat(92);
        for param in it {
            match param {
                (x, y) => println!("x: {}, y: {}", x, y),
            }
        }
    }
}
```
2025-12-22 14:47:27 +08:00
The rustc-josh-sync Cronjob Bot
0a5311af4d Merge ref 'f41f40408d71' from rust-lang/rust
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: f41f40408d719aa9ae0c6bfa17619d8f3f9e5b99
Filtered ref: 5abf378487
Upstream diff: 0208ee09be...f41f40408d

This merge was created using https://github.com/rust-lang/josh-sync.
2025-12-22 04:21:56 +00:00
The rustc-josh-sync Cronjob Bot
f511edf992 Prepare for merging from rust-lang/rust
This updates the rust-version file to f41f40408d719aa9ae0c6bfa17619d8f3f9e5b99.
2025-12-22 04:21:46 +00:00
Lukas Wirth
9d58a93602 Merge pull request #20439 from A4-Tacks/t-macro-bracket-doc
Add guess braces doc `T![]` for `T_`
2025-12-22
2025-12-21 14:19:06 +00:00
Lukas Wirth
14cc41f2ba Merge pull request #20438 from A4-Tacks/fix-guess-renamed-macro-braces
Fix guess renamed macro braces
2025-12-21 14:18:55 +00:00
Lukas Wirth
47037adcac Merge pull request #20577 from A4-Tacks/nested-if-indent
Fix indent for merge_nested_if
2025-12-21 14:03:50 +00:00
Lukas Wirth
ee9783825a Merge pull request #20576 from A4-Tacks/nested-if-let
Fix nested if-let for merge_nested_if
2025-12-21 14:03:26 +00:00
Lukas Wirth
09a64600fb Merge pull request #20472 from BenjaminBrienen/remove-style-point
Remove conflicting advice
2025-12-21 14:02:48 +00:00
Lukas Wirth
5b9198d11f Merge pull request #20597 from A4-Tacks/conv-to-guarded-ret-doc
Add LetStmt doc for convert_to_guarded_return
2025-12-21 14:02:06 +00:00
Lukas Wirth
3aecf081f6 Merge pull request #20996 from A4-Tacks/explicit-dot-call-deref
Add ide-assist: add_explicit_method_call_deref
2025-12-21 13:50:43 +00:00
Lukas Wirth
10418b49d0 Merge pull request #21316 from Veykril/push-rsxnznymvluw
Call out feature freeze on IDE assists
2025-12-21 13:28:45 +00:00
Lukas Wirth
1a420f5153 Call out feature freeze on IDE assists 2025-12-21 14:11:48 +01:00
Lukas Wirth
82d4f8bacd Merge pull request #21304 from asukaminato0721/19168
internal: Improve recursive mbe parsing behavior
2025-12-21 12:39:05 +00:00
Lukas Wirth
7fdd04bdb3 Merge pull request #21314 from Veykril/push-kywtpqlnwztr
Add 'Use of AI tools' section to CONTRIBUTING.md
2025-12-21 12:35:00 +00:00
Lukas Wirth
80e10c0ea0 Add 'Use of AI tools' section to CONTRIBUTING.md 2025-12-21 13:26:07 +01:00
bors
5abf378487 Auto merge of #149437 - ilammy:patch-1, r=Mark-Simulacrum
Fix trailing newline in JUnit formatter

`write_message()` expects messages to contain no newlines.

Fixes https://github.com/rust-lang/rust/issues/149436
2025-12-21 10:37:51 +00:00
Chayim Refael Friedman
ccb2ffe653 Merge pull request #21311 from A4-Tacks/serde-derive-feature
internal: Fix hir-ty implicit serde derive feature
2025-12-21 07:42:18 +00:00
A4-Tacks
5abec3c2ce internal: Fix hir-ty implicit serde derive feature
bad commit: 0dd3fe029a
cwd: crates/hir-ty
cmd: cargo check
output: error: cannot find derive macro `Serialize` in this scope
2025-12-21 15:30:47 +08:00
Chayim Refael Friedman
8f28e82a4f Merge pull request #21212 from A4-Tacks/comp-try-let-default-varname
Add default varname for TryEnum postfix completion
2025-12-21 06:13:23 +00:00
A4-Tacks
847317ccba Add default varname for TryEnum postfix completion
Example
---
```rust
fn main() {
    let bar = Some(true);
    bar.i$0
}
```

**Before this PR**

```rust
fn main() {
    let bar = Some(true);
    if let Some($1) = bar {
        $0
    }
}
```

**After this PR**

```rust
fn main() {
    let bar = Some(true);
    if let Some(${1:bar}) = bar {
        $0
    }
}
```
2025-12-21 13:55:21 +08:00
Chayim Refael Friedman
961fd33e8e Merge pull request #21310 from ChayimFriedman2/remove-attach-db
minor: Remove some redundant `attach_db()`s
2025-12-21 05:53:58 +00:00
Chayim Refael Friedman
b5fbcc6917 Merge pull request #21166 from A4-Tacks/fly-closure-this-param
Support undotted-self for `this` param closure
2025-12-21 05:37:24 +00:00
Chayim Refael Friedman
65c14db957 Remove some redundant attach_db()s 2025-12-21 07:10:19 +02:00
Chayim Refael Friedman
cbc18ae50c Merge pull request #21289 from A4-Tacks/add-ref-matched-type
Complete reference `&T` -> `&&T`
2025-12-21 05:08:04 +00:00
Chayim Refael Friedman
3d25bbf964 Merge pull request #21291 from A4-Tacks/expected-nested-match-arm-expr-ty
Fix match arm nested body invalid expected type
2025-12-21 05:04:56 +00:00
A4-Tacks
f8f69b2a61 Complete reference &T -> &&T
Example
---
```rust
struct S;
fn foo(s: &&S) {}
fn main() {
    let mut ssss = &S;
    foo($0);
}
```

**Before this PR**

```rust
st S S []
lc ssss &S [local]
st S S []
fn foo(…) fn(&&S) []
fn main() fn() []
```

**After this PR**

```rust
st S S []
lc ssss &S [local]
lc &ssss [type+local]
st S S []
fn foo(…) fn(&&S) []
fn main() fn() []
```
2025-12-21 12:58:12 +08:00
A4-Tacks
f0055f6557 Add parent_match method to node_ext 2025-12-21 12:54:47 +08:00
Chayim Refael Friedman
e47b23dafe Merge pull request #21293 from A4-Tacks/move-guard-no-apply-non-naked
Fix applicable on non naked if for move_guard assist
2025-12-21 04:38:36 +00:00
Chayim Refael Friedman
4849b44922 Merge pull request #21309 from jackh726/failed_obligations
Add an lsp extension to get failed obligations for a given function
2025-12-21 01:34:53 +00:00
jackh726
f870ae8dc0 Review comments - some cleanups to get_failed_obligations, including returning a list 2025-12-21 01:05:36 +00:00
jackh726
0dd3fe029a Add lsp extension to get failed trait obligations for a given function 2025-12-20 22:43:58 +00:00
bors
186b29522e Auto merge of #148329 - LorrensP-2158466:closure-prop, r=lcnr
Better closure requirement propagation.

Fixes rust-lang/rust#148289
Fixes rust-lang/rust#104477
Should unblock rust-lang/rust#148187

When propagating closure requirements we:
- no longer try to find a post dominiting region for the list of non-local lower bounds of `longer_fr`.
- we filter the list of `longer_fr-: shorter_fr+` to only these constraints between external regions which are required regardless. If no such constraint exists, we fall back to propagating all of them.

See the [FCP](https://github.com/rust-lang/rust/pull/148329#issuecomment-3581019253) for more information.

r? `@lcnr`
2025-12-20 21:05:32 +00:00
Chayim Refael Friedman
765b7bdb43 Merge pull request #21307 from ChayimFriedman2/more-perf-work
perf: More perf improvements, made possible after non-Salsa interneds
2025-12-20 18:04:57 +00:00
Chayim Refael Friedman
3ab0420c52 Replace some new() with new_from_args()
It's faster, when you already have a `GenericArgs`.
2025-12-20 19:21:57 +02:00
Chayim Refael Friedman
f91e54f7e5 Convert some <InternedSlice>::new_from_iter() to new_from_slice()
It's faster, when you have a slice available.
2025-12-20 19:08:26 +02:00
Chayim Refael Friedman
096ebb0759 Pre-intern some common types
This is possible now that they are no longer interned with Salsa.
2025-12-20 19:08:26 +02:00