Unnamed repository; edit this file 'description' to name the repository.
Merge rust-analyzer/ungrammar#47
47: Support destructuring assignments (RFC 2909) r=Veykril a=ChayimFriedman2
The supported patterns are already valid as expressions, except the rest pattern (`..`) and the wildcard pattern (`_`).
(We really should separate `rust.ungram` into the rust-analyzer repository, it blocks every syntax change).
Co-authored-by: Chayim Refael Friedman <[email protected]>
| -rw-r--r-- | lib/ungrammar/Cargo.toml | 2 | ||||
| -rw-r--r-- | lib/ungrammar/rust.ungram | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/ungrammar/Cargo.toml b/lib/ungrammar/Cargo.toml index bbfb0f5855..e9a5145779 100644 --- a/lib/ungrammar/Cargo.toml +++ b/lib/ungrammar/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "ungrammar" description = "A DSL for describing concrete syntax trees" -version = "1.15.0" +version = "1.16.0" license = "MIT OR Apache-2.0" repository = "https://github.com/matklad/ungrammar" edition = "2018" diff --git a/lib/ungrammar/rust.ungram b/lib/ungrammar/rust.ungram index 572afe2e55..8c85c45ec4 100644 --- a/lib/ungrammar/rust.ungram +++ b/lib/ungrammar/rust.ungram @@ -358,6 +358,7 @@ Expr = | WhileExpr | YieldExpr | LetExpr +| UnderscoreExpr Literal = Attr* value:( @@ -426,7 +427,7 @@ RecordExprFieldList = '{' Attr* fields:(RecordExprField (',' RecordExprField)* ','?)? - ('..' spread:Expr)? + ('..' spread:Expr?)? '}' RecordExprField = @@ -500,6 +501,9 @@ YieldExpr = LetExpr = Attr* 'let' Pat '=' Expr +UnderscoreExpr = + Attr* '_' + AwaitExpr = Attr* Expr '.' 'await' |