rust-analyzer/crates/ide_assists/src
bors[bot] 8f504dc873
Merge #11598
11598: feat: Parse destructuring assignment r=Veykril a=ChayimFriedman2

Part of #11532.

Lowering is not as easy and may not even be feasible right now as it requires generating identifiers: `(a, b) = (b, a)` is desugared into
```rust
{
    let (<gensym_a>, <gensym_b>) = (b, a);
    a = <gensym_a>;
    b = <gensym_b>;
}
```

rustc uses hygiene to implement that, but we don't support hygiene yet.

However, I think parsing was the main problem as lowering will just affect type inference, and while `{unknown}` is not nice it's much better than a syntax error.

I'm still looking for the best way to do lowering, though.

Fixes #11454.

Co-authored-by: Chayim Refael Friedman <chayimfr@gmail.com>
2022-03-05 11:31:29 +00:00
..
handlers Merge #11598 2022-03-05 11:31:29 +00:00
tests Make replace_derive_with_manual_impl work again 2022-02-22 10:20:44 +01:00
utils internal: move all the lexing to the parser crate 2021-12-18 17:20:38 +03:00
assist_config.rs 7526: Rename crate assists to ide_assists. 2021-02-23 00:59:16 +05:30
assist_context.rs Make AssistContext::frange private 2021-10-13 14:39:37 +02:00
lib.rs Merge #10998 2021-12-13 18:49:06 +00:00
tests.rs minor: fixup generate assist priorities 2021-12-13 16:42:21 +01:00
utils.rs Preserve order of generic args 2022-03-04 11:46:14 +03:30