rust/crates
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
..
base_db Add test for giving attribute proc macros valid syntax 2022-02-07 12:54:08 +01:00
cfg Bump MSRV (1.57) 2021-12-16 01:56:12 +05:00
flycheck Bump MSRV (1.57) 2021-12-16 01:56:12 +05:00
hir show variadic args in hover function signature 2022-03-04 16:44:31 -05:00
hir_def Merge #11598 2022-03-05 11:31:29 +00:00
hir_expand Preserve order of generic args 2022-03-04 11:46:14 +03:30
hir_ty Merge #11623 2022-03-05 10:32:07 +00:00
ide show variadic args in hover function signature 2022-03-04 16:44:31 -05:00
ide_assists Merge #11598 2022-03-05 11:31:29 +00:00
ide_completion Preserve order of generic args 2022-03-04 11:46:14 +03:30
ide_db Merge #11598 2022-03-05 11:31:29 +00:00
ide_diagnostics More correct $crate handling in eager macros 2022-01-27 16:57:53 +01:00
ide_ssr Refactor autoderef and method resolution 2022-02-25 11:47:14 +01:00
limit Use compare_exchange_weak in limit::Limit::check 2022-01-28 18:19:35 +03:00
mbe Do not consider _ to be an expression for macro_rules! 2022-03-02 01:51:25 +00:00
parser Parse destructuring assignment 2022-03-02 01:51:25 +00:00
paths Bump MSRV (1.57) 2021-12-16 01:56:12 +05:00
proc_macro_api Set current working directory for procedural macros 2022-01-27 16:18:12 +03:00
proc_macro_srv fix: Fix proc-macro server not using the supplied span in Ident::new 2022-01-31 17:02:57 +01:00
proc_macro_test Bump MSRV (1.57) 2021-12-16 01:56:12 +05:00
profile Generate AnyHasDocComments node 2022-01-07 12:38:18 +01:00
project_model Pass required features to cargo when using run action 2022-02-06 19:02:25 +03:00
rust-analyzer Merge #11538 2022-02-25 21:17:24 +00:00
sourcegen Bump MSRV (1.57) 2021-12-16 01:56:12 +05:00
stdx Generate AnyHasDocComments node 2022-01-07 12:38:18 +01:00
syntax Merge #11598 2022-03-05 11:31:29 +00:00
test_utils fix: Do not complete Drop::drop, complete std::mem::drop instead 2021-12-22 02:25:38 +01:00
text_edit redirct: use iterators and knowledge about preordered arrays for more efficient merging 2022-02-28 05:56:51 +01:00
toolchain Bump MSRV (1.57) 2021-12-16 01:56:12 +05:00
tt Track synthetic tokens, to be able to remove them again later 2022-02-08 18:13:18 +01:00
vfs Bump MSRV (1.57) 2021-12-16 01:56:12 +05:00
vfs-notify Bump MSRV (1.57) 2021-12-16 01:56:12 +05:00