rust/crates/ide_db/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
..
helpers Refactor autoderef and method resolution 2022-02-25 11:47:14 +01:00
line_index Make utf8 default, implement utf16 in terms of it 2021-02-16 19:17:32 +03:00
test_data Remove ModuleId from hir reexports 2022-01-12 20:21:13 +01:00
tests List struct to clonable 2021-12-17 08:33:46 +09:00
traits simplify 2021-05-28 20:46:09 +02:00
active_parameter.rs Split parts of ide_db::call_info off into ide 2021-11-22 13:23:34 +01:00
apply_change.rs Preserve order of generic args 2022-03-04 11:46:14 +03:30
assists.rs Fix some more basic clippy lints 2021-07-21 20:52:08 +02:00
defs.rs Preserve order of generic args 2022-03-04 11:46:14 +03:30
helpers.rs Merge #11598 2022-03-05 11:31:29 +00:00
items_locator.rs Mostly restore hir API boundary 2022-01-12 19:56:47 +01:00
label.rs internal: slightly improve compile times 2021-08-29 12:53:56 +03:00
lib.rs Mostly restore hir API boundary 2022-01-12 19:56:47 +01:00
line_index.rs fix: don't panic on seeing an unexpected offset 2022-01-03 14:49:47 +00:00
path_transform.rs Preserve order of generic args 2022-03-04 11:46:14 +03:30
rename.rs Support locals with multiple declaration sites 2022-03-04 19:49:08 +01:00
search.rs Support locals with multiple declaration sites 2022-03-04 19:49:08 +01:00
source_change.rs remove resolved TODO questions 2021-10-27 15:40:30 +02:00
symbol_index.rs Remove ModuleId from hir reexports 2022-01-12 20:21:13 +01:00
traits.rs Rename *Owner traits to Has* 2021-09-27 12:54:24 +02:00
ty_filter.rs Replace more Name::to_string usages with Name::to_smol_str 2021-11-04 18:12:05 +01:00