diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-08-25 10:47:44 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2019-08-25 10:47:44 +0100 |
commit | 866b41ddd86cbe9c3e8d9cb2896477bab060a044 (patch) | |
tree | 2108601228076d62e833b732de52e182b8be4a0b /crates/ra_syntax/src/grammar.ron | |
parent | fdece911fe8e2f3c22760ea22038a6d00cb70dfa (diff) | |
parent | c93903e9c7f64be2edcae0dfe62d8390514658b1 (diff) |
Merge #1733
1733: Parse arbitrarily complex `box` patterns. r=matklad a=ecstatic-morse
This fully resolves the pattern part of #1412 by enabling the parsing of complex `box` patterns such as:
```rust
let box Struct { box i, j: box Inner(box &x) } = todo!();
```
This introduces a new `ast::BoxPat` (in the mold of `ast::RefPat`) that gets translated to `hir::Pat::Missing`.
Co-authored-by: Dylan MacKenzie <[email protected]>
Diffstat (limited to 'crates/ra_syntax/src/grammar.ron')
-rw-r--r-- | crates/ra_syntax/src/grammar.ron | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/crates/ra_syntax/src/grammar.ron b/crates/ra_syntax/src/grammar.ron index 4659192cd..1836862fe 100644 --- a/crates/ra_syntax/src/grammar.ron +++ b/crates/ra_syntax/src/grammar.ron | |||
@@ -158,6 +158,7 @@ Grammar( | |||
158 | "DYN_TRAIT_TYPE", | 158 | "DYN_TRAIT_TYPE", |
159 | 159 | ||
160 | "REF_PAT", | 160 | "REF_PAT", |
161 | "BOX_PAT", | ||
161 | "BIND_PAT", | 162 | "BIND_PAT", |
162 | "PLACEHOLDER_PAT", | 163 | "PLACEHOLDER_PAT", |
163 | "PATH_PAT", | 164 | "PATH_PAT", |
@@ -523,6 +524,7 @@ Grammar( | |||
523 | ), | 524 | ), |
524 | 525 | ||
525 | "RefPat": ( options: [ "Pat" ]), | 526 | "RefPat": ( options: [ "Pat" ]), |
527 | "BoxPat": ( options: [ "Pat" ]), | ||
526 | "BindPat": ( | 528 | "BindPat": ( |
527 | options: [ "Pat" ], | 529 | options: [ "Pat" ], |
528 | traits: ["NameOwner"] | 530 | traits: ["NameOwner"] |
@@ -552,6 +554,7 @@ Grammar( | |||
552 | "Pat": ( | 554 | "Pat": ( |
553 | enum: [ | 555 | enum: [ |
554 | "RefPat", | 556 | "RefPat", |
557 | "BoxPat", | ||
555 | "BindPat", | 558 | "BindPat", |
556 | "PlaceholderPat", | 559 | "PlaceholderPat", |
557 | "PathPat", | 560 | "PathPat", |