diff options
-rw-r--r-- | crates/ra_hir_def/src/body/lower.rs | 6 | ||||
-rw-r--r-- | crates/ra_ide/src/syntax_highlighting.rs | 2 | ||||
-rw-r--r-- | crates/ra_parser/src/grammar/patterns.rs | 4 | ||||
-rw-r--r-- | crates/ra_parser/src/syntax_kind/generated.rs | 2 | ||||
-rw-r--r-- | crates/ra_syntax/src/ast/generated/nodes.rs | 22 | ||||
-rw-r--r-- | crates/ra_syntax/src/ast/node_ext.rs | 8 | ||||
-rw-r--r-- | crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast | 2 | ||||
-rw-r--r-- | crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast | 2 | ||||
-rw-r--r-- | crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast | 2 | ||||
-rw-r--r-- | crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast | 4 | ||||
-rw-r--r-- | crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast | 48 | ||||
-rw-r--r-- | crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast | 2 | ||||
-rw-r--r-- | xtask/src/ast_src.rs | 2 | ||||
-rw-r--r-- | xtask/src/codegen/rust.ungram | 4 |
14 files changed, 55 insertions, 55 deletions
diff --git a/crates/ra_hir_def/src/body/lower.rs b/crates/ra_hir_def/src/body/lower.rs index 3f210547e..0d0365370 100644 --- a/crates/ra_hir_def/src/body/lower.rs +++ b/crates/ra_hir_def/src/body/lower.rs | |||
@@ -826,7 +826,7 @@ impl ExprCollector<'_> { | |||
826 | Pat::Missing | 826 | Pat::Missing |
827 | } | 827 | } |
828 | } | 828 | } |
829 | ast::Pat::DotDotPat(_) => { | 829 | ast::Pat::RestPat(_) => { |
830 | // `DotDotPat` requires special handling and should not be mapped | 830 | // `DotDotPat` requires special handling and should not be mapped |
831 | // to a Pat. Here we are using `Pat::Missing` as a fallback for | 831 | // to a Pat. Here we are using `Pat::Missing` as a fallback for |
832 | // when `DotDotPat` is mapped to `Pat`, which can easily happen | 832 | // when `DotDotPat` is mapped to `Pat`, which can easily happen |
@@ -853,10 +853,10 @@ impl ExprCollector<'_> { | |||
853 | fn collect_tuple_pat(&mut self, args: AstChildren<ast::Pat>) -> (Vec<PatId>, Option<usize>) { | 853 | fn collect_tuple_pat(&mut self, args: AstChildren<ast::Pat>) -> (Vec<PatId>, Option<usize>) { |
854 | // Find the location of the `..`, if there is one. Note that we do not | 854 | // Find the location of the `..`, if there is one. Note that we do not |
855 | // consider the possiblity of there being multiple `..` here. | 855 | // consider the possiblity of there being multiple `..` here. |
856 | let ellipsis = args.clone().position(|p| matches!(p, ast::Pat::DotDotPat(_))); | 856 | let ellipsis = args.clone().position(|p| matches!(p, ast::Pat::RestPat(_))); |
857 | // We want to skip the `..` pattern here, since we account for it above. | 857 | // We want to skip the `..` pattern here, since we account for it above. |
858 | let args = args | 858 | let args = args |
859 | .filter(|p| !matches!(p, ast::Pat::DotDotPat(_))) | 859 | .filter(|p| !matches!(p, ast::Pat::RestPat(_))) |
860 | .map(|p| self.collect_pat(p)) | 860 | .map(|p| self.collect_pat(p)) |
861 | .collect(); | 861 | .collect(); |
862 | 862 | ||
diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index 027fdecd0..32f34ef10 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs | |||
@@ -577,7 +577,7 @@ fn highlight_element( | |||
577 | _ if element.parent().and_then(ast::RangePat::cast).is_some() => { | 577 | _ if element.parent().and_then(ast::RangePat::cast).is_some() => { |
578 | HighlightTag::Operator.into() | 578 | HighlightTag::Operator.into() |
579 | } | 579 | } |
580 | _ if element.parent().and_then(ast::DotDotPat::cast).is_some() => { | 580 | _ if element.parent().and_then(ast::RestPat::cast).is_some() => { |
581 | HighlightTag::Operator.into() | 581 | HighlightTag::Operator.into() |
582 | } | 582 | } |
583 | _ if element.parent().and_then(ast::Attr::cast).is_some() => { | 583 | _ if element.parent().and_then(ast::Attr::cast).is_some() => { |
diff --git a/crates/ra_parser/src/grammar/patterns.rs b/crates/ra_parser/src/grammar/patterns.rs index 623e8d6d4..716bdc978 100644 --- a/crates/ra_parser/src/grammar/patterns.rs +++ b/crates/ra_parser/src/grammar/patterns.rs | |||
@@ -192,7 +192,7 @@ fn record_field_pat_list(p: &mut Parser) { | |||
192 | p.bump(T!['{']); | 192 | p.bump(T!['{']); |
193 | while !p.at(EOF) && !p.at(T!['}']) { | 193 | while !p.at(EOF) && !p.at(T!['}']) { |
194 | match p.current() { | 194 | match p.current() { |
195 | // A trailing `..` is *not* treated as a DOT_DOT_PAT. | 195 | // A trailing `..` is *not* treated as a REST_PAT. |
196 | T![.] if p.at(T![..]) => p.bump(T![..]), | 196 | T![.] if p.at(T![..]) => p.bump(T![..]), |
197 | T!['{'] => error_block(p, "expected ident"), | 197 | T!['{'] => error_block(p, "expected ident"), |
198 | 198 | ||
@@ -267,7 +267,7 @@ fn dot_dot_pat(p: &mut Parser) -> CompletedMarker { | |||
267 | assert!(p.at(T![..])); | 267 | assert!(p.at(T![..])); |
268 | let m = p.start(); | 268 | let m = p.start(); |
269 | p.bump(T![..]); | 269 | p.bump(T![..]); |
270 | m.complete(p, DOT_DOT_PAT) | 270 | m.complete(p, REST_PAT) |
271 | } | 271 | } |
272 | 272 | ||
273 | // test ref_pat | 273 | // test ref_pat |
diff --git a/crates/ra_parser/src/syntax_kind/generated.rs b/crates/ra_parser/src/syntax_kind/generated.rs index b5dda25a9..b18653aa5 100644 --- a/crates/ra_parser/src/syntax_kind/generated.rs +++ b/crates/ra_parser/src/syntax_kind/generated.rs | |||
@@ -158,7 +158,7 @@ pub enum SyntaxKind { | |||
158 | BOX_PAT, | 158 | BOX_PAT, |
159 | IDENT_PAT, | 159 | IDENT_PAT, |
160 | WILDCARD_PAT, | 160 | WILDCARD_PAT, |
161 | DOT_DOT_PAT, | 161 | REST_PAT, |
162 | PATH_PAT, | 162 | PATH_PAT, |
163 | RECORD_PAT, | 163 | RECORD_PAT, |
164 | RECORD_PAT_FIELD_LIST, | 164 | RECORD_PAT_FIELD_LIST, |
diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs index 01aefb60d..6cb637b1d 100644 --- a/crates/ra_syntax/src/ast/generated/nodes.rs +++ b/crates/ra_syntax/src/ast/generated/nodes.rs | |||
@@ -1130,10 +1130,10 @@ impl BoxPat { | |||
1130 | pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) } | 1130 | pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) } |
1131 | } | 1131 | } |
1132 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 1132 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
1133 | pub struct DotDotPat { | 1133 | pub struct RestPat { |
1134 | pub(crate) syntax: SyntaxNode, | 1134 | pub(crate) syntax: SyntaxNode, |
1135 | } | 1135 | } |
1136 | impl DotDotPat { | 1136 | impl RestPat { |
1137 | pub fn dotdot_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![..]) } | 1137 | pub fn dotdot_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![..]) } |
1138 | } | 1138 | } |
1139 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 1139 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
@@ -1336,7 +1336,7 @@ pub enum Stmt { | |||
1336 | pub enum Pat { | 1336 | pub enum Pat { |
1337 | IdentPat(IdentPat), | 1337 | IdentPat(IdentPat), |
1338 | BoxPat(BoxPat), | 1338 | BoxPat(BoxPat), |
1339 | DotDotPat(DotDotPat), | 1339 | RestPat(RestPat), |
1340 | LiteralPat(LiteralPat), | 1340 | LiteralPat(LiteralPat), |
1341 | MacroPat(MacroPat), | 1341 | MacroPat(MacroPat), |
1342 | OrPat(OrPat), | 1342 | OrPat(OrPat), |
@@ -2577,8 +2577,8 @@ impl AstNode for BoxPat { | |||
2577 | } | 2577 | } |
2578 | fn syntax(&self) -> &SyntaxNode { &self.syntax } | 2578 | fn syntax(&self) -> &SyntaxNode { &self.syntax } |
2579 | } | 2579 | } |
2580 | impl AstNode for DotDotPat { | 2580 | impl AstNode for RestPat { |
2581 | fn can_cast(kind: SyntaxKind) -> bool { kind == DOT_DOT_PAT } | 2581 | fn can_cast(kind: SyntaxKind) -> bool { kind == REST_PAT } |
2582 | fn cast(syntax: SyntaxNode) -> Option<Self> { | 2582 | fn cast(syntax: SyntaxNode) -> Option<Self> { |
2583 | if Self::can_cast(syntax.kind()) { | 2583 | if Self::can_cast(syntax.kind()) { |
2584 | Some(Self { syntax }) | 2584 | Some(Self { syntax }) |
@@ -3141,8 +3141,8 @@ impl From<IdentPat> for Pat { | |||
3141 | impl From<BoxPat> for Pat { | 3141 | impl From<BoxPat> for Pat { |
3142 | fn from(node: BoxPat) -> Pat { Pat::BoxPat(node) } | 3142 | fn from(node: BoxPat) -> Pat { Pat::BoxPat(node) } |
3143 | } | 3143 | } |
3144 | impl From<DotDotPat> for Pat { | 3144 | impl From<RestPat> for Pat { |
3145 | fn from(node: DotDotPat) -> Pat { Pat::DotDotPat(node) } | 3145 | fn from(node: RestPat) -> Pat { Pat::RestPat(node) } |
3146 | } | 3146 | } |
3147 | impl From<LiteralPat> for Pat { | 3147 | impl From<LiteralPat> for Pat { |
3148 | fn from(node: LiteralPat) -> Pat { Pat::LiteralPat(node) } | 3148 | fn from(node: LiteralPat) -> Pat { Pat::LiteralPat(node) } |
@@ -3183,7 +3183,7 @@ impl From<TupleStructPat> for Pat { | |||
3183 | impl AstNode for Pat { | 3183 | impl AstNode for Pat { |
3184 | fn can_cast(kind: SyntaxKind) -> bool { | 3184 | fn can_cast(kind: SyntaxKind) -> bool { |
3185 | match kind { | 3185 | match kind { |
3186 | IDENT_PAT | BOX_PAT | DOT_DOT_PAT | LITERAL_PAT | MACRO_PAT | OR_PAT | PAREN_PAT | 3186 | IDENT_PAT | BOX_PAT | REST_PAT | LITERAL_PAT | MACRO_PAT | OR_PAT | PAREN_PAT |
3187 | | PATH_PAT | WILDCARD_PAT | RANGE_PAT | RECORD_PAT | REF_PAT | SLICE_PAT | 3187 | | PATH_PAT | WILDCARD_PAT | RANGE_PAT | RECORD_PAT | REF_PAT | SLICE_PAT |
3188 | | TUPLE_PAT | TUPLE_STRUCT_PAT => true, | 3188 | | TUPLE_PAT | TUPLE_STRUCT_PAT => true, |
3189 | _ => false, | 3189 | _ => false, |
@@ -3193,7 +3193,7 @@ impl AstNode for Pat { | |||
3193 | let res = match syntax.kind() { | 3193 | let res = match syntax.kind() { |
3194 | IDENT_PAT => Pat::IdentPat(IdentPat { syntax }), | 3194 | IDENT_PAT => Pat::IdentPat(IdentPat { syntax }), |
3195 | BOX_PAT => Pat::BoxPat(BoxPat { syntax }), | 3195 | BOX_PAT => Pat::BoxPat(BoxPat { syntax }), |
3196 | DOT_DOT_PAT => Pat::DotDotPat(DotDotPat { syntax }), | 3196 | REST_PAT => Pat::RestPat(RestPat { syntax }), |
3197 | LITERAL_PAT => Pat::LiteralPat(LiteralPat { syntax }), | 3197 | LITERAL_PAT => Pat::LiteralPat(LiteralPat { syntax }), |
3198 | MACRO_PAT => Pat::MacroPat(MacroPat { syntax }), | 3198 | MACRO_PAT => Pat::MacroPat(MacroPat { syntax }), |
3199 | OR_PAT => Pat::OrPat(OrPat { syntax }), | 3199 | OR_PAT => Pat::OrPat(OrPat { syntax }), |
@@ -3214,7 +3214,7 @@ impl AstNode for Pat { | |||
3214 | match self { | 3214 | match self { |
3215 | Pat::IdentPat(it) => &it.syntax, | 3215 | Pat::IdentPat(it) => &it.syntax, |
3216 | Pat::BoxPat(it) => &it.syntax, | 3216 | Pat::BoxPat(it) => &it.syntax, |
3217 | Pat::DotDotPat(it) => &it.syntax, | 3217 | Pat::RestPat(it) => &it.syntax, |
3218 | Pat::LiteralPat(it) => &it.syntax, | 3218 | Pat::LiteralPat(it) => &it.syntax, |
3219 | Pat::MacroPat(it) => &it.syntax, | 3219 | Pat::MacroPat(it) => &it.syntax, |
3220 | Pat::OrPat(it) => &it.syntax, | 3220 | Pat::OrPat(it) => &it.syntax, |
@@ -3990,7 +3990,7 @@ impl std::fmt::Display for BoxPat { | |||
3990 | std::fmt::Display::fmt(self.syntax(), f) | 3990 | std::fmt::Display::fmt(self.syntax(), f) |
3991 | } | 3991 | } |
3992 | } | 3992 | } |
3993 | impl std::fmt::Display for DotDotPat { | 3993 | impl std::fmt::Display for RestPat { |
3994 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | 3994 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { |
3995 | std::fmt::Display::fmt(self.syntax(), f) | 3995 | std::fmt::Display::fmt(self.syntax(), f) |
3996 | } | 3996 | } |
diff --git a/crates/ra_syntax/src/ast/node_ext.rs b/crates/ra_syntax/src/ast/node_ext.rs index af5a93d1d..2ffb83819 100644 --- a/crates/ra_syntax/src/ast/node_ext.rs +++ b/crates/ra_syntax/src/ast/node_ext.rs | |||
@@ -293,15 +293,15 @@ impl ast::SlicePat { | |||
293 | let mut args = self.args().peekable(); | 293 | let mut args = self.args().peekable(); |
294 | let prefix = args | 294 | let prefix = args |
295 | .peeking_take_while(|p| match p { | 295 | .peeking_take_while(|p| match p { |
296 | ast::Pat::DotDotPat(_) => false, | 296 | ast::Pat::RestPat(_) => false, |
297 | ast::Pat::IdentPat(bp) => match bp.pat() { | 297 | ast::Pat::IdentPat(bp) => match bp.pat() { |
298 | Some(ast::Pat::DotDotPat(_)) => false, | 298 | Some(ast::Pat::RestPat(_)) => false, |
299 | _ => true, | 299 | _ => true, |
300 | }, | 300 | }, |
301 | ast::Pat::RefPat(rp) => match rp.pat() { | 301 | ast::Pat::RefPat(rp) => match rp.pat() { |
302 | Some(ast::Pat::DotDotPat(_)) => false, | 302 | Some(ast::Pat::RestPat(_)) => false, |
303 | Some(ast::Pat::IdentPat(bp)) => match bp.pat() { | 303 | Some(ast::Pat::IdentPat(bp)) => match bp.pat() { |
304 | Some(ast::Pat::DotDotPat(_)) => false, | 304 | Some(ast::Pat::RestPat(_)) => false, |
305 | _ => true, | 305 | _ => true, |
306 | }, | 306 | }, |
307 | _ => true, | 307 | _ => true, |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast b/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast index d848f3c88..7d2f7eab0 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast | |||
@@ -81,7 +81,7 @@ SOURCE_FILE@0..103 | |||
81 | NAME_REF@87..90 | 81 | NAME_REF@87..90 |
82 | IDENT@87..90 "Bar" | 82 | IDENT@87..90 "Bar" |
83 | L_PAREN@90..91 "(" | 83 | L_PAREN@90..91 "(" |
84 | DOT_DOT_PAT@91..93 | 84 | REST_PAT@91..93 |
85 | DOT2@91..93 ".." | 85 | DOT2@91..93 ".." |
86 | R_PAREN@93..94 ")" | 86 | R_PAREN@93..94 ")" |
87 | WHITESPACE@94..95 " " | 87 | WHITESPACE@94..95 " " |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast index 66f906fae..2dbce34b6 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast | |||
@@ -26,7 +26,7 @@ SOURCE_FILE@0..39 | |||
26 | IDENT@24..25 "b" | 26 | IDENT@24..25 "b" |
27 | COMMA@25..26 "," | 27 | COMMA@25..26 "," |
28 | WHITESPACE@26..27 " " | 28 | WHITESPACE@26..27 " " |
29 | DOT_DOT_PAT@27..29 | 29 | REST_PAT@27..29 |
30 | DOT2@27..29 ".." | 30 | DOT2@27..29 ".." |
31 | R_BRACK@29..30 "]" | 31 | R_BRACK@29..30 "]" |
32 | WHITESPACE@30..31 " " | 32 | WHITESPACE@30..31 " " |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast b/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast index e049e4df7..467a30134 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast | |||
@@ -83,7 +83,7 @@ SOURCE_FILE@0..97 | |||
83 | UNDERSCORE@78..79 "_" | 83 | UNDERSCORE@78..79 "_" |
84 | COMMA@79..80 "," | 84 | COMMA@79..80 "," |
85 | WHITESPACE@80..81 " " | 85 | WHITESPACE@80..81 " " |
86 | DOT_DOT_PAT@81..83 | 86 | REST_PAT@81..83 |
87 | DOT2@81..83 ".." | 87 | DOT2@81..83 ".." |
88 | WHITESPACE@83..84 " " | 88 | WHITESPACE@83..84 " " |
89 | COMMA@84..85 "," | 89 | COMMA@84..85 "," |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast index f94a2ebde..b82ed0230 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast | |||
@@ -26,7 +26,7 @@ SOURCE_FILE@0..94 | |||
26 | IDENT@24..25 "b" | 26 | IDENT@24..25 "b" |
27 | COMMA@25..26 "," | 27 | COMMA@25..26 "," |
28 | WHITESPACE@26..27 " " | 28 | WHITESPACE@26..27 " " |
29 | DOT_DOT_PAT@27..29 | 29 | REST_PAT@27..29 |
30 | DOT2@27..29 ".." | 30 | DOT2@27..29 ".." |
31 | R_PAREN@29..30 ")" | 31 | R_PAREN@29..30 ")" |
32 | WHITESPACE@30..31 " " | 32 | WHITESPACE@30..31 " " |
@@ -60,7 +60,7 @@ SOURCE_FILE@0..94 | |||
60 | WHITESPACE@63..64 " " | 60 | WHITESPACE@63..64 " " |
61 | TUPLE_PAT@64..68 | 61 | TUPLE_PAT@64..68 |
62 | L_PAREN@64..65 "(" | 62 | L_PAREN@64..65 "(" |
63 | DOT_DOT_PAT@65..67 | 63 | REST_PAT@65..67 |
64 | DOT2@65..67 ".." | 64 | DOT2@65..67 ".." |
65 | R_PAREN@67..68 ")" | 65 | R_PAREN@67..68 ")" |
66 | WHITESPACE@68..69 " " | 66 | WHITESPACE@68..69 " " |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast index 8fb0db031..8a5bde0b6 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast | |||
@@ -14,7 +14,7 @@ SOURCE_FILE@0..555 | |||
14 | LET_STMT@16..28 | 14 | LET_STMT@16..28 |
15 | LET_KW@16..19 "let" | 15 | LET_KW@16..19 "let" |
16 | WHITESPACE@19..20 " " | 16 | WHITESPACE@19..20 " " |
17 | DOT_DOT_PAT@20..22 | 17 | REST_PAT@20..22 |
18 | DOT2@20..22 ".." | 18 | DOT2@20..22 ".." |
19 | WHITESPACE@22..23 " " | 19 | WHITESPACE@22..23 " " |
20 | EQ@23..24 "=" | 20 | EQ@23..24 "=" |
@@ -40,7 +40,7 @@ SOURCE_FILE@0..555 | |||
40 | IDENT@66..67 "a" | 40 | IDENT@66..67 "a" |
41 | COMMA@67..68 "," | 41 | COMMA@67..68 "," |
42 | WHITESPACE@68..69 " " | 42 | WHITESPACE@68..69 " " |
43 | DOT_DOT_PAT@69..71 | 43 | REST_PAT@69..71 |
44 | DOT2@69..71 ".." | 44 | DOT2@69..71 ".." |
45 | R_PAREN@71..72 ")" | 45 | R_PAREN@71..72 ")" |
46 | WHITESPACE@72..73 " " | 46 | WHITESPACE@72..73 " " |
@@ -61,7 +61,7 @@ SOURCE_FILE@0..555 | |||
61 | IDENT@88..89 "a" | 61 | IDENT@88..89 "a" |
62 | COMMA@89..90 "," | 62 | COMMA@89..90 "," |
63 | WHITESPACE@90..91 " " | 63 | WHITESPACE@90..91 " " |
64 | DOT_DOT_PAT@91..93 | 64 | REST_PAT@91..93 |
65 | DOT2@91..93 ".." | 65 | DOT2@91..93 ".." |
66 | COMMA@93..94 "," | 66 | COMMA@93..94 "," |
67 | R_PAREN@94..95 ")" | 67 | R_PAREN@94..95 ")" |
@@ -87,7 +87,7 @@ SOURCE_FILE@0..555 | |||
87 | IDENT@116..117 "a" | 87 | IDENT@116..117 "a" |
88 | COMMA@117..118 "," | 88 | COMMA@117..118 "," |
89 | WHITESPACE@118..119 " " | 89 | WHITESPACE@118..119 " " |
90 | DOT_DOT_PAT@119..121 | 90 | REST_PAT@119..121 |
91 | DOT2@119..121 ".." | 91 | DOT2@119..121 ".." |
92 | R_PAREN@121..122 ")" | 92 | R_PAREN@121..122 ")" |
93 | WHITESPACE@122..123 " " | 93 | WHITESPACE@122..123 " " |
@@ -112,7 +112,7 @@ SOURCE_FILE@0..555 | |||
112 | IDENT@143..144 "a" | 112 | IDENT@143..144 "a" |
113 | COMMA@144..145 "," | 113 | COMMA@144..145 "," |
114 | WHITESPACE@145..146 " " | 114 | WHITESPACE@145..146 " " |
115 | DOT_DOT_PAT@146..148 | 115 | REST_PAT@146..148 |
116 | DOT2@146..148 ".." | 116 | DOT2@146..148 ".." |
117 | COMMA@148..149 "," | 117 | COMMA@148..149 "," |
118 | R_PAREN@149..150 ")" | 118 | R_PAREN@149..150 ")" |
@@ -129,11 +129,11 @@ SOURCE_FILE@0..555 | |||
129 | WHITESPACE@164..165 " " | 129 | WHITESPACE@164..165 " " |
130 | TUPLE_PAT@165..173 | 130 | TUPLE_PAT@165..173 |
131 | L_PAREN@165..166 "(" | 131 | L_PAREN@165..166 "(" |
132 | DOT_DOT_PAT@166..168 | 132 | REST_PAT@166..168 |
133 | DOT2@166..168 ".." | 133 | DOT2@166..168 ".." |
134 | COMMA@168..169 "," | 134 | COMMA@168..169 "," |
135 | WHITESPACE@169..170 " " | 135 | WHITESPACE@169..170 " " |
136 | DOT_DOT_PAT@170..172 | 136 | REST_PAT@170..172 |
137 | DOT2@170..172 ".." | 137 | DOT2@170..172 ".." |
138 | R_PAREN@172..173 ")" | 138 | R_PAREN@172..173 ")" |
139 | WHITESPACE@173..174 " " | 139 | WHITESPACE@173..174 " " |
@@ -153,11 +153,11 @@ SOURCE_FILE@0..555 | |||
153 | NAME_REF@188..193 | 153 | NAME_REF@188..193 |
154 | IDENT@188..193 "Tuple" | 154 | IDENT@188..193 "Tuple" |
155 | L_PAREN@193..194 "(" | 155 | L_PAREN@193..194 "(" |
156 | DOT_DOT_PAT@194..196 | 156 | REST_PAT@194..196 |
157 | DOT2@194..196 ".." | 157 | DOT2@194..196 ".." |
158 | COMMA@196..197 "," | 158 | COMMA@196..197 "," |
159 | WHITESPACE@197..198 " " | 159 | WHITESPACE@197..198 " " |
160 | DOT_DOT_PAT@198..200 | 160 | REST_PAT@198..200 |
161 | DOT2@198..200 ".." | 161 | DOT2@198..200 ".." |
162 | R_PAREN@200..201 ")" | 162 | R_PAREN@200..201 ")" |
163 | WHITESPACE@201..202 " " | 163 | WHITESPACE@201..202 " " |
@@ -173,7 +173,7 @@ SOURCE_FILE@0..555 | |||
173 | WHITESPACE@215..216 " " | 173 | WHITESPACE@215..216 " " |
174 | TUPLE_PAT@216..227 | 174 | TUPLE_PAT@216..227 |
175 | L_PAREN@216..217 "(" | 175 | L_PAREN@216..217 "(" |
176 | DOT_DOT_PAT@217..219 | 176 | REST_PAT@217..219 |
177 | DOT2@217..219 ".." | 177 | DOT2@217..219 ".." |
178 | COMMA@219..220 "," | 178 | COMMA@219..220 "," |
179 | WHITESPACE@220..221 " " | 179 | WHITESPACE@220..221 " " |
@@ -182,7 +182,7 @@ SOURCE_FILE@0..555 | |||
182 | IDENT@221..222 "a" | 182 | IDENT@221..222 "a" |
183 | COMMA@222..223 "," | 183 | COMMA@222..223 "," |
184 | WHITESPACE@223..224 " " | 184 | WHITESPACE@223..224 " " |
185 | DOT_DOT_PAT@224..226 | 185 | REST_PAT@224..226 |
186 | DOT2@224..226 ".." | 186 | DOT2@224..226 ".." |
187 | R_PAREN@226..227 ")" | 187 | R_PAREN@226..227 ")" |
188 | WHITESPACE@227..228 " " | 188 | WHITESPACE@227..228 " " |
@@ -202,7 +202,7 @@ SOURCE_FILE@0..555 | |||
202 | NAME_REF@242..247 | 202 | NAME_REF@242..247 |
203 | IDENT@242..247 "Tuple" | 203 | IDENT@242..247 "Tuple" |
204 | L_PAREN@247..248 "(" | 204 | L_PAREN@247..248 "(" |
205 | DOT_DOT_PAT@248..250 | 205 | REST_PAT@248..250 |
206 | DOT2@248..250 ".." | 206 | DOT2@248..250 ".." |
207 | COMMA@250..251 "," | 207 | COMMA@250..251 "," |
208 | WHITESPACE@251..252 " " | 208 | WHITESPACE@251..252 " " |
@@ -211,7 +211,7 @@ SOURCE_FILE@0..555 | |||
211 | IDENT@252..253 "a" | 211 | IDENT@252..253 "a" |
212 | COMMA@253..254 "," | 212 | COMMA@253..254 "," |
213 | WHITESPACE@254..255 " " | 213 | WHITESPACE@254..255 " " |
214 | DOT_DOT_PAT@255..257 | 214 | REST_PAT@255..257 |
215 | DOT2@255..257 ".." | 215 | DOT2@255..257 ".." |
216 | R_PAREN@257..258 ")" | 216 | R_PAREN@257..258 ")" |
217 | WHITESPACE@258..259 " " | 217 | WHITESPACE@258..259 " " |
@@ -233,7 +233,7 @@ SOURCE_FILE@0..555 | |||
233 | WHITESPACE@300..301 " " | 233 | WHITESPACE@300..301 " " |
234 | SLICE_PAT@301..305 | 234 | SLICE_PAT@301..305 |
235 | L_BRACK@301..302 "[" | 235 | L_BRACK@301..302 "[" |
236 | DOT_DOT_PAT@302..304 | 236 | REST_PAT@302..304 |
237 | DOT2@302..304 ".." | 237 | DOT2@302..304 ".." |
238 | R_BRACK@304..305 "]" | 238 | R_BRACK@304..305 "]" |
239 | WHITESPACE@305..306 " " | 239 | WHITESPACE@305..306 " " |
@@ -254,7 +254,7 @@ SOURCE_FILE@0..555 | |||
254 | IDENT@321..325 "head" | 254 | IDENT@321..325 "head" |
255 | COMMA@325..326 "," | 255 | COMMA@325..326 "," |
256 | WHITESPACE@326..327 " " | 256 | WHITESPACE@326..327 " " |
257 | DOT_DOT_PAT@327..329 | 257 | REST_PAT@327..329 |
258 | DOT2@327..329 ".." | 258 | DOT2@327..329 ".." |
259 | R_BRACK@329..330 "]" | 259 | R_BRACK@329..330 "]" |
260 | WHITESPACE@330..331 " " | 260 | WHITESPACE@330..331 " " |
@@ -281,7 +281,7 @@ SOURCE_FILE@0..555 | |||
281 | WHITESPACE@356..357 " " | 281 | WHITESPACE@356..357 " " |
282 | AT@357..358 "@" | 282 | AT@357..358 "@" |
283 | WHITESPACE@358..359 " " | 283 | WHITESPACE@358..359 " " |
284 | DOT_DOT_PAT@359..361 | 284 | REST_PAT@359..361 |
285 | DOT2@359..361 ".." | 285 | DOT2@359..361 ".." |
286 | R_BRACK@361..362 "]" | 286 | R_BRACK@361..362 "]" |
287 | WHITESPACE@362..363 " " | 287 | WHITESPACE@362..363 " " |
@@ -302,7 +302,7 @@ SOURCE_FILE@0..555 | |||
302 | IDENT@378..382 "head" | 302 | IDENT@378..382 "head" |
303 | COMMA@382..383 "," | 303 | COMMA@382..383 "," |
304 | WHITESPACE@383..384 " " | 304 | WHITESPACE@383..384 " " |
305 | DOT_DOT_PAT@384..386 | 305 | REST_PAT@384..386 |
306 | DOT2@384..386 ".." | 306 | DOT2@384..386 ".." |
307 | COMMA@386..387 "," | 307 | COMMA@386..387 "," |
308 | WHITESPACE@387..388 " " | 308 | WHITESPACE@387..388 " " |
@@ -334,7 +334,7 @@ SOURCE_FILE@0..555 | |||
334 | WHITESPACE@418..419 " " | 334 | WHITESPACE@418..419 " " |
335 | AT@419..420 "@" | 335 | AT@419..420 "@" |
336 | WHITESPACE@420..421 " " | 336 | WHITESPACE@420..421 " " |
337 | DOT_DOT_PAT@421..423 | 337 | REST_PAT@421..423 |
338 | DOT2@421..423 ".." | 338 | DOT2@421..423 ".." |
339 | COMMA@423..424 "," | 339 | COMMA@423..424 "," |
340 | WHITESPACE@424..425 " " | 340 | WHITESPACE@424..425 " " |
@@ -360,11 +360,11 @@ SOURCE_FILE@0..555 | |||
360 | IDENT@446..450 "head" | 360 | IDENT@446..450 "head" |
361 | COMMA@450..451 "," | 361 | COMMA@450..451 "," |
362 | WHITESPACE@451..452 " " | 362 | WHITESPACE@451..452 " " |
363 | DOT_DOT_PAT@452..454 | 363 | REST_PAT@452..454 |
364 | DOT2@452..454 ".." | 364 | DOT2@452..454 ".." |
365 | COMMA@454..455 "," | 365 | COMMA@454..455 "," |
366 | WHITESPACE@455..456 " " | 366 | WHITESPACE@455..456 " " |
367 | DOT_DOT_PAT@456..458 | 367 | REST_PAT@456..458 |
368 | DOT2@456..458 ".." | 368 | DOT2@456..458 ".." |
369 | COMMA@458..459 "," | 369 | COMMA@458..459 "," |
370 | WHITESPACE@459..460 " " | 370 | WHITESPACE@459..460 " " |
@@ -390,7 +390,7 @@ SOURCE_FILE@0..555 | |||
390 | IDENT@481..485 "head" | 390 | IDENT@481..485 "head" |
391 | COMMA@485..486 "," | 391 | COMMA@485..486 "," |
392 | WHITESPACE@486..487 " " | 392 | WHITESPACE@486..487 " " |
393 | DOT_DOT_PAT@487..489 | 393 | REST_PAT@487..489 |
394 | DOT2@487..489 ".." | 394 | DOT2@487..489 ".." |
395 | COMMA@489..490 "," | 395 | COMMA@489..490 "," |
396 | WHITESPACE@490..491 " " | 396 | WHITESPACE@490..491 " " |
@@ -405,7 +405,7 @@ SOURCE_FILE@0..555 | |||
405 | WHITESPACE@500..501 " " | 405 | WHITESPACE@500..501 " " |
406 | AT@501..502 "@" | 406 | AT@501..502 "@" |
407 | WHITESPACE@502..503 " " | 407 | WHITESPACE@502..503 " " |
408 | DOT_DOT_PAT@503..505 | 408 | REST_PAT@503..505 |
409 | DOT2@503..505 ".." | 409 | DOT2@503..505 ".." |
410 | R_BRACK@505..506 "]" | 410 | R_BRACK@505..506 "]" |
411 | WHITESPACE@506..507 " " | 411 | WHITESPACE@506..507 " " |
@@ -426,7 +426,7 @@ SOURCE_FILE@0..555 | |||
426 | IDENT@522..526 "head" | 426 | IDENT@522..526 "head" |
427 | COMMA@526..527 "," | 427 | COMMA@526..527 "," |
428 | WHITESPACE@527..528 " " | 428 | WHITESPACE@527..528 " " |
429 | DOT_DOT_PAT@528..530 | 429 | REST_PAT@528..530 |
430 | DOT2@528..530 ".." | 430 | DOT2@528..530 ".." |
431 | COMMA@530..531 "," | 431 | COMMA@530..531 "," |
432 | WHITESPACE@531..532 " " | 432 | WHITESPACE@531..532 " " |
@@ -435,7 +435,7 @@ SOURCE_FILE@0..555 | |||
435 | IDENT@532..535 "mid" | 435 | IDENT@532..535 "mid" |
436 | COMMA@535..536 "," | 436 | COMMA@535..536 "," |
437 | WHITESPACE@536..537 " " | 437 | WHITESPACE@536..537 " " |
438 | DOT_DOT_PAT@537..539 | 438 | REST_PAT@537..539 |
439 | DOT2@537..539 ".." | 439 | DOT2@537..539 ".." |
440 | COMMA@539..540 "," | 440 | COMMA@539..540 "," |
441 | WHITESPACE@540..541 " " | 441 | WHITESPACE@540..541 " " |
diff --git a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast index ac9c1fa79..5bb9363a8 100644 --- a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast +++ b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast | |||
@@ -1634,7 +1634,7 @@ SOURCE_FILE@0..3813 | |||
1634 | PARAM@2952..2962 | 1634 | PARAM@2952..2962 |
1635 | TUPLE_PAT@2952..2956 | 1635 | TUPLE_PAT@2952..2956 |
1636 | L_PAREN@2952..2953 "(" | 1636 | L_PAREN@2952..2953 "(" |
1637 | DOT_DOT_PAT@2953..2955 | 1637 | REST_PAT@2953..2955 |
1638 | DOT2@2953..2955 ".." | 1638 | DOT2@2953..2955 ".." |
1639 | R_PAREN@2955..2956 ")" | 1639 | R_PAREN@2955..2956 ")" |
1640 | COLON@2956..2957 ":" | 1640 | COLON@2956..2957 ":" |
diff --git a/xtask/src/ast_src.rs b/xtask/src/ast_src.rs index 2ff029158..1386fc4e7 100644 --- a/xtask/src/ast_src.rs +++ b/xtask/src/ast_src.rs | |||
@@ -128,7 +128,7 @@ pub(crate) const KINDS_SRC: KindsSrc = KindsSrc { | |||
128 | "BOX_PAT", | 128 | "BOX_PAT", |
129 | "IDENT_PAT", | 129 | "IDENT_PAT", |
130 | "WILDCARD_PAT", | 130 | "WILDCARD_PAT", |
131 | "DOT_DOT_PAT", | 131 | "REST_PAT", |
132 | "PATH_PAT", | 132 | "PATH_PAT", |
133 | "RECORD_PAT", | 133 | "RECORD_PAT", |
134 | "RECORD_PAT_FIELD_LIST", | 134 | "RECORD_PAT_FIELD_LIST", |
diff --git a/xtask/src/codegen/rust.ungram b/xtask/src/codegen/rust.ungram index 25d6f7a20..02f5aa732 100644 --- a/xtask/src/codegen/rust.ungram +++ b/xtask/src/codegen/rust.ungram | |||
@@ -498,7 +498,7 @@ TypeBound = | |||
498 | Pat = | 498 | Pat = |
499 | IdentPat | 499 | IdentPat |
500 | | BoxPat | 500 | | BoxPat |
501 | | DotDotPat | 501 | | RestPat |
502 | | LiteralPat | 502 | | LiteralPat |
503 | | MacroPat | 503 | | MacroPat |
504 | | OrPat | 504 | | OrPat |
@@ -560,7 +560,7 @@ OrPat = | |||
560 | BoxPat = | 560 | BoxPat = |
561 | 'box' Pat | 561 | 'box' Pat |
562 | 562 | ||
563 | DotDotPat = | 563 | RestPat = |
564 | '..' | 564 | '..' |
565 | 565 | ||
566 | MacroPat = | 566 | MacroPat = |