aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-07-31 19:12:38 +0100
committerGitHub <[email protected]>2020-07-31 19:12:38 +0100
commit38ab326aac70484cb951fe9389d788d525d41550 (patch)
tree0032223efeefca76340fb0a97f6f12d0e432a2a9
parent5cade89d730b025082ff2df70aace259951a9ccf (diff)
parent98181087984157e27faba0b969e384f3c62c39d5 (diff)
Merge #5631
5631: Finalize pattern grammar r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
-rw-r--r--crates/ra_assists/src/handlers/add_explicit_type.rs2
-rw-r--r--crates/ra_assists/src/handlers/fill_match_arms.rs24
-rw-r--r--crates/ra_assists/src/handlers/inline_local_variable.rs2
-rw-r--r--crates/ra_assists/src/handlers/merge_match_arms.rs2
-rw-r--r--crates/ra_assists/src/handlers/reorder_fields.rs4
-rw-r--r--crates/ra_assists/src/handlers/replace_let_with_if_let.rs3
-rw-r--r--crates/ra_hir/src/code_model.rs2
-rw-r--r--crates/ra_hir/src/semantics.rs10
-rw-r--r--crates/ra_hir/src/semantics/source_to_def.rs2
-rw-r--r--crates/ra_hir/src/source_analyzer.rs4
-rw-r--r--crates/ra_hir_def/src/body/lower.rs42
-rw-r--r--crates/ra_hir_ty/src/diagnostics.rs2
-rw-r--r--crates/ra_hir_ty/src/diagnostics/expr.rs2
-rw-r--r--crates/ra_ide/src/completion/completion_context.rs8
-rw-r--r--crates/ra_ide/src/completion/patterns.rs2
-rw-r--r--crates/ra_ide/src/display/navigation_target.rs4
-rw-r--r--crates/ra_ide/src/extend_selection.rs2
-rw-r--r--crates/ra_ide/src/folding_ranges.rs2
-rw-r--r--crates/ra_ide/src/inlay_hints.rs14
-rw-r--r--crates/ra_ide/src/references.rs14
-rw-r--r--crates/ra_ide/src/syntax_highlighting.rs2
-rw-r--r--crates/ra_ide_db/src/defs.rs8
-rw-r--r--crates/ra_mbe/src/tests.rs4
-rw-r--r--crates/ra_parser/src/grammar/patterns.rs8
-rw-r--r--crates/ra_parser/src/syntax_kind/generated.rs8
-rw-r--r--crates/ra_ssr/src/parsing.rs2
-rw-r--r--crates/ra_ssr/src/resolving.rs2
-rw-r--r--crates/ra_ssr/src/tests.rs2
-rw-r--r--crates/ra_syntax/src/ast/edit.rs2
-rw-r--r--crates/ra_syntax/src/ast/generated/nodes.rs654
-rw-r--r--crates/ra_syntax/src/ast/make.rs8
-rw-r--r--crates/ra_syntax/src/ast/node_ext.rs8
-rw-r--r--crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast36
-rw-r--r--crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0019_let_recover.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/err/0025_nope.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0029_field_completion.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/fragments/pattern/ok/0000_enum.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast14
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast14
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast20
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast24
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast18
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast14
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast14
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast44
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast16
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0030_traits.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0031_extern.rast94
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0033_label_break.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast42
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast22
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0063_variadic_fun.rast14
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast18
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast2
-rw-r--r--xtask/src/ast_src.rs8
-rw-r--r--xtask/src/codegen/rust.ungram129
121 files changed, 829 insertions, 837 deletions
diff --git a/crates/ra_assists/src/handlers/add_explicit_type.rs b/crates/ra_assists/src/handlers/add_explicit_type.rs
index d8b0af0f5..135a2ac9c 100644
--- a/crates/ra_assists/src/handlers/add_explicit_type.rs
+++ b/crates/ra_assists/src/handlers/add_explicit_type.rs
@@ -27,7 +27,7 @@ pub(crate) fn add_explicit_type(acc: &mut Assists, ctx: &AssistContext) -> Optio
27 let expr = let_stmt.initializer()?; 27 let expr = let_stmt.initializer()?;
28 // Must be a binding 28 // Must be a binding
29 let pat = match let_stmt.pat()? { 29 let pat = match let_stmt.pat()? {
30 ast::Pat::BindPat(bind_pat) => bind_pat, 30 ast::Pat::IdentPat(bind_pat) => bind_pat,
31 _ => return None, 31 _ => return None,
32 }; 32 };
33 let pat_range = pat.syntax().text_range(); 33 let pat_range = pat.syntax().text_range();
diff --git a/crates/ra_assists/src/handlers/fill_match_arms.rs b/crates/ra_assists/src/handlers/fill_match_arms.rs
index 708e1bc6c..b2e14f9d7 100644
--- a/crates/ra_assists/src/handlers/fill_match_arms.rs
+++ b/crates/ra_assists/src/handlers/fill_match_arms.rs
@@ -43,7 +43,7 @@ pub(crate) fn fill_match_arms(acc: &mut Assists, ctx: &AssistContext) -> Option<
43 43
44 let mut arms: Vec<MatchArm> = match_arm_list.arms().collect(); 44 let mut arms: Vec<MatchArm> = match_arm_list.arms().collect();
45 if arms.len() == 1 { 45 if arms.len() == 1 {
46 if let Some(Pat::PlaceholderPat(..)) = arms[0].pat() { 46 if let Some(Pat::WildcardPat(..)) = arms[0].pat() {
47 arms.clear(); 47 arms.clear();
48 } 48 }
49 } 49 }
@@ -116,17 +116,15 @@ pub(crate) fn fill_match_arms(acc: &mut Assists, ctx: &AssistContext) -> Option<
116 match (first_new_arm, ctx.config.snippet_cap) { 116 match (first_new_arm, ctx.config.snippet_cap) {
117 (Some(first_new_arm), Some(cap)) => { 117 (Some(first_new_arm), Some(cap)) => {
118 let extend_lifetime; 118 let extend_lifetime;
119 let cursor = match first_new_arm 119 let cursor =
120 .syntax() 120 match first_new_arm.syntax().descendants().find_map(ast::WildcardPat::cast)
121 .descendants() 121 {
122 .find_map(ast::PlaceholderPat::cast) 122 Some(it) => {
123 { 123 extend_lifetime = it.syntax().clone();
124 Some(it) => { 124 Cursor::Replace(&extend_lifetime)
125 extend_lifetime = it.syntax().clone(); 125 }
126 Cursor::Replace(&extend_lifetime) 126 None => Cursor::Before(first_new_arm.syntax()),
127 } 127 };
128 None => Cursor::Before(first_new_arm.syntax()),
129 };
130 let snippet = render_snippet(cap, new_arm_list.syntax(), cursor); 128 let snippet = render_snippet(cap, new_arm_list.syntax(), cursor);
131 builder.replace_snippet(cap, old_range, snippet); 129 builder.replace_snippet(cap, old_range, snippet);
132 } 130 }
@@ -152,7 +150,7 @@ fn does_pat_match_variant(pat: &Pat, var: &Pat) -> bool {
152 let first_node_text = |pat: &Pat| pat.syntax().first_child().map(|node| node.text()); 150 let first_node_text = |pat: &Pat| pat.syntax().first_child().map(|node| node.text());
153 151
154 let pat_head = match pat { 152 let pat_head = match pat {
155 Pat::BindPat(bind_pat) => { 153 Pat::IdentPat(bind_pat) => {
156 if let Some(p) = bind_pat.pat() { 154 if let Some(p) = bind_pat.pat() {
157 first_node_text(&p) 155 first_node_text(&p)
158 } else { 156 } else {
diff --git a/crates/ra_assists/src/handlers/inline_local_variable.rs b/crates/ra_assists/src/handlers/inline_local_variable.rs
index 2fdfabaf5..3c58020f8 100644
--- a/crates/ra_assists/src/handlers/inline_local_variable.rs
+++ b/crates/ra_assists/src/handlers/inline_local_variable.rs
@@ -29,7 +29,7 @@ use crate::{
29pub(crate) fn inline_local_variable(acc: &mut Assists, ctx: &AssistContext) -> Option<()> { 29pub(crate) fn inline_local_variable(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
30 let let_stmt = ctx.find_node_at_offset::<ast::LetStmt>()?; 30 let let_stmt = ctx.find_node_at_offset::<ast::LetStmt>()?;
31 let bind_pat = match let_stmt.pat()? { 31 let bind_pat = match let_stmt.pat()? {
32 ast::Pat::BindPat(pat) => pat, 32 ast::Pat::IdentPat(pat) => pat,
33 _ => return None, 33 _ => return None,
34 }; 34 };
35 if bind_pat.mut_token().is_some() { 35 if bind_pat.mut_token().is_some() {
diff --git a/crates/ra_assists/src/handlers/merge_match_arms.rs b/crates/ra_assists/src/handlers/merge_match_arms.rs
index 186a1f618..563292282 100644
--- a/crates/ra_assists/src/handlers/merge_match_arms.rs
+++ b/crates/ra_assists/src/handlers/merge_match_arms.rs
@@ -86,7 +86,7 @@ pub(crate) fn merge_match_arms(acc: &mut Assists, ctx: &AssistContext) -> Option
86} 86}
87 87
88fn contains_placeholder(a: &ast::MatchArm) -> bool { 88fn contains_placeholder(a: &ast::MatchArm) -> bool {
89 matches!(a.pat(), Some(ast::Pat::PlaceholderPat(..))) 89 matches!(a.pat(), Some(ast::Pat::WildcardPat(..)))
90} 90}
91 91
92#[cfg(test)] 92#[cfg(test)]
diff --git a/crates/ra_assists/src/handlers/reorder_fields.rs b/crates/ra_assists/src/handlers/reorder_fields.rs
index 120250e79..c9b743a06 100644
--- a/crates/ra_assists/src/handlers/reorder_fields.rs
+++ b/crates/ra_assists/src/handlers/reorder_fields.rs
@@ -57,7 +57,7 @@ fn reorder<R: AstNode>(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
57fn get_fields_kind(node: &SyntaxNode) -> Vec<SyntaxKind> { 57fn get_fields_kind(node: &SyntaxNode) -> Vec<SyntaxKind> {
58 match node.kind() { 58 match node.kind() {
59 RECORD_EXPR => vec![RECORD_EXPR_FIELD], 59 RECORD_EXPR => vec![RECORD_EXPR_FIELD],
60 RECORD_PAT => vec![RECORD_FIELD_PAT, BIND_PAT], 60 RECORD_PAT => vec![RECORD_PAT_FIELD, IDENT_PAT],
61 _ => vec![], 61 _ => vec![],
62 } 62 }
63} 63}
@@ -66,7 +66,7 @@ fn get_field_name(node: &SyntaxNode) -> String {
66 let res = match_ast! { 66 let res = match_ast! {
67 match node { 67 match node {
68 ast::RecordExprField(field) => field.field_name().map(|it| it.to_string()), 68 ast::RecordExprField(field) => field.field_name().map(|it| it.to_string()),
69 ast::RecordFieldPat(field) => field.field_name().map(|it| it.to_string()), 69 ast::RecordPatField(field) => field.field_name().map(|it| it.to_string()),
70 _ => None, 70 _ => None,
71 } 71 }
72 }; 72 };
diff --git a/crates/ra_assists/src/handlers/replace_let_with_if_let.rs b/crates/ra_assists/src/handlers/replace_let_with_if_let.rs
index a49292c97..64ad15a23 100644
--- a/crates/ra_assists/src/handlers/replace_let_with_if_let.rs
+++ b/crates/ra_assists/src/handlers/replace_let_with_if_let.rs
@@ -62,8 +62,7 @@ pub(crate) fn replace_let_with_if_let(acc: &mut Assists, ctx: &AssistContext) ->
62 let if_ = make::expr_if(make::condition(init, Some(with_placeholder)), block); 62 let if_ = make::expr_if(make::condition(init, Some(with_placeholder)), block);
63 let stmt = make::expr_stmt(if_); 63 let stmt = make::expr_stmt(if_);
64 64
65 let placeholder = 65 let placeholder = stmt.syntax().descendants().find_map(ast::WildcardPat::cast).unwrap();
66 stmt.syntax().descendants().find_map(ast::PlaceholderPat::cast).unwrap();
67 let stmt = stmt.replace_descendant(placeholder.into(), original_pat); 66 let stmt = stmt.replace_descendant(placeholder.into(), original_pat);
68 67
69 edit.replace_ast(ast::Stmt::from(let_stmt), ast::Stmt::from(stmt)); 68 edit.replace_ast(ast::Stmt::from(let_stmt), ast::Stmt::from(stmt));
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs
index 36c0bdc9e..27cdabea0 100644
--- a/crates/ra_hir/src/code_model.rs
+++ b/crates/ra_hir/src/code_model.rs
@@ -1002,7 +1002,7 @@ impl Local {
1002 Type::new(db, krate, def, ty) 1002 Type::new(db, krate, def, ty)
1003 } 1003 }
1004 1004
1005 pub fn source(self, db: &dyn HirDatabase) -> InFile<Either<ast::BindPat, ast::SelfParam>> { 1005 pub fn source(self, db: &dyn HirDatabase) -> InFile<Either<ast::IdentPat, ast::SelfParam>> {
1006 let (_body, source_map) = db.body_with_source_map(self.parent.into()); 1006 let (_body, source_map) = db.body_with_source_map(self.parent.into());
1007 let src = source_map.pat_syntax(self.pat_id).unwrap(); // Hmm... 1007 let src = source_map.pat_syntax(self.pat_id).unwrap(); // Hmm...
1008 let root = src.file_syntax(db.upcast()); 1008 let root = src.file_syntax(db.upcast());
diff --git a/crates/ra_hir/src/semantics.rs b/crates/ra_hir/src/semantics.rs
index 6f3b3dc9a..307b336f2 100644
--- a/crates/ra_hir/src/semantics.rs
+++ b/crates/ra_hir/src/semantics.rs
@@ -216,7 +216,7 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> {
216 self.imp.resolve_record_field(field) 216 self.imp.resolve_record_field(field)
217 } 217 }
218 218
219 pub fn resolve_record_field_pat(&self, field: &ast::RecordFieldPat) -> Option<Field> { 219 pub fn resolve_record_field_pat(&self, field: &ast::RecordPatField) -> Option<Field> {
220 self.imp.resolve_record_field_pat(field) 220 self.imp.resolve_record_field_pat(field)
221 } 221 }
222 222
@@ -236,7 +236,7 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> {
236 self.imp.lower_path(path) 236 self.imp.lower_path(path)
237 } 237 }
238 238
239 pub fn resolve_bind_pat_to_const(&self, pat: &ast::BindPat) -> Option<ModuleDef> { 239 pub fn resolve_bind_pat_to_const(&self, pat: &ast::IdentPat) -> Option<ModuleDef> {
240 self.imp.resolve_bind_pat_to_const(pat) 240 self.imp.resolve_bind_pat_to_const(pat)
241 } 241 }
242 242
@@ -429,7 +429,7 @@ impl<'db> SemanticsImpl<'db> {
429 self.analyze(field.syntax()).resolve_record_field(self.db, field) 429 self.analyze(field.syntax()).resolve_record_field(self.db, field)
430 } 430 }
431 431
432 fn resolve_record_field_pat(&self, field: &ast::RecordFieldPat) -> Option<Field> { 432 fn resolve_record_field_pat(&self, field: &ast::RecordPatField) -> Option<Field> {
433 self.analyze(field.syntax()).resolve_record_field_pat(self.db, field) 433 self.analyze(field.syntax()).resolve_record_field_pat(self.db, field)
434 } 434 }
435 435
@@ -452,7 +452,7 @@ impl<'db> SemanticsImpl<'db> {
452 Path::from_src(path.clone(), &Hygiene::new(self.db.upcast(), src.file_id.into())) 452 Path::from_src(path.clone(), &Hygiene::new(self.db.upcast(), src.file_id.into()))
453 } 453 }
454 454
455 fn resolve_bind_pat_to_const(&self, pat: &ast::BindPat) -> Option<ModuleDef> { 455 fn resolve_bind_pat_to_const(&self, pat: &ast::IdentPat) -> Option<ModuleDef> {
456 self.analyze(pat.syntax()).resolve_bind_pat_to_const(self.db, pat) 456 self.analyze(pat.syntax()).resolve_bind_pat_to_const(self.db, pat)
457 } 457 }
458 458
@@ -594,7 +594,7 @@ to_def_impls![
594 (crate::EnumVariant, ast::Variant, enum_variant_to_def), 594 (crate::EnumVariant, ast::Variant, enum_variant_to_def),
595 (crate::TypeParam, ast::TypeParam, type_param_to_def), 595 (crate::TypeParam, ast::TypeParam, type_param_to_def),
596 (crate::MacroDef, ast::MacroCall, macro_call_to_def), // this one is dubious, not all calls are macros 596 (crate::MacroDef, ast::MacroCall, macro_call_to_def), // this one is dubious, not all calls are macros
597 (crate::Local, ast::BindPat, bind_pat_to_def), 597 (crate::Local, ast::IdentPat, bind_pat_to_def),
598]; 598];
599 599
600fn find_root(node: &SyntaxNode) -> SyntaxNode { 600fn find_root(node: &SyntaxNode) -> SyntaxNode {
diff --git a/crates/ra_hir/src/semantics/source_to_def.rs b/crates/ra_hir/src/semantics/source_to_def.rs
index d1994e2e7..863e8e5ff 100644
--- a/crates/ra_hir/src/semantics/source_to_def.rs
+++ b/crates/ra_hir/src/semantics/source_to_def.rs
@@ -106,7 +106,7 @@ impl SourceToDefCtx<'_, '_> {
106 } 106 }
107 pub(super) fn bind_pat_to_def( 107 pub(super) fn bind_pat_to_def(
108 &mut self, 108 &mut self,
109 src: InFile<ast::BindPat>, 109 src: InFile<ast::IdentPat>,
110 ) -> Option<(DefWithBodyId, PatId)> { 110 ) -> Option<(DefWithBodyId, PatId)> {
111 let container = self.find_pat_container(src.as_ref().map(|it| it.syntax()))?; 111 let container = self.find_pat_container(src.as_ref().map(|it| it.syntax()))?;
112 let (_body, source_map) = self.db.body_with_source_map(container); 112 let (_body, source_map) = self.db.body_with_source_map(container);
diff --git a/crates/ra_hir/src/source_analyzer.rs b/crates/ra_hir/src/source_analyzer.rs
index f2e630ef1..d0cb62ef0 100644
--- a/crates/ra_hir/src/source_analyzer.rs
+++ b/crates/ra_hir/src/source_analyzer.rs
@@ -182,7 +182,7 @@ impl SourceAnalyzer {
182 pub(crate) fn resolve_record_field_pat( 182 pub(crate) fn resolve_record_field_pat(
183 &self, 183 &self,
184 _db: &dyn HirDatabase, 184 _db: &dyn HirDatabase,
185 field: &ast::RecordFieldPat, 185 field: &ast::RecordPatField,
186 ) -> Option<Field> { 186 ) -> Option<Field> {
187 let pat_id = self.pat_id(&field.pat()?)?; 187 let pat_id = self.pat_id(&field.pat()?)?;
188 let struct_field = self.infer.as_ref()?.record_field_pat_resolution(pat_id)?; 188 let struct_field = self.infer.as_ref()?.record_field_pat_resolution(pat_id)?;
@@ -202,7 +202,7 @@ impl SourceAnalyzer {
202 pub(crate) fn resolve_bind_pat_to_const( 202 pub(crate) fn resolve_bind_pat_to_const(
203 &self, 203 &self,
204 db: &dyn HirDatabase, 204 db: &dyn HirDatabase,
205 pat: &ast::BindPat, 205 pat: &ast::IdentPat,
206 ) -> Option<ModuleDef> { 206 ) -> Option<ModuleDef> {
207 let pat_id = self.pat_id(&pat.clone().into())?; 207 let pat_id = self.pat_id(&pat.clone().into())?;
208 let body = self.body.as_ref()?; 208 let body = self.body.as_ref()?;
diff --git a/crates/ra_hir_def/src/body/lower.rs b/crates/ra_hir_def/src/body/lower.rs
index 6bedc6b56..3f210547e 100644
--- a/crates/ra_hir_def/src/body/lower.rs
+++ b/crates/ra_hir_def/src/body/lower.rs
@@ -1,6 +1,8 @@
1//! Transforms `ast::Expr` into an equivalent `hir_def::expr::Expr` 1//! Transforms `ast::Expr` into an equivalent `hir_def::expr::Expr`
2//! representation. 2//! representation.
3 3
4use std::{any::type_name, sync::Arc};
5
4use either::Either; 6use either::Either;
5use hir_expand::{ 7use hir_expand::{
6 hygiene::Hygiene, 8 hygiene::Hygiene,
@@ -10,11 +12,12 @@ use hir_expand::{
10use ra_arena::Arena; 12use ra_arena::Arena;
11use ra_syntax::{ 13use ra_syntax::{
12 ast::{ 14 ast::{
13 self, ArgListOwner, ArrayExprKind, LiteralKind, LoopBodyOwner, NameOwner, 15 self, ArgListOwner, ArrayExprKind, AstChildren, LiteralKind, LoopBodyOwner, NameOwner,
14 SlicePatComponents, 16 SlicePatComponents,
15 }, 17 },
16 AstNode, AstPtr, 18 AstNode, AstPtr,
17}; 19};
20use rustc_hash::FxHashMap;
18use test_utils::mark; 21use test_utils::mark;
19 22
20use crate::{ 23use crate::{
@@ -35,9 +38,6 @@ use crate::{
35}; 38};
36 39
37use super::{ExprSource, PatSource}; 40use super::{ExprSource, PatSource};
38use ast::AstChildren;
39use rustc_hash::FxHashMap;
40use std::{any::type_name, sync::Arc};
41 41
42pub(crate) struct LowerCtx { 42pub(crate) struct LowerCtx {
43 hygiene: Hygiene, 43 hygiene: Hygiene,
@@ -723,7 +723,7 @@ impl ExprCollector<'_> {
723 723
724 fn collect_pat(&mut self, pat: ast::Pat) -> PatId { 724 fn collect_pat(&mut self, pat: ast::Pat) -> PatId {
725 let pattern = match &pat { 725 let pattern = match &pat {
726 ast::Pat::BindPat(bp) => { 726 ast::Pat::IdentPat(bp) => {
727 let name = bp.name().map(|nr| nr.as_name()).unwrap_or_else(Name::missing); 727 let name = bp.name().map(|nr| nr.as_name()).unwrap_or_else(Name::missing);
728 let annotation = 728 let annotation =
729 BindingAnnotation::new(bp.mut_token().is_some(), bp.ref_token().is_some()); 729 BindingAnnotation::new(bp.mut_token().is_some(), bp.ref_token().is_some());
@@ -783,32 +783,28 @@ impl ExprCollector<'_> {
783 let (args, ellipsis) = self.collect_tuple_pat(p.args()); 783 let (args, ellipsis) = self.collect_tuple_pat(p.args());
784 Pat::Tuple { args, ellipsis } 784 Pat::Tuple { args, ellipsis }
785 } 785 }
786 ast::Pat::PlaceholderPat(_) => Pat::Wild, 786 ast::Pat::WildcardPat(_) => Pat::Wild,
787 ast::Pat::RecordPat(p) => { 787 ast::Pat::RecordPat(p) => {
788 let path = p.path().and_then(|path| self.expander.parse_path(path)); 788 let path = p.path().and_then(|path| self.expander.parse_path(path));
789 let record_field_pat_list = 789 let args: Vec<_> = p
790 p.record_field_pat_list().expect("every struct should have a field list"); 790 .record_pat_field_list()
791 let mut fields: Vec<_> = record_field_pat_list 791 .expect("every struct should have a field list")
792 .bind_pats() 792 .fields()
793 .filter_map(|bind_pat| { 793 .filter_map(|f| {
794 let ast_pat = 794 let ast_pat = f.pat()?;
795 ast::Pat::cast(bind_pat.syntax().clone()).expect("bind pat is a pat");
796 let pat = self.collect_pat(ast_pat); 795 let pat = self.collect_pat(ast_pat);
797 let name = bind_pat.name()?.as_name(); 796 let name = f.field_name()?.as_name();
798 Some(RecordFieldPat { name, pat }) 797 Some(RecordFieldPat { name, pat })
799 }) 798 })
800 .collect(); 799 .collect();
801 let iter = record_field_pat_list.record_field_pats().filter_map(|f| {
802 let ast_pat = f.pat()?;
803 let pat = self.collect_pat(ast_pat);
804 let name = f.field_name()?.as_name();
805 Some(RecordFieldPat { name, pat })
806 });
807 fields.extend(iter);
808 800
809 let ellipsis = record_field_pat_list.dotdot_token().is_some(); 801 let ellipsis = p
802 .record_pat_field_list()
803 .expect("every struct should have a field list")
804 .dotdot_token()
805 .is_some();
810 806
811 Pat::Record { path, args: fields, ellipsis } 807 Pat::Record { path, args, ellipsis }
812 } 808 }
813 ast::Pat::SlicePat(p) => { 809 ast::Pat::SlicePat(p) => {
814 let SlicePatComponents { prefix, slice, suffix } = p.components(); 810 let SlicePatComponents { prefix, slice, suffix } = p.components();
diff --git a/crates/ra_hir_ty/src/diagnostics.rs b/crates/ra_hir_ty/src/diagnostics.rs
index f210c305a..977c0525b 100644
--- a/crates/ra_hir_ty/src/diagnostics.rs
+++ b/crates/ra_hir_ty/src/diagnostics.rs
@@ -92,7 +92,7 @@ impl AstDiagnostic for MissingFields {
92#[derive(Debug)] 92#[derive(Debug)]
93pub struct MissingPatFields { 93pub struct MissingPatFields {
94 pub file: HirFileId, 94 pub file: HirFileId,
95 pub field_list: AstPtr<ast::RecordFieldPatList>, 95 pub field_list: AstPtr<ast::RecordPatFieldList>,
96 pub missed_fields: Vec<Name>, 96 pub missed_fields: Vec<Name>,
97} 97}
98 98
diff --git a/crates/ra_hir_ty/src/diagnostics/expr.rs b/crates/ra_hir_ty/src/diagnostics/expr.rs
index f0e0f2988..95bbf2d95 100644
--- a/crates/ra_hir_ty/src/diagnostics/expr.rs
+++ b/crates/ra_hir_ty/src/diagnostics/expr.rs
@@ -131,7 +131,7 @@ impl<'a, 'b> ExprValidator<'a, 'b> {
131 if let Some(expr) = source_ptr.value.as_ref().left() { 131 if let Some(expr) = source_ptr.value.as_ref().left() {
132 let root = source_ptr.file_syntax(db.upcast()); 132 let root = source_ptr.file_syntax(db.upcast());
133 if let ast::Pat::RecordPat(record_pat) = expr.to_node(&root) { 133 if let ast::Pat::RecordPat(record_pat) = expr.to_node(&root) {
134 if let Some(field_list) = record_pat.record_field_pat_list() { 134 if let Some(field_list) = record_pat.record_pat_field_list() {
135 let variant_data = variant_data(db.upcast(), variant_def); 135 let variant_data = variant_data(db.upcast(), variant_def);
136 let missed_fields = missed_fields 136 let missed_fields = missed_fields
137 .into_iter() 137 .into_iter()
diff --git a/crates/ra_ide/src/completion/completion_context.rs b/crates/ra_ide/src/completion/completion_context.rs
index 2a5f3c3d2..6b03b30bb 100644
--- a/crates/ra_ide/src/completion/completion_context.rs
+++ b/crates/ra_ide/src/completion/completion_context.rs
@@ -265,7 +265,7 @@ impl<'a> CompletionContext<'a> {
265 return; 265 return;
266 } 266 }
267 // FIXME: remove this (V) duplication and make the check more precise 267 // FIXME: remove this (V) duplication and make the check more precise
268 if name_ref.syntax().ancestors().find_map(ast::RecordFieldPatList::cast).is_some() { 268 if name_ref.syntax().ancestors().find_map(ast::RecordPatFieldList::cast).is_some() {
269 self.record_pat_syntax = 269 self.record_pat_syntax =
270 self.sema.find_node_at_offset_with_macros(&original_file, offset); 270 self.sema.find_node_at_offset_with_macros(&original_file, offset);
271 } 271 }
@@ -275,7 +275,7 @@ impl<'a> CompletionContext<'a> {
275 // Otherwise, see if this is a declaration. We can use heuristics to 275 // Otherwise, see if this is a declaration. We can use heuristics to
276 // suggest declaration names, see `CompletionKind::Magic`. 276 // suggest declaration names, see `CompletionKind::Magic`.
277 if let Some(name) = find_node_at_offset::<ast::Name>(&file_with_fake_ident, offset) { 277 if let Some(name) = find_node_at_offset::<ast::Name>(&file_with_fake_ident, offset) {
278 if let Some(bind_pat) = name.syntax().ancestors().find_map(ast::BindPat::cast) { 278 if let Some(bind_pat) = name.syntax().ancestors().find_map(ast::IdentPat::cast) {
279 self.is_pat_binding_or_const = true; 279 self.is_pat_binding_or_const = true;
280 if bind_pat.at_token().is_some() 280 if bind_pat.at_token().is_some()
281 || bind_pat.ref_token().is_some() 281 || bind_pat.ref_token().is_some()
@@ -283,7 +283,7 @@ impl<'a> CompletionContext<'a> {
283 { 283 {
284 self.is_pat_binding_or_const = false; 284 self.is_pat_binding_or_const = false;
285 } 285 }
286 if bind_pat.syntax().parent().and_then(ast::RecordFieldPatList::cast).is_some() { 286 if bind_pat.syntax().parent().and_then(ast::RecordPatFieldList::cast).is_some() {
287 self.is_pat_binding_or_const = false; 287 self.is_pat_binding_or_const = false;
288 } 288 }
289 if let Some(let_stmt) = bind_pat.syntax().ancestors().find_map(ast::LetStmt::cast) { 289 if let Some(let_stmt) = bind_pat.syntax().ancestors().find_map(ast::LetStmt::cast) {
@@ -300,7 +300,7 @@ impl<'a> CompletionContext<'a> {
300 return; 300 return;
301 } 301 }
302 // FIXME: remove this (^) duplication and make the check more precise 302 // FIXME: remove this (^) duplication and make the check more precise
303 if name.syntax().ancestors().find_map(ast::RecordFieldPatList::cast).is_some() { 303 if name.syntax().ancestors().find_map(ast::RecordPatFieldList::cast).is_some() {
304 self.record_pat_syntax = 304 self.record_pat_syntax =
305 self.sema.find_node_at_offset_with_macros(&original_file, offset); 305 self.sema.find_node_at_offset_with_macros(&original_file, offset);
306 } 306 }
diff --git a/crates/ra_ide/src/completion/patterns.rs b/crates/ra_ide/src/completion/patterns.rs
index 9e654b373..7c4feff6d 100644
--- a/crates/ra_ide/src/completion/patterns.rs
+++ b/crates/ra_ide/src/completion/patterns.rs
@@ -44,7 +44,7 @@ fn test_has_block_expr_parent() {
44} 44}
45 45
46pub(crate) fn has_bind_pat_parent(element: SyntaxElement) -> bool { 46pub(crate) fn has_bind_pat_parent(element: SyntaxElement) -> bool {
47 element.ancestors().find(|it| it.kind() == BIND_PAT).is_some() 47 element.ancestors().find(|it| it.kind() == IDENT_PAT).is_some()
48} 48}
49#[test] 49#[test]
50fn test_has_bind_pat_parent() { 50fn test_has_bind_pat_parent() {
diff --git a/crates/ra_ide/src/display/navigation_target.rs b/crates/ra_ide/src/display/navigation_target.rs
index 45fbc86ef..d70e33e72 100644
--- a/crates/ra_ide/src/display/navigation_target.rs
+++ b/crates/ra_ide/src/display/navigation_target.rs
@@ -7,7 +7,7 @@ use ra_ide_db::{defs::Definition, RootDatabase};
7use ra_syntax::{ 7use ra_syntax::{
8 ast::{self, DocCommentsOwner, NameOwner}, 8 ast::{self, DocCommentsOwner, NameOwner},
9 match_ast, AstNode, SmolStr, 9 match_ast, AstNode, SmolStr,
10 SyntaxKind::{self, BIND_PAT, TYPE_PARAM}, 10 SyntaxKind::{self, IDENT_PAT, TYPE_PARAM},
11 TextRange, 11 TextRange,
12}; 12};
13 13
@@ -339,7 +339,7 @@ impl ToNav for hir::Local {
339 NavigationTarget { 339 NavigationTarget {
340 file_id: full_range.file_id, 340 file_id: full_range.file_id,
341 name, 341 name,
342 kind: BIND_PAT, 342 kind: IDENT_PAT,
343 full_range: full_range.range, 343 full_range: full_range.range,
344 focus_range: None, 344 focus_range: None,
345 container_name: None, 345 container_name: None,
diff --git a/crates/ra_ide/src/extend_selection.rs b/crates/ra_ide/src/extend_selection.rs
index 319fd500d..7230a0ff9 100644
--- a/crates/ra_ide/src/extend_selection.rs
+++ b/crates/ra_ide/src/extend_selection.rs
@@ -37,7 +37,7 @@ fn try_extend_selection(
37 37
38 let string_kinds = [COMMENT, STRING, RAW_STRING, BYTE_STRING, RAW_BYTE_STRING]; 38 let string_kinds = [COMMENT, STRING, RAW_STRING, BYTE_STRING, RAW_BYTE_STRING];
39 let list_kinds = [ 39 let list_kinds = [
40 RECORD_FIELD_PAT_LIST, 40 RECORD_PAT_FIELD_LIST,
41 MATCH_ARM_LIST, 41 MATCH_ARM_LIST,
42 RECORD_FIELD_LIST, 42 RECORD_FIELD_LIST,
43 TUPLE_FIELD_LIST, 43 TUPLE_FIELD_LIST,
diff --git a/crates/ra_ide/src/folding_ranges.rs b/crates/ra_ide/src/folding_ranges.rs
index 5a6e17936..903c34996 100644
--- a/crates/ra_ide/src/folding_ranges.rs
+++ b/crates/ra_ide/src/folding_ranges.rs
@@ -86,7 +86,7 @@ fn fold_kind(kind: SyntaxKind) -> Option<FoldKind> {
86 USE => Some(FoldKind::Imports), 86 USE => Some(FoldKind::Imports),
87 ARG_LIST | PARAM_LIST => Some(FoldKind::ArgList), 87 ARG_LIST | PARAM_LIST => Some(FoldKind::ArgList),
88 RECORD_FIELD_LIST 88 RECORD_FIELD_LIST
89 | RECORD_FIELD_PAT_LIST 89 | RECORD_PAT_FIELD_LIST
90 | RECORD_EXPR_FIELD_LIST 90 | RECORD_EXPR_FIELD_LIST
91 | ITEM_LIST 91 | ITEM_LIST
92 | EXTERN_ITEM_LIST 92 | EXTERN_ITEM_LIST
diff --git a/crates/ra_ide/src/inlay_hints.rs b/crates/ra_ide/src/inlay_hints.rs
index 4bbbcd258..1bacead63 100644
--- a/crates/ra_ide/src/inlay_hints.rs
+++ b/crates/ra_ide/src/inlay_hints.rs
@@ -78,7 +78,7 @@ pub(crate) fn inlay_hints(
78 match node { 78 match node {
79 ast::CallExpr(it) => { get_param_name_hints(&mut res, &sema, config, ast::Expr::from(it)); }, 79 ast::CallExpr(it) => { get_param_name_hints(&mut res, &sema, config, ast::Expr::from(it)); },
80 ast::MethodCallExpr(it) => { get_param_name_hints(&mut res, &sema, config, ast::Expr::from(it)); }, 80 ast::MethodCallExpr(it) => { get_param_name_hints(&mut res, &sema, config, ast::Expr::from(it)); },
81 ast::BindPat(it) => { get_bind_pat_hints(&mut res, &sema, config, it); }, 81 ast::IdentPat(it) => { get_bind_pat_hints(&mut res, &sema, config, it); },
82 _ => (), 82 _ => (),
83 } 83 }
84 } 84 }
@@ -161,7 +161,7 @@ fn get_param_name_hints(
161 Either::Left(self_param) => Some((self_param.to_string(), arg)), 161 Either::Left(self_param) => Some((self_param.to_string(), arg)),
162 Either::Right(pat) => { 162 Either::Right(pat) => {
163 let param_name = match pat { 163 let param_name = match pat {
164 ast::Pat::BindPat(it) => it.name()?.to_string(), 164 ast::Pat::IdentPat(it) => it.name()?.to_string(),
165 it => it.to_string(), 165 it => it.to_string(),
166 }; 166 };
167 Some((param_name, arg)) 167 Some((param_name, arg))
@@ -182,7 +182,7 @@ fn get_bind_pat_hints(
182 acc: &mut Vec<InlayHint>, 182 acc: &mut Vec<InlayHint>,
183 sema: &Semantics<RootDatabase>, 183 sema: &Semantics<RootDatabase>,
184 config: &InlayHintsConfig, 184 config: &InlayHintsConfig,
185 pat: ast::BindPat, 185 pat: ast::IdentPat,
186) -> Option<()> { 186) -> Option<()> {
187 if !config.type_hints { 187 if !config.type_hints {
188 return None; 188 return None;
@@ -202,7 +202,7 @@ fn get_bind_pat_hints(
202 Some(()) 202 Some(())
203} 203}
204 204
205fn pat_is_enum_variant(db: &RootDatabase, bind_pat: &ast::BindPat, pat_ty: &Type) -> bool { 205fn pat_is_enum_variant(db: &RootDatabase, bind_pat: &ast::IdentPat, pat_ty: &Type) -> bool {
206 if let Some(Adt::Enum(enum_data)) = pat_ty.as_adt() { 206 if let Some(Adt::Enum(enum_data)) = pat_ty.as_adt() {
207 let pat_text = bind_pat.to_string(); 207 let pat_text = bind_pat.to_string();
208 enum_data 208 enum_data
@@ -215,7 +215,11 @@ fn pat_is_enum_variant(db: &RootDatabase, bind_pat: &ast::BindPat, pat_ty: &Type
215 } 215 }
216} 216}
217 217
218fn should_not_display_type_hint(db: &RootDatabase, bind_pat: &ast::BindPat, pat_ty: &Type) -> bool { 218fn should_not_display_type_hint(
219 db: &RootDatabase,
220 bind_pat: &ast::IdentPat,
221 pat_ty: &Type,
222) -> bool {
219 if pat_ty.is_unknown() { 223 if pat_ty.is_unknown() {
220 return true; 224 return true;
221 } 225 }
diff --git a/crates/ra_ide/src/references.rs b/crates/ra_ide/src/references.rs
index 519e4bf1a..cf456630a 100644
--- a/crates/ra_ide/src/references.rs
+++ b/crates/ra_ide/src/references.rs
@@ -150,7 +150,7 @@ fn decl_access(def: &Definition, syntax: &SyntaxNode, range: TextRange) -> Optio
150 let stmt = find_node_at_offset::<ast::LetStmt>(syntax, range.start())?; 150 let stmt = find_node_at_offset::<ast::LetStmt>(syntax, range.start())?;
151 if stmt.initializer().is_some() { 151 if stmt.initializer().is_some() {
152 let pat = stmt.pat()?; 152 let pat = stmt.pat()?;
153 if let ast::Pat::BindPat(it) = pat { 153 if let ast::Pat::IdentPat(it) = pat {
154 if it.mut_token().is_some() { 154 if it.mut_token().is_some() {
155 return Some(ReferenceAccess::Write); 155 return Some(ReferenceAccess::Write);
156 } 156 }
@@ -290,7 +290,7 @@ fn main() {
290 ); 290 );
291 check_result( 291 check_result(
292 refs, 292 refs,
293 "i BIND_PAT FileId(1) 24..25 Other Write", 293 "i IDENT_PAT FileId(1) 24..25 Other Write",
294 &[ 294 &[
295 "FileId(1) 50..51 Other Write", 295 "FileId(1) 50..51 Other Write",
296 "FileId(1) 54..55 Other Read", 296 "FileId(1) 54..55 Other Read",
@@ -316,7 +316,7 @@ fn bar() {
316 ); 316 );
317 check_result( 317 check_result(
318 refs, 318 refs,
319 "spam BIND_PAT FileId(1) 19..23 Other", 319 "spam IDENT_PAT FileId(1) 19..23 Other",
320 &["FileId(1) 34..38 Other Read", "FileId(1) 41..45 Other Read"], 320 &["FileId(1) 34..38 Other Read", "FileId(1) 41..45 Other Read"],
321 ); 321 );
322 } 322 }
@@ -330,7 +330,7 @@ fn foo(i : u32) -> u32 {
330} 330}
331"#, 331"#,
332 ); 332 );
333 check_result(refs, "i BIND_PAT FileId(1) 7..8 Other", &["FileId(1) 29..30 Other Read"]); 333 check_result(refs, "i IDENT_PAT FileId(1) 7..8 Other", &["FileId(1) 29..30 Other Read"]);
334 } 334 }
335 335
336 #[test] 336 #[test]
@@ -342,7 +342,7 @@ fn foo(i<|> : u32) -> u32 {
342} 342}
343"#, 343"#,
344 ); 344 );
345 check_result(refs, "i BIND_PAT FileId(1) 7..8 Other", &["FileId(1) 29..30 Other Read"]); 345 check_result(refs, "i IDENT_PAT FileId(1) 7..8 Other", &["FileId(1) 29..30 Other Read"]);
346 } 346 }
347 347
348 #[test] 348 #[test]
@@ -559,7 +559,7 @@ fn foo() {
559 ); 559 );
560 check_result( 560 check_result(
561 refs, 561 refs,
562 "i BIND_PAT FileId(1) 23..24 Other Write", 562 "i IDENT_PAT FileId(1) 23..24 Other Write",
563 &["FileId(1) 34..35 Other Write", "FileId(1) 38..39 Other Read"], 563 &["FileId(1) 34..35 Other Write", "FileId(1) 38..39 Other Read"],
564 ); 564 );
565 } 565 }
@@ -595,7 +595,7 @@ fn foo() {
595} 595}
596"#, 596"#,
597 ); 597 );
598 check_result(refs, "i BIND_PAT FileId(1) 19..20 Other", &["FileId(1) 26..27 Other Write"]); 598 check_result(refs, "i IDENT_PAT FileId(1) 19..20 Other", &["FileId(1) 26..27 Other Write"]);
599 } 599 }
600 600
601 #[test] 601 #[test]
diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs
index e3a96f9d5..027fdecd0 100644
--- a/crates/ra_ide/src/syntax_highlighting.rs
+++ b/crates/ra_ide/src/syntax_highlighting.rs
@@ -717,7 +717,7 @@ fn highlight_name_by_syntax(name: ast::Name) -> Highlight {
717 CONST => HighlightTag::Constant, 717 CONST => HighlightTag::Constant,
718 STATIC => HighlightTag::Static, 718 STATIC => HighlightTag::Static,
719 VARIANT => HighlightTag::EnumVariant, 719 VARIANT => HighlightTag::EnumVariant,
720 BIND_PAT => HighlightTag::Local, 720 IDENT_PAT => HighlightTag::Local,
721 _ => default, 721 _ => default,
722 }; 722 };
723 723
diff --git a/crates/ra_ide_db/src/defs.rs b/crates/ra_ide_db/src/defs.rs
index df56f2d9e..66c048714 100644
--- a/crates/ra_ide_db/src/defs.rs
+++ b/crates/ra_ide_db/src/defs.rs
@@ -111,7 +111,7 @@ pub fn classify_name(sema: &Semantics<RootDatabase>, name: &ast::Name) -> Option
111 111
112 let parent = name.syntax().parent()?; 112 let parent = name.syntax().parent()?;
113 113
114 if let Some(bind_pat) = ast::BindPat::cast(parent.clone()) { 114 if let Some(bind_pat) = ast::IdentPat::cast(parent.clone()) {
115 if let Some(def) = sema.resolve_bind_pat_to_const(&bind_pat) { 115 if let Some(def) = sema.resolve_bind_pat_to_const(&bind_pat) {
116 return Some(NameClass::ConstReference(Definition::ModuleDef(def))); 116 return Some(NameClass::ConstReference(Definition::ModuleDef(def)));
117 } 117 }
@@ -128,10 +128,10 @@ pub fn classify_name(sema: &Semantics<RootDatabase>, name: &ast::Name) -> Option
128 128
129 Some(NameClass::Definition(name_ref_class.definition())) 129 Some(NameClass::Definition(name_ref_class.definition()))
130 }, 130 },
131 ast::BindPat(it) => { 131 ast::IdentPat(it) => {
132 let local = sema.to_def(&it)?; 132 let local = sema.to_def(&it)?;
133 133
134 if let Some(record_field_pat) = it.syntax().parent().and_then(ast::RecordFieldPat::cast) { 134 if let Some(record_field_pat) = it.syntax().parent().and_then(ast::RecordPatField::cast) {
135 if record_field_pat.name_ref().is_none() { 135 if record_field_pat.name_ref().is_none() {
136 if let Some(field) = sema.resolve_record_field_pat(&record_field_pat) { 136 if let Some(field) = sema.resolve_record_field_pat(&record_field_pat) {
137 let field = Definition::Field(field); 137 let field = Definition::Field(field);
@@ -247,7 +247,7 @@ pub fn classify_name_ref(
247 } 247 }
248 } 248 }
249 249
250 if let Some(record_field_pat) = ast::RecordFieldPat::cast(parent.clone()) { 250 if let Some(record_field_pat) = ast::RecordPatField::cast(parent.clone()) {
251 if let Some(field) = sema.resolve_record_field_pat(&record_field_pat) { 251 if let Some(field) = sema.resolve_record_field_pat(&record_field_pat) {
252 let field = Definition::Field(field); 252 let field = Definition::Field(field);
253 return Some(NameRefClass::Definition(field)); 253 return Some(NameRefClass::Definition(field));
diff --git a/crates/ra_mbe/src/tests.rs b/crates/ra_mbe/src/tests.rs
index 707e84f42..286983d60 100644
--- a/crates/ra_mbe/src/tests.rs
+++ b/crates/ra_mbe/src/tests.rs
@@ -625,7 +625,7 @@ fn test_tt_to_stmts() {
625 r#"[email protected] 625 r#"[email protected]
626 [email protected] 626 [email protected]
627 [email protected] "let" 627 [email protected] "let"
628 BIN[email protected] 628 IDENT[email protected]
629 [email protected] 629 [email protected]
630 [email protected] "a" 630 [email protected] "a"
631 [email protected] "=" 631 [email protected] "="
@@ -1116,7 +1116,7 @@ fn test_vec() {
1116 [email protected] "{" 1116 [email protected] "{"
1117 [email protected] 1117 [email protected]
1118 [email protected] "let" 1118 [email protected] "let"
1119 BIN[email protected] 1119 IDENT[email protected]
1120 [email protected] "mut" 1120 [email protected] "mut"
1121 [email protected] 1121 [email protected]
1122 [email protected] "v" 1122 [email protected] "v"
diff --git a/crates/ra_parser/src/grammar/patterns.rs b/crates/ra_parser/src/grammar/patterns.rs
index 427c0eb49..623e8d6d4 100644
--- a/crates/ra_parser/src/grammar/patterns.rs
+++ b/crates/ra_parser/src/grammar/patterns.rs
@@ -217,7 +217,7 @@ fn record_field_pat_list(p: &mut Parser) {
217 bind_pat(p, false); 217 bind_pat(p, false);
218 } 218 }
219 } 219 }
220 m.complete(p, RECORD_FIELD_PAT); 220 m.complete(p, RECORD_PAT_FIELD);
221 } 221 }
222 } 222 }
223 if !p.at(T!['}']) { 223 if !p.at(T!['}']) {
@@ -225,7 +225,7 @@ fn record_field_pat_list(p: &mut Parser) {
225 } 225 }
226 } 226 }
227 p.expect(T!['}']); 227 p.expect(T!['}']);
228 m.complete(p, RECORD_FIELD_PAT_LIST); 228 m.complete(p, RECORD_PAT_FIELD_LIST);
229} 229}
230 230
231// test placeholder_pat 231// test placeholder_pat
@@ -234,7 +234,7 @@ fn placeholder_pat(p: &mut Parser) -> CompletedMarker {
234 assert!(p.at(T![_])); 234 assert!(p.at(T![_]));
235 let m = p.start(); 235 let m = p.start();
236 p.bump(T![_]); 236 p.bump(T![_]);
237 m.complete(p, PLACEHOLDER_PAT) 237 m.complete(p, WILDCARD_PAT)
238} 238}
239 239
240// test dot_dot_pat 240// test dot_dot_pat
@@ -361,7 +361,7 @@ fn bind_pat(p: &mut Parser, with_at: bool) -> CompletedMarker {
361 if with_at && p.eat(T![@]) { 361 if with_at && p.eat(T![@]) {
362 pattern_single(p); 362 pattern_single(p);
363 } 363 }
364 m.complete(p, BIND_PAT) 364 m.complete(p, IDENT_PAT)
365} 365}
366 366
367// test box_pat 367// test box_pat
diff --git a/crates/ra_parser/src/syntax_kind/generated.rs b/crates/ra_parser/src/syntax_kind/generated.rs
index c3670fb62..b5dda25a9 100644
--- a/crates/ra_parser/src/syntax_kind/generated.rs
+++ b/crates/ra_parser/src/syntax_kind/generated.rs
@@ -156,13 +156,13 @@ pub enum SyntaxKind {
156 PAREN_PAT, 156 PAREN_PAT,
157 REF_PAT, 157 REF_PAT,
158 BOX_PAT, 158 BOX_PAT,
159 BIND_PAT, 159 IDENT_PAT,
160 PLACEHOLDER_PAT, 160 WILDCARD_PAT,
161 DOT_DOT_PAT, 161 DOT_DOT_PAT,
162 PATH_PAT, 162 PATH_PAT,
163 RECORD_PAT, 163 RECORD_PAT,
164 RECORD_FIELD_PAT_LIST, 164 RECORD_PAT_FIELD_LIST,
165 RECORD_FIELD_PAT, 165 RECORD_PAT_FIELD,
166 TUPLE_STRUCT_PAT, 166 TUPLE_STRUCT_PAT,
167 TUPLE_PAT, 167 TUPLE_PAT,
168 SLICE_PAT, 168 SLICE_PAT,
diff --git a/crates/ra_ssr/src/parsing.rs b/crates/ra_ssr/src/parsing.rs
index 4e046910c..f455eb5b7 100644
--- a/crates/ra_ssr/src/parsing.rs
+++ b/crates/ra_ssr/src/parsing.rs
@@ -109,7 +109,7 @@ impl RuleBuilder {
109 // path refers to semantically the same thing, whereas the non-path-based rules could match 109 // path refers to semantically the same thing, whereas the non-path-based rules could match
110 // anything. Specifically, if we have a rule like `foo ==>> bar` we only want to match the 110 // anything. Specifically, if we have a rule like `foo ==>> bar` we only want to match the
111 // `foo` that is in the current scope, not any `foo`. However "foo" can be parsed as a 111 // `foo` that is in the current scope, not any `foo`. However "foo" can be parsed as a
112 // pattern (BIND_PAT -> NAME -> IDENT). Allowing such a rule through would result in 112 // pattern (IDENT_PAT -> NAME -> IDENT). Allowing such a rule through would result in
113 // renaming everything called `foo` to `bar`. It'd also be slow, since without a path, we'd 113 // renaming everything called `foo` to `bar`. It'd also be slow, since without a path, we'd
114 // have to use the slow-scan search mechanism. 114 // have to use the slow-scan search mechanism.
115 if self.rules.iter().any(|rule| contains_path(&rule.pattern)) { 115 if self.rules.iter().any(|rule| contains_path(&rule.pattern)) {
diff --git a/crates/ra_ssr/src/resolving.rs b/crates/ra_ssr/src/resolving.rs
index c2fd3b905..6f62000f4 100644
--- a/crates/ra_ssr/src/resolving.rs
+++ b/crates/ra_ssr/src/resolving.rs
@@ -198,7 +198,7 @@ fn pick_node_for_resolution(node: SyntaxNode) -> SyntaxNode {
198 return n; 198 return n;
199 } 199 }
200 } 200 }
201 SyntaxKind::LET_STMT | SyntaxKind::BIND_PAT => { 201 SyntaxKind::LET_STMT | SyntaxKind::IDENT_PAT => {
202 if let Some(next) = node.next_sibling() { 202 if let Some(next) = node.next_sibling() {
203 return pick_node_for_resolution(next); 203 return pick_node_for_resolution(next);
204 } 204 }
diff --git a/crates/ra_ssr/src/tests.rs b/crates/ra_ssr/src/tests.rs
index a4fa2cb44..2ae03c64c 100644
--- a/crates/ra_ssr/src/tests.rs
+++ b/crates/ra_ssr/src/tests.rs
@@ -924,7 +924,7 @@ fn ufcs_matches_method_call() {
924fn pattern_is_a_single_segment_path() { 924fn pattern_is_a_single_segment_path() {
925 mark::check!(pattern_is_a_single_segment_path); 925 mark::check!(pattern_is_a_single_segment_path);
926 // The first function should not be altered because the `foo` in scope at the cursor position is 926 // The first function should not be altered because the `foo` in scope at the cursor position is
927 // a different `foo`. This case is special because "foo" can be parsed as a pattern (BIND_PAT -> 927 // a different `foo`. This case is special because "foo" can be parsed as a pattern (IDENT_PAT ->
928 // NAME -> IDENT), which contains no path. If we're not careful we'll end up matching the `foo` 928 // NAME -> IDENT), which contains no path. If we're not careful we'll end up matching the `foo`
929 // in `let foo` from the first function. Whether we should match the `let foo` in the second 929 // in `let foo` from the first function. Whether we should match the `let foo` in the second
930 // function is less clear. At the moment, we don't. Doing so sounds like a rename operation, 930 // function is less clear. At the moment, we don't. Doing so sounds like a rename operation,
diff --git a/crates/ra_syntax/src/ast/edit.rs b/crates/ra_syntax/src/ast/edit.rs
index 04746ef8f..667a9294f 100644
--- a/crates/ra_syntax/src/ast/edit.rs
+++ b/crates/ra_syntax/src/ast/edit.rs
@@ -390,7 +390,7 @@ impl ast::MatchArmList {
390 #[must_use] 390 #[must_use]
391 pub fn remove_placeholder(&self) -> ast::MatchArmList { 391 pub fn remove_placeholder(&self) -> ast::MatchArmList {
392 let placeholder = 392 let placeholder =
393 self.arms().find(|arm| matches!(arm.pat(), Some(ast::Pat::PlaceholderPat(_)))); 393 self.arms().find(|arm| matches!(arm.pat(), Some(ast::Pat::WildcardPat(_))));
394 if let Some(placeholder) = placeholder { 394 if let Some(placeholder) = placeholder {
395 self.remove_arm(&placeholder) 395 self.remove_arm(&placeholder)
396 } else { 396 } else {
diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs
index 6ce9c4adc..231a0f727 100644
--- a/crates/ra_syntax/src/ast/generated/nodes.rs
+++ b/crates/ra_syntax/src/ast/generated/nodes.rs
@@ -6,6 +6,20 @@ use crate::{
6 SyntaxNode, SyntaxToken, T, 6 SyntaxNode, SyntaxToken, T,
7}; 7};
8#[derive(Debug, Clone, PartialEq, Eq, Hash)] 8#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9pub struct Name {
10 pub(crate) syntax: SyntaxNode,
11}
12impl Name {
13 pub fn ident_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![ident]) }
14}
15#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16pub struct NameRef {
17 pub(crate) syntax: SyntaxNode,
18}
19impl NameRef {
20 pub fn ident_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![ident]) }
21}
22#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9pub struct Path { 23pub struct Path {
10 pub(crate) syntax: SyntaxNode, 24 pub(crate) syntax: SyntaxNode,
11} 25}
@@ -33,13 +47,6 @@ impl PathSegment {
33 pub fn r_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![>]) } 47 pub fn r_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![>]) }
34} 48}
35#[derive(Debug, Clone, PartialEq, Eq, Hash)] 49#[derive(Debug, Clone, PartialEq, Eq, Hash)]
36pub struct NameRef {
37 pub(crate) syntax: SyntaxNode,
38}
39impl NameRef {
40 pub fn ident_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![ident]) }
41}
42#[derive(Debug, Clone, PartialEq, Eq, Hash)]
43pub struct GenericArgList { 50pub struct GenericArgList {
44 pub(crate) syntax: SyntaxNode, 51 pub(crate) syntax: SyntaxNode,
45} 52}
@@ -116,13 +123,16 @@ impl TypeBoundList {
116 pub fn bounds(&self) -> AstChildren<TypeBound> { support::children(&self.syntax) } 123 pub fn bounds(&self) -> AstChildren<TypeBound> { support::children(&self.syntax) }
117} 124}
118#[derive(Debug, Clone, PartialEq, Eq, Hash)] 125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
119pub struct SourceFile { 126pub struct MacroCall {
120 pub(crate) syntax: SyntaxNode, 127 pub(crate) syntax: SyntaxNode,
121} 128}
122impl ast::AttrsOwner for SourceFile {} 129impl ast::AttrsOwner for MacroCall {}
123impl ast::ModuleItemOwner for SourceFile {} 130impl ast::NameOwner for MacroCall {}
124impl SourceFile { 131impl MacroCall {
125 pub fn shebang_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![shebang]) } 132 pub fn path(&self) -> Option<Path> { support::child(&self.syntax) }
133 pub fn excl_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![!]) }
134 pub fn token_tree(&self) -> Option<TokenTree> { support::child(&self.syntax) }
135 pub fn semicolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![;]) }
126} 136}
127#[derive(Debug, Clone, PartialEq, Eq, Hash)] 137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
128pub struct Attr { 138pub struct Attr {
@@ -139,6 +149,41 @@ impl Attr {
139 pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![']']) } 149 pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![']']) }
140} 150}
141#[derive(Debug, Clone, PartialEq, Eq, Hash)] 151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
152pub struct TokenTree {
153 pub(crate) syntax: SyntaxNode,
154}
155impl TokenTree {
156 pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['(']) }
157 pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![')']) }
158 pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) }
159 pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) }
160 pub fn l_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['[']) }
161 pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![']']) }
162}
163#[derive(Debug, Clone, PartialEq, Eq, Hash)]
164pub struct MacroItems {
165 pub(crate) syntax: SyntaxNode,
166}
167impl ast::ModuleItemOwner for MacroItems {}
168impl MacroItems {}
169#[derive(Debug, Clone, PartialEq, Eq, Hash)]
170pub struct MacroStmts {
171 pub(crate) syntax: SyntaxNode,
172}
173impl MacroStmts {
174 pub fn statements(&self) -> AstChildren<Stmt> { support::children(&self.syntax) }
175 pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) }
176}
177#[derive(Debug, Clone, PartialEq, Eq, Hash)]
178pub struct SourceFile {
179 pub(crate) syntax: SyntaxNode,
180}
181impl ast::AttrsOwner for SourceFile {}
182impl ast::ModuleItemOwner for SourceFile {}
183impl SourceFile {
184 pub fn shebang_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![shebang]) }
185}
186#[derive(Debug, Clone, PartialEq, Eq, Hash)]
142pub struct Const { 187pub struct Const {
143 pub(crate) syntax: SyntaxNode, 188 pub(crate) syntax: SyntaxNode,
144} 189}
@@ -228,18 +273,6 @@ impl Impl {
228 pub fn assoc_item_list(&self) -> Option<AssocItemList> { support::child(&self.syntax) } 273 pub fn assoc_item_list(&self) -> Option<AssocItemList> { support::child(&self.syntax) }
229} 274}
230#[derive(Debug, Clone, PartialEq, Eq, Hash)] 275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
231pub struct MacroCall {
232 pub(crate) syntax: SyntaxNode,
233}
234impl ast::AttrsOwner for MacroCall {}
235impl ast::NameOwner for MacroCall {}
236impl MacroCall {
237 pub fn path(&self) -> Option<Path> { support::child(&self.syntax) }
238 pub fn excl_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![!]) }
239 pub fn token_tree(&self) -> Option<TokenTree> { support::child(&self.syntax) }
240 pub fn semicolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![;]) }
241}
242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
243pub struct Module { 276pub struct Module {
244 pub(crate) syntax: SyntaxNode, 277 pub(crate) syntax: SyntaxNode,
245} 278}
@@ -349,13 +382,6 @@ impl Visibility {
349 pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![')']) } 382 pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![')']) }
350} 383}
351#[derive(Debug, Clone, PartialEq, Eq, Hash)] 384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
352pub struct Name {
353 pub(crate) syntax: SyntaxNode,
354}
355impl Name {
356 pub fn ident_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![ident]) }
357}
358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
359pub struct ItemList { 385pub struct ItemList {
360 pub(crate) syntax: SyntaxNode, 386 pub(crate) syntax: SyntaxNode,
361} 387}
@@ -589,18 +615,6 @@ pub struct Literal {
589impl ast::AttrsOwner for Literal {} 615impl ast::AttrsOwner for Literal {}
590impl Literal {} 616impl Literal {}
591#[derive(Debug, Clone, PartialEq, Eq, Hash)] 617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
592pub struct TokenTree {
593 pub(crate) syntax: SyntaxNode,
594}
595impl TokenTree {
596 pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['(']) }
597 pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![')']) }
598 pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) }
599 pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) }
600 pub fn l_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['[']) }
601 pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![']']) }
602}
603#[derive(Debug, Clone, PartialEq, Eq, Hash)]
604pub struct ExprStmt { 618pub struct ExprStmt {
605 pub(crate) syntax: SyntaxNode, 619 pub(crate) syntax: SyntaxNode,
606} 620}
@@ -1097,28 +1111,15 @@ impl TypeBound {
1097 pub fn ty(&self) -> Option<Type> { support::child(&self.syntax) } 1111 pub fn ty(&self) -> Option<Type> { support::child(&self.syntax) }
1098} 1112}
1099#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1100pub struct OrPat { 1114pub struct IdentPat {
1101 pub(crate) syntax: SyntaxNode,
1102}
1103impl OrPat {
1104 pub fn pats(&self) -> AstChildren<Pat> { support::children(&self.syntax) }
1105}
1106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1107pub struct ParenPat {
1108 pub(crate) syntax: SyntaxNode,
1109}
1110impl ParenPat {
1111 pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['(']) }
1112 pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) }
1113 pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![')']) }
1114}
1115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1116pub struct RefPat {
1117 pub(crate) syntax: SyntaxNode, 1115 pub(crate) syntax: SyntaxNode,
1118} 1116}
1119impl RefPat { 1117impl ast::AttrsOwner for IdentPat {}
1120 pub fn amp_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![&]) } 1118impl ast::NameOwner for IdentPat {}
1119impl IdentPat {
1120 pub fn ref_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![ref]) }
1121 pub fn mut_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![mut]) } 1121 pub fn mut_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![mut]) }
1122 pub fn at_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![@]) }
1122 pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) } 1123 pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) }
1123} 1124}
1124#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@@ -1127,137 +1128,130 @@ pub struct BoxPat {
1127} 1128}
1128impl BoxPat { 1129impl BoxPat {
1129 pub fn box_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![box]) } 1130 pub fn box_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![box]) }
1130 pub fn path(&self) -> Option<Path> { support::child(&self.syntax) } 1131 pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) }
1131} 1132}
1132#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1133#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1133pub struct BindPat { 1134pub struct DotDotPat {
1134 pub(crate) syntax: SyntaxNode, 1135 pub(crate) syntax: SyntaxNode,
1135} 1136}
1136impl ast::AttrsOwner for BindPat {} 1137impl DotDotPat {
1137impl ast::NameOwner for BindPat {} 1138 pub fn dotdot_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![..]) }
1138impl BindPat {
1139 pub fn ref_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![ref]) }
1140 pub fn mut_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![mut]) }
1141 pub fn at_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![@]) }
1142 pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) }
1143} 1139}
1144#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1145pub struct PlaceholderPat { 1141pub struct LiteralPat {
1146 pub(crate) syntax: SyntaxNode, 1142 pub(crate) syntax: SyntaxNode,
1147} 1143}
1148impl PlaceholderPat { 1144impl LiteralPat {
1149 pub fn underscore_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![_]) } 1145 pub fn literal(&self) -> Option<Literal> { support::child(&self.syntax) }
1150} 1146}
1151#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1147#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1152pub struct DotDotPat { 1148pub struct MacroPat {
1153 pub(crate) syntax: SyntaxNode, 1149 pub(crate) syntax: SyntaxNode,
1154} 1150}
1155impl DotDotPat { 1151impl MacroPat {
1156 pub fn dotdot_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![..]) } 1152 pub fn macro_call(&self) -> Option<MacroCall> { support::child(&self.syntax) }
1157} 1153}
1158#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1154#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1159pub struct PathPat { 1155pub struct OrPat {
1160 pub(crate) syntax: SyntaxNode, 1156 pub(crate) syntax: SyntaxNode,
1161} 1157}
1162impl PathPat { 1158impl OrPat {
1163 pub fn path(&self) -> Option<Path> { support::child(&self.syntax) } 1159 pub fn pats(&self) -> AstChildren<Pat> { support::children(&self.syntax) }
1164} 1160}
1165#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1166pub struct SlicePat { 1162pub struct ParenPat {
1167 pub(crate) syntax: SyntaxNode, 1163 pub(crate) syntax: SyntaxNode,
1168} 1164}
1169impl SlicePat { 1165impl ParenPat {
1170 pub fn l_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['[']) } 1166 pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['(']) }
1171 pub fn args(&self) -> AstChildren<Pat> { support::children(&self.syntax) } 1167 pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) }
1172 pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![']']) } 1168 pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![')']) }
1173} 1169}
1174#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1175pub struct RangePat { 1171pub struct PathPat {
1176 pub(crate) syntax: SyntaxNode, 1172 pub(crate) syntax: SyntaxNode,
1177} 1173}
1178impl RangePat { 1174impl PathPat {
1179 pub fn dotdot_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![..]) } 1175 pub fn path(&self) -> Option<Path> { support::child(&self.syntax) }
1180 pub fn dotdoteq_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![..=]) }
1181} 1176}
1182#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1177#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1183pub struct LiteralPat { 1178pub struct WildcardPat {
1184 pub(crate) syntax: SyntaxNode, 1179 pub(crate) syntax: SyntaxNode,
1185} 1180}
1186impl LiteralPat { 1181impl WildcardPat {
1187 pub fn literal(&self) -> Option<Literal> { support::child(&self.syntax) } 1182 pub fn underscore_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![_]) }
1188} 1183}
1189#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1184#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1190pub struct MacroPat { 1185pub struct RangePat {
1191 pub(crate) syntax: SyntaxNode, 1186 pub(crate) syntax: SyntaxNode,
1192} 1187}
1193impl MacroPat { 1188impl RangePat {}
1194 pub fn macro_call(&self) -> Option<MacroCall> { support::child(&self.syntax) }
1195}
1196#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1197pub struct RecordPat { 1190pub struct RecordPat {
1198 pub(crate) syntax: SyntaxNode, 1191 pub(crate) syntax: SyntaxNode,
1199} 1192}
1200impl RecordPat { 1193impl RecordPat {
1201 pub fn path(&self) -> Option<Path> { support::child(&self.syntax) } 1194 pub fn path(&self) -> Option<Path> { support::child(&self.syntax) }
1202 pub fn record_field_pat_list(&self) -> Option<RecordFieldPatList> { 1195 pub fn record_pat_field_list(&self) -> Option<RecordPatFieldList> {
1203 support::child(&self.syntax) 1196 support::child(&self.syntax)
1204 } 1197 }
1205} 1198}
1206#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1207pub struct RecordFieldPatList { 1200pub struct RefPat {
1208 pub(crate) syntax: SyntaxNode, 1201 pub(crate) syntax: SyntaxNode,
1209} 1202}
1210impl RecordFieldPatList { 1203impl RefPat {
1211 pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) } 1204 pub fn amp_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![&]) }
1212 pub fn record_field_pats(&self) -> AstChildren<RecordFieldPat> { 1205 pub fn mut_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![mut]) }
1213 support::children(&self.syntax) 1206 pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) }
1214 }
1215 pub fn bind_pats(&self) -> AstChildren<BindPat> { support::children(&self.syntax) }
1216 pub fn dotdot_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![..]) }
1217 pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) }
1218} 1207}
1219#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1220pub struct RecordFieldPat { 1209pub struct SlicePat {
1221 pub(crate) syntax: SyntaxNode, 1210 pub(crate) syntax: SyntaxNode,
1222} 1211}
1223impl ast::AttrsOwner for RecordFieldPat {} 1212impl SlicePat {
1224impl RecordFieldPat { 1213 pub fn l_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['[']) }
1225 pub fn name_ref(&self) -> Option<NameRef> { support::child(&self.syntax) } 1214 pub fn args(&self) -> AstChildren<Pat> { support::children(&self.syntax) }
1226 pub fn colon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![:]) } 1215 pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![']']) }
1227 pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) }
1228} 1216}
1229#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1217#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1230pub struct TupleStructPat { 1218pub struct TuplePat {
1231 pub(crate) syntax: SyntaxNode, 1219 pub(crate) syntax: SyntaxNode,
1232} 1220}
1233impl TupleStructPat { 1221impl TuplePat {
1234 pub fn path(&self) -> Option<Path> { support::child(&self.syntax) }
1235 pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['(']) } 1222 pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['(']) }
1236 pub fn args(&self) -> AstChildren<Pat> { support::children(&self.syntax) } 1223 pub fn args(&self) -> AstChildren<Pat> { support::children(&self.syntax) }
1237 pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![')']) } 1224 pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![')']) }
1238} 1225}
1239#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1240pub struct TuplePat { 1227pub struct TupleStructPat {
1241 pub(crate) syntax: SyntaxNode, 1228 pub(crate) syntax: SyntaxNode,
1242} 1229}
1243impl TuplePat { 1230impl TupleStructPat {
1231 pub fn path(&self) -> Option<Path> { support::child(&self.syntax) }
1244 pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['(']) } 1232 pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['(']) }
1245 pub fn args(&self) -> AstChildren<Pat> { support::children(&self.syntax) } 1233 pub fn args(&self) -> AstChildren<Pat> { support::children(&self.syntax) }
1246 pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![')']) } 1234 pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![')']) }
1247} 1235}
1248#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1249pub struct MacroItems { 1237pub struct RecordPatFieldList {
1250 pub(crate) syntax: SyntaxNode, 1238 pub(crate) syntax: SyntaxNode,
1251} 1239}
1252impl ast::ModuleItemOwner for MacroItems {} 1240impl RecordPatFieldList {
1253impl MacroItems {} 1241 pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) }
1242 pub fn fields(&self) -> AstChildren<RecordPatField> { support::children(&self.syntax) }
1243 pub fn dotdot_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![..]) }
1244 pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) }
1245}
1254#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1255pub struct MacroStmts { 1247pub struct RecordPatField {
1256 pub(crate) syntax: SyntaxNode, 1248 pub(crate) syntax: SyntaxNode,
1257} 1249}
1258impl MacroStmts { 1250impl ast::AttrsOwner for RecordPatField {}
1259 pub fn statements(&self) -> AstChildren<Stmt> { support::children(&self.syntax) } 1251impl RecordPatField {
1260 pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) } 1252 pub fn name_ref(&self) -> Option<NameRef> { support::child(&self.syntax) }
1253 pub fn colon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![:]) }
1254 pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) }
1261} 1255}
1262#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1263pub enum GenericArg { 1257pub enum GenericArg {
@@ -1334,22 +1328,28 @@ pub enum Item {
1334} 1328}
1335impl ast::AttrsOwner for Item {} 1329impl ast::AttrsOwner for Item {}
1336#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1331pub enum Stmt {
1332 ExprStmt(ExprStmt),
1333 Item(Item),
1334 LetStmt(LetStmt),
1335}
1336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1337pub enum Pat { 1337pub enum Pat {
1338 OrPat(OrPat), 1338 IdentPat(IdentPat),
1339 ParenPat(ParenPat),
1340 RefPat(RefPat),
1341 BoxPat(BoxPat), 1339 BoxPat(BoxPat),
1342 BindPat(BindPat),
1343 PlaceholderPat(PlaceholderPat),
1344 DotDotPat(DotDotPat), 1340 DotDotPat(DotDotPat),
1341 LiteralPat(LiteralPat),
1342 MacroPat(MacroPat),
1343 OrPat(OrPat),
1344 ParenPat(ParenPat),
1345 PathPat(PathPat), 1345 PathPat(PathPat),
1346 WildcardPat(WildcardPat),
1347 RangePat(RangePat),
1346 RecordPat(RecordPat), 1348 RecordPat(RecordPat),
1347 TupleStructPat(TupleStructPat), 1349 RefPat(RefPat),
1348 TuplePat(TuplePat),
1349 SlicePat(SlicePat), 1350 SlicePat(SlicePat),
1350 RangePat(RangePat), 1351 TuplePat(TuplePat),
1351 LiteralPat(LiteralPat), 1352 TupleStructPat(TupleStructPat),
1352 MacroPat(MacroPat),
1353} 1353}
1354#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1355pub enum FieldList { 1355pub enum FieldList {
@@ -1390,14 +1390,19 @@ pub enum GenericParam {
1390 TypeParam(TypeParam), 1390 TypeParam(TypeParam),
1391} 1391}
1392impl ast::AttrsOwner for GenericParam {} 1392impl ast::AttrsOwner for GenericParam {}
1393#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1393impl AstNode for Name {
1394pub enum Stmt { 1394 fn can_cast(kind: SyntaxKind) -> bool { kind == NAME }
1395 ExprStmt(ExprStmt), 1395 fn cast(syntax: SyntaxNode) -> Option<Self> {
1396 Item(Item), 1396 if Self::can_cast(syntax.kind()) {
1397 LetStmt(LetStmt), 1397 Some(Self { syntax })
1398 } else {
1399 None
1400 }
1401 }
1402 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1398} 1403}
1399impl AstNode for Path { 1404impl AstNode for NameRef {
1400 fn can_cast(kind: SyntaxKind) -> bool { kind == PATH } 1405 fn can_cast(kind: SyntaxKind) -> bool { kind == NAME_REF }
1401 fn cast(syntax: SyntaxNode) -> Option<Self> { 1406 fn cast(syntax: SyntaxNode) -> Option<Self> {
1402 if Self::can_cast(syntax.kind()) { 1407 if Self::can_cast(syntax.kind()) {
1403 Some(Self { syntax }) 1408 Some(Self { syntax })
@@ -1407,8 +1412,8 @@ impl AstNode for Path {
1407 } 1412 }
1408 fn syntax(&self) -> &SyntaxNode { &self.syntax } 1413 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1409} 1414}
1410impl AstNode for PathSegment { 1415impl AstNode for Path {
1411 fn can_cast(kind: SyntaxKind) -> bool { kind == PATH_SEGMENT } 1416 fn can_cast(kind: SyntaxKind) -> bool { kind == PATH }
1412 fn cast(syntax: SyntaxNode) -> Option<Self> { 1417 fn cast(syntax: SyntaxNode) -> Option<Self> {
1413 if Self::can_cast(syntax.kind()) { 1418 if Self::can_cast(syntax.kind()) {
1414 Some(Self { syntax }) 1419 Some(Self { syntax })
@@ -1418,8 +1423,8 @@ impl AstNode for PathSegment {
1418 } 1423 }
1419 fn syntax(&self) -> &SyntaxNode { &self.syntax } 1424 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1420} 1425}
1421impl AstNode for NameRef { 1426impl AstNode for PathSegment {
1422 fn can_cast(kind: SyntaxKind) -> bool { kind == NAME_REF } 1427 fn can_cast(kind: SyntaxKind) -> bool { kind == PATH_SEGMENT }
1423 fn cast(syntax: SyntaxNode) -> Option<Self> { 1428 fn cast(syntax: SyntaxNode) -> Option<Self> {
1424 if Self::can_cast(syntax.kind()) { 1429 if Self::can_cast(syntax.kind()) {
1425 Some(Self { syntax }) 1430 Some(Self { syntax })
@@ -1528,8 +1533,8 @@ impl AstNode for TypeBoundList {
1528 } 1533 }
1529 fn syntax(&self) -> &SyntaxNode { &self.syntax } 1534 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1530} 1535}
1531impl AstNode for SourceFile { 1536impl AstNode for MacroCall {
1532 fn can_cast(kind: SyntaxKind) -> bool { kind == SOURCE_FILE } 1537 fn can_cast(kind: SyntaxKind) -> bool { kind == MACRO_CALL }
1533 fn cast(syntax: SyntaxNode) -> Option<Self> { 1538 fn cast(syntax: SyntaxNode) -> Option<Self> {
1534 if Self::can_cast(syntax.kind()) { 1539 if Self::can_cast(syntax.kind()) {
1535 Some(Self { syntax }) 1540 Some(Self { syntax })
@@ -1550,6 +1555,50 @@ impl AstNode for Attr {
1550 } 1555 }
1551 fn syntax(&self) -> &SyntaxNode { &self.syntax } 1556 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1552} 1557}
1558impl AstNode for TokenTree {
1559 fn can_cast(kind: SyntaxKind) -> bool { kind == TOKEN_TREE }
1560 fn cast(syntax: SyntaxNode) -> Option<Self> {
1561 if Self::can_cast(syntax.kind()) {
1562 Some(Self { syntax })
1563 } else {
1564 None
1565 }
1566 }
1567 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1568}
1569impl AstNode for MacroItems {
1570 fn can_cast(kind: SyntaxKind) -> bool { kind == MACRO_ITEMS }
1571 fn cast(syntax: SyntaxNode) -> Option<Self> {
1572 if Self::can_cast(syntax.kind()) {
1573 Some(Self { syntax })
1574 } else {
1575 None
1576 }
1577 }
1578 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1579}
1580impl AstNode for MacroStmts {
1581 fn can_cast(kind: SyntaxKind) -> bool { kind == MACRO_STMTS }
1582 fn cast(syntax: SyntaxNode) -> Option<Self> {
1583 if Self::can_cast(syntax.kind()) {
1584 Some(Self { syntax })
1585 } else {
1586 None
1587 }
1588 }
1589 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1590}
1591impl AstNode for SourceFile {
1592 fn can_cast(kind: SyntaxKind) -> bool { kind == SOURCE_FILE }
1593 fn cast(syntax: SyntaxNode) -> Option<Self> {
1594 if Self::can_cast(syntax.kind()) {
1595 Some(Self { syntax })
1596 } else {
1597 None
1598 }
1599 }
1600 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1601}
1553impl AstNode for Const { 1602impl AstNode for Const {
1554 fn can_cast(kind: SyntaxKind) -> bool { kind == CONST } 1603 fn can_cast(kind: SyntaxKind) -> bool { kind == CONST }
1555 fn cast(syntax: SyntaxNode) -> Option<Self> { 1604 fn cast(syntax: SyntaxNode) -> Option<Self> {
@@ -1616,17 +1665,6 @@ impl AstNode for Impl {
1616 } 1665 }
1617 fn syntax(&self) -> &SyntaxNode { &self.syntax } 1666 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1618} 1667}
1619impl AstNode for MacroCall {
1620 fn can_cast(kind: SyntaxKind) -> bool { kind == MACRO_CALL }
1621 fn cast(syntax: SyntaxNode) -> Option<Self> {
1622 if Self::can_cast(syntax.kind()) {
1623 Some(Self { syntax })
1624 } else {
1625 None
1626 }
1627 }
1628 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1629}
1630impl AstNode for Module { 1668impl AstNode for Module {
1631 fn can_cast(kind: SyntaxKind) -> bool { kind == MODULE } 1669 fn can_cast(kind: SyntaxKind) -> bool { kind == MODULE }
1632 fn cast(syntax: SyntaxNode) -> Option<Self> { 1670 fn cast(syntax: SyntaxNode) -> Option<Self> {
@@ -1715,17 +1753,6 @@ impl AstNode for Visibility {
1715 } 1753 }
1716 fn syntax(&self) -> &SyntaxNode { &self.syntax } 1754 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1717} 1755}
1718impl AstNode for Name {
1719 fn can_cast(kind: SyntaxKind) -> bool { kind == NAME }
1720 fn cast(syntax: SyntaxNode) -> Option<Self> {
1721 if Self::can_cast(syntax.kind()) {
1722 Some(Self { syntax })
1723 } else {
1724 None
1725 }
1726 }
1727 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1728}
1729impl AstNode for ItemList { 1756impl AstNode for ItemList {
1730 fn can_cast(kind: SyntaxKind) -> bool { kind == ITEM_LIST } 1757 fn can_cast(kind: SyntaxKind) -> bool { kind == ITEM_LIST }
1731 fn cast(syntax: SyntaxNode) -> Option<Self> { 1758 fn cast(syntax: SyntaxNode) -> Option<Self> {
@@ -1979,17 +2006,6 @@ impl AstNode for Literal {
1979 } 2006 }
1980 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2007 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1981} 2008}
1982impl AstNode for TokenTree {
1983 fn can_cast(kind: SyntaxKind) -> bool { kind == TOKEN_TREE }
1984 fn cast(syntax: SyntaxNode) -> Option<Self> {
1985 if Self::can_cast(syntax.kind()) {
1986 Some(Self { syntax })
1987 } else {
1988 None
1989 }
1990 }
1991 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1992}
1993impl AstNode for ExprStmt { 2009impl AstNode for ExprStmt {
1994 fn can_cast(kind: SyntaxKind) -> bool { kind == EXPR_STMT } 2010 fn can_cast(kind: SyntaxKind) -> bool { kind == EXPR_STMT }
1995 fn cast(syntax: SyntaxNode) -> Option<Self> { 2011 fn cast(syntax: SyntaxNode) -> Option<Self> {
@@ -2540,8 +2556,8 @@ impl AstNode for TypeBound {
2540 } 2556 }
2541 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2557 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2542} 2558}
2543impl AstNode for OrPat { 2559impl AstNode for IdentPat {
2544 fn can_cast(kind: SyntaxKind) -> bool { kind == OR_PAT } 2560 fn can_cast(kind: SyntaxKind) -> bool { kind == IDENT_PAT }
2545 fn cast(syntax: SyntaxNode) -> Option<Self> { 2561 fn cast(syntax: SyntaxNode) -> Option<Self> {
2546 if Self::can_cast(syntax.kind()) { 2562 if Self::can_cast(syntax.kind()) {
2547 Some(Self { syntax }) 2563 Some(Self { syntax })
@@ -2551,8 +2567,8 @@ impl AstNode for OrPat {
2551 } 2567 }
2552 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2568 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2553} 2569}
2554impl AstNode for ParenPat { 2570impl AstNode for BoxPat {
2555 fn can_cast(kind: SyntaxKind) -> bool { kind == PAREN_PAT } 2571 fn can_cast(kind: SyntaxKind) -> bool { kind == BOX_PAT }
2556 fn cast(syntax: SyntaxNode) -> Option<Self> { 2572 fn cast(syntax: SyntaxNode) -> Option<Self> {
2557 if Self::can_cast(syntax.kind()) { 2573 if Self::can_cast(syntax.kind()) {
2558 Some(Self { syntax }) 2574 Some(Self { syntax })
@@ -2562,8 +2578,8 @@ impl AstNode for ParenPat {
2562 } 2578 }
2563 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2579 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2564} 2580}
2565impl AstNode for RefPat { 2581impl AstNode for DotDotPat {
2566 fn can_cast(kind: SyntaxKind) -> bool { kind == REF_PAT } 2582 fn can_cast(kind: SyntaxKind) -> bool { kind == DOT_DOT_PAT }
2567 fn cast(syntax: SyntaxNode) -> Option<Self> { 2583 fn cast(syntax: SyntaxNode) -> Option<Self> {
2568 if Self::can_cast(syntax.kind()) { 2584 if Self::can_cast(syntax.kind()) {
2569 Some(Self { syntax }) 2585 Some(Self { syntax })
@@ -2573,8 +2589,8 @@ impl AstNode for RefPat {
2573 } 2589 }
2574 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2590 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2575} 2591}
2576impl AstNode for BoxPat { 2592impl AstNode for LiteralPat {
2577 fn can_cast(kind: SyntaxKind) -> bool { kind == BOX_PAT } 2593 fn can_cast(kind: SyntaxKind) -> bool { kind == LITERAL_PAT }
2578 fn cast(syntax: SyntaxNode) -> Option<Self> { 2594 fn cast(syntax: SyntaxNode) -> Option<Self> {
2579 if Self::can_cast(syntax.kind()) { 2595 if Self::can_cast(syntax.kind()) {
2580 Some(Self { syntax }) 2596 Some(Self { syntax })
@@ -2584,8 +2600,8 @@ impl AstNode for BoxPat {
2584 } 2600 }
2585 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2601 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2586} 2602}
2587impl AstNode for BindPat { 2603impl AstNode for MacroPat {
2588 fn can_cast(kind: SyntaxKind) -> bool { kind == BIND_PAT } 2604 fn can_cast(kind: SyntaxKind) -> bool { kind == MACRO_PAT }
2589 fn cast(syntax: SyntaxNode) -> Option<Self> { 2605 fn cast(syntax: SyntaxNode) -> Option<Self> {
2590 if Self::can_cast(syntax.kind()) { 2606 if Self::can_cast(syntax.kind()) {
2591 Some(Self { syntax }) 2607 Some(Self { syntax })
@@ -2595,8 +2611,8 @@ impl AstNode for BindPat {
2595 } 2611 }
2596 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2612 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2597} 2613}
2598impl AstNode for PlaceholderPat { 2614impl AstNode for OrPat {
2599 fn can_cast(kind: SyntaxKind) -> bool { kind == PLACEHOLDER_PAT } 2615 fn can_cast(kind: SyntaxKind) -> bool { kind == OR_PAT }
2600 fn cast(syntax: SyntaxNode) -> Option<Self> { 2616 fn cast(syntax: SyntaxNode) -> Option<Self> {
2601 if Self::can_cast(syntax.kind()) { 2617 if Self::can_cast(syntax.kind()) {
2602 Some(Self { syntax }) 2618 Some(Self { syntax })
@@ -2606,8 +2622,8 @@ impl AstNode for PlaceholderPat {
2606 } 2622 }
2607 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2623 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2608} 2624}
2609impl AstNode for DotDotPat { 2625impl AstNode for ParenPat {
2610 fn can_cast(kind: SyntaxKind) -> bool { kind == DOT_DOT_PAT } 2626 fn can_cast(kind: SyntaxKind) -> bool { kind == PAREN_PAT }
2611 fn cast(syntax: SyntaxNode) -> Option<Self> { 2627 fn cast(syntax: SyntaxNode) -> Option<Self> {
2612 if Self::can_cast(syntax.kind()) { 2628 if Self::can_cast(syntax.kind()) {
2613 Some(Self { syntax }) 2629 Some(Self { syntax })
@@ -2628,8 +2644,8 @@ impl AstNode for PathPat {
2628 } 2644 }
2629 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2645 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2630} 2646}
2631impl AstNode for SlicePat { 2647impl AstNode for WildcardPat {
2632 fn can_cast(kind: SyntaxKind) -> bool { kind == SLICE_PAT } 2648 fn can_cast(kind: SyntaxKind) -> bool { kind == WILDCARD_PAT }
2633 fn cast(syntax: SyntaxNode) -> Option<Self> { 2649 fn cast(syntax: SyntaxNode) -> Option<Self> {
2634 if Self::can_cast(syntax.kind()) { 2650 if Self::can_cast(syntax.kind()) {
2635 Some(Self { syntax }) 2651 Some(Self { syntax })
@@ -2650,28 +2666,6 @@ impl AstNode for RangePat {
2650 } 2666 }
2651 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2667 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2652} 2668}
2653impl AstNode for LiteralPat {
2654 fn can_cast(kind: SyntaxKind) -> bool { kind == LITERAL_PAT }
2655 fn cast(syntax: SyntaxNode) -> Option<Self> {
2656 if Self::can_cast(syntax.kind()) {
2657 Some(Self { syntax })
2658 } else {
2659 None
2660 }
2661 }
2662 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2663}
2664impl AstNode for MacroPat {
2665 fn can_cast(kind: SyntaxKind) -> bool { kind == MACRO_PAT }
2666 fn cast(syntax: SyntaxNode) -> Option<Self> {
2667 if Self::can_cast(syntax.kind()) {
2668 Some(Self { syntax })
2669 } else {
2670 None
2671 }
2672 }
2673 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2674}
2675impl AstNode for RecordPat { 2669impl AstNode for RecordPat {
2676 fn can_cast(kind: SyntaxKind) -> bool { kind == RECORD_PAT } 2670 fn can_cast(kind: SyntaxKind) -> bool { kind == RECORD_PAT }
2677 fn cast(syntax: SyntaxNode) -> Option<Self> { 2671 fn cast(syntax: SyntaxNode) -> Option<Self> {
@@ -2683,8 +2677,8 @@ impl AstNode for RecordPat {
2683 } 2677 }
2684 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2678 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2685} 2679}
2686impl AstNode for RecordFieldPatList { 2680impl AstNode for RefPat {
2687 fn can_cast(kind: SyntaxKind) -> bool { kind == RECORD_FIELD_PAT_LIST } 2681 fn can_cast(kind: SyntaxKind) -> bool { kind == REF_PAT }
2688 fn cast(syntax: SyntaxNode) -> Option<Self> { 2682 fn cast(syntax: SyntaxNode) -> Option<Self> {
2689 if Self::can_cast(syntax.kind()) { 2683 if Self::can_cast(syntax.kind()) {
2690 Some(Self { syntax }) 2684 Some(Self { syntax })
@@ -2694,8 +2688,8 @@ impl AstNode for RecordFieldPatList {
2694 } 2688 }
2695 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2689 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2696} 2690}
2697impl AstNode for RecordFieldPat { 2691impl AstNode for SlicePat {
2698 fn can_cast(kind: SyntaxKind) -> bool { kind == RECORD_FIELD_PAT } 2692 fn can_cast(kind: SyntaxKind) -> bool { kind == SLICE_PAT }
2699 fn cast(syntax: SyntaxNode) -> Option<Self> { 2693 fn cast(syntax: SyntaxNode) -> Option<Self> {
2700 if Self::can_cast(syntax.kind()) { 2694 if Self::can_cast(syntax.kind()) {
2701 Some(Self { syntax }) 2695 Some(Self { syntax })
@@ -2705,8 +2699,8 @@ impl AstNode for RecordFieldPat {
2705 } 2699 }
2706 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2700 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2707} 2701}
2708impl AstNode for TupleStructPat { 2702impl AstNode for TuplePat {
2709 fn can_cast(kind: SyntaxKind) -> bool { kind == TUPLE_STRUCT_PAT } 2703 fn can_cast(kind: SyntaxKind) -> bool { kind == TUPLE_PAT }
2710 fn cast(syntax: SyntaxNode) -> Option<Self> { 2704 fn cast(syntax: SyntaxNode) -> Option<Self> {
2711 if Self::can_cast(syntax.kind()) { 2705 if Self::can_cast(syntax.kind()) {
2712 Some(Self { syntax }) 2706 Some(Self { syntax })
@@ -2716,8 +2710,8 @@ impl AstNode for TupleStructPat {
2716 } 2710 }
2717 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2711 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2718} 2712}
2719impl AstNode for TuplePat { 2713impl AstNode for TupleStructPat {
2720 fn can_cast(kind: SyntaxKind) -> bool { kind == TUPLE_PAT } 2714 fn can_cast(kind: SyntaxKind) -> bool { kind == TUPLE_STRUCT_PAT }
2721 fn cast(syntax: SyntaxNode) -> Option<Self> { 2715 fn cast(syntax: SyntaxNode) -> Option<Self> {
2722 if Self::can_cast(syntax.kind()) { 2716 if Self::can_cast(syntax.kind()) {
2723 Some(Self { syntax }) 2717 Some(Self { syntax })
@@ -2727,8 +2721,8 @@ impl AstNode for TuplePat {
2727 } 2721 }
2728 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2722 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2729} 2723}
2730impl AstNode for MacroItems { 2724impl AstNode for RecordPatFieldList {
2731 fn can_cast(kind: SyntaxKind) -> bool { kind == MACRO_ITEMS } 2725 fn can_cast(kind: SyntaxKind) -> bool { kind == RECORD_PAT_FIELD_LIST }
2732 fn cast(syntax: SyntaxNode) -> Option<Self> { 2726 fn cast(syntax: SyntaxNode) -> Option<Self> {
2733 if Self::can_cast(syntax.kind()) { 2727 if Self::can_cast(syntax.kind()) {
2734 Some(Self { syntax }) 2728 Some(Self { syntax })
@@ -2738,8 +2732,8 @@ impl AstNode for MacroItems {
2738 } 2732 }
2739 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2733 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2740} 2734}
2741impl AstNode for MacroStmts { 2735impl AstNode for RecordPatField {
2742 fn can_cast(kind: SyntaxKind) -> bool { kind == MACRO_STMTS } 2736 fn can_cast(kind: SyntaxKind) -> bool { kind == RECORD_PAT_FIELD }
2743 fn cast(syntax: SyntaxNode) -> Option<Self> { 2737 fn cast(syntax: SyntaxNode) -> Option<Self> {
2744 if Self::can_cast(syntax.kind()) { 2738 if Self::can_cast(syntax.kind()) {
2745 Some(Self { syntax }) 2739 Some(Self { syntax })
@@ -3133,98 +3127,107 @@ impl AstNode for Item {
3133 } 3127 }
3134 } 3128 }
3135} 3129}
3136impl From<OrPat> for Pat { 3130impl From<ExprStmt> for Stmt {
3137 fn from(node: OrPat) -> Pat { Pat::OrPat(node) } 3131 fn from(node: ExprStmt) -> Stmt { Stmt::ExprStmt(node) }
3138} 3132}
3139impl From<ParenPat> for Pat { 3133impl From<Item> for Stmt {
3140 fn from(node: ParenPat) -> Pat { Pat::ParenPat(node) } 3134 fn from(node: Item) -> Stmt { Stmt::Item(node) }
3141} 3135}
3142impl From<RefPat> for Pat { 3136impl From<LetStmt> for Stmt {
3143 fn from(node: RefPat) -> Pat { Pat::RefPat(node) } 3137 fn from(node: LetStmt) -> Stmt { Stmt::LetStmt(node) }
3138}
3139impl From<IdentPat> for Pat {
3140 fn from(node: IdentPat) -> Pat { Pat::IdentPat(node) }
3144} 3141}
3145impl From<BoxPat> for Pat { 3142impl From<BoxPat> for Pat {
3146 fn from(node: BoxPat) -> Pat { Pat::BoxPat(node) } 3143 fn from(node: BoxPat) -> Pat { Pat::BoxPat(node) }
3147} 3144}
3148impl From<BindPat> for Pat {
3149 fn from(node: BindPat) -> Pat { Pat::BindPat(node) }
3150}
3151impl From<PlaceholderPat> for Pat {
3152 fn from(node: PlaceholderPat) -> Pat { Pat::PlaceholderPat(node) }
3153}
3154impl From<DotDotPat> for Pat { 3145impl From<DotDotPat> for Pat {
3155 fn from(node: DotDotPat) -> Pat { Pat::DotDotPat(node) } 3146 fn from(node: DotDotPat) -> Pat { Pat::DotDotPat(node) }
3156} 3147}
3148impl From<LiteralPat> for Pat {
3149 fn from(node: LiteralPat) -> Pat { Pat::LiteralPat(node) }
3150}
3151impl From<MacroPat> for Pat {
3152 fn from(node: MacroPat) -> Pat { Pat::MacroPat(node) }
3153}
3154impl From<OrPat> for Pat {
3155 fn from(node: OrPat) -> Pat { Pat::OrPat(node) }
3156}
3157impl From<ParenPat> for Pat {
3158 fn from(node: ParenPat) -> Pat { Pat::ParenPat(node) }
3159}
3157impl From<PathPat> for Pat { 3160impl From<PathPat> for Pat {
3158 fn from(node: PathPat) -> Pat { Pat::PathPat(node) } 3161 fn from(node: PathPat) -> Pat { Pat::PathPat(node) }
3159} 3162}
3163impl From<WildcardPat> for Pat {
3164 fn from(node: WildcardPat) -> Pat { Pat::WildcardPat(node) }
3165}
3166impl From<RangePat> for Pat {
3167 fn from(node: RangePat) -> Pat { Pat::RangePat(node) }
3168}
3160impl From<RecordPat> for Pat { 3169impl From<RecordPat> for Pat {
3161 fn from(node: RecordPat) -> Pat { Pat::RecordPat(node) } 3170 fn from(node: RecordPat) -> Pat { Pat::RecordPat(node) }
3162} 3171}
3163impl From<TupleStructPat> for Pat { 3172impl From<RefPat> for Pat {
3164 fn from(node: TupleStructPat) -> Pat { Pat::TupleStructPat(node) } 3173 fn from(node: RefPat) -> Pat { Pat::RefPat(node) }
3165}
3166impl From<TuplePat> for Pat {
3167 fn from(node: TuplePat) -> Pat { Pat::TuplePat(node) }
3168} 3174}
3169impl From<SlicePat> for Pat { 3175impl From<SlicePat> for Pat {
3170 fn from(node: SlicePat) -> Pat { Pat::SlicePat(node) } 3176 fn from(node: SlicePat) -> Pat { Pat::SlicePat(node) }
3171} 3177}
3172impl From<RangePat> for Pat { 3178impl From<TuplePat> for Pat {
3173 fn from(node: RangePat) -> Pat { Pat::RangePat(node) } 3179 fn from(node: TuplePat) -> Pat { Pat::TuplePat(node) }
3174}
3175impl From<LiteralPat> for Pat {
3176 fn from(node: LiteralPat) -> Pat { Pat::LiteralPat(node) }
3177} 3180}
3178impl From<MacroPat> for Pat { 3181impl From<TupleStructPat> for Pat {
3179 fn from(node: MacroPat) -> Pat { Pat::MacroPat(node) } 3182 fn from(node: TupleStructPat) -> Pat { Pat::TupleStructPat(node) }
3180} 3183}
3181impl AstNode for Pat { 3184impl AstNode for Pat {
3182 fn can_cast(kind: SyntaxKind) -> bool { 3185 fn can_cast(kind: SyntaxKind) -> bool {
3183 match kind { 3186 match kind {
3184 OR_PAT | PAREN_PAT | REF_PAT | BOX_PAT | BIND_PAT | PLACEHOLDER_PAT | DOT_DOT_PAT 3187 IDENT_PAT | BOX_PAT | DOT_DOT_PAT | LITERAL_PAT | MACRO_PAT | OR_PAT | PAREN_PAT
3185 | PATH_PAT | RECORD_PAT | TUPLE_STRUCT_PAT | TUPLE_PAT | SLICE_PAT | RANGE_PAT 3188 | PATH_PAT | WILDCARD_PAT | RANGE_PAT | RECORD_PAT | REF_PAT | SLICE_PAT
3186 | LITERAL_PAT | MACRO_PAT => true, 3189 | TUPLE_PAT | TUPLE_STRUCT_PAT => true,
3187 _ => false, 3190 _ => false,
3188 } 3191 }
3189 } 3192 }
3190 fn cast(syntax: SyntaxNode) -> Option<Self> { 3193 fn cast(syntax: SyntaxNode) -> Option<Self> {
3191 let res = match syntax.kind() { 3194 let res = match syntax.kind() {
3192 OR_PAT => Pat::OrPat(OrPat { syntax }), 3195 IDENT_PAT => Pat::IdentPat(IdentPat { syntax }),
3193 PAREN_PAT => Pat::ParenPat(ParenPat { syntax }),
3194 REF_PAT => Pat::RefPat(RefPat { syntax }),
3195 BOX_PAT => Pat::BoxPat(BoxPat { syntax }), 3196 BOX_PAT => Pat::BoxPat(BoxPat { syntax }),
3196 BIND_PAT => Pat::BindPat(BindPat { syntax }),
3197 PLACEHOLDER_PAT => Pat::PlaceholderPat(PlaceholderPat { syntax }),
3198 DOT_DOT_PAT => Pat::DotDotPat(DotDotPat { syntax }), 3197 DOT_DOT_PAT => Pat::DotDotPat(DotDotPat { syntax }),
3198 LITERAL_PAT => Pat::LiteralPat(LiteralPat { syntax }),
3199 MACRO_PAT => Pat::MacroPat(MacroPat { syntax }),
3200 OR_PAT => Pat::OrPat(OrPat { syntax }),
3201 PAREN_PAT => Pat::ParenPat(ParenPat { syntax }),
3199 PATH_PAT => Pat::PathPat(PathPat { syntax }), 3202 PATH_PAT => Pat::PathPat(PathPat { syntax }),
3203 WILDCARD_PAT => Pat::WildcardPat(WildcardPat { syntax }),
3204 RANGE_PAT => Pat::RangePat(RangePat { syntax }),
3200 RECORD_PAT => Pat::RecordPat(RecordPat { syntax }), 3205 RECORD_PAT => Pat::RecordPat(RecordPat { syntax }),
3201 TUPLE_STRUCT_PAT => Pat::TupleStructPat(TupleStructPat { syntax }), 3206 REF_PAT => Pat::RefPat(RefPat { syntax }),
3202 TUPLE_PAT => Pat::TuplePat(TuplePat { syntax }),
3203 SLICE_PAT => Pat::SlicePat(SlicePat { syntax }), 3207 SLICE_PAT => Pat::SlicePat(SlicePat { syntax }),
3204 RANGE_PAT => Pat::RangePat(RangePat { syntax }), 3208 TUPLE_PAT => Pat::TuplePat(TuplePat { syntax }),
3205 LITERAL_PAT => Pat::LiteralPat(LiteralPat { syntax }), 3209 TUPLE_STRUCT_PAT => Pat::TupleStructPat(TupleStructPat { syntax }),
3206 MACRO_PAT => Pat::MacroPat(MacroPat { syntax }),
3207 _ => return None, 3210 _ => return None,
3208 }; 3211 };
3209 Some(res) 3212 Some(res)
3210 } 3213 }
3211 fn syntax(&self) -> &SyntaxNode { 3214 fn syntax(&self) -> &SyntaxNode {
3212 match self { 3215 match self {
3213 Pat::OrPat(it) => &it.syntax, 3216 Pat::IdentPat(it) => &it.syntax,
3214 Pat::ParenPat(it) => &it.syntax,
3215 Pat::RefPat(it) => &it.syntax,
3216 Pat::BoxPat(it) => &it.syntax, 3217 Pat::BoxPat(it) => &it.syntax,
3217 Pat::BindPat(it) => &it.syntax,
3218 Pat::PlaceholderPat(it) => &it.syntax,
3219 Pat::DotDotPat(it) => &it.syntax, 3218 Pat::DotDotPat(it) => &it.syntax,
3219 Pat::LiteralPat(it) => &it.syntax,
3220 Pat::MacroPat(it) => &it.syntax,
3221 Pat::OrPat(it) => &it.syntax,
3222 Pat::ParenPat(it) => &it.syntax,
3220 Pat::PathPat(it) => &it.syntax, 3223 Pat::PathPat(it) => &it.syntax,
3224 Pat::WildcardPat(it) => &it.syntax,
3225 Pat::RangePat(it) => &it.syntax,
3221 Pat::RecordPat(it) => &it.syntax, 3226 Pat::RecordPat(it) => &it.syntax,
3222 Pat::TupleStructPat(it) => &it.syntax, 3227 Pat::RefPat(it) => &it.syntax,
3223 Pat::TuplePat(it) => &it.syntax,
3224 Pat::SlicePat(it) => &it.syntax, 3228 Pat::SlicePat(it) => &it.syntax,
3225 Pat::RangePat(it) => &it.syntax, 3229 Pat::TuplePat(it) => &it.syntax,
3226 Pat::LiteralPat(it) => &it.syntax, 3230 Pat::TupleStructPat(it) => &it.syntax,
3227 Pat::MacroPat(it) => &it.syntax,
3228 } 3231 }
3229 } 3232 }
3230} 3233}
@@ -3393,15 +3396,6 @@ impl AstNode for GenericParam {
3393 } 3396 }
3394 } 3397 }
3395} 3398}
3396impl From<ExprStmt> for Stmt {
3397 fn from(node: ExprStmt) -> Stmt { Stmt::ExprStmt(node) }
3398}
3399impl From<Item> for Stmt {
3400 fn from(node: Item) -> Stmt { Stmt::Item(node) }
3401}
3402impl From<LetStmt> for Stmt {
3403 fn from(node: LetStmt) -> Stmt { Stmt::LetStmt(node) }
3404}
3405impl std::fmt::Display for GenericArg { 3399impl std::fmt::Display for GenericArg {
3406 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3400 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3407 std::fmt::Display::fmt(self.syntax(), f) 3401 std::fmt::Display::fmt(self.syntax(), f)
@@ -3422,6 +3416,11 @@ impl std::fmt::Display for Item {
3422 std::fmt::Display::fmt(self.syntax(), f) 3416 std::fmt::Display::fmt(self.syntax(), f)
3423 } 3417 }
3424} 3418}
3419impl std::fmt::Display for Stmt {
3420 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3421 std::fmt::Display::fmt(self.syntax(), f)
3422 }
3423}
3425impl std::fmt::Display for Pat { 3424impl std::fmt::Display for Pat {
3426 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3425 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3427 std::fmt::Display::fmt(self.syntax(), f) 3426 std::fmt::Display::fmt(self.syntax(), f)
@@ -3452,22 +3451,22 @@ impl std::fmt::Display for GenericParam {
3452 std::fmt::Display::fmt(self.syntax(), f) 3451 std::fmt::Display::fmt(self.syntax(), f)
3453 } 3452 }
3454} 3453}
3455impl std::fmt::Display for Stmt { 3454impl std::fmt::Display for Name {
3456 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3455 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3457 std::fmt::Display::fmt(self.syntax(), f) 3456 std::fmt::Display::fmt(self.syntax(), f)
3458 } 3457 }
3459} 3458}
3460impl std::fmt::Display for Path { 3459impl std::fmt::Display for NameRef {
3461 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3460 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3462 std::fmt::Display::fmt(self.syntax(), f) 3461 std::fmt::Display::fmt(self.syntax(), f)
3463 } 3462 }
3464} 3463}
3465impl std::fmt::Display for PathSegment { 3464impl std::fmt::Display for Path {
3466 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3465 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3467 std::fmt::Display::fmt(self.syntax(), f) 3466 std::fmt::Display::fmt(self.syntax(), f)
3468 } 3467 }
3469} 3468}
3470impl std::fmt::Display for NameRef { 3469impl std::fmt::Display for PathSegment {
3471 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3470 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3472 std::fmt::Display::fmt(self.syntax(), f) 3471 std::fmt::Display::fmt(self.syntax(), f)
3473 } 3472 }
@@ -3517,7 +3516,7 @@ impl std::fmt::Display for TypeBoundList {
3517 std::fmt::Display::fmt(self.syntax(), f) 3516 std::fmt::Display::fmt(self.syntax(), f)
3518 } 3517 }
3519} 3518}
3520impl std::fmt::Display for SourceFile { 3519impl std::fmt::Display for MacroCall {
3521 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3520 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3522 std::fmt::Display::fmt(self.syntax(), f) 3521 std::fmt::Display::fmt(self.syntax(), f)
3523 } 3522 }
@@ -3527,6 +3526,26 @@ impl std::fmt::Display for Attr {
3527 std::fmt::Display::fmt(self.syntax(), f) 3526 std::fmt::Display::fmt(self.syntax(), f)
3528 } 3527 }
3529} 3528}
3529impl std::fmt::Display for TokenTree {
3530 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3531 std::fmt::Display::fmt(self.syntax(), f)
3532 }
3533}
3534impl std::fmt::Display for MacroItems {
3535 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3536 std::fmt::Display::fmt(self.syntax(), f)
3537 }
3538}
3539impl std::fmt::Display for MacroStmts {
3540 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3541 std::fmt::Display::fmt(self.syntax(), f)
3542 }
3543}
3544impl std::fmt::Display for SourceFile {
3545 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3546 std::fmt::Display::fmt(self.syntax(), f)
3547 }
3548}
3530impl std::fmt::Display for Const { 3549impl std::fmt::Display for Const {
3531 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3550 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3532 std::fmt::Display::fmt(self.syntax(), f) 3551 std::fmt::Display::fmt(self.syntax(), f)
@@ -3557,11 +3576,6 @@ impl std::fmt::Display for Impl {
3557 std::fmt::Display::fmt(self.syntax(), f) 3576 std::fmt::Display::fmt(self.syntax(), f)
3558 } 3577 }
3559} 3578}
3560impl std::fmt::Display for MacroCall {
3561 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3562 std::fmt::Display::fmt(self.syntax(), f)
3563 }
3564}
3565impl std::fmt::Display for Module { 3579impl std::fmt::Display for Module {
3566 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3580 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3567 std::fmt::Display::fmt(self.syntax(), f) 3581 std::fmt::Display::fmt(self.syntax(), f)
@@ -3602,11 +3616,6 @@ impl std::fmt::Display for Visibility {
3602 std::fmt::Display::fmt(self.syntax(), f) 3616 std::fmt::Display::fmt(self.syntax(), f)
3603 } 3617 }
3604} 3618}
3605impl std::fmt::Display for Name {
3606 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3607 std::fmt::Display::fmt(self.syntax(), f)
3608 }
3609}
3610impl std::fmt::Display for ItemList { 3619impl std::fmt::Display for ItemList {
3611 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3620 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3612 std::fmt::Display::fmt(self.syntax(), f) 3621 std::fmt::Display::fmt(self.syntax(), f)
@@ -3722,11 +3731,6 @@ impl std::fmt::Display for Literal {
3722 std::fmt::Display::fmt(self.syntax(), f) 3731 std::fmt::Display::fmt(self.syntax(), f)
3723 } 3732 }
3724} 3733}
3725impl std::fmt::Display for TokenTree {
3726 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3727 std::fmt::Display::fmt(self.syntax(), f)
3728 }
3729}
3730impl std::fmt::Display for ExprStmt { 3734impl std::fmt::Display for ExprStmt {
3731 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3735 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3732 std::fmt::Display::fmt(self.syntax(), f) 3736 std::fmt::Display::fmt(self.syntax(), f)
@@ -3977,37 +3981,37 @@ impl std::fmt::Display for TypeBound {
3977 std::fmt::Display::fmt(self.syntax(), f) 3981 std::fmt::Display::fmt(self.syntax(), f)
3978 } 3982 }
3979} 3983}
3980impl std::fmt::Display for OrPat { 3984impl std::fmt::Display for IdentPat {
3981 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3985 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3982 std::fmt::Display::fmt(self.syntax(), f) 3986 std::fmt::Display::fmt(self.syntax(), f)
3983 } 3987 }
3984} 3988}
3985impl std::fmt::Display for ParenPat { 3989impl std::fmt::Display for BoxPat {
3986 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3990 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3987 std::fmt::Display::fmt(self.syntax(), f) 3991 std::fmt::Display::fmt(self.syntax(), f)
3988 } 3992 }
3989} 3993}
3990impl std::fmt::Display for RefPat { 3994impl std::fmt::Display for DotDotPat {
3991 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3995 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3992 std::fmt::Display::fmt(self.syntax(), f) 3996 std::fmt::Display::fmt(self.syntax(), f)
3993 } 3997 }
3994} 3998}
3995impl std::fmt::Display for BoxPat { 3999impl std::fmt::Display for LiteralPat {
3996 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 4000 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3997 std::fmt::Display::fmt(self.syntax(), f) 4001 std::fmt::Display::fmt(self.syntax(), f)
3998 } 4002 }
3999} 4003}
4000impl std::fmt::Display for BindPat { 4004impl std::fmt::Display for MacroPat {
4001 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 4005 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4002 std::fmt::Display::fmt(self.syntax(), f) 4006 std::fmt::Display::fmt(self.syntax(), f)
4003 } 4007 }
4004} 4008}
4005impl std::fmt::Display for PlaceholderPat { 4009impl std::fmt::Display for OrPat {
4006 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 4010 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4007 std::fmt::Display::fmt(self.syntax(), f) 4011 std::fmt::Display::fmt(self.syntax(), f)
4008 } 4012 }
4009} 4013}
4010impl std::fmt::Display for DotDotPat { 4014impl std::fmt::Display for ParenPat {
4011 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 4015 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4012 std::fmt::Display::fmt(self.syntax(), f) 4016 std::fmt::Display::fmt(self.syntax(), f)
4013 } 4017 }
@@ -4017,7 +4021,7 @@ impl std::fmt::Display for PathPat {
4017 std::fmt::Display::fmt(self.syntax(), f) 4021 std::fmt::Display::fmt(self.syntax(), f)
4018 } 4022 }
4019} 4023}
4020impl std::fmt::Display for SlicePat { 4024impl std::fmt::Display for WildcardPat {
4021 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 4025 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4022 std::fmt::Display::fmt(self.syntax(), f) 4026 std::fmt::Display::fmt(self.syntax(), f)
4023 } 4027 }
@@ -4027,47 +4031,37 @@ impl std::fmt::Display for RangePat {
4027 std::fmt::Display::fmt(self.syntax(), f) 4031 std::fmt::Display::fmt(self.syntax(), f)
4028 } 4032 }
4029} 4033}
4030impl std::fmt::Display for LiteralPat {
4031 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4032 std::fmt::Display::fmt(self.syntax(), f)
4033 }
4034}
4035impl std::fmt::Display for MacroPat {
4036 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4037 std::fmt::Display::fmt(self.syntax(), f)
4038 }
4039}
4040impl std::fmt::Display for RecordPat { 4034impl std::fmt::Display for RecordPat {
4041 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 4035 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4042 std::fmt::Display::fmt(self.syntax(), f) 4036 std::fmt::Display::fmt(self.syntax(), f)
4043 } 4037 }
4044} 4038}
4045impl std::fmt::Display for RecordFieldPatList { 4039impl std::fmt::Display for RefPat {
4046 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 4040 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4047 std::fmt::Display::fmt(self.syntax(), f) 4041 std::fmt::Display::fmt(self.syntax(), f)
4048 } 4042 }
4049} 4043}
4050impl std::fmt::Display for RecordFieldPat { 4044impl std::fmt::Display for SlicePat {
4051 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 4045 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4052 std::fmt::Display::fmt(self.syntax(), f) 4046 std::fmt::Display::fmt(self.syntax(), f)
4053 } 4047 }
4054} 4048}
4055impl std::fmt::Display for TupleStructPat { 4049impl std::fmt::Display for TuplePat {
4056 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 4050 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4057 std::fmt::Display::fmt(self.syntax(), f) 4051 std::fmt::Display::fmt(self.syntax(), f)
4058 } 4052 }
4059} 4053}
4060impl std::fmt::Display for TuplePat { 4054impl std::fmt::Display for TupleStructPat {
4061 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 4055 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4062 std::fmt::Display::fmt(self.syntax(), f) 4056 std::fmt::Display::fmt(self.syntax(), f)
4063 } 4057 }
4064} 4058}
4065impl std::fmt::Display for MacroItems { 4059impl std::fmt::Display for RecordPatFieldList {
4066 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 4060 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4067 std::fmt::Display::fmt(self.syntax(), f) 4061 std::fmt::Display::fmt(self.syntax(), f)
4068 } 4062 }
4069} 4063}
4070impl std::fmt::Display for MacroStmts { 4064impl std::fmt::Display for RecordPatField {
4071 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 4065 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4072 std::fmt::Display::fmt(self.syntax(), f) 4066 std::fmt::Display::fmt(self.syntax(), f)
4073 } 4067 }
diff --git a/crates/ra_syntax/src/ast/make.rs b/crates/ra_syntax/src/ast/make.rs
index 3d4fed64c..673777015 100644
--- a/crates/ra_syntax/src/ast/make.rs
+++ b/crates/ra_syntax/src/ast/make.rs
@@ -148,18 +148,18 @@ pub fn condition(expr: ast::Expr, pattern: Option<ast::Pat>) -> ast::Condition {
148 } 148 }
149} 149}
150 150
151pub fn bind_pat(name: ast::Name) -> ast::BindPat { 151pub fn bind_pat(name: ast::Name) -> ast::IdentPat {
152 return from_text(name.text()); 152 return from_text(name.text());
153 153
154 fn from_text(text: &str) -> ast::BindPat { 154 fn from_text(text: &str) -> ast::IdentPat {
155 ast_from_text(&format!("fn f({}: ())", text)) 155 ast_from_text(&format!("fn f({}: ())", text))
156 } 156 }
157} 157}
158 158
159pub fn placeholder_pat() -> ast::PlaceholderPat { 159pub fn placeholder_pat() -> ast::WildcardPat {
160 return from_text("_"); 160 return from_text("_");
161 161
162 fn from_text(text: &str) -> ast::PlaceholderPat { 162 fn from_text(text: &str) -> ast::WildcardPat {
163 ast_from_text(&format!("fn f({}: ())", text)) 163 ast_from_text(&format!("fn f({}: ())", text))
164 } 164 }
165} 165}
diff --git a/crates/ra_syntax/src/ast/node_ext.rs b/crates/ra_syntax/src/ast/node_ext.rs
index 69726fb93..4b4a72375 100644
--- a/crates/ra_syntax/src/ast/node_ext.rs
+++ b/crates/ra_syntax/src/ast/node_ext.rs
@@ -227,13 +227,13 @@ impl fmt::Display for NameOrNameRef {
227 } 227 }
228} 228}
229 229
230impl ast::RecordFieldPat { 230impl ast::RecordPatField {
231 /// Deals with field init shorthand 231 /// Deals with field init shorthand
232 pub fn field_name(&self) -> Option<NameOrNameRef> { 232 pub fn field_name(&self) -> Option<NameOrNameRef> {
233 if let Some(name_ref) = self.name_ref() { 233 if let Some(name_ref) = self.name_ref() {
234 return Some(NameOrNameRef::NameRef(name_ref)); 234 return Some(NameOrNameRef::NameRef(name_ref));
235 } 235 }
236 if let Some(ast::Pat::BindPat(pat)) = self.pat() { 236 if let Some(ast::Pat::IdentPat(pat)) = self.pat() {
237 let name = pat.name()?; 237 let name = pat.name()?;
238 return Some(NameOrNameRef::Name(name)); 238 return Some(NameOrNameRef::Name(name));
239 } 239 }
@@ -294,13 +294,13 @@ impl ast::SlicePat {
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::DotDotPat(_) => false,
297 ast::Pat::BindPat(bp) => match bp.pat() { 297 ast::Pat::IdentPat(bp) => match bp.pat() {
298 Some(ast::Pat::DotDotPat(_)) => false, 298 Some(ast::Pat::DotDotPat(_)) => 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::DotDotPat(_)) => false,
303 Some(ast::Pat::BindPat(bp)) => match bp.pat() { 303 Some(ast::Pat::IdentPat(bp)) => match bp.pat() {
304 Some(ast::Pat::DotDotPat(_)) => false, 304 Some(ast::Pat::DotDotPat(_)) => false,
305 _ => true, 305 _ => true,
306 }, 306 },
diff --git a/crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast b/crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast
index 307d9b31b..c131b79a7 100644
--- a/crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast
+++ b/crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast
@@ -34,7 +34,7 @@ [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected]
37 BIN[email protected] 37 IDENT[email protected]
38 [email protected] 38 [email protected]
39 [email protected] "builder" 39 [email protected] "builder"
40 [email protected] 40 [email protected]
@@ -51,7 +51,7 @@ [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected]
53 [email protected] 53 [email protected]
54 BIN[email protected] 54 IDENT[email protected]
55 [email protected] 55 [email protected]
56 [email protected] "tokens" 56 [email protected] "tokens"
57 [email protected] 57 [email protected]
@@ -69,7 +69,7 @@ [email protected]
69 [email protected] 69 [email protected]
70 [email protected] 70 [email protected]
71 [email protected] 71 [email protected]
72 BIN[email protected] 72 IDENT[email protected]
73 [email protected] 73 [email protected]
74 [email protected] "events" 74 [email protected] "events"
75 [email protected] 75 [email protected]
@@ -96,7 +96,7 @@ [email protected]
96 [email protected] 96 [email protected]
97 [email protected] 97 [email protected]
98 [email protected] 98 [email protected]
99 BIN[email protected] 99 IDENT[email protected]
100 [email protected] 100 [email protected]
101 [email protected] 101 [email protected]
102 [email protected] 102 [email protected]
@@ -111,7 +111,7 @@ [email protected]
111 [email protected] 111 [email protected]
112 [email protected] 112 [email protected]
113 [email protected] 113 [email protected]
114 BIN[email protected] 114 IDENT[email protected]
115 [email protected] 115 [email protected]
116 [email protected] "eat_ws" 116 [email protected] "eat_ws"
117 [email protected] 117 [email protected]
@@ -121,7 +121,7 @@ [email protected]
121 [email protected] 121 [email protected]
122 [email protected] 122 [email protected]
123 [email protected] 123 [email protected]
124 BIN[email protected] 124 IDENT[email protected]
125 [email protected] 125 [email protected]
126 [email protected] "idx" 126 [email protected] "idx"
127 [email protected] 127 [email protected]
@@ -172,7 +172,7 @@ [email protected]
172 [email protected] 172 [email protected]
173 [email protected] "Some" 173 [email protected] "Some"
174 [email protected] 174 [email protected]
175 BIN[email protected] 175 IDENT[email protected]
176 [email protected] 176 [email protected]
177 [email protected] "token" 177 [email protected] "token"
178 [email protected] 178 [email protected]
@@ -185,7 +185,7 @@ [email protected]
185 err: `expected COMMA` 185 err: `expected COMMA`
186 [email protected] 186 [email protected]
187 [email protected] 187 [email protected]
188 BIN[email protected] 188 IDENT[email protected]
189 [email protected] 189 [email protected]
190 [email protected] "tokens" 190 [email protected] "tokens"
191 err: `expected COMMA` 191 err: `expected COMMA`
@@ -205,7 +205,7 @@ [email protected]
205 [email protected] 205 [email protected]
206 [email protected] 206 [email protected]
207 err: `expected COMMA` 207 err: `expected COMMA`
208 BIN[email protected] 208 IDENT[email protected]
209 [email protected] 209 [email protected]
210 [email protected] "idx" 210 [email protected] "idx"
211 [email protected] 211 [email protected]
@@ -229,7 +229,7 @@ [email protected]
229 [email protected] 229 [email protected]
230 err: `expected COMMA` 230 err: `expected COMMA`
231 [email protected] 231 [email protected]
232 BIN[email protected] 232 IDENT[email protected]
233 [email protected] 233 [email protected]
234 [email protected] "token" 234 [email protected] "token"
235 err: `expected COMMA` 235 err: `expected COMMA`
@@ -239,7 +239,7 @@ [email protected]
239 [email protected] 239 [email protected]
240 err: `expected COMMA` 240 err: `expected COMMA`
241 [email protected] 241 [email protected]
242 BIN[email protected] 242 IDENT[email protected]
243 [email protected] 243 [email protected]
244 [email protected] "kind" 244 [email protected] "kind"
245 err: `expected COMMA` 245 err: `expected COMMA`
@@ -265,7 +265,7 @@ [email protected]
265 err: `expected COMMA` 265 err: `expected COMMA`
266 [email protected] 266 [email protected]
267 [email protected] 267 [email protected]
268 BIN[email protected] 268 IDENT[email protected]
269 [email protected] 269 [email protected]
270 [email protected] "break" 270 [email protected] "break"
271 err: `expected COMMA` 271 err: `expected COMMA`
@@ -282,7 +282,7 @@ [email protected]
282 err: `expected COMMA` 282 err: `expected COMMA`
283 [email protected] 283 [email protected]
284 [email protected] 284 [email protected]
285 BIN[email protected] 285 IDENT[email protected]
286 [email protected] 286 [email protected]
287 [email protected] "builder" 287 [email protected] "builder"
288 err: `expected COMMA` 288 err: `expected COMMA`
@@ -298,7 +298,7 @@ [email protected]
298 [email protected] 298 [email protected]
299 [email protected] "leaf" 299 [email protected] "leaf"
300 [email protected] 300 [email protected]
301 BIN[email protected] 301 IDENT[email protected]
302 [email protected] 302 [email protected]
303 [email protected] "token" 303 [email protected] "token"
304 err: `expected COMMA` 304 err: `expected COMMA`
@@ -306,12 +306,12 @@ [email protected]
306 [email protected] 306 [email protected]
307 [email protected] 307 [email protected]
308 err: `expected COMMA` 308 err: `expected COMMA`
309 BIN[email protected] 309 IDENT[email protected]
310 [email protected] 310 [email protected]
311 [email protected] "kind" 311 [email protected] "kind"
312 [email protected] 312 [email protected]
313 [email protected] 313 [email protected]
314 BIN[email protected] 314 IDENT[email protected]
315 [email protected] 315 [email protected]
316 [email protected] "token" 316 [email protected] "token"
317 err: `expected COMMA` 317 err: `expected COMMA`
@@ -319,7 +319,7 @@ [email protected]
319 [email protected] 319 [email protected]
320 [email protected] 320 [email protected]
321 err: `expected COMMA` 321 err: `expected COMMA`
322 BIN[email protected] 322 IDENT[email protected]
323 [email protected] 323 [email protected]
324 [email protected] "len" 324 [email protected] "len"
325 [email protected] 325 [email protected]
@@ -336,7 +336,7 @@ [email protected]
336 [email protected] 336 [email protected]
337 err: `expected COMMA` 337 err: `expected COMMA`
338 [email protected] 338 [email protected]
339 BIN[email protected] 339 IDENT[email protected]
340 [email protected] 340 [email protected]
341 [email protected] "idx" 341 [email protected] "idx"
342 err: `expected COMMA` 342 err: `expected COMMA`
diff --git a/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast b/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast
index bb4a28f4e..fe094f61c 100644
--- a/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast
+++ b/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast
@@ -7,7 +7,7 @@ [email protected]
7 [email protected] 7 [email protected]
8 [email protected] "(" 8 [email protected] "("
9 [email protected] 9 [email protected]
10 BIN[email protected] 10 IDENT[email protected]
11 [email protected] 11 [email protected]
12 [email protected] "foo" 12 [email protected] "foo"
13 [email protected] ":" 13 [email protected] ":"
@@ -25,7 +25,7 @@ [email protected]
25 [email protected] 25 [email protected]
26 [email protected] "let" 26 [email protected] "let"
27 [email protected] " " 27 [email protected] " "
28 BIN[email protected] 28 IDENT[email protected]
29 [email protected] 29 [email protected]
30 [email protected] "bar" 30 [email protected] "bar"
31 [email protected] " " 31 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast b/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast
index bc95b8512..72939fc98 100644
--- a/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast
+++ b/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast
@@ -38,7 +38,7 @@ [email protected]
38 [email protected] 38 [email protected]
39 [email protected] "let" 39 [email protected] "let"
40 [email protected] " " 40 [email protected] " "
41 BIN[email protected] 41 IDENT[email protected]
42 [email protected] 42 [email protected]
43 [email protected] "res" 43 [email protected] "res"
44 [email protected] " " 44 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast b/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast
index f6fa964b7..72c05bd96 100644
--- a/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast
+++ b/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] 18 [email protected]
19 [email protected] "foo" 19 [email protected] "foo"
20 [email protected] " " 20 [email protected] " "
@@ -23,7 +23,7 @@ [email protected]
23 [email protected] 23 [email protected]
24 [email protected] "let" 24 [email protected] "let"
25 [email protected] " " 25 [email protected] " "
26 BIN[email protected] 26 IDENT[email protected]
27 [email protected] 27 [email protected]
28 [email protected] "bar" 28 [email protected] "bar"
29 [email protected] " " 29 [email protected] " "
@@ -39,7 +39,7 @@ [email protected]
39 [email protected] 39 [email protected]
40 [email protected] "let" 40 [email protected] "let"
41 [email protected] " " 41 [email protected] " "
42 BIN[email protected] 42 IDENT[email protected]
43 [email protected] 43 [email protected]
44 [email protected] "baz" 44 [email protected] "baz"
45 [email protected] " " 45 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast b/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast
index ba4ce4795..b32845537 100644
--- a/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast
+++ b/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast
@@ -7,7 +7,7 @@ [email protected]
7 [email protected] 7 [email protected]
8 [email protected] "(" 8 [email protected] "("
9 [email protected] 9 [email protected]
10 BIN[email protected] 10 IDENT[email protected]
11 [email protected] 11 [email protected]
12 [email protected] "x" 12 [email protected] "x"
13 [email protected] ":" 13 [email protected] ":"
@@ -20,7 +20,7 @@ [email protected]
20 [email protected] "," 20 [email protected] ","
21 [email protected] " " 21 [email protected] " "
22 [email protected] 22 [email protected]
23 BIN[email protected] 23 IDENT[email protected]
24 [email protected] 24 [email protected]
25 [email protected] "y" 25 [email protected] "y"
26 [email protected] ")" 26 [email protected] ")"
diff --git a/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast b/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast
index 1cb1e9757..e3be6b22e 100644
--- a/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast
+++ b/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast
@@ -80,7 +80,7 @@ [email protected]
80 [email protected] 80 [email protected]
81 [email protected] "let" 81 [email protected] "let"
82 [email protected] " " 82 [email protected] " "
83 PLACEHOLDE[email protected] 83 WILDCARD[email protected]
84 [email protected] "_" 84 [email protected] "_"
85 [email protected] ":" 85 [email protected] ":"
86 [email protected] " " 86 [email protected] " "
@@ -147,7 +147,7 @@ [email protected]
147 [email protected] 147 [email protected]
148 [email protected] "let" 148 [email protected] "let"
149 [email protected] " " 149 [email protected] " "
150 PLACEHOLDE[email protected] 150 WILDCARD[email protected]
151 [email protected] "_" 151 [email protected] "_"
152 [email protected] ":" 152 [email protected] ":"
153 [email protected] " " 153 [email protected] " "
@@ -223,7 +223,7 @@ [email protected]
223 [email protected] 223 [email protected]
224 [email protected] "let" 224 [email protected] "let"
225 [email protected] " " 225 [email protected] " "
226 PLACEHOLDE[email protected] 226 WILDCARD[email protected]
227 [email protected] "_" 227 [email protected] "_"
228 [email protected] ":" 228 [email protected] ":"
229 [email protected] " " 229 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/err/0025_nope.rast b/crates/ra_syntax/test_data/parser/err/0025_nope.rast
index fca646557..83fc9fe77 100644
--- a/crates/ra_syntax/test_data/parser/err/0025_nope.rast
+++ b/crates/ra_syntax/test_data/parser/err/0025_nope.rast
@@ -69,7 +69,7 @@ [email protected]
69 [email protected] 69 [email protected]
70 [email protected] "let" 70 [email protected] "let"
71 [email protected] " " 71 [email protected] " "
72 BIN[email protected] 72 IDENT[email protected]
73 [email protected] 73 [email protected]
74 [email protected] "a" 74 [email protected] "a"
75 [email protected] " " 75 [email protected] " "
@@ -175,7 +175,7 @@ [email protected]
175 [email protected] 175 [email protected]
176 [email protected] "let" 176 [email protected] "let"
177 [email protected] " " 177 [email protected] " "
178 BIN[email protected] 178 IDENT[email protected]
179 [email protected] 179 [email protected]
180 [email protected] "bad_syntax" 180 [email protected] "bad_syntax"
181 [email protected] " " 181 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast b/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast
index bfcd0149e..c6402cdd8 100644
--- a/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast
+++ b/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast
@@ -7,7 +7,7 @@ [email protected]
7 [email protected] 7 [email protected]
8 [email protected] "(" 8 [email protected] "("
9 [email protected] 9 [email protected]
10 BIN[email protected] 10 IDENT[email protected]
11 [email protected] 11 [email protected]
12 [email protected] "a" 12 [email protected] "a"
13 [email protected] ":" 13 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast b/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast
index 55ff3943f..a443b37db 100644
--- a/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] 18 [email protected]
19 [email protected] "inner" 19 [email protected] "inner"
20 [email protected] " " 20 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast b/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast
index ec9f556aa..672dd054a 100644
--- a/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast
@@ -23,7 +23,7 @@ [email protected]
23 [email protected] "{" 23 [email protected] "{"
24 [email protected] "\n " 24 [email protected] "\n "
25 [email protected] 25 [email protected]
26 PLACEHOLDE[email protected] 26 WILDCARD[email protected]
27 [email protected] "_" 27 [email protected] "_"
28 [email protected] " " 28 [email protected] " "
29 [email protected] "=>" 29 [email protected] "=>"
@@ -54,7 +54,7 @@ [email protected]
54 [email protected] "]" 54 [email protected] "]"
55 [email protected] "\n " 55 [email protected] "\n "
56 [email protected] 56 [email protected]
57 PLACEHOLDE[email protected] 57 WILDCARD[email protected]
58 [email protected] "_" 58 [email protected] "_"
59 [email protected] " " 59 [email protected] " "
60 [email protected] "=>" 60 [email protected] "=>"
@@ -78,7 +78,7 @@ [email protected]
78 [email protected] "{" 78 [email protected] "{"
79 [email protected] "\n " 79 [email protected] "\n "
80 [email protected] 80 [email protected]
81 PLACEHOLDE[email protected] 81 WILDCARD[email protected]
82 [email protected] "_" 82 [email protected] "_"
83 [email protected] " " 83 [email protected] " "
84 [email protected] "=>" 84 [email protected] "=>"
@@ -89,7 +89,7 @@ [email protected]
89 [email protected] "," 89 [email protected] ","
90 [email protected] "\n " 90 [email protected] "\n "
91 [email protected] 91 [email protected]
92 PLACEHOLDE[email protected] 92 WILDCARD[email protected]
93 [email protected] "_" 93 [email protected] "_"
94 [email protected] " " 94 [email protected] " "
95 [email protected] "=>" 95 [email protected] "=>"
@@ -165,7 +165,7 @@ [email protected]
165 [email protected] "]" 165 [email protected] "]"
166 [email protected] "\n " 166 [email protected] "\n "
167 [email protected] 167 [email protected]
168 PLACEHOLDE[email protected] 168 WILDCARD[email protected]
169 [email protected] "_" 169 [email protected] "_"
170 [email protected] " " 170 [email protected] " "
171 [email protected] "=>" 171 [email protected] "=>"
@@ -176,7 +176,7 @@ [email protected]
176 [email protected] "," 176 [email protected] ","
177 [email protected] "\n " 177 [email protected] "\n "
178 [email protected] 178 [email protected]
179 PLACEHOLDE[email protected] 179 WILDCARD[email protected]
180 [email protected] "_" 180 [email protected] "_"
181 [email protected] " " 181 [email protected] " "
182 [email protected] "=>" 182 [email protected] "=>"
diff --git a/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast b/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast
index 063532e02..33bb085e9 100644
--- a/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast
@@ -22,7 +22,7 @@ [email protected]
22 [email protected] "{" 22 [email protected] "{"
23 [email protected] "\n " 23 [email protected] "\n "
24 [email protected] 24 [email protected]
25 PLACEHOLDE[email protected] 25 WILDCARD[email protected]
26 [email protected] "_" 26 [email protected] "_"
27 [email protected] " " 27 [email protected] " "
28 [email protected] "=>" 28 [email protected] "=>"
@@ -33,7 +33,7 @@ [email protected]
33 [email protected] "," 33 [email protected] ","
34 [email protected] "\n " 34 [email protected] "\n "
35 [email protected] 35 [email protected]
36 PLACEHOLDE[email protected] 36 WILDCARD[email protected]
37 [email protected] "_" 37 [email protected] "_"
38 [email protected] " " 38 [email protected] " "
39 [email protected] "=>" 39 [email protected] "=>"
diff --git a/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast b/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast
index 303a49576..d9d49bfb5 100644
--- a/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast
+++ b/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] "ref" 18 [email protected] "ref"
19 [email protected] " " 19 [email protected] " "
20 [email protected] 20 [email protected]
@@ -38,7 +38,7 @@ [email protected]
38 [email protected] 38 [email protected]
39 [email protected] "let" 39 [email protected] "let"
40 [email protected] " " 40 [email protected] " "
41 BIN[email protected] 41 IDENT[email protected]
42 [email protected] "mut" 42 [email protected] "mut"
43 [email protected] " " 43 [email protected] " "
44 [email protected] 44 [email protected]
@@ -62,7 +62,7 @@ [email protected]
62 [email protected] 62 [email protected]
63 [email protected] "let" 63 [email protected] "let"
64 [email protected] " " 64 [email protected] " "
65 BIN[email protected] 65 IDENT[email protected]
66 [email protected] "ref" 66 [email protected] "ref"
67 [email protected] " " 67 [email protected] " "
68 [email protected] "mut" 68 [email protected] "mut"
diff --git a/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast b/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast
index 7a5e115bc..a9c5b70fd 100644
--- a/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast
+++ b/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast
@@ -53,7 +53,7 @@ [email protected]
53 [email protected] 53 [email protected]
54 [email protected] "|" 54 [email protected] "|"
55 [email protected] 55 [email protected]
56 BIN[email protected] 56 IDENT[email protected]
57 [email protected] 57 [email protected]
58 [email protected] "it" 58 [email protected] "it"
59 [email protected] "|" 59 [email protected] "|"
diff --git a/crates/ra_syntax/test_data/parser/fragments/pattern/ok/0000_enum.rast b/crates/ra_syntax/test_data/parser/fragments/pattern/ok/0000_enum.rast
index 15eb7f9c6..dcf102339 100644
--- a/crates/ra_syntax/test_data/parser/fragments/pattern/ok/0000_enum.rast
+++ b/crates/ra_syntax/test_data/parser/fragments/pattern/ok/0000_enum.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] 4 [email protected]
5 [email protected] "Some" 5 [email protected] "Some"
6 [email protected] "(" 6 [email protected] "("
7 BIN[email protected] 7 IDENT[email protected]
8 [email protected] 8 [email protected]
9 [email protected] "x" 9 [email protected] "x"
10 [email protected] ")" 10 [email protected] ")"
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast b/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast
index 3f3a7f1b9..2c9570678 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 PLACEHOLDE[email protected] 17 WILDCARD[email protected]
18 [email protected] "_" 18 [email protected] "_"
19 [email protected] " " 19 [email protected] " "
20 [email protected] "=" 20 [email protected] "="
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast
index ae61cbad8..d24ad7423 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast
@@ -79,7 +79,7 @@ [email protected]
79 [email protected] "," 79 [email protected] ","
80 [email protected] " " 80 [email protected] " "
81 [email protected] 81 [email protected]
82 BIN[email protected] 82 IDENT[email protected]
83 [email protected] 83 [email protected]
84 [email protected] "x" 84 [email protected] "x"
85 [email protected] ":" 85 [email protected] ":"
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 3ce2acfae..d848f3c88 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
@@ -58,7 +58,7 @@ [email protected]
58 [email protected] 58 [email protected]
59 [email protected] "Bar" 59 [email protected] "Bar"
60 [email protected] " " 60 [email protected] " "
61 RECORD_FIELD_PAT_[email protected] 61 RECORD_PAT_[email protected]
62 [email protected] "{" 62 [email protected] "{"
63 [email protected] " " 63 [email protected] " "
64 [email protected] ".." 64 [email protected] ".."
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 dea0c73f7..66f906fae 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
@@ -16,12 +16,12 @@ [email protected]
16 [email protected] " " 16 [email protected] " "
17 [email protected] 17 [email protected]
18 [email protected] "[" 18 [email protected] "["
19 BIN[email protected] 19 IDENT[email protected]
20 [email protected] 20 [email protected]
21 [email protected] "a" 21 [email protected] "a"
22 [email protected] "," 22 [email protected] ","
23 [email protected] " " 23 [email protected] " "
24 BIN[email protected] 24 IDENT[email protected]
25 [email protected] 25 [email protected]
26 [email protected] "b" 26 [email protected] "b"
27 [email protected] "," 27 [email protected] ","
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 e5f550347..e049e4df7 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
@@ -38,7 +38,7 @@ [email protected]
38 [email protected] 38 [email protected]
39 [email protected] "S" 39 [email protected] "S"
40 [email protected] "(" 40 [email protected] "("
41 PLACEHOLDE[email protected] 41 WILDCARD[email protected]
42 [email protected] "_" 42 [email protected] "_"
43 [email protected] ")" 43 [email protected] ")"
44 [email protected] " " 44 [email protected] " "
@@ -58,7 +58,7 @@ [email protected]
58 [email protected] 58 [email protected]
59 [email protected] "S" 59 [email protected] "S"
60 [email protected] "(" 60 [email protected] "("
61 PLACEHOLDE[email protected] 61 WILDCARD[email protected]
62 [email protected] "_" 62 [email protected] "_"
63 [email protected] "," 63 [email protected] ","
64 [email protected] ")" 64 [email protected] ")"
@@ -79,7 +79,7 @@ [email protected]
79 [email protected] 79 [email protected]
80 [email protected] "S" 80 [email protected] "S"
81 [email protected] "(" 81 [email protected] "("
82 PLACEHOLDE[email protected] 82 WILDCARD[email protected]
83 [email protected] "_" 83 [email protected] "_"
84 [email protected] "," 84 [email protected] ","
85 [email protected] " " 85 [email protected] " "
@@ -88,7 +88,7 @@ [email protected]
88 [email protected] " " 88 [email protected] " "
89 [email protected] "," 89 [email protected] ","
90 [email protected] " " 90 [email protected] " "
91 BIN[email protected] 91 IDENT[email protected]
92 [email protected] 92 [email protected]
93 [email protected] "x" 93 [email protected] "x"
94 [email protected] ")" 94 [email protected] ")"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast
index 9e76d881e..348b54dc9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast
@@ -16,7 +16,7 @@ [email protected]
16 [email protected] " " 16 [email protected] " "
17 [email protected] 17 [email protected]
18 [email protected] "&" 18 [email protected] "&"
19 BIN[email protected] 19 IDENT[email protected]
20 [email protected] 20 [email protected]
21 [email protected] "a" 21 [email protected] "a"
22 [email protected] " " 22 [email protected] " "
@@ -34,7 +34,7 @@ [email protected]
34 [email protected] "&" 34 [email protected] "&"
35 [email protected] "mut" 35 [email protected] "mut"
36 [email protected] " " 36 [email protected] " "
37 BIN[email protected] 37 IDENT[email protected]
38 [email protected] 38 [email protected]
39 [email protected] "b" 39 [email protected] "b"
40 [email protected] " " 40 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast b/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast
index 381284dc5..58a97d3ad 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast
@@ -23,7 +23,7 @@ [email protected]
23 [email protected] 23 [email protected]
24 [email protected] "Some" 24 [email protected] "Some"
25 [email protected] "(" 25 [email protected] "("
26 PLACEHOLDE[email protected] 26 WILDCARD[email protected]
27 [email protected] "_" 27 [email protected] "_"
28 [email protected] ")" 28 [email protected] ")"
29 [email protected] " " 29 [email protected] " "
@@ -67,7 +67,7 @@ [email protected]
67 [email protected] 67 [email protected]
68 [email protected] "Some" 68 [email protected] "Some"
69 [email protected] "(" 69 [email protected] "("
70 PLACEHOLDE[email protected] 70 WILDCARD[email protected]
71 [email protected] "_" 71 [email protected] "_"
72 [email protected] ")" 72 [email protected] ")"
73 [email protected] " " 73 [email protected] " "
@@ -79,7 +79,7 @@ [email protected]
79 [email protected] 79 [email protected]
80 [email protected] "Some" 80 [email protected] "Some"
81 [email protected] "(" 81 [email protected] "("
82 PLACEHOLDE[email protected] 82 WILDCARD[email protected]
83 [email protected] "_" 83 [email protected] "_"
84 [email protected] ")" 84 [email protected] ")"
85 [email protected] " " 85 [email protected] " "
@@ -110,7 +110,7 @@ [email protected]
110 [email protected] 110 [email protected]
111 [email protected] "Some" 111 [email protected] "Some"
112 [email protected] "(" 112 [email protected] "("
113 PLACEHOLDE[email protected] 113 WILDCARD[email protected]
114 [email protected] "_" 114 [email protected] "_"
115 [email protected] ")" 115 [email protected] ")"
116 [email protected] " " 116 [email protected] " "
@@ -140,7 +140,7 @@ [email protected]
140 [email protected] 140 [email protected]
141 [email protected] "Some" 141 [email protected] "Some"
142 [email protected] "(" 142 [email protected] "("
143 PLACEHOLDE[email protected] 143 WILDCARD[email protected]
144 [email protected] "_" 144 [email protected] "_"
145 [email protected] ")" 145 [email protected] ")"
146 [email protected] " " 146 [email protected] " "
@@ -152,7 +152,7 @@ [email protected]
152 [email protected] 152 [email protected]
153 [email protected] "Some" 153 [email protected] "Some"
154 [email protected] "(" 154 [email protected] "("
155 PLACEHOLDE[email protected] 155 WILDCARD[email protected]
156 [email protected] "_" 156 [email protected] "_"
157 [email protected] ")" 157 [email protected] ")"
158 [email protected] " " 158 [email protected] " "
@@ -182,7 +182,7 @@ [email protected]
182 [email protected] 182 [email protected]
183 [email protected] "Some" 183 [email protected] "Some"
184 [email protected] "(" 184 [email protected] "("
185 PLACEHOLDE[email protected] 185 WILDCARD[email protected]
186 [email protected] "_" 186 [email protected] "_"
187 [email protected] ")" 187 [email protected] ")"
188 [email protected] " " 188 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast
index ffe1a3a01..173cecf6d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast
@@ -37,7 +37,7 @@ [email protected]
37 [email protected] 37 [email protected]
38 [email protected] "Some" 38 [email protected] "Some"
39 [email protected] "(" 39 [email protected] "("
40 BIN[email protected] 40 IDENT[email protected]
41 [email protected] 41 [email protected]
42 [email protected] "x" 42 [email protected] "x"
43 [email protected] ")" 43 [email protected] ")"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast
index 40875ae1e..fa38e9466 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 PLACEHOLDE[email protected] 17 WILDCARD[email protected]
18 [email protected] "_" 18 [email protected] "_"
19 [email protected] " " 19 [email protected] " "
20 [email protected] "=" 20 [email protected] "="
@@ -33,7 +33,7 @@ [email protected]
33 [email protected] 33 [email protected]
34 [email protected] "let" 34 [email protected] "let"
35 [email protected] " " 35 [email protected] " "
36 PLACEHOLDE[email protected] 36 WILDCARD[email protected]
37 [email protected] "_" 37 [email protected] "_"
38 [email protected] " " 38 [email protected] " "
39 [email protected] "=" 39 [email protected] "="
@@ -69,7 +69,7 @@ [email protected]
69 [email protected] 69 [email protected]
70 [email protected] "let" 70 [email protected] "let"
71 [email protected] " " 71 [email protected] " "
72 PLACEHOLDE[email protected] 72 WILDCARD[email protected]
73 [email protected] "_" 73 [email protected] "_"
74 [email protected] " " 74 [email protected] " "
75 [email protected] "=" 75 [email protected] "="
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast
index de2016f18..c34cfeb31 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 PLACEHOLDE[email protected] 17 WILDCARD[email protected]
18 [email protected] "_" 18 [email protected] "_"
19 [email protected] " " 19 [email protected] " "
20 [email protected] "=" 20 [email protected] "="
@@ -29,7 +29,7 @@ [email protected]
29 [email protected] 29 [email protected]
30 [email protected] "let" 30 [email protected] "let"
31 [email protected] " " 31 [email protected] " "
32 PLACEHOLDE[email protected] 32 WILDCARD[email protected]
33 [email protected] "_" 33 [email protected] "_"
34 [email protected] " " 34 [email protected] " "
35 [email protected] "=" 35 [email protected] "="
@@ -49,7 +49,7 @@ [email protected]
49 [email protected] 49 [email protected]
50 [email protected] "let" 50 [email protected] "let"
51 [email protected] " " 51 [email protected] " "
52 PLACEHOLDE[email protected] 52 WILDCARD[email protected]
53 [email protected] "_" 53 [email protected] "_"
54 [email protected] " " 54 [email protected] " "
55 [email protected] "=" 55 [email protected] "="
@@ -75,7 +75,7 @@ [email protected]
75 [email protected] 75 [email protected]
76 [email protected] "let" 76 [email protected] "let"
77 [email protected] " " 77 [email protected] " "
78 PLACEHOLDE[email protected] 78 WILDCARD[email protected]
79 [email protected] "_" 79 [email protected] "_"
80 [email protected] " " 80 [email protected] " "
81 [email protected] "=" 81 [email protected] "="
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast b/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast
index fa659c19b..984829317 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast
@@ -22,7 +22,7 @@ [email protected]
22 [email protected] "{" 22 [email protected] "{"
23 [email protected] "\n " 23 [email protected] "\n "
24 [email protected] 24 [email protected]
25 PLACEHOLDE[email protected] 25 WILDCARD[email protected]
26 [email protected] "_" 26 [email protected] "_"
27 [email protected] " " 27 [email protected] " "
28 [email protected] "=>" 28 [email protected] "=>"
@@ -33,7 +33,7 @@ [email protected]
33 [email protected] "," 33 [email protected] ","
34 [email protected] "\n " 34 [email protected] "\n "
35 [email protected] 35 [email protected]
36 PLACEHOLDE[email protected] 36 WILDCARD[email protected]
37 [email protected] "_" 37 [email protected] "_"
38 [email protected] " " 38 [email protected] " "
39 [email protected] "=>" 39 [email protected] "=>"
@@ -43,7 +43,7 @@ [email protected]
43 [email protected] "}" 43 [email protected] "}"
44 [email protected] "\n " 44 [email protected] "\n "
45 [email protected] 45 [email protected]
46 PLACEHOLDE[email protected] 46 WILDCARD[email protected]
47 [email protected] "_" 47 [email protected] "_"
48 [email protected] " " 48 [email protected] " "
49 [email protected] "=>" 49 [email protected] "=>"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast b/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast
index 37ca478e6..57d0661a5 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast
@@ -23,7 +23,7 @@ [email protected]
23 [email protected] "{" 23 [email protected] "{"
24 [email protected] "\n " 24 [email protected] "\n "
25 [email protected] 25 [email protected]
26 PLACEHOLDE[email protected] 26 WILDCARD[email protected]
27 [email protected] "_" 27 [email protected] "_"
28 [email protected] " " 28 [email protected] " "
29 [email protected] "=>" 29 [email protected] "=>"
@@ -34,7 +34,7 @@ [email protected]
34 [email protected] "," 34 [email protected] ","
35 [email protected] "\n " 35 [email protected] "\n "
36 [email protected] 36 [email protected]
37 PLACEHOLDE[email protected] 37 WILDCARD[email protected]
38 [email protected] "_" 38 [email protected] "_"
39 [email protected] " " 39 [email protected] " "
40 [email protected] 40 [email protected]
@@ -74,13 +74,13 @@ [email protected]
74 [email protected] "\n " 74 [email protected] "\n "
75 [email protected] 75 [email protected]
76 [email protected] 76 [email protected]
77 BIN[email protected] 77 IDENT[email protected]
78 [email protected] 78 [email protected]
79 [email protected] "X" 79 [email protected] "X"
80 [email protected] " " 80 [email protected] " "
81 [email protected] "|" 81 [email protected] "|"
82 [email protected] " " 82 [email protected] " "
83 BIN[email protected] 83 IDENT[email protected]
84 [email protected] 84 [email protected]
85 [email protected] "Y" 85 [email protected] "Y"
86 [email protected] " " 86 [email protected] " "
@@ -104,13 +104,13 @@ [email protected]
104 [email protected] "|" 104 [email protected] "|"
105 [email protected] " " 105 [email protected] " "
106 [email protected] 106 [email protected]
107 BIN[email protected] 107 IDENT[email protected]
108 [email protected] 108 [email protected]
109 [email protected] "X" 109 [email protected] "X"
110 [email protected] " " 110 [email protected] " "
111 [email protected] "|" 111 [email protected] "|"
112 [email protected] " " 112 [email protected] " "
113 BIN[email protected] 113 IDENT[email protected]
114 [email protected] 114 [email protected]
115 [email protected] "Y" 115 [email protected] "Y"
116 [email protected] " " 116 [email protected] " "
@@ -133,7 +133,7 @@ [email protected]
133 [email protected] 133 [email protected]
134 [email protected] "|" 134 [email protected] "|"
135 [email protected] " " 135 [email protected] " "
136 BIN[email protected] 136 IDENT[email protected]
137 [email protected] 137 [email protected]
138 [email protected] "X" 138 [email protected] "X"
139 [email protected] " " 139 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
index 4c1165dc8..36c9cd5bb 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 PLACEHOLDE[email protected] 17 WILDCARD[email protected]
18 [email protected] "_" 18 [email protected] "_"
19 [email protected] " " 19 [email protected] " "
20 [email protected] "=" 20 [email protected] "="
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast
index 673d396ee..d34d98ced 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast
@@ -53,7 +53,7 @@ [email protected]
53 [email protected] "{" 53 [email protected] "{"
54 [email protected] " " 54 [email protected] " "
55 [email protected] 55 [email protected]
56 PLACEHOLDE[email protected] 56 WILDCARD[email protected]
57 [email protected] "_" 57 [email protected] "_"
58 [email protected] " " 58 [email protected] " "
59 [email protected] "=>" 59 [email protected] "=>"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
index 3ca70f021..3a789b9f5 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
@@ -22,7 +22,7 @@ [email protected]
22 [email protected] "{" 22 [email protected] "{"
23 [email protected] "\n " 23 [email protected] "\n "
24 [email protected] 24 [email protected]
25 PLACEHOLDE[email protected] 25 WILDCARD[email protected]
26 [email protected] "_" 26 [email protected] "_"
27 [email protected] " " 27 [email protected] " "
28 [email protected] "=>" 28 [email protected] "=>"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast
index 5cefc5076..e847ce9b2 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast
@@ -27,7 +27,7 @@ [email protected]
27 [email protected] 27 [email protected]
28 [email protected] "let" 28 [email protected] "let"
29 [email protected] " " 29 [email protected] " "
30 PLACEHOLDE[email protected] 30 WILDCARD[email protected]
31 [email protected] "_" 31 [email protected] "_"
32 [email protected] " " 32 [email protected] " "
33 [email protected] "=" 33 [email protected] "="
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast b/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast
index 3c80846db..b3003577c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] 18 [email protected]
19 [email protected] "x" 19 [email protected] "x"
20 [email protected] " " 20 [email protected] " "
@@ -39,7 +39,7 @@ [email protected]
39 [email protected] "{" 39 [email protected] "{"
40 [email protected] " " 40 [email protected] " "
41 [email protected] 41 [email protected]
42 PLACEHOLDE[email protected] 42 WILDCARD[email protected]
43 [email protected] "_" 43 [email protected] "_"
44 [email protected] " " 44 [email protected] " "
45 [email protected] "=>" 45 [email protected] "=>"
@@ -79,7 +79,7 @@ [email protected]
79 [email protected] "{" 79 [email protected] "{"
80 [email protected] " " 80 [email protected] " "
81 [email protected] 81 [email protected]
82 PLACEHOLDE[email protected] 82 WILDCARD[email protected]
83 [email protected] "_" 83 [email protected] "_"
84 [email protected] " " 84 [email protected] " "
85 [email protected] "=>" 85 [email protected] "=>"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast
index 1563b1988..70b975c0b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast
@@ -16,7 +16,7 @@ [email protected]
16 [email protected] 16 [email protected]
17 [email protected] "let" 17 [email protected] "let"
18 [email protected] " " 18 [email protected] " "
19 PLACEHOLDE[email protected] 19 WILDCARD[email protected]
20 [email protected] "_" 20 [email protected] "_"
21 [email protected] " " 21 [email protected] " "
22 [email protected] "=" 22 [email protected] "="
@@ -30,7 +30,7 @@ [email protected]
30 [email protected] 30 [email protected]
31 [email protected] "let" 31 [email protected] "let"
32 [email protected] " " 32 [email protected] " "
33 PLACEHOLDE[email protected] 33 WILDCARD[email protected]
34 [email protected] "_" 34 [email protected] "_"
35 [email protected] " " 35 [email protected] " "
36 [email protected] "=" 36 [email protected] "="
@@ -55,7 +55,7 @@ [email protected]
55 [email protected] 55 [email protected]
56 [email protected] "let" 56 [email protected] "let"
57 [email protected] " " 57 [email protected] " "
58 PLACEHOLDE[email protected] 58 WILDCARD[email protected]
59 [email protected] "_" 59 [email protected] "_"
60 [email protected] " " 60 [email protected] " "
61 [email protected] "=" 61 [email protected] "="
@@ -72,7 +72,7 @@ [email protected]
72 [email protected] 72 [email protected]
73 [email protected] "let" 73 [email protected] "let"
74 [email protected] " " 74 [email protected] " "
75 PLACEHOLDE[email protected] 75 WILDCARD[email protected]
76 [email protected] "_" 76 [email protected] "_"
77 [email protected] " " 77 [email protected] " "
78 [email protected] "=" 78 [email protected] "="
@@ -95,7 +95,7 @@ [email protected]
95 [email protected] 95 [email protected]
96 [email protected] "let" 96 [email protected] "let"
97 [email protected] " " 97 [email protected] " "
98 PLACEHOLDE[email protected] 98 WILDCARD[email protected]
99 [email protected] "_" 99 [email protected] "_"
100 [email protected] " " 100 [email protected] " "
101 [email protected] "=" 101 [email protected] "="
@@ -116,7 +116,7 @@ [email protected]
116 [email protected] 116 [email protected]
117 [email protected] "let" 117 [email protected] "let"
118 [email protected] " " 118 [email protected] " "
119 PLACEHOLDE[email protected] 119 WILDCARD[email protected]
120 [email protected] "_" 120 [email protected] "_"
121 [email protected] " " 121 [email protected] " "
122 [email protected] "=" 122 [email protected] "="
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast b/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast
index ded36949a..9a87b5b93 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 PLACEHOLDE[email protected] 17 WILDCARD[email protected]
18 [email protected] "_" 18 [email protected] "_"
19 [email protected] " " 19 [email protected] " "
20 [email protected] "=" 20 [email protected] "="
@@ -26,7 +26,7 @@ [email protected]
26 [email protected] 26 [email protected]
27 [email protected] "let" 27 [email protected] "let"
28 [email protected] " " 28 [email protected] " "
29 PLACEHOLDE[email protected] 29 WILDCARD[email protected]
30 [email protected] "_" 30 [email protected] "_"
31 [email protected] " " 31 [email protected] " "
32 [email protected] "=" 32 [email protected] "="
@@ -38,7 +38,7 @@ [email protected]
38 [email protected] 38 [email protected]
39 [email protected] "let" 39 [email protected] "let"
40 [email protected] " " 40 [email protected] " "
41 PLACEHOLDE[email protected] 41 WILDCARD[email protected]
42 [email protected] "_" 42 [email protected] "_"
43 [email protected] " " 43 [email protected] " "
44 [email protected] "=" 44 [email protected] "="
@@ -50,7 +50,7 @@ [email protected]
50 [email protected] 50 [email protected]
51 [email protected] "let" 51 [email protected] "let"
52 [email protected] " " 52 [email protected] " "
53 PLACEHOLDE[email protected] 53 WILDCARD[email protected]
54 [email protected] "_" 54 [email protected] "_"
55 [email protected] " " 55 [email protected] " "
56 [email protected] "=" 56 [email protected] "="
@@ -62,7 +62,7 @@ [email protected]
62 [email protected] 62 [email protected]
63 [email protected] "let" 63 [email protected] "let"
64 [email protected] " " 64 [email protected] " "
65 PLACEHOLDE[email protected] 65 WILDCARD[email protected]
66 [email protected] "_" 66 [email protected] "_"
67 [email protected] " " 67 [email protected] " "
68 [email protected] "=" 68 [email protected] "="
@@ -74,7 +74,7 @@ [email protected]
74 [email protected] 74 [email protected]
75 [email protected] "let" 75 [email protected] "let"
76 [email protected] " " 76 [email protected] " "
77 PLACEHOLDE[email protected] 77 WILDCARD[email protected]
78 [email protected] "_" 78 [email protected] "_"
79 [email protected] " " 79 [email protected] " "
80 [email protected] "=" 80 [email protected] "="
@@ -86,7 +86,7 @@ [email protected]
86 [email protected] 86 [email protected]
87 [email protected] "let" 87 [email protected] "let"
88 [email protected] " " 88 [email protected] " "
89 PLACEHOLDE[email protected] 89 WILDCARD[email protected]
90 [email protected] "_" 90 [email protected] "_"
91 [email protected] " " 91 [email protected] " "
92 [email protected] "=" 92 [email protected] "="
@@ -98,7 +98,7 @@ [email protected]
98 [email protected] 98 [email protected]
99 [email protected] "let" 99 [email protected] "let"
100 [email protected] " " 100 [email protected] " "
101 PLACEHOLDE[email protected] 101 WILDCARD[email protected]
102 [email protected] "_" 102 [email protected] "_"
103 [email protected] " " 103 [email protected] " "
104 [email protected] "=" 104 [email protected] "="
@@ -110,7 +110,7 @@ [email protected]
110 [email protected] 110 [email protected]
111 [email protected] "let" 111 [email protected] "let"
112 [email protected] " " 112 [email protected] " "
113 PLACEHOLDE[email protected] 113 WILDCARD[email protected]
114 [email protected] "_" 114 [email protected] "_"
115 [email protected] " " 115 [email protected] " "
116 [email protected] "=" 116 [email protected] "="
@@ -122,7 +122,7 @@ [email protected]
122 [email protected] 122 [email protected]
123 [email protected] "let" 123 [email protected] "let"
124 [email protected] " " 124 [email protected] " "
125 PLACEHOLDE[email protected] 125 WILDCARD[email protected]
126 [email protected] "_" 126 [email protected] "_"
127 [email protected] " " 127 [email protected] " "
128 [email protected] "=" 128 [email protected] "="
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast
index 34f520994..f7b839303 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast
@@ -38,7 +38,7 @@ [email protected]
38 [email protected] 38 [email protected]
39 [email protected] "for" 39 [email protected] "for"
40 [email protected] " " 40 [email protected] " "
41 BIN[email protected] 41 IDENT[email protected]
42 [email protected] 42 [email protected]
43 [email protected] "i" 43 [email protected] "i"
44 [email protected] " " 44 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast
index 25706d2a4..c1fdc6e25 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 PLACEHOLDE[email protected] 17 WILDCARD[email protected]
18 [email protected] "_" 18 [email protected] "_"
19 [email protected] " " 19 [email protected] " "
20 [email protected] "=" 20 [email protected] "="
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast
index cb5316a0d..e757249f0 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast
@@ -59,7 +59,7 @@ [email protected]
59 [email protected] 59 [email protected]
60 [email protected] "for" 60 [email protected] "for"
61 [email protected] " " 61 [email protected] " "
62 PLACEHOLDE[email protected] 62 WILDCARD[email protected]
63 [email protected] "_" 63 [email protected] "_"
64 [email protected] " " 64 [email protected] " "
65 [email protected] "in" 65 [email protected] "in"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast
index 1627556c8..f19e9fd52 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast
@@ -20,7 +20,7 @@ [email protected]
20 [email protected] 20 [email protected]
21 [email protected] "(" 21 [email protected] "("
22 [email protected] 22 [email protected]
23 BIN[email protected] 23 IDENT[email protected]
24 [email protected] 24 [email protected]
25 [email protected] "x" 25 [email protected] "x"
26 [email protected] ":" 26 [email protected] ":"
@@ -44,7 +44,7 @@ [email protected]
44 [email protected] 44 [email protected]
45 [email protected] "(" 45 [email protected] "("
46 [email protected] 46 [email protected]
47 BIN[email protected] 47 IDENT[email protected]
48 [email protected] 48 [email protected]
49 [email protected] "x" 49 [email protected] "x"
50 [email protected] ":" 50 [email protected] ":"
@@ -70,7 +70,7 @@ [email protected]
70 [email protected] 70 [email protected]
71 [email protected] "(" 71 [email protected] "("
72 [email protected] 72 [email protected]
73 BIN[email protected] 73 IDENT[email protected]
74 [email protected] 74 [email protected]
75 [email protected] "x" 75 [email protected] "x"
76 [email protected] ":" 76 [email protected] ":"
@@ -83,7 +83,7 @@ [email protected]
83 [email protected] "," 83 [email protected] ","
84 [email protected] " " 84 [email protected] " "
85 [email protected] 85 [email protected]
86 BIN[email protected] 86 IDENT[email protected]
87 [email protected] 87 [email protected]
88 [email protected] "y" 88 [email protected] "y"
89 [email protected] ":" 89 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast
index 766de4efe..5c4055e44 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast
@@ -15,7 +15,7 @@ [email protected]
15 [email protected] 15 [email protected]
16 [email protected] "for" 16 [email protected] "for"
17 [email protected] " " 17 [email protected] " "
18 BIN[email protected] 18 IDENT[email protected]
19 [email protected] 19 [email protected]
20 [email protected] "x" 20 [email protected] "x"
21 [email protected] " " 21 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast
index fe1c290c3..866e60ed8 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast
@@ -20,7 +20,7 @@ [email protected]
20 [email protected] 20 [email protected]
21 [email protected] "S" 21 [email protected] "S"
22 [email protected] " " 22 [email protected] " "
23 RECORD_FIELD_PAT_[email protected] 23 RECORD_PAT_[email protected]
24 [email protected] "{" 24 [email protected] "{"
25 [email protected] "}" 25 [email protected] "}"
26 [email protected] " " 26 [email protected] " "
@@ -40,17 +40,17 @@ [email protected]
40 [email protected] 40 [email protected]
41 [email protected] "S" 41 [email protected] "S"
42 [email protected] " " 42 [email protected] " "
43 RECORD_FIELD_PAT_[email protected] 43 RECORD_PAT_[email protected]
44 [email protected] "{" 44 [email protected] "{"
45 [email protected] " " 45 [email protected] " "
46 RECORD_FIELD_PAT@42..43 46 RECORD_PAT_[email protected]
47 BIN[email protected] 47 IDENT[email protected]
48 [email protected] 48 [email protected]
49 [email protected] "f" 49 [email protected] "f"
50 [email protected] "," 50 [email protected] ","
51 [email protected] " " 51 [email protected] " "
52 RECORD_FIELD_PAT@45..54 52 RECORD_PAT_[email protected]
53 BIN[email protected] 53 IDENT[email protected]
54 [email protected] "ref" 54 [email protected] "ref"
55 [email protected] " " 55 [email protected] " "
56 [email protected] "mut" 56 [email protected] "mut"
@@ -76,15 +76,15 @@ [email protected]
76 [email protected] 76 [email protected]
77 [email protected] "S" 77 [email protected] "S"
78 [email protected] " " 78 [email protected] " "
79 RECORD_FIELD_PAT_[email protected] 79 RECORD_PAT_[email protected]
80 [email protected] "{" 80 [email protected] "{"
81 [email protected] " " 81 [email protected] " "
82 RECORD_FIELD_PAT@75..79 82 RECORD_PAT_[email protected]
83 [email protected] 83 [email protected]
84 [email protected] "h" 84 [email protected] "h"
85 [email protected] ":" 85 [email protected] ":"
86 [email protected] " " 86 [email protected] " "
87 PLACEHOLDE[email protected] 87 WILDCARD[email protected]
88 [email protected] "_" 88 [email protected] "_"
89 [email protected] "," 89 [email protected] ","
90 [email protected] " " 90 [email protected] " "
@@ -107,15 +107,15 @@ [email protected]
107 [email protected] 107 [email protected]
108 [email protected] "S" 108 [email protected] "S"
109 [email protected] " " 109 [email protected] " "
110 RECORD_FIELD_PAT_[email protected] 110 RECORD_PAT_[email protected]
111 [email protected] "{" 111 [email protected] "{"
112 [email protected] " " 112 [email protected] " "
113 RECORD_FIELD_PAT@103..107 113 RECORD_PAT_[email protected]
114 [email protected] 114 [email protected]
115 [email protected] "h" 115 [email protected] "h"
116 [email protected] ":" 116 [email protected] ":"
117 [email protected] " " 117 [email protected] " "
118 PLACEHOLDE[email protected] 118 WILDCARD[email protected]
119 [email protected] "_" 119 [email protected] "_"
120 [email protected] "," 120 [email protected] ","
121 [email protected] " " 121 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast
index a80d79563..9b8381619 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast
@@ -51,7 +51,7 @@ [email protected]
51 [email protected] 51 [email protected]
52 [email protected] "|" 52 [email protected] "|"
53 [email protected] 53 [email protected]
54 BIN[email protected] 54 IDENT[email protected]
55 [email protected] 55 [email protected]
56 [email protected] "x" 56 [email protected] "x"
57 [email protected] "|" 57 [email protected] "|"
@@ -70,7 +70,7 @@ [email protected]
70 [email protected] 70 [email protected]
71 [email protected] "|" 71 [email protected] "|"
72 [email protected] 72 [email protected]
73 BIN[email protected] 73 IDENT[email protected]
74 [email protected] 74 [email protected]
75 [email protected] "x" 75 [email protected] "x"
76 [email protected] ":" 76 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast b/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast
index a6a169f1b..c9588025c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast
@@ -46,7 +46,7 @@ [email protected]
46 [email protected] " " 46 [email protected] " "
47 [email protected] "for" 47 [email protected] "for"
48 [email protected] " " 48 [email protected] " "
49 BIN[email protected] 49 IDENT[email protected]
50 [email protected] 50 [email protected]
51 [email protected] "x" 51 [email protected] "x"
52 [email protected] " " 52 [email protected] " "
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 432318da0..f94a2ebde 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
@@ -16,12 +16,12 @@ [email protected]
16 [email protected] " " 16 [email protected] " "
17 [email protected] 17 [email protected]
18 [email protected] "(" 18 [email protected] "("
19 BIN[email protected] 19 IDENT[email protected]
20 [email protected] 20 [email protected]
21 [email protected] "a" 21 [email protected] "a"
22 [email protected] "," 22 [email protected] ","
23 [email protected] " " 23 [email protected] " "
24 BIN[email protected] 24 IDENT[email protected]
25 [email protected] 25 [email protected]
26 [email protected] "b" 26 [email protected] "b"
27 [email protected] "," 27 [email protected] ","
@@ -42,7 +42,7 @@ [email protected]
42 [email protected] " " 42 [email protected] " "
43 [email protected] 43 [email protected]
44 [email protected] "(" 44 [email protected] "("
45 BIN[email protected] 45 IDENT[email protected]
46 [email protected] 46 [email protected]
47 [email protected] "a" 47 [email protected] "a"
48 [email protected] "," 48 [email protected] ","
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast
index 3cd554d45..7b9a498c8 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] 18 [email protected]
19 [email protected] "a" 19 [email protected] "a"
20 [email protected] " " 20 [email protected] " "
@@ -28,7 +28,7 @@ [email protected]
28 [email protected] 28 [email protected]
29 [email protected] "let" 29 [email protected] "let"
30 [email protected] " " 30 [email protected] " "
31 BIN[email protected] 31 IDENT[email protected]
32 [email protected] "mut" 32 [email protected] "mut"
33 [email protected] " " 33 [email protected] " "
34 [email protected] 34 [email protected]
@@ -44,7 +44,7 @@ [email protected]
44 [email protected] 44 [email protected]
45 [email protected] "let" 45 [email protected] "let"
46 [email protected] " " 46 [email protected] " "
47 BIN[email protected] 47 IDENT[email protected]
48 [email protected] "ref" 48 [email protected] "ref"
49 [email protected] " " 49 [email protected] " "
50 [email protected] 50 [email protected]
@@ -60,7 +60,7 @@ [email protected]
60 [email protected] 60 [email protected]
61 [email protected] "let" 61 [email protected] "let"
62 [email protected] " " 62 [email protected] " "
63 BIN[email protected] 63 IDENT[email protected]
64 [email protected] "ref" 64 [email protected] "ref"
65 [email protected] " " 65 [email protected] " "
66 [email protected] "mut" 66 [email protected] "mut"
@@ -78,13 +78,13 @@ [email protected]
78 [email protected] 78 [email protected]
79 [email protected] "let" 79 [email protected] "let"
80 [email protected] " " 80 [email protected] " "
81 BIN[email protected] 81 IDENT[email protected]
82 [email protected] 82 [email protected]
83 [email protected] "e" 83 [email protected] "e"
84 [email protected] " " 84 [email protected] " "
85 [email protected] "@" 85 [email protected] "@"
86 [email protected] " " 86 [email protected] " "
87 PLACEHOLDE[email protected] 87 WILDCARD[email protected]
88 [email protected] "_" 88 [email protected] "_"
89 [email protected] " " 89 [email protected] " "
90 [email protected] "=" 90 [email protected] "="
@@ -97,7 +97,7 @@ [email protected]
97 [email protected] 97 [email protected]
98 [email protected] "let" 98 [email protected] "let"
99 [email protected] " " 99 [email protected] " "
100 BIN[email protected] 100 IDENT[email protected]
101 [email protected] "ref" 101 [email protected] "ref"
102 [email protected] " " 102 [email protected] " "
103 [email protected] "mut" 103 [email protected] "mut"
@@ -107,13 +107,13 @@ [email protected]
107 [email protected] " " 107 [email protected] " "
108 [email protected] "@" 108 [email protected] "@"
109 [email protected] " " 109 [email protected] " "
110 BIN[email protected] 110 IDENT[email protected]
111 [email protected] 111 [email protected]
112 [email protected] "g" 112 [email protected] "g"
113 [email protected] " " 113 [email protected] " "
114 [email protected] "@" 114 [email protected] "@"
115 [email protected] " " 115 [email protected] " "
116 PLACEHOLDE[email protected] 116 WILDCARD[email protected]
117 [email protected] "_" 117 [email protected] "_"
118 [email protected] " " 118 [email protected] " "
119 [email protected] "=" 119 [email protected] "="
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast b/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast
index aaaf803b7..0cf4eb0a5 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast
@@ -22,7 +22,7 @@ [email protected]
22 [email protected] "{" 22 [email protected] "{"
23 [email protected] "\n " 23 [email protected] "\n "
24 [email protected] 24 [email protected]
25 PLACEHOLDE[email protected] 25 WILDCARD[email protected]
26 [email protected] "_" 26 [email protected] "_"
27 [email protected] " " 27 [email protected] " "
28 [email protected] 28 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast b/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
index 4b5f9cdc9..ec7a00f1d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
@@ -64,7 +64,7 @@ [email protected]
64 [email protected] "]" 64 [email protected] "]"
65 [email protected] "\n " 65 [email protected] "\n "
66 [email protected] 66 [email protected]
67 PLACEHOLDE[email protected] 67 WILDCARD[email protected]
68 [email protected] "_" 68 [email protected] "_"
69 [email protected] " " 69 [email protected] " "
70 [email protected] "=>" 70 [email protected] "=>"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast b/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
index 54cc3be3a..97924da05 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
@@ -39,7 +39,7 @@ [email protected]
39 [email protected] ")" 39 [email protected] ")"
40 [email protected] "]" 40 [email protected] "]"
41 [email protected] "\n " 41 [email protected] "\n "
42 PLACEHOLDE[email protected] 42 WILDCARD[email protected]
43 [email protected] "_" 43 [email protected] "_"
44 [email protected] " " 44 [email protected] " "
45 [email protected] "=>" 45 [email protected] "=>"
@@ -67,7 +67,7 @@ [email protected]
67 [email protected] ")" 67 [email protected] ")"
68 [email protected] "]" 68 [email protected] "]"
69 [email protected] "\n " 69 [email protected] "\n "
70 PLACEHOLDE[email protected] 70 WILDCARD[email protected]
71 [email protected] "_" 71 [email protected] "_"
72 [email protected] " " 72 [email protected] " "
73 [email protected] "=>" 73 [email protected] "=>"
@@ -129,7 +129,7 @@ [email protected]
129 [email protected] ")" 129 [email protected] ")"
130 [email protected] "]" 130 [email protected] "]"
131 [email protected] "\n " 131 [email protected] "\n "
132 PLACEHOLDE[email protected] 132 WILDCARD[email protected]
133 [email protected] "_" 133 [email protected] "_"
134 [email protected] " " 134 [email protected] " "
135 [email protected] "=>" 135 [email protected] "=>"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
index edac8d5d9..8d029b592 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
@@ -43,7 +43,7 @@ [email protected]
43 [email protected] 43 [email protected]
44 [email protected] "(" 44 [email protected] "("
45 [email protected] 45 [email protected]
46 PLACEHOLDE[email protected] 46 WILDCARD[email protected]
47 [email protected] "_" 47 [email protected] "_"
48 [email protected] ":" 48 [email protected] ":"
49 [email protected] " " 49 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast
index f155743cf..27c4f141f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast
@@ -16,7 +16,7 @@ [email protected]
16 [email protected] 16 [email protected]
17 [email protected] "(" 17 [email protected] "("
18 [email protected] 18 [email protected]
19 BIN[email protected] 19 IDENT[email protected]
20 [email protected] 20 [email protected]
21 [email protected] "format" 21 [email protected] "format"
22 [email protected] ":" 22 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast b/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast
index d2fd6e567..4c07cefa6 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] 18 [email protected]
19 [email protected] "a" 19 [email protected] "a"
20 [email protected] ";" 20 [email protected] ";"
@@ -22,7 +22,7 @@ [email protected]
22 [email protected] 22 [email protected]
23 [email protected] "let" 23 [email protected] "let"
24 [email protected] " " 24 [email protected] " "
25 BIN[email protected] 25 IDENT[email protected]
26 [email protected] 26 [email protected]
27 [email protected] "b" 27 [email protected] "b"
28 [email protected] ":" 28 [email protected] ":"
@@ -37,7 +37,7 @@ [email protected]
37 [email protected] 37 [email protected]
38 [email protected] "let" 38 [email protected] "let"
39 [email protected] " " 39 [email protected] " "
40 BIN[email protected] 40 IDENT[email protected]
41 [email protected] 41 [email protected]
42 [email protected] "c" 42 [email protected] "c"
43 [email protected] " " 43 [email protected] " "
@@ -50,7 +50,7 @@ [email protected]
50 [email protected] 50 [email protected]
51 [email protected] "let" 51 [email protected] "let"
52 [email protected] " " 52 [email protected] " "
53 BIN[email protected] 53 IDENT[email protected]
54 [email protected] 54 [email protected]
55 [email protected] "d" 55 [email protected] "d"
56 [email protected] ":" 56 [email protected] ":"
@@ -70,7 +70,7 @@ [email protected]
70 [email protected] 70 [email protected]
71 [email protected] "let" 71 [email protected] "let"
72 [email protected] " " 72 [email protected] " "
73 BIN[email protected] 73 IDENT[email protected]
74 [email protected] 74 [email protected]
75 [email protected] "e" 75 [email protected] "e"
76 [email protected] ":" 76 [email protected] ":"
@@ -82,7 +82,7 @@ [email protected]
82 [email protected] 82 [email protected]
83 [email protected] "let" 83 [email protected] "let"
84 [email protected] " " 84 [email protected] " "
85 PLACEHOLDE[email protected] 85 WILDCARD[email protected]
86 [email protected] "_" 86 [email protected] "_"
87 [email protected] ":" 87 [email protected] ":"
88 [email protected] " " 88 [email protected] " "
@@ -99,7 +99,7 @@ [email protected]
99 [email protected] 99 [email protected]
100 [email protected] "let" 100 [email protected] "let"
101 [email protected] " " 101 [email protected] " "
102 BIN[email protected] 102 IDENT[email protected]
103 [email protected] 103 [email protected]
104 [email protected] "f" 104 [email protected] "f"
105 [email protected] " " 105 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast
index 0fe3bf582..ffdffe2f8 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 PLACEHOLDE[email protected] 17 WILDCARD[email protected]
18 [email protected] "_" 18 [email protected] "_"
19 [email protected] " " 19 [email protected] " "
20 [email protected] "=" 20 [email protected] "="
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast
index 48f483813..c55038247 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] 18 [email protected]
19 [email protected] "x" 19 [email protected] "x"
20 [email protected] " " 20 [email protected] " "
@@ -30,7 +30,7 @@ [email protected]
30 [email protected] 30 [email protected]
31 [email protected] "let" 31 [email protected] "let"
32 [email protected] " " 32 [email protected] " "
33 BIN[email protected] 33 IDENT[email protected]
34 [email protected] 34 [email protected]
35 [email protected] "y" 35 [email protected] "y"
36 [email protected] " " 36 [email protected] " "
@@ -56,7 +56,7 @@ [email protected]
56 [email protected] 56 [email protected]
57 [email protected] "let" 57 [email protected] "let"
58 [email protected] " " 58 [email protected] " "
59 BIN[email protected] 59 IDENT[email protected]
60 [email protected] 60 [email protected]
61 [email protected] "z" 61 [email protected] "z"
62 [email protected] " " 62 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
index e0a82df75..3870ec135 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
@@ -37,7 +37,7 @@ [email protected]
37 [email protected] 37 [email protected]
38 [email protected] "(" 38 [email protected] "("
39 [email protected] 39 [email protected]
40 BIN[email protected] 40 IDENT[email protected]
41 [email protected] 41 [email protected]
42 [email protected] "printables" 42 [email protected] "printables"
43 [email protected] ":" 43 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast
index a7f87c020..f7c0e0ab0 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] "mut" 18 [email protected] "mut"
19 [email protected] " " 19 [email protected] " "
20 [email protected] 20 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
index 36fd2997b..495e4c51b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
@@ -16,7 +16,7 @@ [email protected]
16 [email protected] "]" 16 [email protected] "]"
17 [email protected] " " 17 [email protected] " "
18 [email protected] 18 [email protected]
19 BIN[email protected] 19 IDENT[email protected]
20 [email protected] 20 [email protected]
21 [email protected] "pat" 21 [email protected] "pat"
22 [email protected] ":" 22 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast b/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast
index d11019076..36e448c94 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "for" 15 [email protected] "for"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] 18 [email protected]
19 [email protected] "x" 19 [email protected] "x"
20 [email protected] " " 20 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast
index 09fd9e9b8..65887b962 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast
@@ -17,7 +17,7 @@ [email protected]
17 [email protected] 17 [email protected]
18 [email protected] "box" 18 [email protected] "box"
19 [email protected] " " 19 [email protected] " "
20 BIN[email protected] 20 IDENT[email protected]
21 [email protected] 21 [email protected]
22 [email protected] "i" 22 [email protected] "i"
23 [email protected] " " 23 [email protected] " "
@@ -40,19 +40,19 @@ [email protected]
40 [email protected] 40 [email protected]
41 [email protected] "Outer" 41 [email protected] "Outer"
42 [email protected] " " 42 [email protected] " "
43 RECORD_FIELD_PAT_[email protected] 43 RECORD_PAT_[email protected]
44 [email protected] "{" 44 [email protected] "{"
45 [email protected] " " 45 [email protected] " "
46 RECORD_FIELD_PAT@52..57 46 RECORD_PAT_[email protected]
47 [email protected] 47 [email protected]
48 [email protected] "box" 48 [email protected] "box"
49 [email protected] " " 49 [email protected] " "
50 BIN[email protected] 50 IDENT[email protected]
51 [email protected] 51 [email protected]
52 [email protected] "i" 52 [email protected] "i"
53 [email protected] "," 53 [email protected] ","
54 [email protected] " " 54 [email protected] " "
55 RECORD_FIELD_PAT@59..79 55 RECORD_PAT_[email protected]
56 [email protected] 56 [email protected]
57 [email protected] "j" 57 [email protected] "j"
58 [email protected] ":" 58 [email protected] ":"
@@ -71,7 +71,7 @@ [email protected]
71 [email protected] " " 71 [email protected] " "
72 [email protected] 72 [email protected]
73 [email protected] "&" 73 [email protected] "&"
74 BIN[email protected] 74 IDENT[email protected]
75 [email protected] 75 [email protected]
76 [email protected] "x" 76 [email protected] "x"
77 [email protected] ")" 77 [email protected] ")"
@@ -91,7 +91,7 @@ [email protected]
91 [email protected] 91 [email protected]
92 [email protected] "box" 92 [email protected] "box"
93 [email protected] " " 93 [email protected] " "
94 BIN[email protected] 94 IDENT[email protected]
95 [email protected] "ref" 95 [email protected] "ref"
96 [email protected] " " 96 [email protected] " "
97 [email protected] "mut" 97 [email protected] "mut"
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 8d0f1ead5..8fb0db031 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
@@ -35,7 +35,7 @@ [email protected]
35 [email protected] " " 35 [email protected] " "
36 [email protected] 36 [email protected]
37 [email protected] "(" 37 [email protected] "("
38 BIN[email protected] 38 IDENT[email protected]
39 [email protected] 39 [email protected]
40 [email protected] "a" 40 [email protected] "a"
41 [email protected] "," 41 [email protected] ","
@@ -56,7 +56,7 @@ [email protected]
56 [email protected] " " 56 [email protected] " "
57 [email protected] 57 [email protected]
58 [email protected] "(" 58 [email protected] "("
59 BIN[email protected] 59 IDENT[email protected]
60 [email protected] 60 [email protected]
61 [email protected] "a" 61 [email protected] "a"
62 [email protected] "," 62 [email protected] ","
@@ -82,7 +82,7 @@ [email protected]
82 [email protected] 82 [email protected]
83 [email protected] "Tuple" 83 [email protected] "Tuple"
84 [email protected] "(" 84 [email protected] "("
85 BIN[email protected] 85 IDENT[email protected]
86 [email protected] 86 [email protected]
87 [email protected] "a" 87 [email protected] "a"
88 [email protected] "," 88 [email protected] ","
@@ -107,7 +107,7 @@ [email protected]
107 [email protected] 107 [email protected]
108 [email protected] "Tuple" 108 [email protected] "Tuple"
109 [email protected] "(" 109 [email protected] "("
110 BIN[email protected] 110 IDENT[email protected]
111 [email protected] 111 [email protected]
112 [email protected] "a" 112 [email protected] "a"
113 [email protected] "," 113 [email protected] ","
@@ -177,7 +177,7 @@ [email protected]
177 [email protected] ".." 177 [email protected] ".."
178 [email protected] "," 178 [email protected] ","
179 [email protected] " " 179 [email protected] " "
180 BIN[email protected] 180 IDENT[email protected]
181 [email protected] 181 [email protected]
182 [email protected] "a" 182 [email protected] "a"
183 [email protected] "," 183 [email protected] ","
@@ -206,7 +206,7 @@ [email protected]
206 [email protected] ".." 206 [email protected] ".."
207 [email protected] "," 207 [email protected] ","
208 [email protected] " " 208 [email protected] " "
209 BIN[email protected] 209 IDENT[email protected]
210 [email protected] 210 [email protected]
211 [email protected] "a" 211 [email protected] "a"
212 [email protected] "," 212 [email protected] ","
@@ -249,7 +249,7 @@ [email protected]
249 [email protected] " " 249 [email protected] " "
250 [email protected] 250 [email protected]
251 [email protected] "[" 251 [email protected] "["
252 BIN[email protected] 252 IDENT[email protected]
253 [email protected] 253 [email protected]
254 [email protected] "head" 254 [email protected] "head"
255 [email protected] "," 255 [email protected] ","
@@ -270,12 +270,12 @@ [email protected]
270 [email protected] " " 270 [email protected] " "
271 [email protected] 271 [email protected]
272 [email protected] "[" 272 [email protected] "["
273 BIN[email protected] 273 IDENT[email protected]
274 [email protected] 274 [email protected]
275 [email protected] "head" 275 [email protected] "head"
276 [email protected] "," 276 [email protected] ","
277 [email protected] " " 277 [email protected] " "
278 BIN[email protected] 278 IDENT[email protected]
279 [email protected] 279 [email protected]
280 [email protected] "tail" 280 [email protected] "tail"
281 [email protected] " " 281 [email protected] " "
@@ -297,7 +297,7 @@ [email protected]
297 [email protected] " " 297 [email protected] " "
298 [email protected] 298 [email protected]
299 [email protected] "[" 299 [email protected] "["
300 BIN[email protected] 300 IDENT[email protected]
301 [email protected] 301 [email protected]
302 [email protected] "head" 302 [email protected] "head"
303 [email protected] "," 303 [email protected] ","
@@ -306,7 +306,7 @@ [email protected]
306 [email protected] ".." 306 [email protected] ".."
307 [email protected] "," 307 [email protected] ","
308 [email protected] " " 308 [email protected] " "
309 BIN[email protected] 309 IDENT[email protected]
310 [email protected] 310 [email protected]
311 [email protected] "cons" 311 [email protected] "cons"
312 [email protected] "]" 312 [email protected] "]"
@@ -323,12 +323,12 @@ [email protected]
323 [email protected] " " 323 [email protected] " "
324 [email protected] 324 [email protected]
325 [email protected] "[" 325 [email protected] "["
326 BIN[email protected] 326 IDENT[email protected]
327 [email protected] 327 [email protected]
328 [email protected] "head" 328 [email protected] "head"
329 [email protected] "," 329 [email protected] ","
330 [email protected] " " 330 [email protected] " "
331 BIN[email protected] 331 IDENT[email protected]
332 [email protected] 332 [email protected]
333 [email protected] "mid" 333 [email protected] "mid"
334 [email protected] " " 334 [email protected] " "
@@ -338,7 +338,7 @@ [email protected]
338 [email protected] ".." 338 [email protected] ".."
339 [email protected] "," 339 [email protected] ","
340 [email protected] " " 340 [email protected] " "
341 BIN[email protected] 341 IDENT[email protected]
342 [email protected] 342 [email protected]
343 [email protected] "cons" 343 [email protected] "cons"
344 [email protected] "]" 344 [email protected] "]"
@@ -355,7 +355,7 @@ [email protected]
355 [email protected] " " 355 [email protected] " "
356 [email protected] 356 [email protected]
357 [email protected] "[" 357 [email protected] "["
358 BIN[email protected] 358 IDENT[email protected]
359 [email protected] 359 [email protected]
360 [email protected] "head" 360 [email protected] "head"
361 [email protected] "," 361 [email protected] ","
@@ -368,7 +368,7 @@ [email protected]
368 [email protected] ".." 368 [email protected] ".."
369 [email protected] "," 369 [email protected] ","
370 [email protected] " " 370 [email protected] " "
371 BIN[email protected] 371 IDENT[email protected]
372 [email protected] 372 [email protected]
373 [email protected] "cons" 373 [email protected] "cons"
374 [email protected] "]" 374 [email protected] "]"
@@ -385,7 +385,7 @@ [email protected]
385 [email protected] " " 385 [email protected] " "
386 [email protected] 386 [email protected]
387 [email protected] "[" 387 [email protected] "["
388 BIN[email protected] 388 IDENT[email protected]
389 [email protected] 389 [email protected]
390 [email protected] "head" 390 [email protected] "head"
391 [email protected] "," 391 [email protected] ","
@@ -394,12 +394,12 @@ [email protected]
394 [email protected] ".." 394 [email protected] ".."
395 [email protected] "," 395 [email protected] ","
396 [email protected] " " 396 [email protected] " "
397 BIN[email protected] 397 IDENT[email protected]
398 [email protected] 398 [email protected]
399 [email protected] "mid" 399 [email protected] "mid"
400 [email protected] "," 400 [email protected] ","
401 [email protected] " " 401 [email protected] " "
402 BIN[email protected] 402 IDENT[email protected]
403 [email protected] 403 [email protected]
404 [email protected] "tail" 404 [email protected] "tail"
405 [email protected] " " 405 [email protected] " "
@@ -421,7 +421,7 @@ [email protected]
421 [email protected] " " 421 [email protected] " "
422 [email protected] 422 [email protected]
423 [email protected] "[" 423 [email protected] "["
424 BIN[email protected] 424 IDENT[email protected]
425 [email protected] 425 [email protected]
426 [email protected] "head" 426 [email protected] "head"
427 [email protected] "," 427 [email protected] ","
@@ -430,7 +430,7 @@ [email protected]
430 [email protected] ".." 430 [email protected] ".."
431 [email protected] "," 431 [email protected] ","
432 [email protected] " " 432 [email protected] " "
433 BIN[email protected] 433 IDENT[email protected]
434 [email protected] 434 [email protected]
435 [email protected] "mid" 435 [email protected] "mid"
436 [email protected] "," 436 [email protected] ","
@@ -439,7 +439,7 @@ [email protected]
439 [email protected] ".." 439 [email protected] ".."
440 [email protected] "," 440 [email protected] ","
441 [email protected] " " 441 [email protected] " "
442 BIN[email protected] 442 IDENT[email protected]
443 [email protected] 443 [email protected]
444 [email protected] "cons" 444 [email protected] "cons"
445 [email protected] "]" 445 [email protected] "]"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast
index b41ef4098..925409bdf 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast
@@ -20,10 +20,10 @@ [email protected]
20 [email protected] 20 [email protected]
21 [email protected] "S" 21 [email protected] "S"
22 [email protected] " " 22 [email protected] " "
23 RECORD_FIELD_PAT_[email protected] 23 RECORD_PAT_[email protected]
24 [email protected] "{" 24 [email protected] "{"
25 [email protected] " " 25 [email protected] " "
26 RECORD_FIELD_PAT@23..27 26 RECORD_PAT_[email protected]
27 [email protected] 27 [email protected]
28 [email protected] "0" 28 [email protected] "0"
29 [email protected] ":" 29 [email protected] ":"
@@ -50,10 +50,10 @@ [email protected]
50 [email protected] 50 [email protected]
51 [email protected] "S" 51 [email protected] "S"
52 [email protected] " " 52 [email protected] " "
53 RECORD_FIELD_PAT_[email protected] 53 RECORD_PAT_[email protected]
54 [email protected] "{" 54 [email protected] "{"
55 [email protected] " " 55 [email protected] " "
56 RECORD_FIELD_PAT@48..52 56 RECORD_PAT_[email protected]
57 [email protected] 57 [email protected]
58 [email protected] "x" 58 [email protected] "x"
59 [email protected] ":" 59 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast b/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast
index 2d0c83458..ca739825a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 PLACEHOLDE[email protected] 17 WILDCARD[email protected]
18 [email protected] "_" 18 [email protected] "_"
19 [email protected] " " 19 [email protected] " "
20 [email protected] "=" 20 [email protected] "="
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast
index 69b4d73d7..c48fed03e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast
@@ -38,7 +38,7 @@ [email protected]
38 [email protected] 38 [email protected]
39 [email protected] "(" 39 [email protected] "("
40 [email protected] 40 [email protected]
41 BIN[email protected] 41 IDENT[email protected]
42 [email protected] 42 [email protected]
43 [email protected] "baz" 43 [email protected] "baz"
44 [email protected] ":" 44 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast
index 0a9f7c137..31671b420 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] 18 [email protected]
19 [email protected] "foo" 19 [email protected] "foo"
20 [email protected] " " 20 [email protected] " "
@@ -24,13 +24,13 @@ [email protected]
24 [email protected] 24 [email protected]
25 [email protected] "|" 25 [email protected] "|"
26 [email protected] 26 [email protected]
27 BIN[email protected] 27 IDENT[email protected]
28 [email protected] 28 [email protected]
29 [email protected] "bar" 29 [email protected] "bar"
30 [email protected] "," 30 [email protected] ","
31 [email protected] " " 31 [email protected] " "
32 [email protected] 32 [email protected]
33 BIN[email protected] 33 IDENT[email protected]
34 [email protected] 34 [email protected]
35 [email protected] "baz" 35 [email protected] "baz"
36 [email protected] ":" 36 [email protected] ":"
@@ -43,7 +43,7 @@ [email protected]
43 [email protected] "," 43 [email protected] ","
44 [email protected] " " 44 [email protected] " "
45 [email protected] 45 [email protected]
46 BIN[email protected] 46 IDENT[email protected]
47 [email protected] 47 [email protected]
48 [email protected] "qux" 48 [email protected] "qux"
49 [email protected] ":" 49 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast
index 3b8dfefc6..508b4aca7 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast
@@ -9,12 +9,12 @@ [email protected]
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
11 [email protected] "(" 11 [email protected] "("
12 BIN[email protected] 12 IDENT[email protected]
13 [email protected] 13 [email protected]
14 [email protected] "x" 14 [email protected] "x"
15 [email protected] "," 15 [email protected] ","
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] 18 [email protected]
19 [email protected] "y" 19 [email protected] "y"
20 [email protected] ")" 20 [email protected] ")"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast b/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast
index 4d4c41f1a..88a513cee 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast
@@ -25,12 +25,12 @@ [email protected]
25 [email protected] 25 [email protected]
26 [email protected] "(" 26 [email protected] "("
27 [email protected] 27 [email protected]
28 PLACEHOLDE[email protected] 28 WILDCARD[email protected]
29 [email protected] "_" 29 [email protected] "_"
30 [email protected] " " 30 [email protected] " "
31 [email protected] "|" 31 [email protected] "|"
32 [email protected] " " 32 [email protected] " "
33 PLACEHOLDE[email protected] 33 WILDCARD[email protected]
34 [email protected] "_" 34 [email protected] "_"
35 [email protected] ")" 35 [email protected] ")"
36 [email protected] " " 36 [email protected] " "
@@ -47,12 +47,12 @@ [email protected]
47 [email protected] 47 [email protected]
48 [email protected] "(" 48 [email protected] "("
49 [email protected] 49 [email protected]
50 PLACEHOLDE[email protected] 50 WILDCARD[email protected]
51 [email protected] "_" 51 [email protected] "_"
52 [email protected] " " 52 [email protected] " "
53 [email protected] "|" 53 [email protected] "|"
54 [email protected] " " 54 [email protected] " "
55 PLACEHOLDE[email protected] 55 WILDCARD[email protected]
56 [email protected] "_" 56 [email protected] "_"
57 [email protected] ")" 57 [email protected] ")"
58 [email protected] " " 58 [email protected] " "
@@ -67,12 +67,12 @@ [email protected]
67 [email protected] 67 [email protected]
68 [email protected] "(" 68 [email protected] "("
69 [email protected] 69 [email protected]
70 PLACEHOLDE[email protected] 70 WILDCARD[email protected]
71 [email protected] "_" 71 [email protected] "_"
72 [email protected] " " 72 [email protected] " "
73 [email protected] "|" 73 [email protected] "|"
74 [email protected] " " 74 [email protected] " "
75 PLACEHOLDE[email protected] 75 WILDCARD[email protected]
76 [email protected] "_" 76 [email protected] "_"
77 [email protected] "," 77 [email protected] ","
78 [email protected] ")" 78 [email protected] ")"
@@ -88,12 +88,12 @@ [email protected]
88 [email protected] 88 [email protected]
89 [email protected] "[" 89 [email protected] "["
90 [email protected] 90 [email protected]
91 PLACEHOLDE[email protected] 91 WILDCARD[email protected]
92 [email protected] "_" 92 [email protected] "_"
93 [email protected] " " 93 [email protected] " "
94 [email protected] "|" 94 [email protected] "|"
95 [email protected] " " 95 [email protected] " "
96 PLACEHOLDE[email protected] 96 WILDCARD[email protected]
97 [email protected] "_" 97 [email protected] "_"
98 [email protected] "," 98 [email protected] ","
99 [email protected] "]" 99 [email protected] "]"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast
index ccca045b6..3079e5bf8 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast
@@ -12,7 +12,7 @@ [email protected]
12 [email protected] 12 [email protected]
13 [email protected] "(" 13 [email protected] "("
14 [email protected] 14 [email protected]
15 PLACEHOLDE[email protected] 15 WILDCARD[email protected]
16 [email protected] "_" 16 [email protected] "_"
17 [email protected] ":" 17 [email protected] ":"
18 [email protected] " " 18 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast b/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast
index efe018484..3271a4695 100644
--- a/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] 18 [email protected]
19 [email protected] "x" 19 [email protected] "x"
20 [email protected] " " 20 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast b/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast
index 47e46f009..a732f11c4 100644
--- a/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast
@@ -67,7 +67,7 @@ [email protected]
67 [email protected] 67 [email protected]
68 [email protected] "let" 68 [email protected] "let"
69 [email protected] " " 69 [email protected] " "
70 BIN[email protected] 70 IDENT[email protected]
71 [email protected] 71 [email protected]
72 [email protected] "x" 72 [email protected] "x"
73 [email protected] " " 73 [email protected] " "
@@ -135,7 +135,7 @@ [email protected]
135 [email protected] 135 [email protected]
136 [email protected] "let" 136 [email protected] "let"
137 [email protected] " " 137 [email protected] " "
138 BIN[email protected] 138 IDENT[email protected]
139 [email protected] 139 [email protected]
140 [email protected] "x" 140 [email protected] "x"
141 [email protected] " " 141 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast b/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast
index 93f766149..80f7f5942 100644
--- a/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 PLACEHOLDE[email protected] 17 WILDCARD[email protected]
18 [email protected] "_" 18 [email protected] "_"
19 [email protected] " " 19 [email protected] " "
20 [email protected] "=" 20 [email protected] "="
@@ -26,7 +26,7 @@ [email protected]
26 [email protected] 26 [email protected]
27 [email protected] "let" 27 [email protected] "let"
28 [email protected] " " 28 [email protected] " "
29 PLACEHOLDE[email protected] 29 WILDCARD[email protected]
30 [email protected] "_" 30 [email protected] "_"
31 [email protected] " " 31 [email protected] " "
32 [email protected] "=" 32 [email protected] "="
@@ -38,7 +38,7 @@ [email protected]
38 [email protected] 38 [email protected]
39 [email protected] "let" 39 [email protected] "let"
40 [email protected] " " 40 [email protected] " "
41 PLACEHOLDE[email protected] 41 WILDCARD[email protected]
42 [email protected] "_" 42 [email protected] "_"
43 [email protected] " " 43 [email protected] " "
44 [email protected] "=" 44 [email protected] "="
@@ -50,7 +50,7 @@ [email protected]
50 [email protected] 50 [email protected]
51 [email protected] "let" 51 [email protected] "let"
52 [email protected] " " 52 [email protected] " "
53 PLACEHOLDE[email protected] 53 WILDCARD[email protected]
54 [email protected] "_" 54 [email protected] "_"
55 [email protected] " " 55 [email protected] " "
56 [email protected] "=" 56 [email protected] "="
diff --git a/crates/ra_syntax/test_data/parser/ok/0030_traits.rast b/crates/ra_syntax/test_data/parser/ok/0030_traits.rast
index 280d4cb82..d07c6683a 100644
--- a/crates/ra_syntax/test_data/parser/ok/0030_traits.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0030_traits.rast
@@ -37,7 +37,7 @@ [email protected]
37 [email protected] 37 [email protected]
38 [email protected] "(" 38 [email protected] "("
39 [email protected] 39 [email protected]
40 BIN[email protected] 40 IDENT[email protected]
41 [email protected] 41 [email protected]
42 [email protected] "x" 42 [email protected] "x"
43 [email protected] ":" 43 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/ok/0031_extern.rast b/crates/ra_syntax/test_data/parser/ok/0031_extern.rast
index 0509f7504..79ea098a2 100644
--- a/crates/ra_syntax/test_data/parser/ok/0031_extern.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0031_extern.rast
@@ -17,7 +17,7 @@ [email protected]
17 [email protected] 17 [email protected]
18 [email protected] "(" 18 [email protected] "("
19 [email protected] 19 [email protected]
20 BIN[email protected] 20 IDENT[email protected]
21 [email protected] 21 [email protected]
22 [email protected] "domain" 22 [email protected] "domain"
23 [email protected] ":" 23 [email protected] ":"
@@ -31,7 +31,7 @@ [email protected]
31 [email protected] "," 31 [email protected] ","
32 [email protected] " " 32 [email protected] " "
33 [email protected] 33 [email protected]
34 BIN[email protected] 34 IDENT[email protected]
35 [email protected] 35 [email protected]
36 [email protected] "ty" 36 [email protected] "ty"
37 [email protected] ":" 37 [email protected] ":"
@@ -45,7 +45,7 @@ [email protected]
45 [email protected] "," 45 [email protected] ","
46 [email protected] " " 46 [email protected] " "
47 [email protected] 47 [email protected]
48 BIN[email protected] 48 IDENT[email protected]
49 [email protected] 49 [email protected]
50 [email protected] "protocol" 50 [email protected] "protocol"
51 [email protected] ":" 51 [email protected] ":"
@@ -80,7 +80,7 @@ [email protected]
80 [email protected] 80 [email protected]
81 [email protected] "(" 81 [email protected] "("
82 [email protected] 82 [email protected]
83 BIN[email protected] 83 IDENT[email protected]
84 [email protected] 84 [email protected]
85 [email protected] "fd" 85 [email protected] "fd"
86 [email protected] ":" 86 [email protected] ":"
@@ -94,7 +94,7 @@ [email protected]
94 [email protected] "," 94 [email protected] ","
95 [email protected] " " 95 [email protected] " "
96 [email protected] 96 [email protected]
97 BIN[email protected] 97 IDENT[email protected]
98 [email protected] 98 [email protected]
99 [email protected] "addr" 99 [email protected] "addr"
100 [email protected] ":" 100 [email protected] ":"
@@ -111,7 +111,7 @@ [email protected]
111 [email protected] "," 111 [email protected] ","
112 [email protected] " " 112 [email protected] " "
113 [email protected] 113 [email protected]
114 BIN[email protected] 114 IDENT[email protected]
115 [email protected] 115 [email protected]
116 [email protected] "len" 116 [email protected] "len"
117 [email protected] ":" 117 [email protected] ":"
@@ -145,7 +145,7 @@ [email protected]
145 [email protected] 145 [email protected]
146 [email protected] "(" 146 [email protected] "("
147 [email protected] 147 [email protected]
148 BIN[email protected] 148 IDENT[email protected]
149 [email protected] 149 [email protected]
150 [email protected] "socket" 150 [email protected] "socket"
151 [email protected] ":" 151 [email protected] ":"
@@ -159,7 +159,7 @@ [email protected]
159 [email protected] "," 159 [email protected] ","
160 [email protected] " " 160 [email protected] " "
161 [email protected] 161 [email protected]
162 BIN[email protected] 162 IDENT[email protected]
163 [email protected] 163 [email protected]
164 [email protected] "address" 164 [email protected] "address"
165 [email protected] ":" 165 [email protected] ":"
@@ -176,7 +176,7 @@ [email protected]
176 [email protected] "," 176 [email protected] ","
177 [email protected] "\n " 177 [email protected] "\n "
178 [email protected] 178 [email protected]
179 BIN[email protected] 179 IDENT[email protected]
180 [email protected] 180 [email protected]
181 [email protected] "len" 181 [email protected] "len"
182 [email protected] ":" 182 [email protected] ":"
@@ -210,7 +210,7 @@ [email protected]
210 [email protected] 210 [email protected]
211 [email protected] "(" 211 [email protected] "("
212 [email protected] 212 [email protected]
213 BIN[email protected] 213 IDENT[email protected]
214 [email protected] 214 [email protected]
215 [email protected] "socket" 215 [email protected] "socket"
216 [email protected] ":" 216 [email protected] ":"
@@ -224,7 +224,7 @@ [email protected]
224 [email protected] "," 224 [email protected] ","
225 [email protected] " " 225 [email protected] " "
226 [email protected] 226 [email protected]
227 BIN[email protected] 227 IDENT[email protected]
228 [email protected] 228 [email protected]
229 [email protected] "backlog" 229 [email protected] "backlog"
230 [email protected] ":" 230 [email protected] ":"
@@ -259,7 +259,7 @@ [email protected]
259 [email protected] 259 [email protected]
260 [email protected] "(" 260 [email protected] "("
261 [email protected] 261 [email protected]
262 BIN[email protected] 262 IDENT[email protected]
263 [email protected] 263 [email protected]
264 [email protected] "socket" 264 [email protected] "socket"
265 [email protected] ":" 265 [email protected] ":"
@@ -273,7 +273,7 @@ [email protected]
273 [email protected] "," 273 [email protected] ","
274 [email protected] " " 274 [email protected] " "
275 [email protected] 275 [email protected]
276 BIN[email protected] 276 IDENT[email protected]
277 [email protected] 277 [email protected]
278 [email protected] "address" 278 [email protected] "address"
279 [email protected] ":" 279 [email protected] ":"
@@ -290,7 +290,7 @@ [email protected]
290 [email protected] "," 290 [email protected] ","
291 [email protected] "\n " 291 [email protected] "\n "
292 [email protected] 292 [email protected]
293 BIN[email protected] 293 IDENT[email protected]
294 [email protected] 294 [email protected]
295 [email protected] "address_len" 295 [email protected] "address_len"
296 [email protected] ":" 296 [email protected] ":"
@@ -328,7 +328,7 @@ [email protected]
328 [email protected] 328 [email protected]
329 [email protected] "(" 329 [email protected] "("
330 [email protected] 330 [email protected]
331 BIN[email protected] 331 IDENT[email protected]
332 [email protected] 332 [email protected]
333 [email protected] "sockfd" 333 [email protected] "sockfd"
334 [email protected] ":" 334 [email protected] ":"
@@ -342,7 +342,7 @@ [email protected]
342 [email protected] "," 342 [email protected] ","
343 [email protected] "\n " 343 [email protected] "\n "
344 [email protected] 344 [email protected]
345 BIN[email protected] 345 IDENT[email protected]
346 [email protected] 346 [email protected]
347 [email protected] "level" 347 [email protected] "level"
348 [email protected] ":" 348 [email protected] ":"
@@ -356,7 +356,7 @@ [email protected]
356 [email protected] "," 356 [email protected] ","
357 [email protected] "\n " 357 [email protected] "\n "
358 [email protected] 358 [email protected]
359 BIN[email protected] 359 IDENT[email protected]
360 [email protected] 360 [email protected]
361 [email protected] "optname" 361 [email protected] "optname"
362 [email protected] ":" 362 [email protected] ":"
@@ -370,7 +370,7 @@ [email protected]
370 [email protected] "," 370 [email protected] ","
371 [email protected] "\n " 371 [email protected] "\n "
372 [email protected] 372 [email protected]
373 BIN[email protected] 373 IDENT[email protected]
374 [email protected] 374 [email protected]
375 [email protected] "optval" 375 [email protected] "optval"
376 [email protected] ":" 376 [email protected] ":"
@@ -388,7 +388,7 @@ [email protected]
388 [email protected] "," 388 [email protected] ","
389 [email protected] "\n " 389 [email protected] "\n "
390 [email protected] 390 [email protected]
391 BIN[email protected] 391 IDENT[email protected]
392 [email protected] 392 [email protected]
393 [email protected] "optlen" 393 [email protected] "optlen"
394 [email protected] ":" 394 [email protected] ":"
@@ -427,7 +427,7 @@ [email protected]
427 [email protected] 427 [email protected]
428 [email protected] "(" 428 [email protected] "("
429 [email protected] 429 [email protected]
430 BIN[email protected] 430 IDENT[email protected]
431 [email protected] 431 [email protected]
432 [email protected] "socket" 432 [email protected] "socket"
433 [email protected] ":" 433 [email protected] ":"
@@ -441,7 +441,7 @@ [email protected]
441 [email protected] "," 441 [email protected] ","
442 [email protected] " " 442 [email protected] " "
443 [email protected] 443 [email protected]
444 BIN[email protected] 444 IDENT[email protected]
445 [email protected] 445 [email protected]
446 [email protected] "level" 446 [email protected] "level"
447 [email protected] ":" 447 [email protected] ":"
@@ -455,7 +455,7 @@ [email protected]
455 [email protected] "," 455 [email protected] ","
456 [email protected] " " 456 [email protected] " "
457 [email protected] 457 [email protected]
458 BIN[email protected] 458 IDENT[email protected]
459 [email protected] 459 [email protected]
460 [email protected] "name" 460 [email protected] "name"
461 [email protected] ":" 461 [email protected] ":"
@@ -469,7 +469,7 @@ [email protected]
469 [email protected] "," 469 [email protected] ","
470 [email protected] "\n " 470 [email protected] "\n "
471 [email protected] 471 [email protected]
472 BIN[email protected] 472 IDENT[email protected]
473 [email protected] 473 [email protected]
474 [email protected] "value" 474 [email protected] "value"
475 [email protected] ":" 475 [email protected] ":"
@@ -487,7 +487,7 @@ [email protected]
487 [email protected] "," 487 [email protected] ","
488 [email protected] "\n " 488 [email protected] "\n "
489 [email protected] 489 [email protected]
490 BIN[email protected] 490 IDENT[email protected]
491 [email protected] 491 [email protected]
492 [email protected] "option_len" 492 [email protected] "option_len"
493 [email protected] ":" 493 [email protected] ":"
@@ -521,7 +521,7 @@ [email protected]
521 [email protected] 521 [email protected]
522 [email protected] "(" 522 [email protected] "("
523 [email protected] 523 [email protected]
524 BIN[email protected] 524 IDENT[email protected]
525 [email protected] 525 [email protected]
526 [email protected] "socket" 526 [email protected] "socket"
527 [email protected] ":" 527 [email protected] ":"
@@ -535,7 +535,7 @@ [email protected]
535 [email protected] "," 535 [email protected] ","
536 [email protected] " " 536 [email protected] " "
537 [email protected] 537 [email protected]
538 BIN[email protected] 538 IDENT[email protected]
539 [email protected] 539 [email protected]
540 [email protected] "address" 540 [email protected] "address"
541 [email protected] ":" 541 [email protected] ":"
@@ -552,7 +552,7 @@ [email protected]
552 [email protected] "," 552 [email protected] ","
553 [email protected] "\n " 553 [email protected] "\n "
554 [email protected] 554 [email protected]
555 BIN[email protected] 555 IDENT[email protected]
556 [email protected] 556 [email protected]
557 [email protected] "address_len" 557 [email protected] "address_len"
558 [email protected] ":" 558 [email protected] ":"
@@ -590,7 +590,7 @@ [email protected]
590 [email protected] 590 [email protected]
591 [email protected] "(" 591 [email protected] "("
592 [email protected] 592 [email protected]
593 BIN[email protected] 593 IDENT[email protected]
594 [email protected] 594 [email protected]
595 [email protected] "socket" 595 [email protected] "socket"
596 [email protected] ":" 596 [email protected] ":"
@@ -604,7 +604,7 @@ [email protected]
604 [email protected] "," 604 [email protected] ","
605 [email protected] " " 605 [email protected] " "
606 [email protected] 606 [email protected]
607 BIN[email protected] 607 IDENT[email protected]
608 [email protected] 608 [email protected]
609 [email protected] "buf" 609 [email protected] "buf"
610 [email protected] ":" 610 [email protected] ":"
@@ -622,7 +622,7 @@ [email protected]
622 [email protected] "," 622 [email protected] ","
623 [email protected] " " 623 [email protected] " "
624 [email protected] 624 [email protected]
625 BIN[email protected] 625 IDENT[email protected]
626 [email protected] 626 [email protected]
627 [email protected] "len" 627 [email protected] "len"
628 [email protected] ":" 628 [email protected] ":"
@@ -636,7 +636,7 @@ [email protected]
636 [email protected] "," 636 [email protected] ","
637 [email protected] "\n " 637 [email protected] "\n "
638 [email protected] 638 [email protected]
639 BIN[email protected] 639 IDENT[email protected]
640 [email protected] 640 [email protected]
641 [email protected] "flags" 641 [email protected] "flags"
642 [email protected] ":" 642 [email protected] ":"
@@ -650,7 +650,7 @@ [email protected]
650 [email protected] "," 650 [email protected] ","
651 [email protected] " " 651 [email protected] " "
652 [email protected] 652 [email protected]
653 BIN[email protected] 653 IDENT[email protected]
654 [email protected] 654 [email protected]
655 [email protected] "addr" 655 [email protected] "addr"
656 [email protected] ":" 656 [email protected] ":"
@@ -667,7 +667,7 @@ [email protected]
667 [email protected] "," 667 [email protected] ","
668 [email protected] "\n " 668 [email protected] "\n "
669 [email protected] 669 [email protected]
670 BIN[email protected] 670 IDENT[email protected]
671 [email protected] 671 [email protected]
672 [email protected] "addrlen" 672 [email protected] "addrlen"
673 [email protected] ":" 673 [email protected] ":"
@@ -701,7 +701,7 @@ [email protected]
701 [email protected] 701 [email protected]
702 [email protected] "(" 702 [email protected] "("
703 [email protected] 703 [email protected]
704 BIN[email protected] 704 IDENT[email protected]
705 [email protected] 705 [email protected]
706 [email protected] "socket" 706 [email protected] "socket"
707 [email protected] ":" 707 [email protected] ":"
@@ -715,7 +715,7 @@ [email protected]
715 [email protected] "," 715 [email protected] ","
716 [email protected] " " 716 [email protected] " "
717 [email protected] 717 [email protected]
718 BIN[email protected] 718 IDENT[email protected]
719 [email protected] 719 [email protected]
720 [email protected] "buf" 720 [email protected] "buf"
721 [email protected] ":" 721 [email protected] ":"
@@ -733,7 +733,7 @@ [email protected]
733 [email protected] "," 733 [email protected] ","
734 [email protected] " " 734 [email protected] " "
735 [email protected] 735 [email protected]
736 BIN[email protected] 736 IDENT[email protected]
737 [email protected] 737 [email protected]
738 [email protected] "len" 738 [email protected] "len"
739 [email protected] ":" 739 [email protected] ":"
@@ -747,7 +747,7 @@ [email protected]
747 [email protected] "," 747 [email protected] ","
748 [email protected] "\n " 748 [email protected] "\n "
749 [email protected] 749 [email protected]
750 BIN[email protected] 750 IDENT[email protected]
751 [email protected] 751 [email protected]
752 [email protected] "flags" 752 [email protected] "flags"
753 [email protected] ":" 753 [email protected] ":"
@@ -782,7 +782,7 @@ [email protected]
782 [email protected] 782 [email protected]
783 [email protected] "(" 783 [email protected] "("
784 [email protected] 784 [email protected]
785 BIN[email protected] 785 IDENT[email protected]
786 [email protected] 786 [email protected]
787 [email protected] "socket" 787 [email protected] "socket"
788 [email protected] ":" 788 [email protected] ":"
@@ -796,7 +796,7 @@ [email protected]
796 [email protected] "," 796 [email protected] ","
797 [email protected] " " 797 [email protected] " "
798 [email protected] 798 [email protected]
799 BIN[email protected] 799 IDENT[email protected]
800 [email protected] 800 [email protected]
801 [email protected] "buf" 801 [email protected] "buf"
802 [email protected] ":" 802 [email protected] ":"
@@ -814,7 +814,7 @@ [email protected]
814 [email protected] "," 814 [email protected] ","
815 [email protected] " " 815 [email protected] " "
816 [email protected] 816 [email protected]
817 BIN[email protected] 817 IDENT[email protected]
818 [email protected] 818 [email protected]
819 [email protected] "len" 819 [email protected] "len"
820 [email protected] ":" 820 [email protected] ":"
@@ -828,7 +828,7 @@ [email protected]
828 [email protected] "," 828 [email protected] ","
829 [email protected] "\n " 829 [email protected] "\n "
830 [email protected] 830 [email protected]
831 BIN[email protected] 831 IDENT[email protected]
832 [email protected] 832 [email protected]
833 [email protected] "flags" 833 [email protected] "flags"
834 [email protected] ":" 834 [email protected] ":"
@@ -842,7 +842,7 @@ [email protected]
842 [email protected] "," 842 [email protected] ","
843 [email protected] " " 843 [email protected] " "
844 [email protected] 844 [email protected]
845 BIN[email protected] 845 IDENT[email protected]
846 [email protected] 846 [email protected]
847 [email protected] "addr" 847 [email protected] "addr"
848 [email protected] ":" 848 [email protected] ":"
@@ -860,7 +860,7 @@ [email protected]
860 [email protected] "," 860 [email protected] ","
861 [email protected] "\n " 861 [email protected] "\n "
862 [email protected] 862 [email protected]
863 BIN[email protected] 863 IDENT[email protected]
864 [email protected] 864 [email protected]
865 [email protected] "addrlen" 865 [email protected] "addrlen"
866 [email protected] ":" 866 [email protected] ":"
@@ -899,7 +899,7 @@ [email protected]
899 [email protected] 899 [email protected]
900 [email protected] "(" 900 [email protected] "("
901 [email protected] 901 [email protected]
902 BIN[email protected] 902 IDENT[email protected]
903 [email protected] 903 [email protected]
904 [email protected] "socket" 904 [email protected] "socket"
905 [email protected] ":" 905 [email protected] ":"
@@ -913,7 +913,7 @@ [email protected]
913 [email protected] "," 913 [email protected] ","
914 [email protected] " " 914 [email protected] " "
915 [email protected] 915 [email protected]
916 BIN[email protected] 916 IDENT[email protected]
917 [email protected] 917 [email protected]
918 [email protected] "buf" 918 [email protected] "buf"
919 [email protected] ":" 919 [email protected] ":"
@@ -931,7 +931,7 @@ [email protected]
931 [email protected] "," 931 [email protected] ","
932 [email protected] " " 932 [email protected] " "
933 [email protected] 933 [email protected]
934 BIN[email protected] 934 IDENT[email protected]
935 [email protected] 935 [email protected]
936 [email protected] "len" 936 [email protected] "len"
937 [email protected] ":" 937 [email protected] ":"
@@ -945,7 +945,7 @@ [email protected]
945 [email protected] "," 945 [email protected] ","
946 [email protected] "\n " 946 [email protected] "\n "
947 [email protected] 947 [email protected]
948 BIN[email protected] 948 IDENT[email protected]
949 [email protected] 949 [email protected]
950 [email protected] "flags" 950 [email protected] "flags"
951 [email protected] ":" 951 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast b/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast
index b3f29638c..88800ca7a 100644
--- a/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast
@@ -127,7 +127,7 @@ [email protected]
127 [email protected] 127 [email protected]
128 [email protected] "let" 128 [email protected] "let"
129 [email protected] " " 129 [email protected] " "
130 BIN[email protected] 130 IDENT[email protected]
131 [email protected] 131 [email protected]
132 [email protected] "result" 132 [email protected] "result"
133 [email protected] " " 133 [email protected] " "
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 0e0c8c9dc..ac9c1fa79 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
@@ -144,7 +144,7 @@ [email protected]
144 [email protected] 144 [email protected]
145 [email protected] "let" 145 [email protected] "let"
146 [email protected] " " 146 [email protected] " "
147 BIN[email protected] 147 IDENT[email protected]
148 [email protected] 148 [email protected]
149 [email protected] "_x" 149 [email protected] "_x"
150 [email protected] ":" 150 [email protected] ":"
@@ -186,7 +186,7 @@ [email protected]
186 [email protected] 186 [email protected]
187 [email protected] "(" 187 [email protected] "("
188 [email protected] 188 [email protected]
189 BIN[email protected] 189 IDENT[email protected]
190 [email protected] 190 [email protected]
191 [email protected] "_x" 191 [email protected] "_x"
192 [email protected] ":" 192 [email protected] ":"
@@ -237,7 +237,7 @@ [email protected]
237 [email protected] 237 [email protected]
238 [email protected] "(" 238 [email protected] "("
239 [email protected] 239 [email protected]
240 BIN[email protected] 240 IDENT[email protected]
241 [email protected] 241 [email protected]
242 [email protected] "x" 242 [email protected] "x"
243 [email protected] ":" 243 [email protected] ":"
@@ -314,7 +314,7 @@ [email protected]
314 [email protected] 314 [email protected]
315 [email protected] "let" 315 [email protected] "let"
316 [email protected] " " 316 [email protected] " "
317 BIN[email protected] 317 IDENT[email protected]
318 [email protected] 318 [email protected]
319 [email protected] "i" 319 [email protected] "i"
320 [email protected] " " 320 [email protected] " "
@@ -343,7 +343,7 @@ [email protected]
343 [email protected] 343 [email protected]
344 [email protected] "let" 344 [email protected] "let"
345 [email protected] " " 345 [email protected] " "
346 BIN[email protected] 346 IDENT[email protected]
347 [email protected] 347 [email protected]
348 [email protected] "dont" 348 [email protected] "dont"
349 [email protected] " " 349 [email protected] " "
@@ -506,7 +506,7 @@ [email protected]
506 [email protected] "}" 506 [email protected] "}"
507 [email protected] "\n " 507 [email protected] "\n "
508 [email protected] 508 [email protected]
509 PLACEHOLDE[email protected] 509 WILDCARD[email protected]
510 [email protected] "_" 510 [email protected] "_"
511 [email protected] " " 511 [email protected] " "
512 [email protected] "=>" 512 [email protected] "=>"
@@ -587,7 +587,7 @@ [email protected]
587 [email protected] 587 [email protected]
588 [email protected] "let" 588 [email protected] "let"
589 [email protected] " " 589 [email protected] " "
590 BIN[email protected] 590 IDENT[email protected]
591 [email protected] "mut" 591 [email protected] "mut"
592 [email protected] " " 592 [email protected] " "
593 [email protected] 593 [email protected]
@@ -604,7 +604,7 @@ [email protected]
604 [email protected] 604 [email protected]
605 [email protected] "let" 605 [email protected] "let"
606 [email protected] " " 606 [email protected] " "
607 BIN[email protected] 607 IDENT[email protected]
608 [email protected] "mut" 608 [email protected] "mut"
609 [email protected] " " 609 [email protected] " "
610 [email protected] 610 [email protected]
@@ -649,7 +649,7 @@ [email protected]
649 [email protected] 649 [email protected]
650 [email protected] "let" 650 [email protected] "let"
651 [email protected] " " 651 [email protected] " "
652 BIN[email protected] 652 IDENT[email protected]
653 [email protected] "mut" 653 [email protected] "mut"
654 [email protected] " " 654 [email protected] " "
655 [email protected] 655 [email protected]
@@ -694,7 +694,7 @@ [email protected]
694 [email protected] 694 [email protected]
695 [email protected] "let" 695 [email protected] "let"
696 [email protected] " " 696 [email protected] " "
697 BIN[email protected] 697 IDENT[email protected]
698 [email protected] 698 [email protected]
699 [email protected] "_a" 699 [email protected] "_a"
700 [email protected] " " 700 [email protected] " "
@@ -737,7 +737,7 @@ [email protected]
737 [email protected] 737 [email protected]
738 [email protected] "let" 738 [email protected] "let"
739 [email protected] " " 739 [email protected] " "
740 BIN[email protected] 740 IDENT[email protected]
741 [email protected] 741 [email protected]
742 [email protected] "_b" 742 [email protected] "_b"
743 [email protected] " " 743 [email protected] " "
@@ -859,7 +859,7 @@ [email protected]
859 [email protected] 859 [email protected]
860 [email protected] "let" 860 [email protected] "let"
861 [email protected] " " 861 [email protected] " "
862 BIN[email protected] 862 IDENT[email protected]
863 [email protected] 863 [email protected]
864 [email protected] "_a" 864 [email protected] "_a"
865 [email protected] " " 865 [email protected] " "
@@ -906,7 +906,7 @@ [email protected]
906 [email protected] 906 [email protected]
907 [email protected] "let" 907 [email protected] "let"
908 [email protected] " " 908 [email protected] " "
909 BIN[email protected] 909 IDENT[email protected]
910 [email protected] 910 [email protected]
911 [email protected] "_c" 911 [email protected] "_c"
912 [email protected] " " 912 [email protected] " "
@@ -943,7 +943,7 @@ [email protected]
943 [email protected] 943 [email protected]
944 [email protected] "let" 944 [email protected] "let"
945 [email protected] " " 945 [email protected] " "
946 BIN[email protected] 946 IDENT[email protected]
947 [email protected] 947 [email protected]
948 [email protected] "_b" 948 [email protected] "_b"
949 [email protected] ":" 949 [email protected] ":"
@@ -1024,7 +1024,7 @@ [email protected]
1024 [email protected] 1024 [email protected]
1025 [email protected] "let" 1025 [email protected] "let"
1026 [email protected] " " 1026 [email protected] " "
1027 BIN[email protected] 1027 IDENT[email protected]
1028 [email protected] "mut" 1028 [email protected] "mut"
1029 [email protected] " " 1029 [email protected] " "
1030 [email protected] 1030 [email protected]
@@ -1102,7 +1102,7 @@ [email protected]
1102 [email protected] "," 1102 [email protected] ","
1103 [email protected] " " 1103 [email protected] " "
1104 [email protected] 1104 [email protected]
1105 PLACEHOLDE[email protected] 1105 WILDCARD[email protected]
1106 [email protected] "_" 1106 [email protected] "_"
1107 [email protected] " " 1107 [email protected] " "
1108 [email protected] "=>" 1108 [email protected] "=>"
@@ -1146,7 +1146,7 @@ [email protected]
1146 [email protected] 1146 [email protected]
1147 [email protected] "let" 1147 [email protected] "let"
1148 [email protected] " " 1148 [email protected] " "
1149 BIN[email protected] 1149 IDENT[email protected]
1150 [email protected] 1150 [email protected]
1151 [email protected] "_evil" 1151 [email protected] "_evil"
1152 [email protected] " " 1152 [email protected] " "
@@ -1292,7 +1292,7 @@ [email protected]
1292 [email protected] 1292 [email protected]
1293 [email protected] "(" 1293 [email protected] "("
1294 [email protected] 1294 [email protected]
1295 BIN[email protected] 1295 IDENT[email protected]
1296 [email protected] 1296 [email protected]
1297 [email protected] "u8" 1297 [email protected] "u8"
1298 [email protected] ":" 1298 [email protected] ":"
@@ -1614,7 +1614,7 @@ [email protected]
1614 [email protected] 1614 [email protected]
1615 [email protected] "let" 1615 [email protected] "let"
1616 [email protected] " " 1616 [email protected] " "
1617 BIN[email protected] 1617 IDENT[email protected]
1618 [email protected] 1618 [email protected]
1619 [email protected] "val" 1619 [email protected] "val"
1620 [email protected] " " 1620 [email protected] " "
@@ -1648,11 +1648,11 @@ [email protected]
1648 [email protected] ")" 1648 [email protected] ")"
1649 [email protected] "," 1649 [email protected] ","
1650 [email protected] 1650 [email protected]
1651 BIN[email protected] 1651 IDENT[email protected]
1652 [email protected] 1652 [email protected]
1653 [email protected] "__" 1653 [email protected] "__"
1654 [email protected] "@" 1654 [email protected] "@"
1655 PLACEHOLDE[email protected] 1655 WILDCARD[email protected]
1656 [email protected] "_" 1656 [email protected] "_"
1657 [email protected] "|" 1657 [email protected] "|"
1658 [email protected] 1658 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast b/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast
index 92ede8ccb..4035aef6f 100644
--- a/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "let" 15 [email protected] "let"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] 18 [email protected]
19 [email protected] "r#struct" 19 [email protected] "r#struct"
20 [email protected] " " 20 [email protected] " "
@@ -27,7 +27,7 @@ [email protected]
27 [email protected] 27 [email protected]
28 [email protected] "let" 28 [email protected] "let"
29 [email protected] " " 29 [email protected] " "
30 BIN[email protected] 30 IDENT[email protected]
31 [email protected] 31 [email protected]
32 [email protected] "r#trait" 32 [email protected] "r#trait"
33 [email protected] " " 33 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast b/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast
index ed29b0812..e71e069f1 100644
--- a/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast
@@ -63,7 +63,7 @@ [email protected]
63 [email protected] 63 [email protected]
64 [email protected] "(" 64 [email protected] "("
65 [email protected] 65 [email protected]
66 PLACEHOLDE[email protected] 66 WILDCARD[email protected]
67 [email protected] "_" 67 [email protected] "_"
68 [email protected] ":" 68 [email protected] ":"
69 [email protected] " " 69 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast
index 650f4e310..af44a4dbe 100644
--- a/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast
@@ -33,7 +33,7 @@ [email protected]
33 [email protected] "\n " 33 [email protected] "\n "
34 [email protected] "let" 34 [email protected] "let"
35 [email protected] " " 35 [email protected] " "
36 BIN[email protected] 36 IDENT[email protected]
37 [email protected] 37 [email protected]
38 [email protected] "exit_code" 38 [email protected] "exit_code"
39 [email protected] " " 39 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast
index bd152ffa3..0ac56df6d 100644
--- a/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast
@@ -114,7 +114,7 @@ [email protected]
114 [email protected] "," 114 [email protected] ","
115 [email protected] " " 115 [email protected] " "
116 [email protected] 116 [email protected]
117 BIN[email protected] 117 IDENT[email protected]
118 [email protected] 118 [email protected]
119 [email protected] "event_fn" 119 [email protected] "event_fn"
120 [email protected] ":" 120 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast b/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast
index 7a54fa113..4f8dff909 100644
--- a/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast
@@ -55,7 +55,7 @@ [email protected]
55 [email protected] "," 55 [email protected] ","
56 [email protected] "\n " 56 [email protected] "\n "
57 [email protected] 57 [email protected]
58 PLACEHOLDE[email protected] 58 WILDCARD[email protected]
59 [email protected] "_" 59 [email protected] "_"
60 [email protected] " " 60 [email protected] " "
61 [email protected] "=>" 61 [email protected] "=>"
@@ -127,7 +127,7 @@ [email protected]
127 [email protected] "," 127 [email protected] ","
128 [email protected] "\n " 128 [email protected] "\n "
129 [email protected] 129 [email protected]
130 PLACEHOLDE[email protected] 130 WILDCARD[email protected]
131 [email protected] "_" 131 [email protected] "_"
132 [email protected] " " 132 [email protected] " "
133 [email protected] "=>" 133 [email protected] "=>"
@@ -203,7 +203,7 @@ [email protected]
203 [email protected] "," 203 [email protected] ","
204 [email protected] "\n " 204 [email protected] "\n "
205 [email protected] 205 [email protected]
206 PLACEHOLDE[email protected] 206 WILDCARD[email protected]
207 [email protected] "_" 207 [email protected] "_"
208 [email protected] " " 208 [email protected] " "
209 [email protected] "=>" 209 [email protected] "=>"
diff --git a/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast b/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast
index 662576e5f..eaab47843 100644
--- a/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast
@@ -16,7 +16,7 @@ [email protected]
16 [email protected] 16 [email protected]
17 [email protected] "let" 17 [email protected] "let"
18 [email protected] " " 18 [email protected] " "
19 BIN[email protected] 19 IDENT[email protected]
20 [email protected] "mut" 20 [email protected] "mut"
21 [email protected] " " 21 [email protected] " "
22 [email protected] 22 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast b/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast
index 48e1f07d1..c7ce12e93 100644
--- a/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast
@@ -7,7 +7,7 @@ [email protected]
7 [email protected] 7 [email protected]
8 [email protected] "(" 8 [email protected] "("
9 [email protected] 9 [email protected]
10 BIN[email protected] 10 IDENT[email protected]
11 [email protected] 11 [email protected]
12 [email protected] "x" 12 [email protected] "x"
13 [email protected] ":" 13 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast
index 706ccdc39..0303b198f 100644
--- a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast
@@ -25,7 +25,7 @@ [email protected]
25 [email protected] "]" 25 [email protected] "]"
26 [email protected] " " 26 [email protected] " "
27 [email protected] 27 [email protected]
28 BIN[email protected] 28 IDENT[email protected]
29 [email protected] 29 [email protected]
30 [email protected] "pat" 30 [email protected] "pat"
31 [email protected] ":" 31 [email protected] ":"
@@ -58,7 +58,7 @@ [email protected]
58 [email protected] "]" 58 [email protected] "]"
59 [email protected] " " 59 [email protected] " "
60 [email protected] 60 [email protected]
61 BIN[email protected] 61 IDENT[email protected]
62 [email protected] 62 [email protected]
63 [email protected] "x" 63 [email protected] "x"
64 [email protected] ":" 64 [email protected] ":"
@@ -91,7 +91,7 @@ [email protected]
91 [email protected] 91 [email protected]
92 [email protected] "(" 92 [email protected] "("
93 [email protected] 93 [email protected]
94 BIN[email protected] 94 IDENT[email protected]
95 [email protected] 95 [email protected]
96 [email protected] "format" 96 [email protected] "format"
97 [email protected] ":" 97 [email protected] ":"
@@ -212,7 +212,7 @@ [email protected]
212 [email protected] "]" 212 [email protected] "]"
213 [email protected] " " 213 [email protected] " "
214 [email protected] 214 [email protected]
215 PLACEHOLDE[email protected] 215 WILDCARD[email protected]
216 [email protected] "_" 216 [email protected] "_"
217 [email protected] ":" 217 [email protected] ":"
218 [email protected] " " 218 [email protected] " "
@@ -234,7 +234,7 @@ [email protected]
234 [email protected] "]" 234 [email protected] "]"
235 [email protected] " " 235 [email protected] " "
236 [email protected] 236 [email protected]
237 BIN[email protected] 237 IDENT[email protected]
238 [email protected] "mut" 238 [email protected] "mut"
239 [email protected] " " 239 [email protected] " "
240 [email protected] 240 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast b/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast
index fd4f4f242..350823ba3 100644
--- a/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast
@@ -14,7 +14,7 @@ [email protected]
14 [email protected] 14 [email protected]
15 [email protected] "for" 15 [email protected] "for"
16 [email protected] " " 16 [email protected] " "
17 BIN[email protected] 17 IDENT[email protected]
18 [email protected] 18 [email protected]
19 [email protected] "_x" 19 [email protected] "_x"
20 [email protected] " " 20 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast b/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast
index 0d48c7e81..f71ceecd7 100644
--- a/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast
@@ -43,7 +43,7 @@ [email protected]
43 [email protected] 43 [email protected]
44 [email protected] "(" 44 [email protected] "("
45 [email protected] 45 [email protected]
46 PLACEHOLDE[email protected] 46 WILDCARD[email protected]
47 [email protected] "_" 47 [email protected] "_"
48 [email protected] ":" 48 [email protected] ":"
49 [email protected] " " 49 [email protected] " "
@@ -85,7 +85,7 @@ [email protected]
85 [email protected] 85 [email protected]
86 [email protected] "(" 86 [email protected] "("
87 [email protected] 87 [email protected]
88 PLACEHOLDE[email protected] 88 WILDCARD[email protected]
89 [email protected] "_" 89 [email protected] "_"
90 [email protected] ":" 90 [email protected] ":"
91 [email protected] " " 91 [email protected] " "
diff --git a/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast b/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast
index 53410a1ee..76301004a 100644
--- a/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast
@@ -7,7 +7,7 @@ [email protected]
7 [email protected] 7 [email protected]
8 [email protected] "(" 8 [email protected] "("
9 [email protected] 9 [email protected]
10 BIN[email protected] 10 IDENT[email protected]
11 [email protected] 11 [email protected]
12 [email protected] "x" 12 [email protected] "x"
13 [email protected] ":" 13 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast b/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast
index 767b516a2..213f7b381 100644
--- a/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast
@@ -23,7 +23,7 @@ [email protected]
23 [email protected] 23 [email protected]
24 [email protected] "for" 24 [email protected] "for"
25 [email protected] " " 25 [email protected] " "
26 PLACEHOLDE[email protected] 26 WILDCARD[email protected]
27 [email protected] "_" 27 [email protected] "_"
28 [email protected] " " 28 [email protected] " "
29 [email protected] "in" 29 [email protected] "in"
diff --git a/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast b/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast
index facce8167..42680b283 100644
--- a/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast
@@ -18,12 +18,12 @@ [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] "(" 20 [email protected] "("
21 BIN[email protected] 21 IDENT[email protected]
22 [email protected] 22 [email protected]
23 [email protected] "a" 23 [email protected] "a"
24 [email protected] "," 24 [email protected] ","
25 [email protected] " " 25 [email protected] " "
26 BIN[email protected] 26 IDENT[email protected]
27 [email protected] 27 [email protected]
28 [email protected] "b" 28 [email protected] "b"
29 [email protected] ")" 29 [email protected] ")"
@@ -64,17 +64,17 @@ [email protected]
64 [email protected] 64 [email protected]
65 [email protected] "S" 65 [email protected] "S"
66 [email protected] " " 66 [email protected] " "
67 RECORD_FIELD_PAT_[email protected] 67 RECORD_PAT_[email protected]
68 [email protected] "{" 68 [email protected] "{"
69 [email protected] " " 69 [email protected] " "
70 RECORD_FIELD_PAT@61..62 70 RECORD_PAT_[email protected]
71 BIN[email protected] 71 IDENT[email protected]
72 [email protected] 72 [email protected]
73 [email protected] "a" 73 [email protected] "a"
74 [email protected] "," 74 [email protected] ","
75 [email protected] " " 75 [email protected] " "
76 RECORD_FIELD_PAT@64..65 76 RECORD_PAT_[email protected]
77 BIN[email protected] 77 IDENT[email protected]
78 [email protected] 78 [email protected]
79 [email protected] "b" 79 [email protected] "b"
80 [email protected] " " 80 [email protected] " "
@@ -106,7 +106,7 @@ [email protected]
106 [email protected] 106 [email protected]
107 [email protected] "NewType" 107 [email protected] "NewType"
108 [email protected] "(" 108 [email protected] "("
109 BIN[email protected] 109 IDENT[email protected]
110 [email protected] 110 [email protected]
111 [email protected] "a" 111 [email protected] "a"
112 [email protected] ")" 112 [email protected] ")"
@@ -135,7 +135,7 @@ [email protected]
135 [email protected] "&" 135 [email protected] "&"
136 [email protected] 136 [email protected]
137 [email protected] "&" 137 [email protected] "&"
138 BIN[email protected] 138 IDENT[email protected]
139 [email protected] 139 [email protected]
140 [email protected] "a" 140 [email protected] "a"
141 [email protected] ":" 141 [email protected] ":"
@@ -163,7 +163,7 @@ [email protected]
163 [email protected] 163 [email protected]
164 [email protected] "(" 164 [email protected] "("
165 [email protected] 165 [email protected]
166 PLACEHOLDE[email protected] 166 WILDCARD[email protected]
167 [email protected] "_" 167 [email protected] "_"
168 [email protected] ":" 168 [email protected] ":"
169 [email protected] " " 169 [email protected] " "
@@ -175,7 +175,7 @@ [email protected]
175 [email protected] "," 175 [email protected] ","
176 [email protected] " " 176 [email protected] " "
177 [email protected] 177 [email protected]
178 BIN[email protected] 178 IDENT[email protected]
179 [email protected] "mut" 179 [email protected] "mut"
180 [email protected] " " 180 [email protected] " "
181 [email protected] 181 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/ok/0063_variadic_fun.rast b/crates/ra_syntax/test_data/parser/ok/0063_variadic_fun.rast
index 7adedb02e..a132591f0 100644
--- a/crates/ra_syntax/test_data/parser/ok/0063_variadic_fun.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0063_variadic_fun.rast
@@ -16,7 +16,7 @@ [email protected]
16 [email protected] 16 [email protected]
17 [email protected] "(" 17 [email protected] "("
18 [email protected] 18 [email protected]
19 PLACEHOLDE[email protected] 19 WILDCARD[email protected]
20 [email protected] "_" 20 [email protected] "_"
21 [email protected] ":" 21 [email protected] ":"
22 [email protected] " " 22 [email protected] " "
@@ -45,7 +45,7 @@ [email protected]
45 [email protected] 45 [email protected]
46 [email protected] "(" 46 [email protected] "("
47 [email protected] 47 [email protected]
48 PLACEHOLDE[email protected] 48 WILDCARD[email protected]
49 [email protected] "_" 49 [email protected] "_"
50 [email protected] ":" 50 [email protected] ":"
51 [email protected] " " 51 [email protected] " "
@@ -61,7 +61,7 @@ [email protected]
61 [email protected] "," 61 [email protected] ","
62 [email protected] " " 62 [email protected] " "
63 [email protected] 63 [email protected]
64 PLACEHOLDE[email protected] 64 WILDCARD[email protected]
65 [email protected] "_" 65 [email protected] "_"
66 [email protected] ":" 66 [email protected] ":"
67 [email protected] " " 67 [email protected] " "
@@ -77,7 +77,7 @@ [email protected]
77 [email protected] 77 [email protected]
78 [email protected] "(" 78 [email protected] "("
79 [email protected] 79 [email protected]
80 PLACEHOLDE[email protected] 80 WILDCARD[email protected]
81 [email protected] "_" 81 [email protected] "_"
82 [email protected] ":" 82 [email protected] ":"
83 [email protected] " " 83 [email protected] " "
@@ -108,17 +108,17 @@ [email protected]
108 [email protected] 108 [email protected]
109 [email protected] 109 [email protected]
110 [email protected] "[" 110 [email protected] "["
111 BIN[email protected] 111 IDENT[email protected]
112 [email protected] 112 [email protected]
113 [email protected] "w" 113 [email protected] "w"
114 [email protected] "," 114 [email protected] ","
115 [email protected] " " 115 [email protected] " "
116 BIN[email protected] 116 IDENT[email protected]
117 [email protected] 117 [email protected]
118 [email protected] "t" 118 [email protected] "t"
119 [email protected] "," 119 [email protected] ","
120 [email protected] " " 120 [email protected] " "
121 BIN[email protected] 121 IDENT[email protected]
122 [email protected] 122 [email protected]
123 [email protected] "f" 123 [email protected] "f"
124 [email protected] "]" 124 [email protected] "]"
diff --git a/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast b/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast
index 453757c3c..94260db7c 100644
--- a/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast
@@ -21,12 +21,12 @@ [email protected]
21 [email protected] 21 [email protected]
22 [email protected] 22 [email protected]
23 [email protected] "(" 23 [email protected] "("
24 BIN[email protected] 24 IDENT[email protected]
25 [email protected] 25 [email protected]
26 [email protected] "a" 26 [email protected] "a"
27 [email protected] "," 27 [email protected] ","
28 [email protected] " " 28 [email protected] " "
29 BIN[email protected] 29 IDENT[email protected]
30 [email protected] 30 [email protected]
31 [email protected] "b" 31 [email protected] "b"
32 [email protected] ")" 32 [email protected] ")"
@@ -67,17 +67,17 @@ [email protected]
67 [email protected] 67 [email protected]
68 [email protected] "S" 68 [email protected] "S"
69 [email protected] " " 69 [email protected] " "
70 RECORD_FIELD_PAT_[email protected] 70 RECORD_PAT_[email protected]
71 [email protected] "{" 71 [email protected] "{"
72 [email protected] " " 72 [email protected] " "
73 RECORD_FIELD_PAT@60..61 73 RECORD_PAT_[email protected]
74 BIN[email protected] 74 IDENT[email protected]
75 [email protected] 75 [email protected]
76 [email protected] "a" 76 [email protected] "a"
77 [email protected] "," 77 [email protected] ","
78 [email protected] " " 78 [email protected] " "
79 RECORD_FIELD_PAT@63..64 79 RECORD_PAT_[email protected]
80 BIN[email protected] 80 IDENT[email protected]
81 [email protected] 81 [email protected]
82 [email protected] "b" 82 [email protected] "b"
83 [email protected] " " 83 [email protected] " "
@@ -109,7 +109,7 @@ [email protected]
109 [email protected] 109 [email protected]
110 [email protected] "NewType" 110 [email protected] "NewType"
111 [email protected] "(" 111 [email protected] "("
112 BIN[email protected] 112 IDENT[email protected]
113 [email protected] 113 [email protected]
114 [email protected] "a" 114 [email protected] "a"
115 [email protected] ")" 115 [email protected] ")"
@@ -138,7 +138,7 @@ [email protected]
138 [email protected] "&" 138 [email protected] "&"
139 [email protected] 139 [email protected]
140 [email protected] "&" 140 [email protected] "&"
141 BIN[email protected] 141 IDENT[email protected]
142 [email protected] 142 [email protected]
143 [email protected] "a" 143 [email protected] "a"
144 [email protected] ":" 144 [email protected] ":"
diff --git a/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast b/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast
index a368ac1e8..fae9467fc 100644
--- a/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast
@@ -245,7 +245,7 @@ [email protected]
245 [email protected] 245 [email protected]
246 [email protected] "(" 246 [email protected] "("
247 [email protected] 247 [email protected]
248 BIN[email protected] 248 IDENT[email protected]
249 [email protected] 249 [email protected]
250 [email protected] "_t" 250 [email protected] "_t"
251 [email protected] ":" 251 [email protected] ":"
diff --git a/xtask/src/ast_src.rs b/xtask/src/ast_src.rs
index 762d9265e..2ff029158 100644
--- a/xtask/src/ast_src.rs
+++ b/xtask/src/ast_src.rs
@@ -126,13 +126,13 @@ pub(crate) const KINDS_SRC: KindsSrc = KindsSrc {
126 "PAREN_PAT", 126 "PAREN_PAT",
127 "REF_PAT", 127 "REF_PAT",
128 "BOX_PAT", 128 "BOX_PAT",
129 "BIND_PAT", 129 "IDENT_PAT",
130 "PLACEHOLDER_PAT", 130 "WILDCARD_PAT",
131 "DOT_DOT_PAT", 131 "DOT_DOT_PAT",
132 "PATH_PAT", 132 "PATH_PAT",
133 "RECORD_PAT", 133 "RECORD_PAT",
134 "RECORD_FIELD_PAT_LIST", 134 "RECORD_PAT_FIELD_LIST",
135 "RECORD_FIELD_PAT", 135 "RECORD_PAT_FIELD",
136 "TUPLE_STRUCT_PAT", 136 "TUPLE_STRUCT_PAT",
137 "TUPLE_PAT", 137 "TUPLE_PAT",
138 "SLICE_PAT", 138 "SLICE_PAT",
diff --git a/xtask/src/codegen/rust.ungram b/xtask/src/codegen/rust.ungram
index 2e3b45011..7685f4f06 100644
--- a/xtask/src/codegen/rust.ungram
+++ b/xtask/src/codegen/rust.ungram
@@ -1,3 +1,9 @@
1Name =
2 'ident'
3
4NameRef =
5 'ident' | 'int_number'
6
1Path = 7Path =
2 (qualifier:Path '::')? segment:PathSegment 8 (qualifier:Path '::')? segment:PathSegment
3 9
@@ -29,6 +35,21 @@ LifetimeArg =
29ConstArg = 35ConstArg =
30 Expr 36 Expr
31 37
38MacroCall =
39 Attr* Path '!' Name? TokenTree ';'?
40
41TokenTree =
42 '(' ')'
43| '{' '}'
44| '[' ']'
45
46MacroItems =
47 Item*
48
49MacroStmts =
50 statements:Stmt*
51 Expr?
52
32SourceFile = 53SourceFile =
33 'shebang'? 54 'shebang'?
34 Attr* 55 Attr*
@@ -475,93 +496,73 @@ TypeBound =
475 'lifetime' 496 'lifetime'
476| '?'? Type 497| '?'? Type
477 498
478OrPat = 499Pat =
479 Pat* 500 IdentPat
480 501| BoxPat
481ParenPat = 502| DotDotPat
482 '(' Pat ')' 503| LiteralPat
483 504| MacroPat
484RefPat = 505| OrPat
485 '&' 'mut'? Pat 506| ParenPat
507| PathPat
508| WildcardPat
509| RangePat
510| RecordPat
511| RefPat
512| SlicePat
513| TuplePat
514| TupleStructPat
486 515
487BoxPat = 516LiteralPat =
488 'box' Path 517 Literal
489 518
490BindPat = 519IdentPat =
491 Attr* 'ref'? 'mut'? Name ('@' Pat)? 520 Attr* 'ref'? 'mut'? Name ('@' Pat)?
492 521
493PlaceholderPat = 522WildcardPat =
494 '_' 523 '_'
495 524
496DotDotPat =
497 '..'
498
499PathPat =
500 Path
501
502SlicePat =
503 '[' args:Pat* ']'
504
505RangePat = 525RangePat =
506 '..' | '..=' 526 start:Pat op:('..' | '..=') end:Pat
507
508LiteralPat =
509 Literal
510 527
511MacroPat = 528RefPat =
512 MacroCall 529 '&' 'mut'? Pat
513 530
514RecordPat = 531RecordPat =
515 Path RecordFieldPatList 532 Path RecordPatFieldList
516 533
517RecordFieldPatList = 534RecordPatFieldList =
518 '{' 535 '{'
519 record_field_pats:RecordFieldPat* 536 fields:(RecordPatField (',' RecordPatField)* ','?)
520 BindPat*
521 '..'? 537 '..'?
522 '}' 538 '}'
523 539
524RecordFieldPat = 540RecordPatField =
525 Attr* NameRef ':' Pat 541 Attr* (NameRef ':')? Pat
526 542
527TupleStructPat = 543TupleStructPat =
528 Path '(' args:Pat* ')' 544 Path '(' args:(Pat (',' Pat)* ','?)? ')'
529 545
530TuplePat = 546TuplePat =
531 '(' args:Pat* ')' 547 '(' args:(Pat (',' Pat)* ','?)? ')'
532 548
533Name = 549ParenPat =
534 'ident' 550 '(' Pat ')'
535 551
536NameRef = 552SlicePat =
537 'ident' | 'int_number' 553 '[' args:(Pat (',' Pat)* ','?)? ']'
538 554
539MacroCall = 555PathPat =
540 Attr* Path '!' Name? TokenTree ';'? 556 Path
541 557
542TokenTree = 558OrPat =
543 '(' ')' | '{' '}' | '[' ']' 559 (Pat ('|' Pat)* '|'?)
544 560
545MacroItems = 561BoxPat =
546 Item* 562 'box' Pat
547 563
548MacroStmts = 564DotDotPat =
549 statements:Stmt* 565 '..'
550 Expr?
551 566
552Pat = 567MacroPat =
553 OrPat 568 MacroCall
554| ParenPat
555| RefPat
556| BoxPat
557| BindPat
558| PlaceholderPat
559| DotDotPat
560| PathPat
561| RecordPat
562| TupleStructPat
563| TuplePat
564| SlicePat
565| RangePat
566| LiteralPat
567| MacroPat