Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/syntax/rust.ungram')
-rw-r--r--crates/syntax/rust.ungram14
1 files changed, 11 insertions, 3 deletions
diff --git a/crates/syntax/rust.ungram b/crates/syntax/rust.ungram
index 52ad439e4d..02c59646a9 100644
--- a/crates/syntax/rust.ungram
+++ b/crates/syntax/rust.ungram
@@ -190,7 +190,7 @@ UseTreeList =
Fn =
Attr* Visibility?
- 'default'? 'const'? 'async'? 'gen'? 'unsafe'? Abi?
+ 'default'? 'const'? 'async'? 'gen'? 'unsafe'? 'safe'? Abi?
'fn' Name GenericParamList? ParamList RetType? WhereClause?
(body:BlockExpr | ';')
@@ -284,6 +284,7 @@ Const =
Static =
Attr* Visibility?
+ 'unsafe'? 'safe'?
'static' 'mut'? Name ':' Type
('=' body:Expr)? ';'
@@ -656,7 +657,14 @@ TypeBoundList =
TypeBound =
Lifetime
| ('~' 'const' | 'const')? 'async'? '?'? Type
-| 'use' GenericParamList
+| 'use' UseBoundGenericArgs
+
+UseBoundGenericArgs =
+ '<' (UseBoundGenericArg (',' UseBoundGenericArg)* ','?)? '>'
+
+UseBoundGenericArg =
+ Lifetime
+| NameRef
//************************//
// Patterns //
@@ -728,7 +736,7 @@ PathPat =
Path
OrPat =
- (Pat ('|' Pat)* '|'?)
+ '|'? (Pat ('|' Pat)*)
BoxPat =
'box' Pat