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
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: 0dd3fe029a532c6c5fa3b0bdd7c4eb57843bb156
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
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
Chayim Refael Friedman
d2a029ae05
Use slices for Interner::FnInputTys and Interner::GenericArgsSlice, not Tys and GenericArgs respectively
...
This allows us to avoid interning them.
2025-12-20 19:08:26 +02:00
Chayim Refael Friedman
fa4ea90fb2
Merge pull request #21295 from ChayimFriedman2/non-salsa-interneds-v3
...
perf: Non-Salsa-interned solver types - with GC for them
2025-12-20 15:56:46 +00:00
Asuka Minato
a769fbdb87
fix
...
test case
2025-12-20 05:09:06 +09:00
Chayim Refael Friedman
5e2dfbbd02
Add extensive docs for the unsafe operations
2025-12-18 17:30:20 +02:00
Chayim Refael Friedman
36c9f6224c
GC support for solver types
...
A GC is triggered every X revisions, and is synchronous, unfortunately.
2025-12-18 10:12:03 +02:00
Chayim Refael Friedman
776c818882
Lay the basics for non-Copy solver types with GC
...
That means stop using Salsa for interning solver types.
2025-12-18 10:12:03 +02:00
Chayim Refael Friedman
ea1d2998f2
Merge pull request #21282 from J3m3/crate-attrs
...
feat: introduce `crate_attrs` field in `rust-project.json`
2025-12-18 01:38:37 +00:00
Jesung Yang
7f6858fd09
feat: introduce crate_attrs field in rust-project.json
...
Since the commit 50384460c68f
("Rewrite method resolution to follow rustc more closely"), the method
resolution logic has changed: rust-analyzer only looks up inherent
methods for primitive types in sysroot crates.
Unfortunately, this change broke at least one project that relies on
`rust-project.json`: Rust-for-Linux. Its auto-generated
`rust-project.json` directly embeds `core`, `alloc`, and `std` in the
`crates` list without defining `sysroot_src`. Consequently,
rust-analyzer fails to identify them as sysroot crates, breaking IDE
support for primitive methods (e.g., `0_i32.rotate_left(0)`).
However, specifying `sysroot_src` creates a new issue: it implicitly
adds `std` as a dependency to all kernel module crates, which are
actually compiled with `-Zcrate-attr=no_std`. Since rust-analyzer cannot
see compiler flags passed outside of the project definition, we need a
method to explicitly specify `#![no_std]` or, more generally,
crate-level attributes through the project configuration.
To resolve this, extend the `rust-project.json` format with a new
`crate_attrs` field. This allows users to specify crate-level attributes
such as `#![no_std]` directly into the configuration, enabling
rust-analyzer to respect them when analyzing crates.
References:
- The original Zulip discussion:
https://rust-lang.zulipchat.com/#narrow/channel/185405-t-compiler.2Frust-analyzer/topic/Primitive.20type.20inherent.20method.20lookup.20fails/with/562983853
2025-12-18 01:27:43 +00:00
Chayim Refael Friedman
efdb3de4f2
Merge pull request #21298 from J3m3/item-tree-pretty
...
feat: pretty print attributes up to `cfg(false)`
2025-12-18 00:54:43 +00:00
Jesung Yang
dd33c82f6b
feat: pretty print attributes up to cfg(false)
...
Extend ItemTree pretty-printing to include attributes even when a cfg
expression evaluates to false, emitting explicit `cfg(cfg_expr)` marker
after the attributes.
This improves testability of ItemTree attribute handling by exposing
more information in pretty-printed output.
2025-12-18 00:16:34 +00:00
Chayim Refael Friedman
02f53e88cf
Merge pull request #21294 from ChayimFriedman2/lang-items-redundant
...
minor: Remove redundant things from the lang items macro
2025-12-17 11:28:18 +00:00
Chayim Refael Friedman
edd49164aa
Remove redundant things from the lang items macro
2025-12-17 13:18:10 +02:00
Chayim Refael Friedman
34fd9f65a3
Merge pull request #21283 from ChayimFriedman2/upgrade-salsa
...
internal: Upgrade Salsa
2025-12-17 11:09:07 +00:00
Shoyu Vanilla (Flint)
e500b2e86e
Merge pull request #21285 from ChayimFriedman2/remove-rust-outdated-ungram
...
minor: Remove Rust ungram file from the Ungrammar repo
2025-12-17 11:00:37 +00:00
Chayim Refael Friedman
4e54d37ba3
Upgrade Salsa
...
The new version gives an additional `salsa::Id` to cycle handlers, and renames `non_update_return_type` to `non_update_types`.
2025-12-17 12:59:30 +02:00
A4-Tacks
390d14bdc8
Fix applicable on non naked if for move_guard assist
...
Example
---
```rust
fn main() {
match 92 {
_ => {
let cond = true;
$0if cond {
foo()
}
},
_ => true
}
}
```
**Before this PR**
```rust
fn main() {
match 92 {
_ if cond => foo(),
_ => true
}
}
```
**After this PR**
Assist not applicable
2025-12-17 17:53:52 +08:00
A4-Tacks
e1747f9ddf
Fix match arm nested body invalid expected type
...
Example
---
```rust
struct Foo;
enum E { X }
fn foo() -> Foo {
match E::X { Foo::X => { $0 } }
}
```
**Before this PR**
```text
ty: E, name: ?
```
**After this PR**
```text
ty: Foo, name: ?
```
2025-12-17 17:35:33 +08:00
Chayim Refael Friedman
32d50921d6
Remove Rust ungram file from the Ungrammar repo
...
It can be confused with the real Rust ungram, now that they're in the same repo.
2025-12-16 21:59:12 +02:00
Lukas Wirth
2a402415ec
Merge pull request #21284 from ChayimFriedman2/upgrade-rustc
...
internal: Upgrade rustc crates
2025-12-16 15:37:11 +00:00