aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/ra_assists/src/handlers/move_bounds.rs3
-rw-r--r--crates/ra_ide/src/completion/complete_trait_impl.rs4
-rw-r--r--crates/ra_ide/src/syntax_tree.rs8
-rw-r--r--crates/ra_mbe/src/tests.rs20
-rw-r--r--crates/ra_parser/src/grammar/expressions.rs3
-rw-r--r--crates/ra_parser/src/grammar/types.rs15
-rw-r--r--crates/ra_parser/src/syntax_kind/generated.rs334
-rw-r--r--crates/ra_syntax/src/ast/extensions.rs2
-rw-r--r--crates/ra_syntax/src/parsing/lexer.rs77
-rw-r--r--crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.txt2
-rw-r--r--crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.txt2
-rw-r--r--crates/ra_syntax/test_data/lexer/ok/0005_symbols.txt6
-rw-r--r--crates/ra_syntax/test_data/parser/err/0002_duplicate_shebang.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/err/0003_C++_semicolon.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0004_use_path_bad_segment.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0011_extern_struct.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/err/0013_invalid_type.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0019_let_recover.rast14
-rw-r--r--crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast24
-rw-r--r--crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast20
-rw-r--r--crates/ra_syntax/test_data/parser/err/0025_nope.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/err/0035_use_recover.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/err/0036_partial_use.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast4
-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/err/0008_pub_expr.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast34
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast16
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast20
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.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/0025_slice_type.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast10
-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/0028_impl_trait_type.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast30
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast14
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast16
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast14
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0078_type_item.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0083_struct_items.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0084_paren_type.rast2
-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/0090_type_param_default.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.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.rast4
-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.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast14
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0110_use_path.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast28
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0117_macro_call_type.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast18
-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/0131_existential_type.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/0132_default_fn_type.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast82
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast4
-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/0147_const_param.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast4
-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/inline/ok/0158_binop_resets_statementness.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0006_inner_attributes.rast20
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0007_extern_crate.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0009_use_item.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0010_use_path_segments.rast14
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0012_visibility.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast20
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0014_use_tree.rast26
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0015_use_tree.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0016_struct_flavors.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0018_struct_type_params.rast28
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0020_type_param_bounds.rast24
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0023_static_items.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0024_const_item.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast22
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast36
-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.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0031_extern.rast120
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0032_where_for.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0033_label_break.rast16
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast432
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast2
-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.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0046_extern_inner_attributes.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.rast26
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0049_async_block.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast6
-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/0058_unary_expr_precedence.rast12
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0060_as_range.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0063_variadic_fun.rast12
-rw-r--r--crates/test_utils/src/lib.rs2
-rw-r--r--xtask/src/ast_src.rs18
-rw-r--r--xtask/src/codegen/gen_syntax.rs8
209 files changed, 1107 insertions, 1393 deletions
diff --git a/crates/ra_assists/src/handlers/move_bounds.rs b/crates/ra_assists/src/handlers/move_bounds.rs
index 93f26f51a..0f26884dc 100644
--- a/crates/ra_assists/src/handlers/move_bounds.rs
+++ b/crates/ra_assists/src/handlers/move_bounds.rs
@@ -2,6 +2,7 @@ use ra_syntax::{
2 ast::{self, edit::AstNodeEdit, make, AstNode, NameOwner, TypeBoundsOwner}, 2 ast::{self, edit::AstNodeEdit, make, AstNode, NameOwner, TypeBoundsOwner},
3 match_ast, 3 match_ast,
4 SyntaxKind::*, 4 SyntaxKind::*,
5 T,
5}; 6};
6 7
7use crate::{Assist, AssistCtx, AssistId}; 8use crate::{Assist, AssistCtx, AssistId};
@@ -42,7 +43,7 @@ pub(crate) fn move_bounds_to_where_clause(ctx: AssistCtx) -> Option<Assist> {
42 ast::EnumDef(it) => it.variant_list()?.syntax().clone().into(), 43 ast::EnumDef(it) => it.variant_list()?.syntax().clone().into(),
43 ast::StructDef(it) => { 44 ast::StructDef(it) => {
44 it.syntax().children_with_tokens() 45 it.syntax().children_with_tokens()
45 .find(|it| it.kind() == RECORD_FIELD_DEF_LIST || it.kind() == SEMI)? 46 .find(|it| it.kind() == RECORD_FIELD_DEF_LIST || it.kind() == T![;])?
46 }, 47 },
47 _ => return None 48 _ => return None
48 } 49 }
diff --git a/crates/ra_ide/src/completion/complete_trait_impl.rs b/crates/ra_ide/src/completion/complete_trait_impl.rs
index ded1ff3bc..fab02945c 100644
--- a/crates/ra_ide/src/completion/complete_trait_impl.rs
+++ b/crates/ra_ide/src/completion/complete_trait_impl.rs
@@ -35,7 +35,7 @@ use hir::{self, Docs, HasSource};
35use ra_assists::utils::get_missing_impl_items; 35use ra_assists::utils::get_missing_impl_items;
36use ra_syntax::{ 36use ra_syntax::{
37 ast::{self, edit, ImplDef}, 37 ast::{self, edit, ImplDef},
38 AstNode, SyntaxKind, SyntaxNode, TextRange, 38 AstNode, SyntaxKind, SyntaxNode, TextRange, T,
39}; 39};
40use ra_text_edit::TextEdit; 40use ra_text_edit::TextEdit;
41 41
@@ -204,7 +204,7 @@ fn make_const_compl_syntax(const_: &ast::ConstDef) -> String {
204 let end = const_ 204 let end = const_
205 .syntax() 205 .syntax()
206 .children_with_tokens() 206 .children_with_tokens()
207 .find(|s| s.kind() == SyntaxKind::SEMI || s.kind() == SyntaxKind::EQ) 207 .find(|s| s.kind() == T![;] || s.kind() == T![=])
208 .map_or(const_end, |f| f.text_range().start()); 208 .map_or(const_end, |f| f.text_range().start());
209 209
210 let len = end - start; 210 let len = end - start;
diff --git a/crates/ra_ide/src/syntax_tree.rs b/crates/ra_ide/src/syntax_tree.rs
index f58e436d1..5842ae2e8 100644
--- a/crates/ra_ide/src/syntax_tree.rs
+++ b/crates/ra_ide/src/syntax_tree.rs
@@ -165,7 +165,7 @@ SOURCE_FILE@[0; 60)
165 PATH_SEGMENT@[16; 22) 165 PATH_SEGMENT@[16; 22)
166 NAME_REF@[16; 22) 166 NAME_REF@[16; 22)
167 IDENT@[16; 22) "assert" 167 IDENT@[16; 22) "assert"
168 EXCL@[22; 23) "!" 168 BANG@[22; 23) "!"
169 TOKEN_TREE@[23; 57) 169 TOKEN_TREE@[23; 57)
170 L_PAREN@[23; 24) "(" 170 L_PAREN@[23; 24) "("
171 STRING@[24; 52) "\"\n fn foo() {\n ..." 171 STRING@[24; 52) "\"\n fn foo() {\n ..."
@@ -173,7 +173,7 @@ SOURCE_FILE@[0; 60)
173 WHITESPACE@[53; 54) " " 173 WHITESPACE@[53; 54) " "
174 STRING@[54; 56) "\"\"" 174 STRING@[54; 56) "\"\""
175 R_PAREN@[56; 57) ")" 175 R_PAREN@[56; 57) ")"
176 SEMI@[57; 58) ";" 176 SEMICOLON@[57; 58) ";"
177 WHITESPACE@[58; 59) "\n" 177 WHITESPACE@[58; 59) "\n"
178 R_CURLY@[59; 60) "}" 178 R_CURLY@[59; 60) "}"
179"# 179"#
@@ -226,7 +226,7 @@ EXPR_STMT@[16; 58)
226 PATH_SEGMENT@[16; 22) 226 PATH_SEGMENT@[16; 22)
227 NAME_REF@[16; 22) 227 NAME_REF@[16; 22)
228 IDENT@[16; 22) "assert" 228 IDENT@[16; 22) "assert"
229 EXCL@[22; 23) "!" 229 BANG@[22; 23) "!"
230 TOKEN_TREE@[23; 57) 230 TOKEN_TREE@[23; 57)
231 L_PAREN@[23; 24) "(" 231 L_PAREN@[23; 24) "("
232 STRING@[24; 52) "\"\n fn foo() {\n ..." 232 STRING@[24; 52) "\"\n fn foo() {\n ..."
@@ -234,7 +234,7 @@ EXPR_STMT@[16; 58)
234 WHITESPACE@[53; 54) " " 234 WHITESPACE@[53; 54) " "
235 STRING@[54; 56) "\"\"" 235 STRING@[54; 56) "\"\""
236 R_PAREN@[56; 57) ")" 236 R_PAREN@[56; 57) ")"
237 SEMI@[57; 58) ";" 237 SEMICOLON@[57; 58) ";"
238"# 238"#
239 .trim() 239 .trim()
240 ); 240 );
diff --git a/crates/ra_mbe/src/tests.rs b/crates/ra_mbe/src/tests.rs
index 1ef6f6eed..5d1274d21 100644
--- a/crates/ra_mbe/src/tests.rs
+++ b/crates/ra_mbe/src/tests.rs
@@ -252,7 +252,7 @@ fn test_expr_order() {
252 STAR@[11; 12) "*" 252 STAR@[11; 12) "*"
253 LITERAL@[12; 13) 253 LITERAL@[12; 13)
254 INT_NUMBER@[12; 13) "2" 254 INT_NUMBER@[12; 13) "2"
255 SEMI@[13; 14) ";" 255 SEMICOLON@[13; 14) ";"
256 R_CURLY@[14; 15) "}""#, 256 R_CURLY@[14; 15) "}""#,
257 ); 257 );
258} 258}
@@ -605,7 +605,7 @@ fn test_tt_to_stmts() {
605 EQ@[4; 5) "=" 605 EQ@[4; 5) "="
606 LITERAL@[5; 6) 606 LITERAL@[5; 6)
607 INT_NUMBER@[5; 6) "0" 607 INT_NUMBER@[5; 6) "0"
608 SEMI@[6; 7) ";" 608 SEMICOLON@[6; 7) ";"
609 EXPR_STMT@[7; 14) 609 EXPR_STMT@[7; 14)
610 BIN_EXPR@[7; 13) 610 BIN_EXPR@[7; 13)
611 PATH_EXPR@[7; 8) 611 PATH_EXPR@[7; 8)
@@ -620,7 +620,7 @@ fn test_tt_to_stmts() {
620 PLUS@[11; 12) "+" 620 PLUS@[11; 12) "+"
621 LITERAL@[12; 13) 621 LITERAL@[12; 13)
622 INT_NUMBER@[12; 13) "1" 622 INT_NUMBER@[12; 13) "1"
623 SEMI@[13; 14) ";" 623 SEMICOLON@[13; 14) ";"
624 EXPR_STMT@[14; 15) 624 EXPR_STMT@[14; 15)
625 PATH_EXPR@[14; 15) 625 PATH_EXPR@[14; 15)
626 PATH@[14; 15) 626 PATH@[14; 15)
@@ -953,7 +953,7 @@ fn test_tt_composite2() {
953 PATH_SEGMENT@[0; 3) 953 PATH_SEGMENT@[0; 3)
954 NAME_REF@[0; 3) 954 NAME_REF@[0; 3)
955 IDENT@[0; 3) "abs" 955 IDENT@[0; 3) "abs"
956 EXCL@[3; 4) "!" 956 BANG@[3; 4) "!"
957 TOKEN_TREE@[4; 10) 957 TOKEN_TREE@[4; 10)
958 L_PAREN@[4; 5) "(" 958 L_PAREN@[4; 5) "("
959 EQ@[5; 6) "=" 959 EQ@[5; 6) "="
@@ -1073,14 +1073,14 @@ fn test_vec() {
1073 PATH_SEGMENT@[9; 12) 1073 PATH_SEGMENT@[9; 12)
1074 NAME_REF@[9; 12) 1074 NAME_REF@[9; 12)
1075 IDENT@[9; 12) "Vec" 1075 IDENT@[9; 12) "Vec"
1076 COLONCOLON@[12; 14) "::" 1076 COLON2@[12; 14) "::"
1077 PATH_SEGMENT@[14; 17) 1077 PATH_SEGMENT@[14; 17)
1078 NAME_REF@[14; 17) 1078 NAME_REF@[14; 17)
1079 IDENT@[14; 17) "new" 1079 IDENT@[14; 17) "new"
1080 ARG_LIST@[17; 19) 1080 ARG_LIST@[17; 19)
1081 L_PAREN@[17; 18) "(" 1081 L_PAREN@[17; 18) "("
1082 R_PAREN@[18; 19) ")" 1082 R_PAREN@[18; 19) ")"
1083 SEMI@[19; 20) ";" 1083 SEMICOLON@[19; 20) ";"
1084 EXPR_STMT@[20; 33) 1084 EXPR_STMT@[20; 33)
1085 METHOD_CALL_EXPR@[20; 32) 1085 METHOD_CALL_EXPR@[20; 32)
1086 PATH_EXPR@[20; 21) 1086 PATH_EXPR@[20; 21)
@@ -1096,7 +1096,7 @@ fn test_vec() {
1096 LITERAL@[27; 31) 1096 LITERAL@[27; 31)
1097 INT_NUMBER@[27; 31) "1u32" 1097 INT_NUMBER@[27; 31) "1u32"
1098 R_PAREN@[31; 32) ")" 1098 R_PAREN@[31; 32) ")"
1099 SEMI@[32; 33) ";" 1099 SEMICOLON@[32; 33) ";"
1100 EXPR_STMT@[33; 43) 1100 EXPR_STMT@[33; 43)
1101 METHOD_CALL_EXPR@[33; 42) 1101 METHOD_CALL_EXPR@[33; 42)
1102 PATH_EXPR@[33; 34) 1102 PATH_EXPR@[33; 34)
@@ -1112,7 +1112,7 @@ fn test_vec() {
1112 LITERAL@[40; 41) 1112 LITERAL@[40; 41)
1113 INT_NUMBER@[40; 41) "2" 1113 INT_NUMBER@[40; 41) "2"
1114 R_PAREN@[41; 42) ")" 1114 R_PAREN@[41; 42) ")"
1115 SEMI@[42; 43) ";" 1115 SEMICOLON@[42; 43) ";"
1116 PATH_EXPR@[43; 44) 1116 PATH_EXPR@[43; 44)
1117 PATH@[43; 44) 1117 PATH@[43; 44)
1118 PATH_SEGMENT@[43; 44) 1118 PATH_SEGMENT@[43; 44)
@@ -1760,7 +1760,7 @@ fn test_no_space_after_semi_colon() {
1760 MOD_KW@[21; 24) "mod" 1760 MOD_KW@[21; 24) "mod"
1761 NAME@[24; 25) 1761 NAME@[24; 25)
1762 IDENT@[24; 25) "m" 1762 IDENT@[24; 25) "m"
1763 SEMI@[25; 26) ";" 1763 SEMICOLON@[25; 26) ";"
1764 MODULE@[26; 52) 1764 MODULE@[26; 52)
1765 ATTR@[26; 47) 1765 ATTR@[26; 47)
1766 POUND@[26; 27) "#" 1766 POUND@[26; 27) "#"
@@ -1779,7 +1779,7 @@ fn test_no_space_after_semi_colon() {
1779 MOD_KW@[47; 50) "mod" 1779 MOD_KW@[47; 50) "mod"
1780 NAME@[50; 51) 1780 NAME@[50; 51)
1781 IDENT@[50; 51) "f" 1781 IDENT@[50; 51) "f"
1782 SEMI@[51; 52) ";""###, 1782 SEMICOLON@[51; 52) ";""###,
1783 ); 1783 );
1784} 1784}
1785 1785
diff --git a/crates/ra_parser/src/grammar/expressions.rs b/crates/ra_parser/src/grammar/expressions.rs
index c486c0211..a1bd53063 100644
--- a/crates/ra_parser/src/grammar/expressions.rs
+++ b/crates/ra_parser/src/grammar/expressions.rs
@@ -339,7 +339,8 @@ fn expr_bp(p: &mut Parser, mut r: Restrictions, bp: u8) -> (Option<CompletedMark
339 (Some(lhs), BlockLike::NotBlock) 339 (Some(lhs), BlockLike::NotBlock)
340} 340}
341 341
342const LHS_FIRST: TokenSet = atom::ATOM_EXPR_FIRST.union(token_set![AMP, STAR, EXCL, DOT, MINUS]); 342const LHS_FIRST: TokenSet =
343 atom::ATOM_EXPR_FIRST.union(token_set![T![&], T![*], T![!], T![.], T![-]]);
343 344
344fn lhs(p: &mut Parser, r: Restrictions) -> Option<(CompletedMarker, BlockLike)> { 345fn lhs(p: &mut Parser, r: Restrictions) -> Option<(CompletedMarker, BlockLike)> {
345 let m; 346 let m;
diff --git a/crates/ra_parser/src/grammar/types.rs b/crates/ra_parser/src/grammar/types.rs
index 386969d2d..fe1a039cb 100644
--- a/crates/ra_parser/src/grammar/types.rs
+++ b/crates/ra_parser/src/grammar/types.rs
@@ -3,8 +3,19 @@
3use super::*; 3use super::*;
4 4
5pub(super) const TYPE_FIRST: TokenSet = paths::PATH_FIRST.union(token_set![ 5pub(super) const TYPE_FIRST: TokenSet = paths::PATH_FIRST.union(token_set![
6 L_PAREN, EXCL, STAR, L_BRACK, AMP, UNDERSCORE, FN_KW, UNSAFE_KW, EXTERN_KW, FOR_KW, IMPL_KW, 6 T!['('],
7 DYN_KW, L_ANGLE, 7 T!['['],
8 T![<],
9 T![!],
10 T![*],
11 T![&],
12 T![_],
13 T![fn],
14 T![unsafe],
15 T![extern],
16 T![for],
17 T![impl],
18 T![dyn],
8]); 19]);
9 20
10const TYPE_RECOVERY_SET: TokenSet = token_set![R_PAREN, COMMA, L_DOLLAR]; 21const TYPE_RECOVERY_SET: TokenSet = token_set![R_PAREN, COMMA, L_DOLLAR];
diff --git a/crates/ra_parser/src/syntax_kind/generated.rs b/crates/ra_parser/src/syntax_kind/generated.rs
index 1dd4ce34a..524e7d784 100644
--- a/crates/ra_parser/src/syntax_kind/generated.rs
+++ b/crates/ra_parser/src/syntax_kind/generated.rs
@@ -9,7 +9,7 @@ pub enum SyntaxKind {
9 TOMBSTONE, 9 TOMBSTONE,
10 #[doc(hidden)] 10 #[doc(hidden)]
11 EOF, 11 EOF,
12 SEMI, 12 SEMICOLON,
13 COMMA, 13 COMMA,
14 L_PAREN, 14 L_PAREN,
15 R_PAREN, 15 R_PAREN,
@@ -33,15 +33,15 @@ pub enum SyntaxKind {
33 PERCENT, 33 PERCENT,
34 UNDERSCORE, 34 UNDERSCORE,
35 DOT, 35 DOT,
36 DOTDOT, 36 DOT2,
37 DOTDOTDOT, 37 DOT3,
38 DOTDOTEQ, 38 DOT2EQ,
39 COLON, 39 COLON,
40 COLONCOLON, 40 COLON2,
41 EQ, 41 EQ,
42 EQEQ, 42 EQ2,
43 FAT_ARROW, 43 FAT_ARROW,
44 EXCL, 44 BANG,
45 NEQ, 45 NEQ,
46 MINUS, 46 MINUS,
47 THIN_ARROW, 47 THIN_ARROW,
@@ -55,8 +55,8 @@ pub enum SyntaxKind {
55 SLASHEQ, 55 SLASHEQ,
56 STAREQ, 56 STAREQ,
57 PERCENTEQ, 57 PERCENTEQ,
58 AMPAMP, 58 AMP2,
59 PIPEPIPE, 59 PIPE2,
60 SHL, 60 SHL,
61 SHR, 61 SHR,
62 SHLEQ, 62 SHLEQ,
@@ -265,12 +265,12 @@ impl SyntaxKind {
265 } 265 }
266 pub fn is_punct(self) -> bool { 266 pub fn is_punct(self) -> bool {
267 match self { 267 match self {
268 SEMI | COMMA | L_PAREN | R_PAREN | L_CURLY | R_CURLY | L_BRACK | R_BRACK | L_ANGLE 268 SEMICOLON | COMMA | L_PAREN | R_PAREN | L_CURLY | R_CURLY | L_BRACK | R_BRACK
269 | R_ANGLE | AT | POUND | TILDE | QUESTION | DOLLAR | AMP | PIPE | PLUS | STAR 269 | L_ANGLE | R_ANGLE | AT | POUND | TILDE | QUESTION | DOLLAR | AMP | PIPE | PLUS
270 | SLASH | CARET | PERCENT | UNDERSCORE | DOT | DOTDOT | DOTDOTDOT | DOTDOTEQ 270 | STAR | SLASH | CARET | PERCENT | UNDERSCORE | DOT | DOT2 | DOT3 | DOT2EQ | COLON
271 | COLON | COLONCOLON | EQ | EQEQ | FAT_ARROW | EXCL | NEQ | MINUS | THIN_ARROW 271 | COLON2 | EQ | EQ2 | FAT_ARROW | BANG | NEQ | MINUS | THIN_ARROW | LTEQ | GTEQ
272 | LTEQ | GTEQ | PLUSEQ | MINUSEQ | PIPEEQ | AMPEQ | CARETEQ | SLASHEQ | STAREQ 272 | PLUSEQ | MINUSEQ | PIPEEQ | AMPEQ | CARETEQ | SLASHEQ | STAREQ | PERCENTEQ | AMP2
273 | PERCENTEQ | AMPAMP | PIPEPIPE | SHL | SHR | SHLEQ | SHREQ => true, 273 | PIPE2 | SHL | SHR | SHLEQ | SHREQ => true,
274 _ => false, 274 _ => false,
275 } 275 }
276 } 276 }
@@ -329,7 +329,7 @@ impl SyntaxKind {
329 } 329 }
330 pub fn from_char(c: char) -> Option<SyntaxKind> { 330 pub fn from_char(c: char) -> Option<SyntaxKind> {
331 let tok = match c { 331 let tok = match c {
332 ';' => SEMI, 332 ';' => SEMICOLON,
333 ',' => COMMA, 333 ',' => COMMA,
334 '(' => L_PAREN, 334 '(' => L_PAREN,
335 ')' => R_PAREN, 335 ')' => R_PAREN,
@@ -355,7 +355,7 @@ impl SyntaxKind {
355 '.' => DOT, 355 '.' => DOT,
356 ':' => COLON, 356 ':' => COLON,
357 '=' => EQ, 357 '=' => EQ,
358 '!' => EXCL, 358 '!' => BANG,
359 '-' => MINUS, 359 '-' => MINUS,
360 _ => return None, 360 _ => return None,
361 }; 361 };
@@ -363,302 +363,4 @@ impl SyntaxKind {
363 } 363 }
364} 364}
365#[macro_export] 365#[macro_export]
366macro_rules! T { 366macro_rules ! T { [ ; ] => { $ crate :: SyntaxKind :: SEMICOLON } ; [ , ] => { $ crate :: SyntaxKind :: COMMA } ; [ '(' ] => { $ crate :: SyntaxKind :: L_PAREN } ; [ ')' ] => { $ crate :: SyntaxKind :: R_PAREN } ; [ '{' ] => { $ crate :: SyntaxKind :: L_CURLY } ; [ '}' ] => { $ crate :: SyntaxKind :: R_CURLY } ; [ '[' ] => { $ crate :: SyntaxKind :: L_BRACK } ; [ ']' ] => { $ crate :: SyntaxKind :: R_BRACK } ; [ < ] => { $ crate :: SyntaxKind :: L_ANGLE } ; [ > ] => { $ crate :: SyntaxKind :: R_ANGLE } ; [ @ ] => { $ crate :: SyntaxKind :: AT } ; [ # ] => { $ crate :: SyntaxKind :: POUND } ; [ ~ ] => { $ crate :: SyntaxKind :: TILDE } ; [ ? ] => { $ crate :: SyntaxKind :: QUESTION } ; [ $ ] => { $ crate :: SyntaxKind :: DOLLAR } ; [ & ] => { $ crate :: SyntaxKind :: AMP } ; [ | ] => { $ crate :: SyntaxKind :: PIPE } ; [ + ] => { $ crate :: SyntaxKind :: PLUS } ; [ * ] => { $ crate :: SyntaxKind :: STAR } ; [ / ] => { $ crate :: SyntaxKind :: SLASH } ; [ ^ ] => { $ crate :: SyntaxKind :: CARET } ; [ % ] => { $ crate :: SyntaxKind :: PERCENT } ; [ _ ] => { $ crate :: SyntaxKind :: UNDERSCORE } ; [ . ] => { $ crate :: SyntaxKind :: DOT } ; [ .. ] => { $ crate :: SyntaxKind :: DOT2 } ; [ ... ] => { $ crate :: SyntaxKind :: DOT3 } ; [ ..= ] => { $ crate :: SyntaxKind :: DOT2EQ } ; [ : ] => { $ crate :: SyntaxKind :: COLON } ; [ :: ] => { $ crate :: SyntaxKind :: COLON2 } ; [ = ] => { $ crate :: SyntaxKind :: EQ } ; [ == ] => { $ crate :: SyntaxKind :: EQ2 } ; [ => ] => { $ crate :: SyntaxKind :: FAT_ARROW } ; [ ! ] => { $ crate :: SyntaxKind :: BANG } ; [ != ] => { $ crate :: SyntaxKind :: NEQ } ; [ - ] => { $ crate :: SyntaxKind :: MINUS } ; [ -> ] => { $ crate :: SyntaxKind :: THIN_ARROW } ; [ <= ] => { $ crate :: SyntaxKind :: LTEQ } ; [ >= ] => { $ crate :: SyntaxKind :: GTEQ } ; [ += ] => { $ crate :: SyntaxKind :: PLUSEQ } ; [ -= ] => { $ crate :: SyntaxKind :: MINUSEQ } ; [ |= ] => { $ crate :: SyntaxKind :: PIPEEQ } ; [ &= ] => { $ crate :: SyntaxKind :: AMPEQ } ; [ ^= ] => { $ crate :: SyntaxKind :: CARETEQ } ; [ /= ] => { $ crate :: SyntaxKind :: SLASHEQ } ; [ *= ] => { $ crate :: SyntaxKind :: STAREQ } ; [ %= ] => { $ crate :: SyntaxKind :: PERCENTEQ } ; [ && ] => { $ crate :: SyntaxKind :: AMP2 } ; [ || ] => { $ crate :: SyntaxKind :: PIPE2 } ; [ << ] => { $ crate :: SyntaxKind :: SHL } ; [ >> ] => { $ crate :: SyntaxKind :: SHR } ; [ <<= ] => { $ crate :: SyntaxKind :: SHLEQ } ; [ >>= ] => { $ crate :: SyntaxKind :: SHREQ } ; [ as ] => { $ crate :: SyntaxKind :: AS_KW } ; [ async ] => { $ crate :: SyntaxKind :: ASYNC_KW } ; [ await ] => { $ crate :: SyntaxKind :: AWAIT_KW } ; [ box ] => { $ crate :: SyntaxKind :: BOX_KW } ; [ break ] => { $ crate :: SyntaxKind :: BREAK_KW } ; [ const ] => { $ crate :: SyntaxKind :: CONST_KW } ; [ continue ] => { $ crate :: SyntaxKind :: CONTINUE_KW } ; [ crate ] => { $ crate :: SyntaxKind :: CRATE_KW } ; [ dyn ] => { $ crate :: SyntaxKind :: DYN_KW } ; [ else ] => { $ crate :: SyntaxKind :: ELSE_KW } ; [ enum ] => { $ crate :: SyntaxKind :: ENUM_KW } ; [ extern ] => { $ crate :: SyntaxKind :: EXTERN_KW } ; [ false ] => { $ crate :: SyntaxKind :: FALSE_KW } ; [ fn ] => { $ crate :: SyntaxKind :: FN_KW } ; [ for ] => { $ crate :: SyntaxKind :: FOR_KW } ; [ if ] => { $ crate :: SyntaxKind :: IF_KW } ; [ impl ] => { $ crate :: SyntaxKind :: IMPL_KW } ; [ in ] => { $ crate :: SyntaxKind :: IN_KW } ; [ let ] => { $ crate :: SyntaxKind :: LET_KW } ; [ loop ] => { $ crate :: SyntaxKind :: LOOP_KW } ; [ macro ] => { $ crate :: SyntaxKind :: MACRO_KW } ; [ match ] => { $ crate :: SyntaxKind :: MATCH_KW } ; [ mod ] => { $ crate :: SyntaxKind :: MOD_KW } ; [ move ] => { $ crate :: SyntaxKind :: MOVE_KW } ; [ mut ] => { $ crate :: SyntaxKind :: MUT_KW } ; [ pub ] => { $ crate :: SyntaxKind :: PUB_KW } ; [ ref ] => { $ crate :: SyntaxKind :: REF_KW } ; [ return ] => { $ crate :: SyntaxKind :: RETURN_KW } ; [ self ] => { $ crate :: SyntaxKind :: SELF_KW } ; [ static ] => { $ crate :: SyntaxKind :: STATIC_KW } ; [ struct ] => { $ crate :: SyntaxKind :: STRUCT_KW } ; [ super ] => { $ crate :: SyntaxKind :: SUPER_KW } ; [ trait ] => { $ crate :: SyntaxKind :: TRAIT_KW } ; [ true ] => { $ crate :: SyntaxKind :: TRUE_KW } ; [ try ] => { $ crate :: SyntaxKind :: TRY_KW } ; [ type ] => { $ crate :: SyntaxKind :: TYPE_KW } ; [ unsafe ] => { $ crate :: SyntaxKind :: UNSAFE_KW } ; [ use ] => { $ crate :: SyntaxKind :: USE_KW } ; [ where ] => { $ crate :: SyntaxKind :: WHERE_KW } ; [ while ] => { $ crate :: SyntaxKind :: WHILE_KW } ; [ auto ] => { $ crate :: SyntaxKind :: AUTO_KW } ; [ default ] => { $ crate :: SyntaxKind :: DEFAULT_KW } ; [ existential ] => { $ crate :: SyntaxKind :: EXISTENTIAL_KW } ; [ union ] => { $ crate :: SyntaxKind :: UNION_KW } ; [ raw ] => { $ crate :: SyntaxKind :: RAW_KW } ; [ lifetime ] => { $ crate :: SyntaxKind :: LIFETIME } ; [ ident ] => { $ crate :: SyntaxKind :: IDENT } ; }
367 ( ; ) => {
368 $crate::SyntaxKind::SEMI
369 };
370 ( , ) => {
371 $crate::SyntaxKind::COMMA
372 };
373 ( '(' ) => {
374 $crate::SyntaxKind::L_PAREN
375 };
376 ( ')' ) => {
377 $crate::SyntaxKind::R_PAREN
378 };
379 ( '{' ) => {
380 $crate::SyntaxKind::L_CURLY
381 };
382 ( '}' ) => {
383 $crate::SyntaxKind::R_CURLY
384 };
385 ( '[' ) => {
386 $crate::SyntaxKind::L_BRACK
387 };
388 ( ']' ) => {
389 $crate::SyntaxKind::R_BRACK
390 };
391 ( < ) => {
392 $crate::SyntaxKind::L_ANGLE
393 };
394 ( > ) => {
395 $crate::SyntaxKind::R_ANGLE
396 };
397 ( @ ) => {
398 $crate::SyntaxKind::AT
399 };
400 ( # ) => {
401 $crate::SyntaxKind::POUND
402 };
403 ( ~ ) => {
404 $crate::SyntaxKind::TILDE
405 };
406 ( ? ) => {
407 $crate::SyntaxKind::QUESTION
408 };
409 ( $ ) => {
410 $crate::SyntaxKind::DOLLAR
411 };
412 ( & ) => {
413 $crate::SyntaxKind::AMP
414 };
415 ( | ) => {
416 $crate::SyntaxKind::PIPE
417 };
418 ( + ) => {
419 $crate::SyntaxKind::PLUS
420 };
421 ( * ) => {
422 $crate::SyntaxKind::STAR
423 };
424 ( / ) => {
425 $crate::SyntaxKind::SLASH
426 };
427 ( ^ ) => {
428 $crate::SyntaxKind::CARET
429 };
430 ( % ) => {
431 $crate::SyntaxKind::PERCENT
432 };
433 ( _ ) => {
434 $crate::SyntaxKind::UNDERSCORE
435 };
436 ( . ) => {
437 $crate::SyntaxKind::DOT
438 };
439 ( .. ) => {
440 $crate::SyntaxKind::DOTDOT
441 };
442 ( ... ) => {
443 $crate::SyntaxKind::DOTDOTDOT
444 };
445 ( ..= ) => {
446 $crate::SyntaxKind::DOTDOTEQ
447 };
448 ( : ) => {
449 $crate::SyntaxKind::COLON
450 };
451 ( :: ) => {
452 $crate::SyntaxKind::COLONCOLON
453 };
454 ( = ) => {
455 $crate::SyntaxKind::EQ
456 };
457 ( == ) => {
458 $crate::SyntaxKind::EQEQ
459 };
460 ( => ) => {
461 $crate::SyntaxKind::FAT_ARROW
462 };
463 ( ! ) => {
464 $crate::SyntaxKind::EXCL
465 };
466 ( != ) => {
467 $crate::SyntaxKind::NEQ
468 };
469 ( - ) => {
470 $crate::SyntaxKind::MINUS
471 };
472 ( -> ) => {
473 $crate::SyntaxKind::THIN_ARROW
474 };
475 ( <= ) => {
476 $crate::SyntaxKind::LTEQ
477 };
478 ( >= ) => {
479 $crate::SyntaxKind::GTEQ
480 };
481 ( += ) => {
482 $crate::SyntaxKind::PLUSEQ
483 };
484 ( -= ) => {
485 $crate::SyntaxKind::MINUSEQ
486 };
487 ( |= ) => {
488 $crate::SyntaxKind::PIPEEQ
489 };
490 ( &= ) => {
491 $crate::SyntaxKind::AMPEQ
492 };
493 ( ^= ) => {
494 $crate::SyntaxKind::CARETEQ
495 };
496 ( /= ) => {
497 $crate::SyntaxKind::SLASHEQ
498 };
499 ( *= ) => {
500 $crate::SyntaxKind::STAREQ
501 };
502 ( %= ) => {
503 $crate::SyntaxKind::PERCENTEQ
504 };
505 ( && ) => {
506 $crate::SyntaxKind::AMPAMP
507 };
508 ( || ) => {
509 $crate::SyntaxKind::PIPEPIPE
510 };
511 ( << ) => {
512 $crate::SyntaxKind::SHL
513 };
514 ( >> ) => {
515 $crate::SyntaxKind::SHR
516 };
517 ( <<= ) => {
518 $crate::SyntaxKind::SHLEQ
519 };
520 ( >>= ) => {
521 $crate::SyntaxKind::SHREQ
522 };
523 ( as ) => {
524 $crate::SyntaxKind::AS_KW
525 };
526 ( async ) => {
527 $crate::SyntaxKind::ASYNC_KW
528 };
529 ( await ) => {
530 $crate::SyntaxKind::AWAIT_KW
531 };
532 ( box ) => {
533 $crate::SyntaxKind::BOX_KW
534 };
535 ( break ) => {
536 $crate::SyntaxKind::BREAK_KW
537 };
538 ( const ) => {
539 $crate::SyntaxKind::CONST_KW
540 };
541 ( continue ) => {
542 $crate::SyntaxKind::CONTINUE_KW
543 };
544 ( crate ) => {
545 $crate::SyntaxKind::CRATE_KW
546 };
547 ( dyn ) => {
548 $crate::SyntaxKind::DYN_KW
549 };
550 ( else ) => {
551 $crate::SyntaxKind::ELSE_KW
552 };
553 ( enum ) => {
554 $crate::SyntaxKind::ENUM_KW
555 };
556 ( extern ) => {
557 $crate::SyntaxKind::EXTERN_KW
558 };
559 ( false ) => {
560 $crate::SyntaxKind::FALSE_KW
561 };
562 ( fn ) => {
563 $crate::SyntaxKind::FN_KW
564 };
565 ( for ) => {
566 $crate::SyntaxKind::FOR_KW
567 };
568 ( if ) => {
569 $crate::SyntaxKind::IF_KW
570 };
571 ( impl ) => {
572 $crate::SyntaxKind::IMPL_KW
573 };
574 ( in ) => {
575 $crate::SyntaxKind::IN_KW
576 };
577 ( let ) => {
578 $crate::SyntaxKind::LET_KW
579 };
580 ( loop ) => {
581 $crate::SyntaxKind::LOOP_KW
582 };
583 ( macro ) => {
584 $crate::SyntaxKind::MACRO_KW
585 };
586 ( match ) => {
587 $crate::SyntaxKind::MATCH_KW
588 };
589 ( mod ) => {
590 $crate::SyntaxKind::MOD_KW
591 };
592 ( move ) => {
593 $crate::SyntaxKind::MOVE_KW
594 };
595 ( mut ) => {
596 $crate::SyntaxKind::MUT_KW
597 };
598 ( pub ) => {
599 $crate::SyntaxKind::PUB_KW
600 };
601 ( ref ) => {
602 $crate::SyntaxKind::REF_KW
603 };
604 ( return ) => {
605 $crate::SyntaxKind::RETURN_KW
606 };
607 ( self ) => {
608 $crate::SyntaxKind::SELF_KW
609 };
610 ( static ) => {
611 $crate::SyntaxKind::STATIC_KW
612 };
613 ( struct ) => {
614 $crate::SyntaxKind::STRUCT_KW
615 };
616 ( super ) => {
617 $crate::SyntaxKind::SUPER_KW
618 };
619 ( trait ) => {
620 $crate::SyntaxKind::TRAIT_KW
621 };
622 ( true ) => {
623 $crate::SyntaxKind::TRUE_KW
624 };
625 ( try ) => {
626 $crate::SyntaxKind::TRY_KW
627 };
628 ( type ) => {
629 $crate::SyntaxKind::TYPE_KW
630 };
631 ( unsafe ) => {
632 $crate::SyntaxKind::UNSAFE_KW
633 };
634 ( use ) => {
635 $crate::SyntaxKind::USE_KW
636 };
637 ( where ) => {
638 $crate::SyntaxKind::WHERE_KW
639 };
640 ( while ) => {
641 $crate::SyntaxKind::WHILE_KW
642 };
643 ( auto ) => {
644 $crate::SyntaxKind::AUTO_KW
645 };
646 ( default ) => {
647 $crate::SyntaxKind::DEFAULT_KW
648 };
649 ( existential ) => {
650 $crate::SyntaxKind::EXISTENTIAL_KW
651 };
652 ( union ) => {
653 $crate::SyntaxKind::UNION_KW
654 };
655 ( raw ) => {
656 $crate::SyntaxKind::RAW_KW
657 };
658 ( lifetime ) => {
659 $crate::SyntaxKind::LIFETIME
660 };
661 ( ident ) => {
662 $crate::SyntaxKind::IDENT
663 };
664}
diff --git a/crates/ra_syntax/src/ast/extensions.rs b/crates/ra_syntax/src/ast/extensions.rs
index 87c92880c..1aacb0676 100644
--- a/crates/ra_syntax/src/ast/extensions.rs
+++ b/crates/ra_syntax/src/ast/extensions.rs
@@ -77,7 +77,7 @@ impl ast::Attr {
77 first_token.and_then(|token| token.next_token()).as_ref().map(SyntaxToken::kind); 77 first_token.and_then(|token| token.next_token()).as_ref().map(SyntaxToken::kind);
78 78
79 match (first_token_kind, second_token_kind) { 79 match (first_token_kind, second_token_kind) {
80 (Some(SyntaxKind::POUND), Some(SyntaxKind::EXCL)) => AttrKind::Inner, 80 (Some(SyntaxKind::POUND), Some(T![!])) => AttrKind::Inner,
81 _ => AttrKind::Outer, 81 _ => AttrKind::Outer,
82 } 82 }
83 } 83 }
diff --git a/crates/ra_syntax/src/parsing/lexer.rs b/crates/ra_syntax/src/parsing/lexer.rs
index d1baaa607..67c1f1b48 100644
--- a/crates/ra_syntax/src/parsing/lexer.rs
+++ b/crates/ra_syntax/src/parsing/lexer.rs
@@ -4,7 +4,7 @@
4use crate::{ 4use crate::{
5 SyntaxError, 5 SyntaxError,
6 SyntaxKind::{self, *}, 6 SyntaxKind::{self, *},
7 TextRange, TextUnit, 7 TextRange, TextUnit, T,
8}; 8};
9 9
10/// A token of Rust source. 10/// A token of Rust source.
@@ -115,21 +115,20 @@ fn rustc_token_kind_to_syntax_kind(
115 // being `u16` that come from `rowan::SyntaxKind`. 115 // being `u16` that come from `rowan::SyntaxKind`.
116 116
117 let syntax_kind = { 117 let syntax_kind = {
118 use rustc_lexer::TokenKind as TK;
119 match rustc_token_kind { 118 match rustc_token_kind {
120 TK::LineComment => COMMENT, 119 rustc_lexer::TokenKind::LineComment => COMMENT,
121 120
122 TK::BlockComment { terminated: true } => COMMENT, 121 rustc_lexer::TokenKind::BlockComment { terminated: true } => COMMENT,
123 TK::BlockComment { terminated: false } => { 122 rustc_lexer::TokenKind::BlockComment { terminated: false } => {
124 return ( 123 return (
125 COMMENT, 124 COMMENT,
126 Some("Missing trailing `*/` symbols to terminate the block comment"), 125 Some("Missing trailing `*/` symbols to terminate the block comment"),
127 ); 126 );
128 } 127 }
129 128
130 TK::Whitespace => WHITESPACE, 129 rustc_lexer::TokenKind::Whitespace => WHITESPACE,
131 130
132 TK::Ident => { 131 rustc_lexer::TokenKind::Ident => {
133 if token_text == "_" { 132 if token_text == "_" {
134 UNDERSCORE 133 UNDERSCORE
135 } else { 134 } else {
@@ -137,42 +136,42 @@ fn rustc_token_kind_to_syntax_kind(
137 } 136 }
138 } 137 }
139 138
140 TK::RawIdent => IDENT, 139 rustc_lexer::TokenKind::RawIdent => IDENT,
141 TK::Literal { kind, .. } => return match_literal_kind(&kind), 140 rustc_lexer::TokenKind::Literal { kind, .. } => return match_literal_kind(&kind),
142 141
143 TK::Lifetime { starts_with_number: false } => LIFETIME, 142 rustc_lexer::TokenKind::Lifetime { starts_with_number: false } => LIFETIME,
144 TK::Lifetime { starts_with_number: true } => { 143 rustc_lexer::TokenKind::Lifetime { starts_with_number: true } => {
145 return (LIFETIME, Some("Lifetime name cannot start with a number")) 144 return (LIFETIME, Some("Lifetime name cannot start with a number"))
146 } 145 }
147 146
148 TK::Semi => SEMI, 147 rustc_lexer::TokenKind::Semi => T![;],
149 TK::Comma => COMMA, 148 rustc_lexer::TokenKind::Comma => T![,],
150 TK::Dot => DOT, 149 rustc_lexer::TokenKind::Dot => T![.],
151 TK::OpenParen => L_PAREN, 150 rustc_lexer::TokenKind::OpenParen => T!['('],
152 TK::CloseParen => R_PAREN, 151 rustc_lexer::TokenKind::CloseParen => T![')'],
153 TK::OpenBrace => L_CURLY, 152 rustc_lexer::TokenKind::OpenBrace => T!['{'],
154 TK::CloseBrace => R_CURLY, 153 rustc_lexer::TokenKind::CloseBrace => T!['}'],
155 TK::OpenBracket => L_BRACK, 154 rustc_lexer::TokenKind::OpenBracket => T!['['],
156 TK::CloseBracket => R_BRACK, 155 rustc_lexer::TokenKind::CloseBracket => T![']'],
157 TK::At => AT, 156 rustc_lexer::TokenKind::At => T![@],
158 TK::Pound => POUND, 157 rustc_lexer::TokenKind::Pound => T![#],
159 TK::Tilde => TILDE, 158 rustc_lexer::TokenKind::Tilde => T![~],
160 TK::Question => QUESTION, 159 rustc_lexer::TokenKind::Question => T![?],
161 TK::Colon => COLON, 160 rustc_lexer::TokenKind::Colon => T![:],
162 TK::Dollar => DOLLAR, 161 rustc_lexer::TokenKind::Dollar => T![$],
163 TK::Eq => EQ, 162 rustc_lexer::TokenKind::Eq => T![=],
164 TK::Not => EXCL, 163 rustc_lexer::TokenKind::Not => T![!],
165 TK::Lt => L_ANGLE, 164 rustc_lexer::TokenKind::Lt => T![<],
166 TK::Gt => R_ANGLE, 165 rustc_lexer::TokenKind::Gt => T![>],
167 TK::Minus => MINUS, 166 rustc_lexer::TokenKind::Minus => T![-],
168 TK::And => AMP, 167 rustc_lexer::TokenKind::And => T![&],
169 TK::Or => PIPE, 168 rustc_lexer::TokenKind::Or => T![|],
170 TK::Plus => PLUS, 169 rustc_lexer::TokenKind::Plus => T![+],
171 TK::Star => STAR, 170 rustc_lexer::TokenKind::Star => T![*],
172 TK::Slash => SLASH, 171 rustc_lexer::TokenKind::Slash => T![/],
173 TK::Caret => CARET, 172 rustc_lexer::TokenKind::Caret => T![^],
174 TK::Percent => PERCENT, 173 rustc_lexer::TokenKind::Percent => T![%],
175 TK::Unknown => ERROR, 174 rustc_lexer::TokenKind::Unknown => ERROR,
176 } 175 }
177 }; 176 };
178 177
diff --git a/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.txt b/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.txt
index 782dfd974..290e0bd7c 100644
--- a/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.txt
+++ b/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.txt
@@ -6,5 +6,5 @@ WHITESPACE 1 " "
6IDENT 1 "a" 6IDENT 1 "a"
7WHITESPACE 1 " " 7WHITESPACE 1 " "
8IDENT 5 "quote" 8IDENT 5 "quote"
9EXCL 1 "!" 9BANG 1 "!"
10> error[0; 4) token("r## ") msg(Missing `"` symbol after `#` symbols to begin the raw string literal) 10> error[0; 4) token("r## ") msg(Missing `"` symbol after `#` symbols to begin the raw string literal)
diff --git a/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.txt b/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.txt
index 59c40cd65..5c492906d 100644
--- a/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.txt
+++ b/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.txt
@@ -6,5 +6,5 @@ WHITESPACE 1 " "
6IDENT 1 "a" 6IDENT 1 "a"
7WHITESPACE 1 " " 7WHITESPACE 1 " "
8IDENT 5 "quote" 8IDENT 5 "quote"
9EXCL 1 "!" 9BANG 1 "!"
10> error[0; 5) token("br## ") msg(Missing `"` symbol after `#` symbols to begin the raw byte string literal) 10> error[0; 5) token("br## ") msg(Missing `"` symbol after `#` symbols to begin the raw byte string literal)
diff --git a/crates/ra_syntax/test_data/lexer/ok/0005_symbols.txt b/crates/ra_syntax/test_data/lexer/ok/0005_symbols.txt
index 469a90e42..2049c2f1d 100644
--- a/crates/ra_syntax/test_data/lexer/ok/0005_symbols.txt
+++ b/crates/ra_syntax/test_data/lexer/ok/0005_symbols.txt
@@ -1,4 +1,4 @@
1SEMI 1 ";" 1SEMICOLON 1 ";"
2WHITESPACE 1 " " 2WHITESPACE 1 " "
3COMMA 1 "," 3COMMA 1 ","
4WHITESPACE 1 " " 4WHITESPACE 1 " "
@@ -65,9 +65,9 @@ WHITESPACE 1 " "
65EQ 1 "=" 65EQ 1 "="
66R_ANGLE 1 ">" 66R_ANGLE 1 ">"
67WHITESPACE 1 "\n" 67WHITESPACE 1 "\n"
68EXCL 1 "!" 68BANG 1 "!"
69WHITESPACE 1 " " 69WHITESPACE 1 " "
70EXCL 1 "!" 70BANG 1 "!"
71EQ 1 "=" 71EQ 1 "="
72WHITESPACE 1 "\n" 72WHITESPACE 1 "\n"
73MINUS 1 "-" 73MINUS 1 "-"
diff --git a/crates/ra_syntax/test_data/parser/err/0002_duplicate_shebang.rast b/crates/ra_syntax/test_data/parser/err/0002_duplicate_shebang.rast
index 002680583..831bbf83f 100644
--- a/crates/ra_syntax/test_data/parser/err/0002_duplicate_shebang.rast
+++ b/crates/ra_syntax/test_data/parser/err/0002_duplicate_shebang.rast
@@ -3,7 +3,7 @@ SOURCE_FILE@[0; 42)
3 WHITESPACE@[20; 21) "\n" 3 WHITESPACE@[20; 21) "\n"
4 ATTR@[21; 23) 4 ATTR@[21; 23)
5 POUND@[21; 22) "#" 5 POUND@[21; 22) "#"
6 EXCL@[22; 23) "!" 6 BANG@[22; 23) "!"
7 ERROR@[23; 24) 7 ERROR@[23; 24)
8 SLASH@[23; 24) "/" 8 SLASH@[23; 24) "/"
9 USE_ITEM@[24; 28) 9 USE_ITEM@[24; 28)
@@ -29,11 +29,11 @@ SOURCE_FILE@[0; 42)
29error [23; 23): expected `[` 29error [23; 23): expected `[`
30error [23; 23): expected an item 30error [23; 23): expected an item
31error [27; 27): expected one of `*`, `::`, `{`, `self`, `super` or an identifier 31error [27; 27): expected one of `*`, `::`, `{`, `self`, `super` or an identifier
32error [28; 28): expected SEMI 32error [28; 28): expected SEMICOLON
33error [31; 31): expected EXCL 33error [31; 31): expected BANG
34error [31; 31): expected `{`, `[`, `(` 34error [31; 31): expected `{`, `[`, `(`
35error [31; 31): expected SEMI 35error [31; 31): expected SEMICOLON
36error [31; 31): expected an item 36error [31; 31): expected an item
37error [35; 35): expected EXCL 37error [35; 35): expected BANG
38error [41; 41): expected `{`, `[`, `(` 38error [41; 41): expected `{`, `[`, `(`
39error [41; 41): expected SEMI 39error [41; 41): expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0003_C++_semicolon.rast b/crates/ra_syntax/test_data/parser/err/0003_C++_semicolon.rast
index 8039a8913..6b89e7572 100644
--- a/crates/ra_syntax/test_data/parser/err/0003_C++_semicolon.rast
+++ b/crates/ra_syntax/test_data/parser/err/0003_C++_semicolon.rast
@@ -34,6 +34,6 @@ SOURCE_FILE@[0; 40)
34 WHITESPACE@[37; 38) "\n" 34 WHITESPACE@[37; 38) "\n"
35 R_CURLY@[38; 39) "}" 35 R_CURLY@[38; 39) "}"
36 ERROR@[39; 40) 36 ERROR@[39; 40)
37 SEMI@[39; 40) ";" 37 SEMICOLON@[39; 40) ";"
38error [39; 39): expected item, found `;` 38error [39; 39): expected item, found `;`
39consider removing this semicolon 39consider removing this semicolon
diff --git a/crates/ra_syntax/test_data/parser/err/0004_use_path_bad_segment.rast b/crates/ra_syntax/test_data/parser/err/0004_use_path_bad_segment.rast
index 5f6e10986..1d27d4cd6 100644
--- a/crates/ra_syntax/test_data/parser/err/0004_use_path_bad_segment.rast
+++ b/crates/ra_syntax/test_data/parser/err/0004_use_path_bad_segment.rast
@@ -8,9 +8,9 @@ SOURCE_FILE@[0; 12)
8 PATH_SEGMENT@[4; 7) 8 PATH_SEGMENT@[4; 7)
9 NAME_REF@[4; 7) 9 NAME_REF@[4; 7)
10 IDENT@[4; 7) "foo" 10 IDENT@[4; 7) "foo"
11 COLONCOLON@[7; 9) "::" 11 COLON2@[7; 9) "::"
12 PATH_SEGMENT@[9; 11) 12 PATH_SEGMENT@[9; 11)
13 ERROR@[9; 11) 13 ERROR@[9; 11)
14 INT_NUMBER@[9; 11) "92" 14 INT_NUMBER@[9; 11) "92"
15 SEMI@[11; 12) ";" 15 SEMICOLON@[11; 12) ";"
16error [9; 9): expected identifier 16error [9; 9): expected identifier
diff --git a/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast b/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast
index 1978f30fa..c24e478f3 100644
--- a/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast
+++ b/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast
@@ -7,7 +7,7 @@ SOURCE_FILE@[0; 31)
7 WHITESPACE@[9; 10) " " 7 WHITESPACE@[9; 10) " "
8 NAME@[10; 11) 8 NAME@[10; 11)
9 IDENT@[10; 11) "S" 9 IDENT@[10; 11) "S"
10 SEMI@[11; 12) ";" 10 SEMICOLON@[11; 12) ";"
11 WHITESPACE@[12; 14) "\n\n" 11 WHITESPACE@[12; 14) "\n\n"
12 ERROR@[14; 15) 12 ERROR@[14; 15)
13 R_CURLY@[14; 15) "}" 13 R_CURLY@[14; 15) "}"
diff --git a/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast b/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast
index 98248227d..9f5041ae4 100644
--- a/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast
+++ b/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast
@@ -76,6 +76,6 @@ SOURCE_FILE@[0; 95)
76 WHITESPACE@[92; 93) "\n" 76 WHITESPACE@[92; 93) "\n"
77 R_CURLY@[93; 94) "}" 77 R_CURLY@[93; 94) "}"
78 WHITESPACE@[94; 95) "\n" 78 WHITESPACE@[94; 95) "\n"
79error [17; 17): expected EXCL 79error [17; 17): expected BANG
80error [19; 19): expected SEMI 80error [19; 19): expected SEMICOLON
81error [20; 20): expected an item 81error [20; 20): expected an item
diff --git a/crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast b/crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast
index ca508ac7c..7ed80477d 100644
--- a/crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast
+++ b/crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast
@@ -43,7 +43,7 @@ SOURCE_FILE@[0; 43)
43 WHITESPACE@[39; 40) " " 43 WHITESPACE@[39; 40) " "
44 NAME@[40; 41) 44 NAME@[40; 41)
45 IDENT@[40; 41) "T" 45 IDENT@[40; 41) "T"
46 SEMI@[41; 42) ";" 46 SEMICOLON@[41; 42) ";"
47 WHITESPACE@[42; 43) "\n" 47 WHITESPACE@[42; 43) "\n"
48error [9; 9): expected type parameter 48error [9; 9): expected type parameter
49error [11; 11): expected COMMA 49error [11; 11): expected COMMA
@@ -53,6 +53,6 @@ error [12; 12): expected an item
53error [14; 14): expected an item 53error [14; 14): expected an item
54error [15; 15): expected an item 54error [15; 15): expected an item
55error [17; 17): expected an item 55error [17; 17): expected an item
56error [24; 24): expected SEMI 56error [24; 24): expected SEMICOLON
57error [24; 24): expected expression 57error [24; 24): expected expression
58error [25; 25): expected SEMI 58error [25; 25): expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast b/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast
index 0ffbd25aa..5559c3297 100644
--- a/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast
+++ b/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast
@@ -37,9 +37,9 @@ SOURCE_FILE@[0; 42)
37 R_PAREN@[35; 36) ")" 37 R_PAREN@[35; 36) ")"
38 WHITESPACE@[36; 37) " " 38 WHITESPACE@[36; 37) " "
39 R_CURLY@[37; 38) "}" 39 R_CURLY@[37; 38) "}"
40 SEMI@[38; 39) ";" 40 SEMICOLON@[38; 39) ";"
41 WHITESPACE@[39; 40) "\n" 41 WHITESPACE@[39; 40) "\n"
42 R_CURLY@[40; 41) "}" 42 R_CURLY@[40; 41) "}"
43 WHITESPACE@[41; 42) "\n" 43 WHITESPACE@[41; 42) "\n"
44error [24; 24): expected `{` 44error [24; 24): expected `{`
45error [24; 24): expected SEMI 45error [24; 24): expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0011_extern_struct.rast b/crates/ra_syntax/test_data/parser/err/0011_extern_struct.rast
index 900894dcf..99c212fd6 100644
--- a/crates/ra_syntax/test_data/parser/err/0011_extern_struct.rast
+++ b/crates/ra_syntax/test_data/parser/err/0011_extern_struct.rast
@@ -8,6 +8,6 @@ SOURCE_FILE@[0; 19)
8 WHITESPACE@[13; 14) " " 8 WHITESPACE@[13; 14) " "
9 NAME@[14; 17) 9 NAME@[14; 17)
10 IDENT@[14; 17) "Foo" 10 IDENT@[14; 17) "Foo"
11 SEMI@[17; 18) ";" 11 SEMICOLON@[17; 18) ";"
12 WHITESPACE@[18; 19) "\n" 12 WHITESPACE@[18; 19) "\n"
13error [6; 6): expected existential, fn, trait or impl 13error [6; 6): expected existential, fn, trait or impl
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 12ebc2a3a..0a3c0313d 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
@@ -106,7 +106,7 @@ SOURCE_FILE@[0; 389)
106 WHITESPACE@[122; 123) 106 WHITESPACE@[122; 123)
107 LITERAL@[123; 124) 107 LITERAL@[123; 124)
108 INT_NUMBER@[123; 124) "0" 108 INT_NUMBER@[123; 124) "0"
109 SEMI@[124; 125) 109 SEMICOLON@[124; 125)
110 WHITESPACE@[125; 130) 110 WHITESPACE@[125; 130)
111 LET_STMT@[130; 389) 111 LET_STMT@[130; 389)
112 LET_KW@[130; 133) 112 LET_KW@[130; 133)
@@ -226,7 +226,7 @@ SOURCE_FILE@[0; 389)
226 err: `expected pattern` 226 err: `expected pattern`
227 PARAM@[236; 237) 227 PARAM@[236; 237)
228 ERROR@[236; 237) 228 ERROR@[236; 237)
229 EXCL@[236; 237) 229 BANG@[236; 237)
230 err: `expected COMMA` 230 err: `expected COMMA`
231 PARAM@[237; 242) 231 PARAM@[237; 242)
232 BIND_PAT@[237; 242) 232 BIND_PAT@[237; 242)
@@ -272,7 +272,7 @@ SOURCE_FILE@[0; 389)
272 err: `expected pattern` 272 err: `expected pattern`
273 PARAM@[283; 284) 273 PARAM@[283; 284)
274 ERROR@[283; 284) 274 ERROR@[283; 284)
275 SEMI@[283; 284) 275 SEMICOLON@[283; 284)
276 err: `expected COMMA` 276 err: `expected COMMA`
277 WHITESPACE@[284; 297) 277 WHITESPACE@[284; 297)
278 err: `expected pattern` 278 err: `expected pattern`
@@ -327,7 +327,7 @@ SOURCE_FILE@[0; 389)
327 err: `expected pattern` 327 err: `expected pattern`
328 PARAM@[346; 347) 328 PARAM@[346; 347)
329 ERROR@[346; 347) 329 ERROR@[346; 347)
330 SEMI@[346; 347) 330 SEMICOLON@[346; 347)
331 err: `expected COMMA` 331 err: `expected COMMA`
332 WHITESPACE@[347; 360) 332 WHITESPACE@[347; 360)
333 err: `expected pattern` 333 err: `expected pattern`
@@ -371,7 +371,7 @@ SOURCE_FILE@[0; 389)
371 err: `expected pattern` 371 err: `expected pattern`
372 PARAM@[385; 386) 372 PARAM@[385; 386)
373 ERROR@[385; 386) 373 ERROR@[385; 386)
374 SEMI@[385; 386) 374 SEMICOLON@[385; 386)
375 err: `expected COMMA` 375 err: `expected COMMA`
376 WHITESPACE@[386; 387) 376 WHITESPACE@[386; 387)
377 err: `expected pattern` 377 err: `expected pattern`
diff --git a/crates/ra_syntax/test_data/parser/err/0013_invalid_type.rast b/crates/ra_syntax/test_data/parser/err/0013_invalid_type.rast
index 7a934cf66..cb570dc1c 100644
--- a/crates/ra_syntax/test_data/parser/err/0013_invalid_type.rast
+++ b/crates/ra_syntax/test_data/parser/err/0013_invalid_type.rast
@@ -67,7 +67,7 @@ SOURCE_FILE@[0; 86)
67 ERROR@[82; 83) 67 ERROR@[82; 83)
68 R_PAREN@[82; 83) ")" 68 R_PAREN@[82; 83) ")"
69 ERROR@[83; 84) 69 ERROR@[83; 84)
70 SEMI@[83; 84) ";" 70 SEMICOLON@[83; 84) ";"
71 WHITESPACE@[84; 86) "\n\n" 71 WHITESPACE@[84; 86) "\n\n"
72error [67; 67): expected type 72error [67; 67): expected type
73error [68; 68): expected COMMA 73error [68; 68): expected COMMA
@@ -80,7 +80,7 @@ error [68; 68): expected COMMA
80error [72; 72): expected COMMA 80error [72; 72): expected COMMA
81error [72; 72): expected a type 81error [72; 72): expected a type
82error [72; 72): expected R_PAREN 82error [72; 72): expected R_PAREN
83error [72; 72): expected SEMI 83error [72; 72): expected SEMICOLON
84error [72; 72): expected an item 84error [72; 72): expected an item
85error [73; 73): expected an item 85error [73; 73): expected an item
86error [79; 79): expected an item 86error [79; 79): expected an item
diff --git a/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast b/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast
index 6343580e0..aca5a3ada 100644
--- a/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast
+++ b/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast
@@ -37,8 +37,8 @@ SOURCE_FILE@[0; 56)
37 WHITESPACE@[49; 50) " " 37 WHITESPACE@[49; 50) " "
38 LITERAL@[50; 52) 38 LITERAL@[50; 52)
39 INT_NUMBER@[50; 52) "92" 39 INT_NUMBER@[50; 52) "92"
40 SEMI@[52; 53) ";" 40 SEMICOLON@[52; 53) ";"
41 WHITESPACE@[53; 54) "\n" 41 WHITESPACE@[53; 54) "\n"
42 R_CURLY@[54; 55) "}" 42 R_CURLY@[54; 55) "}"
43 WHITESPACE@[55; 56) "\n" 43 WHITESPACE@[55; 56) "\n"
44error [38; 38): expected SEMI 44error [38; 38): expected SEMICOLON
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 59480e999..f9f4b9bc2 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
@@ -34,7 +34,7 @@ SOURCE_FILE@[0; 47)
34 WHITESPACE@[32; 33) " " 34 WHITESPACE@[32; 33) " "
35 LITERAL@[33; 35) 35 LITERAL@[33; 35)
36 INT_NUMBER@[33; 35) "92" 36 INT_NUMBER@[33; 35) "92"
37 SEMI@[35; 36) ";" 37 SEMICOLON@[35; 36) ";"
38 WHITESPACE@[36; 41) "\n " 38 WHITESPACE@[36; 41) "\n "
39 BIN_EXPR@[41; 44) 39 BIN_EXPR@[41; 44)
40 LITERAL@[41; 42) 40 LITERAL@[41; 42)
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 4b13a7236..9a8f76673 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
@@ -60,7 +60,7 @@ SOURCE_FILE@[0; 183)
60 ARG_LIST@[82; 84) 60 ARG_LIST@[82; 84)
61 L_PAREN@[82; 83) "(" 61 L_PAREN@[82; 83) "("
62 R_PAREN@[83; 84) ")" 62 R_PAREN@[83; 84) ")"
63 SEMI@[84; 85) ";" 63 SEMICOLON@[84; 85) ";"
64 WHITESPACE@[85; 94) "\n " 64 WHITESPACE@[85; 94) "\n "
65 METHOD_CALL_EXPR@[94; 155) 65 METHOD_CALL_EXPR@[94; 155)
66 FIELD_EXPR@[94; 105) 66 FIELD_EXPR@[94; 105)
@@ -107,7 +107,7 @@ SOURCE_FILE@[0; 183)
107 PATH_SEGMENT@[146; 149) 107 PATH_SEGMENT@[146; 149)
108 NAME_REF@[146; 149) 108 NAME_REF@[146; 149)
109 IDENT@[146; 149) "vec" 109 IDENT@[146; 149) "vec"
110 EXCL@[149; 150) "!" 110 BANG@[149; 150) "!"
111 TOKEN_TREE@[150; 152) 111 TOKEN_TREE@[150; 152)
112 L_BRACK@[150; 151) "[" 112 L_BRACK@[150; 151) "["
113 R_BRACK@[151; 152) "]" 113 R_BRACK@[151; 152) "]"
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 97e91a94f..e283091e1 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
@@ -32,7 +32,7 @@ SOURCE_FILE@[0; 139)
32 WHITESPACE@[38; 39) " " 32 WHITESPACE@[38; 39) " "
33 LITERAL@[39; 40) 33 LITERAL@[39; 40)
34 INT_NUMBER@[39; 40) "1" 34 INT_NUMBER@[39; 40) "1"
35 SEMI@[40; 41) ";" 35 SEMICOLON@[40; 41) ";"
36 WHITESPACE@[41; 46) "\n " 36 WHITESPACE@[41; 46) "\n "
37 LET_STMT@[46; 49) 37 LET_STMT@[46; 49)
38 LET_KW@[46; 49) "let" 38 LET_KW@[46; 49) "let"
@@ -48,7 +48,7 @@ SOURCE_FILE@[0; 139)
48 WHITESPACE@[63; 64) " " 48 WHITESPACE@[63; 64) " "
49 LITERAL@[64; 66) 49 LITERAL@[64; 66)
50 INT_NUMBER@[64; 66) "92" 50 INT_NUMBER@[64; 66) "92"
51 SEMI@[66; 67) ";" 51 SEMICOLON@[66; 67) ";"
52 WHITESPACE@[67; 72) "\n " 52 WHITESPACE@[67; 72) "\n "
53 LET_STMT@[72; 75) 53 LET_STMT@[72; 75)
54 LET_KW@[72; 75) "let" 54 LET_KW@[72; 75) "let"
@@ -96,12 +96,12 @@ SOURCE_FILE@[0; 139)
96 R_CURLY@[137; 138) "}" 96 R_CURLY@[137; 138) "}"
97 WHITESPACE@[138; 139) "\n" 97 WHITESPACE@[138; 139) "\n"
98error [24; 24): expected expression 98error [24; 24): expected expression
99error [24; 24): expected SEMI 99error [24; 24): expected SEMICOLON
100error [49; 49): expected pattern 100error [49; 49): expected pattern
101error [49; 49): expected SEMI 101error [49; 49): expected SEMICOLON
102error [75; 75): expected pattern 102error [75; 75): expected pattern
103error [75; 75): expected SEMI 103error [75; 75): expected SEMICOLON
104error [98; 98): expected pattern 104error [98; 98): expected pattern
105error [98; 98): expected SEMI 105error [98; 98): expected SEMICOLON
106error [124; 124): expected pattern 106error [124; 124): expected pattern
107error [124; 124): expected SEMI 107error [124; 124): expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast b/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast
index 9f50c85e5..465749f95 100644
--- a/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast
+++ b/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast
@@ -150,34 +150,34 @@ SOURCE_FILE@[0; 112)
150 WHITESPACE@[111; 112) "\n" 150 WHITESPACE@[111; 112) "\n"
151error [16; 16): expected expression 151error [16; 16): expected expression
152error [17; 17): expected R_BRACK 152error [17; 17): expected R_BRACK
153error [17; 17): expected SEMI 153error [17; 17): expected SEMICOLON
154error [17; 17): expected expression 154error [17; 17): expected expression
155error [18; 18): expected SEMI 155error [18; 18): expected SEMICOLON
156error [25; 25): expected a name 156error [25; 25): expected a name
157error [26; 26): expected `;`, `{`, or `(` 157error [26; 26): expected `;`, `{`, or `(`
158error [30; 30): expected pattern 158error [30; 30): expected pattern
159error [31; 31): expected SEMI 159error [31; 31): expected SEMICOLON
160error [53; 53): expected expression 160error [53; 53): expected expression
161error [54; 54): expected SEMI 161error [54; 54): expected SEMICOLON
162error [54; 54): expected expression 162error [54; 54): expected expression
163error [55; 55): expected SEMI 163error [55; 55): expected SEMICOLON
164error [60; 60): expected type 164error [60; 60): expected type
165error [60; 60): expected `{` 165error [60; 60): expected `{`
166error [60; 60): expected expression 166error [60; 60): expected expression
167error [61; 61): expected SEMI 167error [61; 61): expected SEMICOLON
168error [65; 65): expected pattern 168error [65; 65): expected pattern
169error [65; 65): expected SEMI 169error [65; 65): expected SEMICOLON
170error [65; 65): expected expression 170error [65; 65): expected expression
171error [92; 92): expected expression 171error [92; 92): expected expression
172error [93; 93): expected SEMI 172error [93; 93): expected SEMICOLON
173error [93; 93): expected expression 173error [93; 93): expected expression
174error [94; 94): expected SEMI 174error [94; 94): expected SEMICOLON
175error [95; 95): expected expression 175error [95; 95): expected expression
176error [96; 96): expected SEMI 176error [96; 96): expected SEMICOLON
177error [96; 96): expected expression 177error [96; 96): expected expression
178error [97; 97): expected SEMI 178error [97; 97): expected SEMICOLON
179error [103; 103): expected a name 179error [103; 103): expected a name
180error [104; 104): expected `{` 180error [104; 104): expected `{`
181error [108; 108): expected pattern 181error [108; 108): expected pattern
182error [108; 108): expected SEMI 182error [108; 108): expected SEMICOLON
183error [108; 108): expected expression 183error [108; 108): expected expression
diff --git a/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast b/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast
index 775e4b0da..97abe9510 100644
--- a/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast
+++ b/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast
@@ -17,7 +17,7 @@ SOURCE_FILE@[0; 94)
17 PATH_SEGMENT@[16; 19) 17 PATH_SEGMENT@[16; 19)
18 NAME_REF@[16; 19) 18 NAME_REF@[16; 19)
19 IDENT@[16; 19) "foo" 19 IDENT@[16; 19) "foo"
20 EXCL@[19; 20) "!" 20 BANG@[19; 20) "!"
21 WHITESPACE@[20; 21) " " 21 WHITESPACE@[20; 21) " "
22 TOKEN_TREE@[21; 49) 22 TOKEN_TREE@[21; 49)
23 L_PAREN@[21; 22) "(" 23 L_PAREN@[21; 22) "("
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 c5c8a29ba..a3cf3e60a 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
@@ -144,7 +144,7 @@ SOURCE_FILE@[0; 240)
144 EXPR_STMT@[121; 123) 144 EXPR_STMT@[121; 123)
145 ERROR@[121; 122) 145 ERROR@[121; 122)
146 R_ANGLE@[121; 122) ">" 146 R_ANGLE@[121; 122) ">"
147 SEMI@[122; 123) ";" 147 SEMICOLON@[122; 123) ";"
148 WHITESPACE@[123; 128) "\n " 148 WHITESPACE@[123; 128) "\n "
149 LET_STMT@[128; 141) 149 LET_STMT@[128; 141)
150 LET_KW@[128; 131) "let" 150 LET_KW@[128; 131) "let"
@@ -219,7 +219,7 @@ SOURCE_FILE@[0; 240)
219 R_PAREN@[177; 178) ")" 219 R_PAREN@[177; 178) ")"
220 R_ANGLE@[178; 179) ">" 220 R_ANGLE@[178; 179) ">"
221 ERROR@[179; 180) 221 ERROR@[179; 180)
222 SEMI@[179; 180) ";" 222 SEMICOLON@[179; 180) ";"
223 WHITESPACE@[180; 185) "\n " 223 WHITESPACE@[180; 185) "\n "
224 LET_STMT@[185; 235) 224 LET_STMT@[185; 235)
225 LET_KW@[185; 188) "let" 225 LET_KW@[185; 188) "let"
@@ -286,24 +286,24 @@ SOURCE_FILE@[0; 240)
286 EXPR_STMT@[235; 237) 286 EXPR_STMT@[235; 237)
287 ERROR@[235; 236) 287 ERROR@[235; 236)
288 R_ANGLE@[235; 236) ">" 288 R_ANGLE@[235; 236) ">"
289 SEMI@[236; 237) ";" 289 SEMICOLON@[236; 237) ";"
290 WHITESPACE@[237; 238) "\n" 290 WHITESPACE@[237; 238) "\n"
291 R_CURLY@[238; 239) "}" 291 R_CURLY@[238; 239) "}"
292 WHITESPACE@[239; 240) "\n" 292 WHITESPACE@[239; 240) "\n"
293error [88; 88): expected COMMA 293error [88; 88): expected COMMA
294error [88; 88): expected R_ANGLE 294error [88; 88): expected R_ANGLE
295error [121; 121): expected SEMI 295error [121; 121): expected SEMICOLON
296error [121; 121): expected expression 296error [121; 121): expected expression
297error [140; 140): expected type 297error [140; 140): expected type
298error [141; 141): expected R_PAREN 298error [141; 141): expected R_PAREN
299error [141; 141): expected COMMA 299error [141; 141): expected COMMA
300error [141; 141): expected R_ANGLE 300error [141; 141): expected R_ANGLE
301error [141; 141): expected SEMI 301error [141; 141): expected SEMICOLON
302error [146; 146): expected SEMI 302error [146; 146): expected SEMICOLON
303error [146; 146): expected expression 303error [146; 146): expected expression
304error [147; 147): expected SEMI 304error [147; 147): expected SEMICOLON
305error [148; 148): expected expression 305error [148; 148): expected expression
306error [149; 149): expected SEMI 306error [149; 149): expected SEMICOLON
307error [154; 154): expected pattern 307error [154; 154): expected pattern
308error [155; 155): expected IN_KW 308error [155; 155): expected IN_KW
309error [155; 155): expected expression 309error [155; 155): expected expression
@@ -314,8 +314,8 @@ error [179; 179): expected expression
314error [180; 180): expected COMMA 314error [180; 180): expected COMMA
315error [180; 180): expected expression 315error [180; 180): expected expression
316error [180; 180): expected R_PAREN 316error [180; 180): expected R_PAREN
317error [180; 180): expected SEMI 317error [180; 180): expected SEMICOLON
318error [215; 215): expected COMMA 318error [215; 215): expected COMMA
319error [215; 215): expected R_ANGLE 319error [215; 215): expected R_ANGLE
320error [235; 235): expected SEMI 320error [235; 235): expected SEMICOLON
321error [235; 235): expected expression 321error [235; 235): expected expression
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 ca7f2d255..2b37ce94d 100644
--- a/crates/ra_syntax/test_data/parser/err/0025_nope.rast
+++ b/crates/ra_syntax/test_data/parser/err/0025_nope.rast
@@ -78,7 +78,7 @@ SOURCE_FILE@[0; 575)
78 WHITESPACE@[183; 184) " " 78 WHITESPACE@[183; 184) " "
79 LITERAL@[184; 185) 79 LITERAL@[184; 185)
80 INT_NUMBER@[184; 185) "1" 80 INT_NUMBER@[184; 185) "1"
81 SEMI@[185; 186) ";" 81 SEMICOLON@[185; 186) ";"
82 WHITESPACE@[186; 191) "\n " 82 WHITESPACE@[186; 191) "\n "
83 ENUM_DEF@[191; 223) 83 ENUM_DEF@[191; 223)
84 ENUM_KW@[191; 195) "enum" 84 ENUM_KW@[191; 195) "enum"
@@ -185,7 +185,7 @@ SOURCE_FILE@[0; 575)
185 WHITESPACE@[507; 508) " " 185 WHITESPACE@[507; 508) " "
186 ERROR@[508; 509) 186 ERROR@[508; 509)
187 UNDERSCORE@[508; 509) "_" 187 UNDERSCORE@[508; 509) "_"
188 SEMI@[509; 510) ";" 188 SEMICOLON@[509; 510) ";"
189 WHITESPACE@[510; 511) " " 189 WHITESPACE@[510; 511) " "
190 COMMENT@[511; 572) "//~ ERROR: expected e ..." 190 COMMENT@[511; 572) "//~ ERROR: expected e ..."
191 WHITESPACE@[572; 573) "\n" 191 WHITESPACE@[572; 573) "\n"
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 522a0d0e0..00d9fd511 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
@@ -27,7 +27,7 @@ SOURCE_FILE@[0; 350)
27 WHITESPACE@[30; 39) "\n " 27 WHITESPACE@[30; 39) "\n "
28 ATTR@[39; 83) 28 ATTR@[39; 83)
29 POUND@[39; 40) "#" 29 POUND@[39; 40) "#"
30 EXCL@[40; 41) "!" 30 BANG@[40; 41) "!"
31 L_BRACK@[41; 42) "[" 31 L_BRACK@[41; 42) "["
32 PATH@[42; 45) 32 PATH@[42; 45)
33 PATH_SEGMENT@[42; 45) 33 PATH_SEGMENT@[42; 45)
@@ -42,7 +42,7 @@ SOURCE_FILE@[0; 350)
42 COMMENT@[92; 122) "//! Nor are ModuleDoc ..." 42 COMMENT@[92; 122) "//! Nor are ModuleDoc ..."
43 WHITESPACE@[122; 127) "\n " 43 WHITESPACE@[122; 127) "\n "
44 R_CURLY@[127; 128) "}" 44 R_CURLY@[127; 128) "}"
45 SEMI@[128; 129) ";" 45 SEMICOLON@[128; 129) ";"
46 WHITESPACE@[129; 134) "\n " 46 WHITESPACE@[129; 134) "\n "
47 EXPR_STMT@[134; 257) 47 EXPR_STMT@[134; 257)
48 IF_EXPR@[134; 257) 48 IF_EXPR@[134; 257)
@@ -58,7 +58,7 @@ SOURCE_FILE@[0; 350)
58 WHITESPACE@[143; 152) "\n " 58 WHITESPACE@[143; 152) "\n "
59 ATTR@[152; 171) 59 ATTR@[152; 171)
60 POUND@[152; 153) "#" 60 POUND@[152; 153) "#"
61 EXCL@[153; 154) "!" 61 BANG@[153; 154) "!"
62 L_BRACK@[154; 155) "[" 62 L_BRACK@[154; 155) "["
63 PATH@[155; 158) 63 PATH@[155; 158)
64 PATH_SEGMENT@[155; 158) 64 PATH_SEGMENT@[155; 158)
@@ -72,7 +72,7 @@ SOURCE_FILE@[0; 350)
72 WHITESPACE@[171; 180) "\n " 72 WHITESPACE@[171; 180) "\n "
73 ATTR@[180; 212) 73 ATTR@[180; 212)
74 POUND@[180; 181) "#" 74 POUND@[180; 181) "#"
75 EXCL@[181; 182) "!" 75 BANG@[181; 182) "!"
76 L_BRACK@[182; 183) "[" 76 L_BRACK@[182; 183) "["
77 PATH@[183; 186) 77 PATH@[183; 186)
78 PATH_SEGMENT@[183; 186) 78 PATH_SEGMENT@[183; 186)
@@ -101,7 +101,7 @@ SOURCE_FILE@[0; 350)
101 WHITESPACE@[274; 283) "\n " 101 WHITESPACE@[274; 283) "\n "
102 ATTR@[283; 302) 102 ATTR@[283; 302)
103 POUND@[283; 284) "#" 103 POUND@[283; 284) "#"
104 EXCL@[284; 285) "!" 104 BANG@[284; 285) "!"
105 L_BRACK@[285; 286) "[" 105 L_BRACK@[285; 286) "["
106 PATH@[286; 289) 106 PATH@[286; 289)
107 PATH_SEGMENT@[286; 289) 107 PATH_SEGMENT@[286; 289)
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 c36e2f770..b80101e60 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
@@ -38,7 +38,7 @@ SOURCE_FILE@[0; 293)
38 ATTR@[51; 52) 38 ATTR@[51; 52)
39 POUND@[51; 52) "#" 39 POUND@[51; 52) "#"
40 ERROR@[52; 53) 40 ERROR@[52; 53)
41 EXCL@[52; 53) "!" 41 BANG@[52; 53) "!"
42 ARRAY_EXPR@[53; 78) 42 ARRAY_EXPR@[53; 78)
43 L_BRACK@[53; 54) "[" 43 L_BRACK@[53; 54) "["
44 CALL_EXPR@[54; 77) 44 CALL_EXPR@[54; 77)
@@ -104,7 +104,7 @@ SOURCE_FILE@[0; 293)
104 ATTR@[160; 161) 104 ATTR@[160; 161)
105 POUND@[160; 161) "#" 105 POUND@[160; 161) "#"
106 ERROR@[161; 162) 106 ERROR@[161; 162)
107 EXCL@[161; 162) "!" 107 BANG@[161; 162) "!"
108 ARRAY_EXPR@[162; 179) 108 ARRAY_EXPR@[162; 179)
109 L_BRACK@[162; 163) "[" 109 L_BRACK@[162; 163) "["
110 CALL_EXPR@[163; 178) 110 CALL_EXPR@[163; 178)
@@ -149,7 +149,7 @@ SOURCE_FILE@[0; 293)
149 ATTR@[231; 232) 149 ATTR@[231; 232)
150 POUND@[231; 232) "#" 150 POUND@[231; 232) "#"
151 ERROR@[232; 233) 151 ERROR@[232; 233)
152 EXCL@[232; 233) "!" 152 BANG@[232; 233) "!"
153 ARRAY_EXPR@[233; 250) 153 ARRAY_EXPR@[233; 250)
154 L_BRACK@[233; 234) "[" 154 L_BRACK@[233; 234) "["
155 CALL_EXPR@[234; 249) 155 CALL_EXPR@[234; 249)
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 2c91b6841..2ab9ee56f 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
@@ -34,7 +34,7 @@ SOURCE_FILE@[0; 91)
34 TUPLE_EXPR@[32; 34) 34 TUPLE_EXPR@[32; 34)
35 L_PAREN@[32; 33) "(" 35 L_PAREN@[32; 33) "("
36 R_PAREN@[33; 34) ")" 36 R_PAREN@[33; 34) ")"
37 SEMI@[34; 35) ";" 37 SEMICOLON@[34; 35) ";"
38 WHITESPACE@[35; 40) "\n " 38 WHITESPACE@[35; 40) "\n "
39 LET_STMT@[40; 51) 39 LET_STMT@[40; 51)
40 LET_KW@[40; 43) "let" 40 LET_KW@[40; 43) "let"
@@ -58,7 +58,7 @@ SOURCE_FILE@[0; 91)
58 TUPLE_EXPR@[56; 58) 58 TUPLE_EXPR@[56; 58)
59 L_PAREN@[56; 57) "(" 59 L_PAREN@[56; 57) "("
60 R_PAREN@[57; 58) ")" 60 R_PAREN@[57; 58) ")"
61 SEMI@[58; 59) ";" 61 SEMICOLON@[58; 59) ";"
62 WHITESPACE@[59; 64) "\n " 62 WHITESPACE@[59; 64) "\n "
63 LET_STMT@[64; 79) 63 LET_STMT@[64; 79)
64 LET_KW@[64; 67) "let" 64 LET_KW@[64; 67) "let"
@@ -84,13 +84,13 @@ SOURCE_FILE@[0; 91)
84 TUPLE_EXPR@[84; 86) 84 TUPLE_EXPR@[84; 86)
85 L_PAREN@[84; 85) "(" 85 L_PAREN@[84; 85) "("
86 R_PAREN@[85; 86) ")" 86 R_PAREN@[85; 86) ")"
87 SEMI@[86; 87) ";" 87 SEMICOLON@[86; 87) ";"
88 WHITESPACE@[87; 88) "\n" 88 WHITESPACE@[87; 88) "\n"
89 R_CURLY@[88; 89) "}" 89 R_CURLY@[88; 89) "}"
90 WHITESPACE@[89; 91) "\n\n" 90 WHITESPACE@[89; 91) "\n\n"
91error [24; 24): expected a name 91error [24; 24): expected a name
92error [27; 27): expected SEMI 92error [27; 27): expected SEMICOLON
93error [48; 48): expected a name 93error [48; 48): expected a name
94error [51; 51): expected SEMI 94error [51; 51): expected SEMICOLON
95error [76; 76): expected a name 95error [76; 76): expected a name
96error [79; 79): expected SEMI 96error [79; 79): expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast b/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast
index 8cb4ea796..f255b0a6b 100644
--- a/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast
+++ b/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast
@@ -8,11 +8,11 @@ SOURCE_FILE@[0; 48)
8 PATH_SEGMENT@[4; 7) 8 PATH_SEGMENT@[4; 7)
9 NAME_REF@[4; 7) 9 NAME_REF@[4; 7)
10 IDENT@[4; 7) "foo" 10 IDENT@[4; 7) "foo"
11 COLONCOLON@[7; 9) "::" 11 COLON2@[7; 9) "::"
12 PATH_SEGMENT@[9; 12) 12 PATH_SEGMENT@[9; 12)
13 NAME_REF@[9; 12) 13 NAME_REF@[9; 12)
14 IDENT@[9; 12) "bar" 14 IDENT@[9; 12) "bar"
15 SEMI@[12; 13) ";" 15 SEMICOLON@[12; 13) ";"
16 WHITESPACE@[13; 14) "\n" 16 WHITESPACE@[13; 14) "\n"
17 USE_ITEM@[14; 17) 17 USE_ITEM@[14; 17)
18 USE_KW@[14; 17) "use" 18 USE_KW@[14; 17) "use"
@@ -25,11 +25,11 @@ SOURCE_FILE@[0; 48)
25 PATH@[22; 27) 25 PATH@[22; 27)
26 PATH_SEGMENT@[22; 27) 26 PATH_SEGMENT@[22; 27)
27 CRATE_KW@[22; 27) "crate" 27 CRATE_KW@[22; 27) "crate"
28 COLONCOLON@[27; 29) "::" 28 COLON2@[27; 29) "::"
29 PATH_SEGMENT@[29; 32) 29 PATH_SEGMENT@[29; 32)
30 NAME_REF@[29; 32) 30 NAME_REF@[29; 32)
31 IDENT@[29; 32) "baz" 31 IDENT@[29; 32) "baz"
32 SEMI@[32; 33) ";" 32 SEMICOLON@[32; 33) ";"
33 WHITESPACE@[33; 34) "\n" 33 WHITESPACE@[33; 34) "\n"
34 USE_ITEM@[34; 37) 34 USE_ITEM@[34; 37)
35 USE_KW@[34; 37) "use" 35 USE_KW@[34; 37) "use"
@@ -49,6 +49,6 @@ SOURCE_FILE@[0; 48)
49 R_CURLY@[46; 47) "}" 49 R_CURLY@[46; 47) "}"
50 WHITESPACE@[47; 48) "\n" 50 WHITESPACE@[47; 48) "\n"
51error [17; 17): expected one of `*`, `::`, `{`, `self`, `super` or an identifier 51error [17; 17): expected one of `*`, `::`, `{`, `self`, `super` or an identifier
52error [17; 17): expected SEMI 52error [17; 17): expected SEMICOLON
53error [37; 37): expected one of `*`, `::`, `{`, `self`, `super` or an identifier 53error [37; 37): expected one of `*`, `::`, `{`, `self`, `super` or an identifier
54error [37; 37): expected SEMI 54error [37; 37): expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0036_partial_use.rast b/crates/ra_syntax/test_data/parser/err/0036_partial_use.rast
index f5490fbe8..1f2b4f6d9 100644
--- a/crates/ra_syntax/test_data/parser/err/0036_partial_use.rast
+++ b/crates/ra_syntax/test_data/parser/err/0036_partial_use.rast
@@ -7,7 +7,7 @@ SOURCE_FILE@[0; 37)
7 PATH_SEGMENT@[4; 7) 7 PATH_SEGMENT@[4; 7)
8 NAME_REF@[4; 7) 8 NAME_REF@[4; 7)
9 IDENT@[4; 7) "std" 9 IDENT@[4; 7) "std"
10 COLONCOLON@[7; 9) "::" 10 COLON2@[7; 9) "::"
11 USE_TREE_LIST@[9; 36) 11 USE_TREE_LIST@[9; 36)
12 L_CURLY@[9; 10) "{" 12 L_CURLY@[9; 10) "{"
13 USE_TREE@[10; 22) 13 USE_TREE@[10; 22)
@@ -16,12 +16,12 @@ SOURCE_FILE@[0; 37)
16 PATH_SEGMENT@[10; 15) 16 PATH_SEGMENT@[10; 15)
17 NAME_REF@[10; 15) 17 NAME_REF@[10; 15)
18 IDENT@[10; 15) "error" 18 IDENT@[10; 15) "error"
19 COLONCOLON@[15; 17) "::" 19 COLON2@[15; 17) "::"
20 PATH_SEGMENT@[17; 22) 20 PATH_SEGMENT@[17; 22)
21 NAME_REF@[17; 22) 21 NAME_REF@[17; 22)
22 IDENT@[17; 22) "Error" 22 IDENT@[17; 22) "Error"
23 ERROR@[22; 23) 23 ERROR@[22; 23)
24 SEMI@[22; 23) ";" 24 SEMICOLON@[22; 23) ";"
25 WHITESPACE@[23; 24) "\n" 25 WHITESPACE@[23; 24) "\n"
26 ERROR@[24; 27) 26 ERROR@[24; 27)
27 USE_KW@[24; 27) "use" 27 USE_KW@[24; 27) "use"
@@ -32,12 +32,12 @@ SOURCE_FILE@[0; 37)
32 PATH_SEGMENT@[28; 31) 32 PATH_SEGMENT@[28; 31)
33 NAME_REF@[28; 31) 33 NAME_REF@[28; 31)
34 IDENT@[28; 31) "std" 34 IDENT@[28; 31) "std"
35 COLONCOLON@[31; 33) "::" 35 COLON2@[31; 33) "::"
36 PATH_SEGMENT@[33; 35) 36 PATH_SEGMENT@[33; 35)
37 NAME_REF@[33; 35) 37 NAME_REF@[33; 35)
38 IDENT@[33; 35) "io" 38 IDENT@[33; 35) "io"
39 ERROR@[35; 36) 39 ERROR@[35; 36)
40 SEMI@[35; 36) ";" 40 SEMICOLON@[35; 36) ";"
41 WHITESPACE@[36; 37) "\n" 41 WHITESPACE@[36; 37) "\n"
42error [22; 22): expected COMMA 42error [22; 22): expected COMMA
43error [22; 22): expected one of `*`, `::`, `{`, `self`, `super` or an identifier 43error [22; 22): expected one of `*`, `::`, `{`, `self`, `super` or an identifier
@@ -48,4 +48,4 @@ error [35; 35): expected COMMA
48error [35; 35): expected one of `*`, `::`, `{`, `self`, `super` or an identifier 48error [35; 35): expected one of `*`, `::`, `{`, `self`, `super` or an identifier
49error [36; 36): expected COMMA 49error [36; 36): expected COMMA
50error [36; 36): expected R_CURLY 50error [36; 36): expected R_CURLY
51error [36; 36): expected SEMI 51error [36; 36): expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast b/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast
index d8622d45f..5319bf936 100644
--- a/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast
+++ b/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast
@@ -65,7 +65,7 @@ SOURCE_FILE@[0; 118)
65 TUPLE_TYPE@[78; 80) 65 TUPLE_TYPE@[78; 80)
66 L_PAREN@[78; 79) "(" 66 L_PAREN@[78; 79) "("
67 R_PAREN@[79; 80) ")" 67 R_PAREN@[79; 80) ")"
68 SEMI@[80; 81) ";" 68 SEMICOLON@[80; 81) ";"
69 WHITESPACE@[81; 86) "\n " 69 WHITESPACE@[81; 86) "\n "
70 CONST_DEF@[86; 115) 70 CONST_DEF@[86; 115)
71 VISIBILITY@[86; 96) 71 VISIBILITY@[86; 96)
@@ -90,7 +90,7 @@ SOURCE_FILE@[0; 118)
90 WHITESPACE@[111; 112) " " 90 WHITESPACE@[111; 112) " "
91 LITERAL@[112; 114) 91 LITERAL@[112; 114)
92 INT_NUMBER@[112; 114) "92" 92 INT_NUMBER@[112; 114) "92"
93 SEMI@[114; 115) ";" 93 SEMICOLON@[114; 115) ";"
94 WHITESPACE@[115; 116) "\n" 94 WHITESPACE@[115; 116) "\n"
95 R_CURLY@[116; 117) "}" 95 R_CURLY@[116; 117) "}"
96 WHITESPACE@[117; 118) "\n" 96 WHITESPACE@[117; 118) "\n"
diff --git a/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast b/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast
index 3810b9680..9efdf7ef4 100644
--- a/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast
+++ b/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast
@@ -16,13 +16,13 @@ SOURCE_FILE@[0; 33)
16 RANGE_EXPR@[16; 20) 16 RANGE_EXPR@[16; 20)
17 LITERAL@[16; 17) 17 LITERAL@[16; 17)
18 INT_NUMBER@[16; 17) "0" 18 INT_NUMBER@[16; 17) "0"
19 DOTDOTEQ@[17; 20) "..=" 19 DOT2EQ@[17; 20) "..="
20 SEMI@[20; 21) ";" 20 SEMICOLON@[20; 21) ";"
21 WHITESPACE@[21; 26) "\n " 21 WHITESPACE@[21; 26) "\n "
22 EXPR_STMT@[26; 30) 22 EXPR_STMT@[26; 30)
23 RANGE_EXPR@[26; 29) 23 RANGE_EXPR@[26; 29)
24 DOTDOTEQ@[26; 29) "..=" 24 DOT2EQ@[26; 29) "..="
25 SEMI@[29; 30) ";" 25 SEMICOLON@[29; 30) ";"
26 WHITESPACE@[30; 31) "\n" 26 WHITESPACE@[30; 31) "\n"
27 R_CURLY@[31; 32) "}" 27 R_CURLY@[31; 32) "}"
28 WHITESPACE@[32; 33) "\n" 28 WHITESPACE@[32; 33) "\n"
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 4a2f0a696..edf9c3247 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
@@ -64,7 +64,7 @@ SOURCE_FILE@[0; 83)
64 NAME_REF@[67; 70) 64 NAME_REF@[67; 70)
65 IDENT@[67; 70) "max" 65 IDENT@[67; 70) "max"
66 TYPE_ARG_LIST@[70; 77) 66 TYPE_ARG_LIST@[70; 77)
67 COLONCOLON@[70; 72) "::" 67 COLON2@[70; 72) "::"
68 L_ANGLE@[72; 73) "<" 68 L_ANGLE@[72; 73) "<"
69 TYPE_ARG@[73; 76) 69 TYPE_ARG@[73; 76)
70 PATH_TYPE@[73; 76) 70 PATH_TYPE@[73; 76)
@@ -76,7 +76,7 @@ SOURCE_FILE@[0; 83)
76 ARG_LIST@[77; 79) 76 ARG_LIST@[77; 79)
77 L_PAREN@[77; 78) "(" 77 L_PAREN@[77; 78) "("
78 R_PAREN@[78; 79) ")" 78 R_PAREN@[78; 79) ")"
79 SEMI@[79; 80) ";" 79 SEMICOLON@[79; 80) ";"
80 WHITESPACE@[80; 81) "\n" 80 WHITESPACE@[80; 81) "\n"
81 R_CURLY@[81; 82) "}" 81 R_CURLY@[81; 82) "}"
82 WHITESPACE@[82; 83) "\n" 82 WHITESPACE@[82; 83) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast b/crates/ra_syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast
index 530533b71..9d807c84f 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast
@@ -18,10 +18,10 @@ SOURCE_FILE@[0; 18)
18 ERROR@[15; 16) 18 ERROR@[15; 16)
19 R_BRACK@[15; 16) "]" 19 R_BRACK@[15; 16) "]"
20 ERROR@[16; 17) 20 ERROR@[16; 17)
21 SEMI@[16; 17) ";" 21 SEMICOLON@[16; 17) ";"
22 WHITESPACE@[17; 18) "\n" 22 WHITESPACE@[17; 18) "\n"
23error [12; 12): expected `;` or `]` 23error [12; 12): expected `;` or `]`
24error [12; 12): expected SEMI 24error [12; 12): expected SEMICOLON
25error [13; 13): expected an item 25error [13; 13): expected an item
26error [15; 15): expected an item 26error [15; 15): expected an item
27error [16; 16): expected an item 27error [16; 16): expected an item
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast b/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast
index 01a853d63..a85855f8c 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast
@@ -24,6 +24,6 @@ SOURCE_FILE@[0; 30)
24 R_CURLY@[28; 29) "}" 24 R_CURLY@[28; 29) "}"
25 WHITESPACE@[29; 30) "\n" 25 WHITESPACE@[29; 30) "\n"
26error [22; 22): expected a loop 26error [22; 22): expected a loop
27error [22; 22): expected SEMI 27error [22; 22): expected SEMICOLON
28error [27; 27): expected type 28error [27; 27): expected type
29error [27; 27): expected `{` 29error [27; 27): expected `{`
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast b/crates/ra_syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast
index 2ab29eecc..e9efad674 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast
@@ -12,6 +12,6 @@ SOURCE_FILE@[0; 14)
12 TUPLE_TYPE@[10; 12) 12 TUPLE_TYPE@[10; 12)
13 L_PAREN@[10; 11) "(" 13 L_PAREN@[10; 11) "("
14 R_PAREN@[11; 12) ")" 14 R_PAREN@[11; 12) ")"
15 SEMI@[12; 13) ";" 15 SEMICOLON@[12; 13) ";"
16 WHITESPACE@[13; 14) "\n" 16 WHITESPACE@[13; 14) "\n"
17error [10; 10): expected mut or const in raw pointer type (use `*mut T` or `*const T` as appropriate) 17error [10; 10): expected mut or const in raw pointer type (use `*mut T` or `*const T` as appropriate)
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast b/crates/ra_syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast
index 9e9186ad4..b8a494085 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast
@@ -14,10 +14,10 @@ SOURCE_FILE@[0; 20)
14 ERROR@[17; 18) 14 ERROR@[17; 18)
15 R_PAREN@[17; 18) ")" 15 R_PAREN@[17; 18) ")"
16 ERROR@[18; 19) 16 ERROR@[18; 19)
17 SEMI@[18; 19) ";" 17 SEMICOLON@[18; 19) ";"
18 WHITESPACE@[19; 20) "\n" 18 WHITESPACE@[19; 20) "\n"
19error [15; 15): expected `fn` 19error [15; 15): expected `fn`
20error [15; 15): expected SEMI 20error [15; 15): expected SEMICOLON
21error [16; 16): expected an item 21error [16; 16): expected an item
22error [17; 17): expected an item 22error [17; 17): expected an item
23error [18; 18): expected an item 23error [18; 18): expected an item
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 a4002a998..c3f7eb477 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
@@ -29,4 +29,4 @@ SOURCE_FILE@[0; 30)
29 WHITESPACE@[27; 28) " " 29 WHITESPACE@[27; 28) " "
30 R_CURLY@[28; 29) "}" 30 R_CURLY@[28; 29) "}"
31 WHITESPACE@[29; 30) "\n" 31 WHITESPACE@[29; 30) "\n"
32error [27; 27): expected SEMI 32error [27; 27): expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast b/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast
index 6f45a4fa6..a345f8488 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast
@@ -19,7 +19,7 @@ SOURCE_FILE@[0; 21)
19 EXPR_STMT@[15; 18) 19 EXPR_STMT@[15; 18)
20 LITERAL@[15; 17) 20 LITERAL@[15; 17)
21 INT_NUMBER@[15; 17) "92" 21 INT_NUMBER@[15; 17) "92"
22 SEMI@[17; 18) ";" 22 SEMICOLON@[17; 18) ";"
23 WHITESPACE@[18; 19) " " 23 WHITESPACE@[18; 19) " "
24 R_CURLY@[19; 20) "}" 24 R_CURLY@[19; 20) "}"
25 WHITESPACE@[20; 21) "\n" 25 WHITESPACE@[20; 21) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast b/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast
index e6d3a5c95..c3a70147a 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast
@@ -30,7 +30,7 @@ SOURCE_FILE@[0; 48)
30 WHITESPACE@[22; 23) " " 30 WHITESPACE@[22; 23) " "
31 LITERAL@[23; 24) 31 LITERAL@[23; 24)
32 INT_NUMBER@[23; 24) "2" 32 INT_NUMBER@[23; 24) "2"
33 SEMI@[24; 25) ";" 33 SEMICOLON@[24; 25) ";"
34 WHITESPACE@[25; 29) "\n " 34 WHITESPACE@[25; 29) "\n "
35 EXPR_STMT@[29; 45) 35 EXPR_STMT@[29; 45)
36 ATTR@[29; 33) 36 ATTR@[29; 33)
@@ -53,7 +53,7 @@ SOURCE_FILE@[0; 48)
53 BLOCK@[42; 44) 53 BLOCK@[42; 44)
54 L_CURLY@[42; 43) "{" 54 L_CURLY@[42; 43) "{"
55 R_CURLY@[43; 44) "}" 55 R_CURLY@[43; 44) "}"
56 SEMI@[44; 45) ";" 56 SEMICOLON@[44; 45) ";"
57 WHITESPACE@[45; 46) "\n" 57 WHITESPACE@[45; 46) "\n"
58 R_CURLY@[46; 47) "}" 58 R_CURLY@[46; 47) "}"
59 WHITESPACE@[47; 48) "\n" 59 WHITESPACE@[47; 48) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast b/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast
index 8ad2a588f..61d737abe 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast
@@ -21,7 +21,7 @@ SOURCE_FILE@[0; 47)
21 IDENT@[15; 16) "x" 21 IDENT@[15; 16) "x"
22 DOT@[16; 17) "." 22 DOT@[16; 17) "."
23 FLOAT_NUMBER@[17; 19) "0." 23 FLOAT_NUMBER@[17; 19) "0."
24 SEMI@[19; 20) ";" 24 SEMICOLON@[19; 20) ";"
25 WHITESPACE@[20; 25) "\n " 25 WHITESPACE@[20; 25) "\n "
26 EXPR_STMT@[25; 32) 26 EXPR_STMT@[25; 32)
27 FIELD_EXPR@[25; 31) 27 FIELD_EXPR@[25; 31)
@@ -33,7 +33,7 @@ SOURCE_FILE@[0; 47)
33 DOT@[26; 27) "." 33 DOT@[26; 27) "."
34 NAME_REF@[27; 31) 34 NAME_REF@[27; 31)
35 INT_NUMBER@[27; 31) "1i32" 35 INT_NUMBER@[27; 31) "1i32"
36 SEMI@[31; 32) ";" 36 SEMICOLON@[31; 32) ";"
37 WHITESPACE@[32; 37) "\n " 37 WHITESPACE@[32; 37) "\n "
38 EXPR_STMT@[37; 44) 38 EXPR_STMT@[37; 44)
39 FIELD_EXPR@[37; 43) 39 FIELD_EXPR@[37; 43)
@@ -45,7 +45,7 @@ SOURCE_FILE@[0; 47)
45 DOT@[38; 39) "." 45 DOT@[38; 39) "."
46 NAME_REF@[39; 43) 46 NAME_REF@[39; 43)
47 INT_NUMBER@[39; 43) "0x01" 47 INT_NUMBER@[39; 43) "0x01"
48 SEMI@[43; 44) ";" 48 SEMICOLON@[43; 44) ";"
49 WHITESPACE@[44; 45) "\n" 49 WHITESPACE@[44; 45) "\n"
50 R_CURLY@[45; 46) "}" 50 R_CURLY@[45; 46) "}"
51 WHITESPACE@[46; 47) "\n" 51 WHITESPACE@[46; 47) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast b/crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast
index 5b3dc5af2..62fca0a39 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast
@@ -16,6 +16,6 @@ SOURCE_FILE@[0; 19)
16 WHITESPACE@[15; 16) " " 16 WHITESPACE@[15; 16) " "
17 LITERAL@[16; 17) 17 LITERAL@[16; 17)
18 INT_NUMBER@[16; 17) "5" 18 INT_NUMBER@[16; 17) "5"
19 SEMI@[17; 18) ";" 19 SEMICOLON@[17; 18) ";"
20 WHITESPACE@[18; 19) "\n" 20 WHITESPACE@[18; 19) "\n"
21error [7; 7): expected a name 21error [7; 7): expected a name
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast b/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast
index 25d80be1d..aa960d3ef 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast
@@ -27,7 +27,7 @@ SOURCE_FILE@[0; 62)
27 PATH_SEGMENT@[31; 34) 27 PATH_SEGMENT@[31; 34)
28 NAME_REF@[31; 34) 28 NAME_REF@[31; 34)
29 IDENT@[31; 34) "Bar" 29 IDENT@[31; 34) "Bar"
30 SEMI@[34; 35) ";" 30 SEMICOLON@[34; 35) ";"
31 WHITESPACE@[35; 40) "\n " 31 WHITESPACE@[35; 40) "\n "
32 MACRO_CALL@[40; 47) 32 MACRO_CALL@[40; 47)
33 PATH@[40; 47) 33 PATH@[40; 47)
@@ -51,9 +51,9 @@ SOURCE_FILE@[0; 62)
51 WHITESPACE@[59; 60) "\n" 51 WHITESPACE@[59; 60) "\n"
52 R_CURLY@[60; 61) "}" 52 R_CURLY@[60; 61) "}"
53 WHITESPACE@[61; 62) "\n" 53 WHITESPACE@[61; 62) "\n"
54error [21; 21): expected EXCL 54error [21; 21): expected BANG
55error [21; 21): expected `{`, `[`, `(` 55error [21; 21): expected `{`, `[`, `(`
56error [21; 21): expected SEMI 56error [21; 21): expected SEMICOLON
57error [47; 47): expected EXCL 57error [47; 47): expected BANG
58error [47; 47): expected `{`, `[`, `(` 58error [47; 47): expected `{`, `[`, `(`
59error [47; 47): expected SEMI 59error [47; 47): expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast
index ad9f0965e..25c6ef7e3 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast
@@ -25,7 +25,7 @@ SOURCE_FILE@[0; 83)
25 PATH_SEGMENT@[21; 26) 25 PATH_SEGMENT@[21; 26)
26 NAME_REF@[21; 26) 26 NAME_REF@[21; 26)
27 IDENT@[21; 26) "Clone" 27 IDENT@[21; 26) "Clone"
28 SEMI@[26; 27) ";" 28 SEMICOLON@[26; 27) ";"
29 WHITESPACE@[27; 32) "\n " 29 WHITESPACE@[27; 32) "\n "
30 CONST_DEF@[32; 45) 30 CONST_DEF@[32; 45)
31 CONST_KW@[32; 37) "const" 31 CONST_KW@[32; 37) "const"
@@ -39,7 +39,7 @@ SOURCE_FILE@[0; 83)
39 PATH_SEGMENT@[41; 44) 39 PATH_SEGMENT@[41; 44)
40 NAME_REF@[41; 44) 40 NAME_REF@[41; 44)
41 IDENT@[41; 44) "i32" 41 IDENT@[41; 44) "i32"
42 SEMI@[44; 45) ";" 42 SEMICOLON@[44; 45) ";"
43 WHITESPACE@[45; 50) "\n " 43 WHITESPACE@[45; 50) "\n "
44 FN_DEF@[50; 61) 44 FN_DEF@[50; 61)
45 FN_KW@[50; 52) "fn" 45 FN_KW@[50; 52) "fn"
@@ -66,7 +66,7 @@ SOURCE_FILE@[0; 83)
66 AMP@[73; 74) "&" 66 AMP@[73; 74) "&"
67 SELF_KW@[74; 78) "self" 67 SELF_KW@[74; 78) "self"
68 R_PAREN@[78; 79) ")" 68 R_PAREN@[78; 79) ")"
69 SEMI@[79; 80) ";" 69 SEMICOLON@[79; 80) ";"
70 WHITESPACE@[80; 81) "\n" 70 WHITESPACE@[80; 81) "\n"
71 R_CURLY@[81; 82) "}" 71 R_CURLY@[81; 82) "}"
72 WHITESPACE@[82; 83) "\n" 72 WHITESPACE@[82; 83) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast
index 1b318dfb9..69c459daf 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast
@@ -12,15 +12,15 @@ SOURCE_FILE@[0; 250)
12 PATH@[5; 10) 12 PATH@[5; 10)
13 PATH_SEGMENT@[5; 10) 13 PATH_SEGMENT@[5; 10)
14 CRATE_KW@[5; 10) "crate" 14 CRATE_KW@[5; 10) "crate"
15 COLONCOLON@[10; 12) "::" 15 COLON2@[10; 12) "::"
16 PATH_SEGMENT@[12; 16) 16 PATH_SEGMENT@[12; 16)
17 NAME_REF@[12; 16) 17 NAME_REF@[12; 16)
18 IDENT@[12; 16) "path" 18 IDENT@[12; 16) "path"
19 COLONCOLON@[16; 18) "::" 19 COLON2@[16; 18) "::"
20 PATH_SEGMENT@[18; 22) 20 PATH_SEGMENT@[18; 22)
21 NAME_REF@[18; 22) 21 NAME_REF@[18; 22)
22 IDENT@[18; 22) "from" 22 IDENT@[18; 22) "from"
23 COLONCOLON@[22; 24) "::" 23 COLON2@[22; 24) "::"
24 PATH_SEGMENT@[24; 28) 24 PATH_SEGMENT@[24; 28)
25 NAME_REF@[24; 28) 25 NAME_REF@[24; 28)
26 IDENT@[24; 28) "root" 26 IDENT@[24; 28) "root"
@@ -34,20 +34,20 @@ SOURCE_FILE@[0; 250)
34 PATH_SEGMENT@[30; 32) 34 PATH_SEGMENT@[30; 32)
35 NAME_REF@[30; 32) 35 NAME_REF@[30; 32)
36 IDENT@[30; 32) "or" 36 IDENT@[30; 32) "or"
37 COLONCOLON@[32; 34) "::" 37 COLON2@[32; 34) "::"
38 PATH_SEGMENT@[34; 38) 38 PATH_SEGMENT@[34; 38)
39 NAME_REF@[34; 38) 39 NAME_REF@[34; 38)
40 IDENT@[34; 38) "path" 40 IDENT@[34; 38) "path"
41 COLONCOLON@[38; 40) "::" 41 COLON2@[38; 40) "::"
42 PATH_SEGMENT@[40; 44) 42 PATH_SEGMENT@[40; 44)
43 NAME_REF@[40; 44) 43 NAME_REF@[40; 44)
44 IDENT@[40; 44) "from" 44 IDENT@[40; 44) "from"
45 COLONCOLON@[44; 46) "::" 45 COLON2@[44; 46) "::"
46 PATH_SEGMENT@[46; 56) 46 PATH_SEGMENT@[46; 56)
47 NAME_REF@[46; 56) 47 NAME_REF@[46; 56)
48 IDENT@[46; 56) "crate_name" 48 IDENT@[46; 56) "crate_name"
49 R_CURLY@[56; 57) "}" 49 R_CURLY@[56; 57) "}"
50 SEMI@[57; 58) ";" 50 SEMICOLON@[57; 58) ";"
51 WHITESPACE@[58; 59) " " 51 WHITESPACE@[58; 59) " "
52 COMMENT@[59; 97) "// Rust 2018 (with a ..." 52 COMMENT@[59; 97) "// Rust 2018 (with a ..."
53 WHITESPACE@[97; 98) "\n" 53 WHITESPACE@[97; 98) "\n"
@@ -64,16 +64,16 @@ SOURCE_FILE@[0; 250)
64 PATH_SEGMENT@[103; 107) 64 PATH_SEGMENT@[103; 107)
65 NAME_REF@[103; 107) 65 NAME_REF@[103; 107)
66 IDENT@[103; 107) "path" 66 IDENT@[103; 107) "path"
67 COLONCOLON@[107; 109) "::" 67 COLON2@[107; 109) "::"
68 PATH_SEGMENT@[109; 113) 68 PATH_SEGMENT@[109; 113)
69 NAME_REF@[109; 113) 69 NAME_REF@[109; 113)
70 IDENT@[109; 113) "from" 70 IDENT@[109; 113) "from"
71 COLONCOLON@[113; 115) "::" 71 COLON2@[113; 115) "::"
72 PATH_SEGMENT@[115; 119) 72 PATH_SEGMENT@[115; 119)
73 NAME_REF@[115; 119) 73 NAME_REF@[115; 119)
74 IDENT@[115; 119) "root" 74 IDENT@[115; 119) "root"
75 R_CURLY@[119; 120) "}" 75 R_CURLY@[119; 120) "}"
76 SEMI@[120; 121) ";" 76 SEMICOLON@[120; 121) ";"
77 WHITESPACE@[121; 122) " " 77 WHITESPACE@[121; 122) " "
78 COMMENT@[122; 134) "// Rust 2015" 78 COMMENT@[122; 134) "// Rust 2015"
79 WHITESPACE@[134; 135) "\n" 79 WHITESPACE@[134; 135) "\n"
@@ -81,7 +81,7 @@ SOURCE_FILE@[0; 250)
81 USE_KW@[135; 138) "use" 81 USE_KW@[135; 138) "use"
82 WHITESPACE@[138; 139) " " 82 WHITESPACE@[138; 139) " "
83 USE_TREE@[139; 165) 83 USE_TREE@[139; 165)
84 COLONCOLON@[139; 141) "::" 84 COLON2@[139; 141) "::"
85 USE_TREE_LIST@[141; 165) 85 USE_TREE_LIST@[141; 165)
86 L_CURLY@[141; 142) "{" 86 L_CURLY@[141; 142) "{"
87 USE_TREE@[142; 164) 87 USE_TREE@[142; 164)
@@ -91,16 +91,16 @@ SOURCE_FILE@[0; 250)
91 PATH_SEGMENT@[142; 146) 91 PATH_SEGMENT@[142; 146)
92 NAME_REF@[142; 146) 92 NAME_REF@[142; 146)
93 IDENT@[142; 146) "some" 93 IDENT@[142; 146) "some"
94 COLONCOLON@[146; 148) "::" 94 COLON2@[146; 148) "::"
95 PATH_SEGMENT@[148; 158) 95 PATH_SEGMENT@[148; 158)
96 NAME_REF@[148; 158) 96 NAME_REF@[148; 158)
97 IDENT@[148; 158) "arbritrary" 97 IDENT@[148; 158) "arbritrary"
98 COLONCOLON@[158; 160) "::" 98 COLON2@[158; 160) "::"
99 PATH_SEGMENT@[160; 164) 99 PATH_SEGMENT@[160; 164)
100 NAME_REF@[160; 164) 100 NAME_REF@[160; 164)
101 IDENT@[160; 164) "path" 101 IDENT@[160; 164) "path"
102 R_CURLY@[164; 165) "}" 102 R_CURLY@[164; 165) "}"
103 SEMI@[165; 166) ";" 103 SEMICOLON@[165; 166) ";"
104 WHITESPACE@[166; 167) " " 104 WHITESPACE@[166; 167) " "
105 COMMENT@[167; 179) "// Rust 2015" 105 COMMENT@[167; 179) "// Rust 2015"
106 WHITESPACE@[179; 180) "\n" 106 WHITESPACE@[179; 180) "\n"
@@ -108,7 +108,7 @@ SOURCE_FILE@[0; 250)
108 USE_KW@[180; 183) "use" 108 USE_KW@[180; 183) "use"
109 WHITESPACE@[183; 184) " " 109 WHITESPACE@[183; 184) " "
110 USE_TREE@[184; 205) 110 USE_TREE@[184; 205)
111 COLONCOLON@[184; 186) "::" 111 COLON2@[184; 186) "::"
112 USE_TREE_LIST@[186; 205) 112 USE_TREE_LIST@[186; 205)
113 L_CURLY@[186; 187) "{" 113 L_CURLY@[186; 187) "{"
114 USE_TREE@[187; 204) 114 USE_TREE@[187; 204)
@@ -122,14 +122,14 @@ SOURCE_FILE@[0; 250)
122 PATH@[189; 194) 122 PATH@[189; 194)
123 PATH_SEGMENT@[189; 194) 123 PATH_SEGMENT@[189; 194)
124 CRATE_KW@[189; 194) "crate" 124 CRATE_KW@[189; 194) "crate"
125 COLONCOLON@[194; 196) "::" 125 COLON2@[194; 196) "::"
126 PATH_SEGMENT@[196; 202) 126 PATH_SEGMENT@[196; 202)
127 NAME_REF@[196; 202) 127 NAME_REF@[196; 202)
128 IDENT@[196; 202) "export" 128 IDENT@[196; 202) "export"
129 R_CURLY@[202; 203) "}" 129 R_CURLY@[202; 203) "}"
130 R_CURLY@[203; 204) "}" 130 R_CURLY@[203; 204) "}"
131 R_CURLY@[204; 205) "}" 131 R_CURLY@[204; 205) "}"
132 SEMI@[205; 206) ";" 132 SEMICOLON@[205; 206) ";"
133 WHITESPACE@[206; 207) " " 133 WHITESPACE@[206; 207) " "
134 COMMENT@[207; 249) "// Nonsensical but pe ..." 134 COMMENT@[207; 249) "// Nonsensical but pe ..."
135 WHITESPACE@[249; 250) "\n" 135 WHITESPACE@[249; 250) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast b/crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast
index 9241f6fb2..a0cf1e4f6 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast
@@ -56,5 +56,5 @@ SOURCE_FILE@[0; 39)
56 R_PAREN@[34; 35) ")" 56 R_PAREN@[34; 35) ")"
57 R_PAREN@[35; 36) ")" 57 R_PAREN@[35; 36) ")"
58 R_ANGLE@[36; 37) ">" 58 R_ANGLE@[36; 37) ">"
59 SEMI@[37; 38) ";" 59 SEMICOLON@[37; 38) ";"
60 WHITESPACE@[38; 39) "\n" 60 WHITESPACE@[38; 39) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast
index a7186c7a8..027abf179 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast
@@ -36,5 +36,5 @@ SOURCE_FILE@[0; 35)
36 IDENT@[27; 31) "Copy" 36 IDENT@[27; 31) "Copy"
37 R_PAREN@[31; 32) ")" 37 R_PAREN@[31; 32) ")"
38 R_ANGLE@[32; 33) ">" 38 R_ANGLE@[32; 33) ">"
39 SEMI@[33; 34) ";" 39 SEMICOLON@[33; 34) ";"
40 WHITESPACE@[34; 35) "\n" 40 WHITESPACE@[34; 35) "\n"
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 3812adc9e..f4697fed6 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
@@ -21,7 +21,7 @@ SOURCE_FILE@[0; 103)
21 PATH_SEGMENT@[19; 22) 21 PATH_SEGMENT@[19; 22)
22 NAME_REF@[19; 22) 22 NAME_REF@[19; 22)
23 IDENT@[19; 22) "foo" 23 IDENT@[19; 22) "foo"
24 COLONCOLON@[22; 24) "::" 24 COLON2@[22; 24) "::"
25 PATH_SEGMENT@[24; 27) 25 PATH_SEGMENT@[24; 27)
26 NAME_REF@[24; 27) 26 NAME_REF@[24; 27)
27 IDENT@[24; 27) "Bar" 27 IDENT@[24; 27) "Bar"
@@ -31,7 +31,7 @@ SOURCE_FILE@[0; 103)
31 TUPLE_EXPR@[30; 32) 31 TUPLE_EXPR@[30; 32)
32 L_PAREN@[30; 31) "(" 32 L_PAREN@[30; 31) "("
33 R_PAREN@[31; 32) ")" 33 R_PAREN@[31; 32) ")"
34 SEMI@[32; 33) ";" 34 SEMICOLON@[32; 33) ";"
35 WHITESPACE@[33; 38) "\n " 35 WHITESPACE@[33; 38) "\n "
36 LET_STMT@[38; 53) 36 LET_STMT@[38; 53)
37 LET_KW@[38; 41) "let" 37 LET_KW@[38; 41) "let"
@@ -39,7 +39,7 @@ SOURCE_FILE@[0; 103)
39 PATH_PAT@[42; 47) 39 PATH_PAT@[42; 47)
40 PATH@[42; 47) 40 PATH@[42; 47)
41 PATH_SEGMENT@[42; 47) 41 PATH_SEGMENT@[42; 47)
42 COLONCOLON@[42; 44) "::" 42 COLON2@[42; 44) "::"
43 NAME_REF@[44; 47) 43 NAME_REF@[44; 47)
44 IDENT@[44; 47) "Bar" 44 IDENT@[44; 47) "Bar"
45 WHITESPACE@[47; 48) " " 45 WHITESPACE@[47; 48) " "
@@ -48,7 +48,7 @@ SOURCE_FILE@[0; 103)
48 TUPLE_EXPR@[50; 52) 48 TUPLE_EXPR@[50; 52)
49 L_PAREN@[50; 51) "(" 49 L_PAREN@[50; 51) "("
50 R_PAREN@[51; 52) ")" 50 R_PAREN@[51; 52) ")"
51 SEMI@[52; 53) ";" 51 SEMICOLON@[52; 53) ";"
52 WHITESPACE@[53; 58) "\n " 52 WHITESPACE@[53; 58) "\n "
53 LET_STMT@[58; 78) 53 LET_STMT@[58; 78)
54 LET_KW@[58; 61) "let" 54 LET_KW@[58; 61) "let"
@@ -62,7 +62,7 @@ SOURCE_FILE@[0; 103)
62 RECORD_FIELD_PAT_LIST@[66; 72) 62 RECORD_FIELD_PAT_LIST@[66; 72)
63 L_CURLY@[66; 67) "{" 63 L_CURLY@[66; 67) "{"
64 WHITESPACE@[67; 68) " " 64 WHITESPACE@[67; 68) " "
65 DOTDOT@[68; 70) ".." 65 DOT2@[68; 70) ".."
66 WHITESPACE@[70; 71) " " 66 WHITESPACE@[70; 71) " "
67 R_CURLY@[71; 72) "}" 67 R_CURLY@[71; 72) "}"
68 WHITESPACE@[72; 73) " " 68 WHITESPACE@[72; 73) " "
@@ -71,7 +71,7 @@ SOURCE_FILE@[0; 103)
71 TUPLE_EXPR@[75; 77) 71 TUPLE_EXPR@[75; 77)
72 L_PAREN@[75; 76) "(" 72 L_PAREN@[75; 76) "("
73 R_PAREN@[76; 77) ")" 73 R_PAREN@[76; 77) ")"
74 SEMI@[77; 78) ";" 74 SEMICOLON@[77; 78) ";"
75 WHITESPACE@[78; 83) "\n " 75 WHITESPACE@[78; 83) "\n "
76 LET_STMT@[83; 100) 76 LET_STMT@[83; 100)
77 LET_KW@[83; 86) "let" 77 LET_KW@[83; 86) "let"
@@ -83,7 +83,7 @@ SOURCE_FILE@[0; 103)
83 IDENT@[87; 90) "Bar" 83 IDENT@[87; 90) "Bar"
84 L_PAREN@[90; 91) "(" 84 L_PAREN@[90; 91) "("
85 DOT_DOT_PAT@[91; 93) 85 DOT_DOT_PAT@[91; 93)
86 DOTDOT@[91; 93) ".." 86 DOT2@[91; 93) ".."
87 R_PAREN@[93; 94) ")" 87 R_PAREN@[93; 94) ")"
88 WHITESPACE@[94; 95) " " 88 WHITESPACE@[94; 95) " "
89 EQ@[95; 96) "=" 89 EQ@[95; 96) "="
@@ -91,7 +91,7 @@ SOURCE_FILE@[0; 103)
91 TUPLE_EXPR@[97; 99) 91 TUPLE_EXPR@[97; 99)
92 L_PAREN@[97; 98) "(" 92 L_PAREN@[97; 98) "("
93 R_PAREN@[98; 99) ")" 93 R_PAREN@[98; 99) ")"
94 SEMI@[99; 100) ";" 94 SEMICOLON@[99; 100) ";"
95 WHITESPACE@[100; 101) "\n" 95 WHITESPACE@[100; 101) "\n"
96 R_CURLY@[101; 102) "}" 96 R_CURLY@[101; 102) "}"
97 WHITESPACE@[102; 103) "\n" 97 WHITESPACE@[102; 103) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast
index 2d8872022..cc759310a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast
@@ -20,7 +20,7 @@ SOURCE_FILE@[0; 26)
20 BLOCK@[20; 22) 20 BLOCK@[20; 22)
21 L_CURLY@[20; 21) "{" 21 L_CURLY@[20; 21) "{"
22 R_CURLY@[21; 22) "}" 22 R_CURLY@[21; 22) "}"
23 SEMI@[22; 23) ";" 23 SEMICOLON@[22; 23) ";"
24 WHITESPACE@[23; 24) "\n" 24 WHITESPACE@[23; 24) "\n"
25 R_CURLY@[24; 25) "}" 25 R_CURLY@[24; 25) "}"
26 WHITESPACE@[25; 26) "\n" 26 WHITESPACE@[25; 26) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast
index 29b268b55..c2fafe472 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast
@@ -22,7 +22,7 @@ SOURCE_FILE@[0; 48)
22 DOT@[16; 17) "." 22 DOT@[16; 17) "."
23 NAME_REF@[17; 20) 23 NAME_REF@[17; 20)
24 IDENT@[17; 20) "foo" 24 IDENT@[17; 20) "foo"
25 SEMI@[20; 21) ";" 25 SEMICOLON@[20; 21) ";"
26 WHITESPACE@[21; 26) "\n " 26 WHITESPACE@[21; 26) "\n "
27 EXPR_STMT@[26; 34) 27 EXPR_STMT@[26; 34)
28 FIELD_EXPR@[26; 33) 28 FIELD_EXPR@[26; 33)
@@ -38,7 +38,7 @@ SOURCE_FILE@[0; 48)
38 DOT@[29; 30) "." 38 DOT@[29; 30) "."
39 NAME_REF@[30; 33) 39 NAME_REF@[30; 33)
40 IDENT@[30; 33) "bar" 40 IDENT@[30; 33) "bar"
41 SEMI@[33; 34) ";" 41 SEMICOLON@[33; 34) ";"
42 WHITESPACE@[34; 39) "\n " 42 WHITESPACE@[34; 39) "\n "
43 EXPR_STMT@[39; 45) 43 EXPR_STMT@[39; 45)
44 CALL_EXPR@[39; 44) 44 CALL_EXPR@[39; 44)
@@ -54,7 +54,7 @@ SOURCE_FILE@[0; 48)
54 ARG_LIST@[42; 44) 54 ARG_LIST@[42; 44)
55 L_PAREN@[42; 43) "(" 55 L_PAREN@[42; 43) "("
56 R_PAREN@[43; 44) ")" 56 R_PAREN@[43; 44) ")"
57 SEMI@[44; 45) ";" 57 SEMICOLON@[44; 45) ";"
58 WHITESPACE@[45; 46) "\n" 58 WHITESPACE@[45; 46) "\n"
59 R_CURLY@[46; 47) "}" 59 R_CURLY@[46; 47) "}"
60 WHITESPACE@[47; 48) "\n" 60 WHITESPACE@[47; 48) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast
index da04dac5c..15d8c736d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast
@@ -29,5 +29,5 @@ SOURCE_FILE@[0; 31)
29 TUPLE_TYPE@[27; 29) 29 TUPLE_TYPE@[27; 29)
30 L_PAREN@[27; 28) "(" 30 L_PAREN@[27; 28) "("
31 R_PAREN@[28; 29) ")" 31 R_PAREN@[28; 29) ")"
32 SEMI@[29; 30) ";" 32 SEMICOLON@[29; 30) ";"
33 WHITESPACE@[30; 31) "\n" 33 WHITESPACE@[30; 31) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast b/crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast
index c05f873d6..a72d56495 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast
@@ -14,7 +14,7 @@ SOURCE_FILE@[0; 36)
14 TUPLE_TYPE@[14; 16) 14 TUPLE_TYPE@[14; 16)
15 L_PAREN@[14; 15) "(" 15 L_PAREN@[14; 15) "("
16 R_PAREN@[15; 16) ")" 16 R_PAREN@[15; 16) ")"
17 SEMI@[16; 17) ";" 17 SEMICOLON@[16; 17) ";"
18 WHITESPACE@[17; 18) "\n" 18 WHITESPACE@[17; 18) "\n"
19 TYPE_ALIAS_DEF@[18; 35) 19 TYPE_ALIAS_DEF@[18; 35)
20 TYPE_KW@[18; 22) "type" 20 TYPE_KW@[18; 22) "type"
@@ -31,5 +31,5 @@ SOURCE_FILE@[0; 36)
31 TUPLE_TYPE@[32; 34) 31 TUPLE_TYPE@[32; 34)
32 L_PAREN@[32; 33) "(" 32 L_PAREN@[32; 33) "("
33 R_PAREN@[33; 34) ")" 33 R_PAREN@[33; 34) ")"
34 SEMI@[34; 35) ";" 34 SEMICOLON@[34; 35) ";"
35 WHITESPACE@[35; 36) "\n" 35 WHITESPACE@[35; 36) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast
index ac53e4fd3..3c98467c7 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast
@@ -8,6 +8,6 @@ SOURCE_FILE@[0; 16)
8 EQ@[11; 12) "=" 8 EQ@[11; 12) "="
9 WHITESPACE@[12; 13) " " 9 WHITESPACE@[12; 13) " "
10 NEVER_TYPE@[13; 14) 10 NEVER_TYPE@[13; 14)
11 EXCL@[13; 14) "!" 11 BANG@[13; 14) "!"
12 SEMI@[14; 15) ";" 12 SEMICOLON@[14; 15) ";"
13 WHITESPACE@[15; 16) "\n" 13 WHITESPACE@[15; 16) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast
index c051c1c86..adaece119 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast
@@ -22,14 +22,14 @@ SOURCE_FILE@[0; 69)
22 EXPR_STMT@[30; 39) 22 EXPR_STMT@[30; 39)
23 CONTINUE_EXPR@[30; 38) 23 CONTINUE_EXPR@[30; 38)
24 CONTINUE_KW@[30; 38) "continue" 24 CONTINUE_KW@[30; 38) "continue"
25 SEMI@[38; 39) ";" 25 SEMICOLON@[38; 39) ";"
26 WHITESPACE@[39; 48) "\n " 26 WHITESPACE@[39; 48) "\n "
27 EXPR_STMT@[48; 60) 27 EXPR_STMT@[48; 60)
28 CONTINUE_EXPR@[48; 59) 28 CONTINUE_EXPR@[48; 59)
29 CONTINUE_KW@[48; 56) "continue" 29 CONTINUE_KW@[48; 56) "continue"
30 WHITESPACE@[56; 57) " " 30 WHITESPACE@[56; 57) " "
31 LIFETIME@[57; 59) "\'l" 31 LIFETIME@[57; 59) "\'l"
32 SEMI@[59; 60) ";" 32 SEMICOLON@[59; 60) ";"
33 WHITESPACE@[60; 65) "\n " 33 WHITESPACE@[60; 65) "\n "
34 R_CURLY@[65; 66) "}" 34 R_CURLY@[65; 66) "}"
35 WHITESPACE@[66; 67) "\n" 35 WHITESPACE@[66; 67) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast
index b4055c9f0..f4c86a05f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast
@@ -12,10 +12,10 @@ SOURCE_FILE@[0; 19)
12 TUPLE_TYPE@[10; 12) 12 TUPLE_TYPE@[10; 12)
13 L_PAREN@[10; 11) "(" 13 L_PAREN@[10; 11) "("
14 R_PAREN@[11; 12) ")" 14 R_PAREN@[11; 12) ")"
15 SEMI@[12; 13) ";" 15 SEMICOLON@[12; 13) ";"
16 WHITESPACE@[13; 14) " " 16 WHITESPACE@[13; 14) " "
17 LITERAL@[14; 16) 17 LITERAL@[14; 16)
18 INT_NUMBER@[14; 16) "92" 18 INT_NUMBER@[14; 16) "92"
19 R_BRACK@[16; 17) "]" 19 R_BRACK@[16; 17) "]"
20 SEMI@[17; 18) ";" 20 SEMICOLON@[17; 18) ";"
21 WHITESPACE@[18; 19) "\n" 21 WHITESPACE@[18; 19) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast
index 2d71efd86..5a42f360c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast
@@ -21,16 +21,16 @@ SOURCE_FILE@[0; 44)
21 AMP@[17; 18) "&" 21 AMP@[17; 18) "&"
22 LITERAL@[18; 19) 22 LITERAL@[18; 19)
23 INT_NUMBER@[18; 19) "1" 23 INT_NUMBER@[18; 19) "1"
24 SEMI@[19; 20) ";" 24 SEMICOLON@[19; 20) ";"
25 WHITESPACE@[20; 25) "\n " 25 WHITESPACE@[20; 25) "\n "
26 EXPR_STMT@[25; 32) 26 EXPR_STMT@[25; 32)
27 PREFIX_EXPR@[25; 31) 27 PREFIX_EXPR@[25; 31)
28 EXCL@[25; 26) "!" 28 BANG@[25; 26) "!"
29 PREFIX_EXPR@[26; 31) 29 PREFIX_EXPR@[26; 31)
30 EXCL@[26; 27) "!" 30 BANG@[26; 27) "!"
31 LITERAL@[27; 31) 31 LITERAL@[27; 31)
32 TRUE_KW@[27; 31) "true" 32 TRUE_KW@[27; 31) "true"
33 SEMI@[31; 32) ";" 33 SEMICOLON@[31; 32) ";"
34 WHITESPACE@[32; 37) "\n " 34 WHITESPACE@[32; 37) "\n "
35 EXPR_STMT@[37; 41) 35 EXPR_STMT@[37; 41)
36 PREFIX_EXPR@[37; 40) 36 PREFIX_EXPR@[37; 40)
@@ -39,7 +39,7 @@ SOURCE_FILE@[0; 44)
39 MINUS@[38; 39) "-" 39 MINUS@[38; 39) "-"
40 LITERAL@[39; 40) 40 LITERAL@[39; 40)
41 INT_NUMBER@[39; 40) "1" 41 INT_NUMBER@[39; 40) "1"
42 SEMI@[40; 41) ";" 42 SEMICOLON@[40; 41) ";"
43 WHITESPACE@[41; 42) "\n" 43 WHITESPACE@[41; 42) "\n"
44 R_CURLY@[42; 43) "}" 44 R_CURLY@[42; 43) "}"
45 WHITESPACE@[43; 44) "\n" 45 WHITESPACE@[43; 44) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast b/crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast
index dd2095d90..c1bedb37c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast
@@ -4,15 +4,15 @@ SOURCE_FILE@[0; 60)
4 WHITESPACE@[3; 4) " " 4 WHITESPACE@[3; 4) " "
5 USE_TREE@[4; 5) 5 USE_TREE@[4; 5)
6 STAR@[4; 5) "*" 6 STAR@[4; 5) "*"
7 SEMI@[5; 6) ";" 7 SEMICOLON@[5; 6) ";"
8 WHITESPACE@[6; 7) "\n" 8 WHITESPACE@[6; 7) "\n"
9 USE_ITEM@[7; 15) 9 USE_ITEM@[7; 15)
10 USE_KW@[7; 10) "use" 10 USE_KW@[7; 10) "use"
11 WHITESPACE@[10; 11) " " 11 WHITESPACE@[10; 11) " "
12 USE_TREE@[11; 14) 12 USE_TREE@[11; 14)
13 COLONCOLON@[11; 13) "::" 13 COLON2@[11; 13) "::"
14 STAR@[13; 14) "*" 14 STAR@[13; 14) "*"
15 SEMI@[14; 15) ";" 15 SEMICOLON@[14; 15) ";"
16 WHITESPACE@[15; 16) "\n" 16 WHITESPACE@[15; 16) "\n"
17 USE_ITEM@[16; 36) 17 USE_ITEM@[16; 36)
18 USE_KW@[16; 19) "use" 18 USE_KW@[16; 19) "use"
@@ -23,17 +23,17 @@ SOURCE_FILE@[0; 60)
23 PATH_SEGMENT@[20; 24) 23 PATH_SEGMENT@[20; 24)
24 NAME_REF@[20; 24) 24 NAME_REF@[20; 24)
25 IDENT@[20; 24) "some" 25 IDENT@[20; 24) "some"
26 COLONCOLON@[24; 26) "::" 26 COLON2@[24; 26) "::"
27 PATH_SEGMENT@[26; 30) 27 PATH_SEGMENT@[26; 30)
28 NAME_REF@[26; 30) 28 NAME_REF@[26; 30)
29 IDENT@[26; 30) "path" 29 IDENT@[26; 30) "path"
30 COLONCOLON@[30; 32) "::" 30 COLON2@[30; 32) "::"
31 USE_TREE_LIST@[32; 35) 31 USE_TREE_LIST@[32; 35)
32 L_CURLY@[32; 33) "{" 32 L_CURLY@[32; 33) "{"
33 USE_TREE@[33; 34) 33 USE_TREE@[33; 34)
34 STAR@[33; 34) "*" 34 STAR@[33; 34) "*"
35 R_CURLY@[34; 35) "}" 35 R_CURLY@[34; 35) "}"
36 SEMI@[35; 36) ";" 36 SEMICOLON@[35; 36) ";"
37 WHITESPACE@[36; 37) "\n" 37 WHITESPACE@[36; 37) "\n"
38 USE_ITEM@[37; 59) 38 USE_ITEM@[37; 59)
39 USE_KW@[37; 40) "use" 39 USE_KW@[37; 40) "use"
@@ -44,16 +44,16 @@ SOURCE_FILE@[0; 60)
44 PATH_SEGMENT@[41; 45) 44 PATH_SEGMENT@[41; 45)
45 NAME_REF@[41; 45) 45 NAME_REF@[41; 45)
46 IDENT@[41; 45) "some" 46 IDENT@[41; 45) "some"
47 COLONCOLON@[45; 47) "::" 47 COLON2@[45; 47) "::"
48 PATH_SEGMENT@[47; 51) 48 PATH_SEGMENT@[47; 51)
49 NAME_REF@[47; 51) 49 NAME_REF@[47; 51)
50 IDENT@[47; 51) "path" 50 IDENT@[47; 51) "path"
51 COLONCOLON@[51; 53) "::" 51 COLON2@[51; 53) "::"
52 USE_TREE_LIST@[53; 58) 52 USE_TREE_LIST@[53; 58)
53 L_CURLY@[53; 54) "{" 53 L_CURLY@[53; 54) "{"
54 USE_TREE@[54; 57) 54 USE_TREE@[54; 57)
55 COLONCOLON@[54; 56) "::" 55 COLON2@[54; 56) "::"
56 STAR@[56; 57) "*" 56 STAR@[56; 57) "*"
57 R_CURLY@[57; 58) "}" 57 R_CURLY@[57; 58) "}"
58 SEMI@[58; 59) ";" 58 SEMICOLON@[58; 59) ";"
59 WHITESPACE@[59; 60) "\n" 59 WHITESPACE@[59; 60) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast
index b1af67976..767a49ce6 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast
@@ -24,7 +24,7 @@ SOURCE_FILE@[0; 89)
24 PATH_SEGMENT@[22; 25) 24 PATH_SEGMENT@[22; 25)
25 NAME_REF@[22; 25) 25 NAME_REF@[22; 25)
26 IDENT@[22; 25) "i32" 26 IDENT@[22; 25) "i32"
27 SEMI@[25; 26) ";" 27 SEMICOLON@[25; 26) ";"
28 WHITESPACE@[26; 31) "\n " 28 WHITESPACE@[26; 31) "\n "
29 CONST_DEF@[31; 49) 29 CONST_DEF@[31; 49)
30 CONST_KW@[31; 36) "const" 30 CONST_KW@[31; 36) "const"
@@ -43,7 +43,7 @@ SOURCE_FILE@[0; 89)
43 WHITESPACE@[45; 46) " " 43 WHITESPACE@[45; 46) " "
44 LITERAL@[46; 48) 44 LITERAL@[46; 48)
45 INT_NUMBER@[46; 48) "92" 45 INT_NUMBER@[46; 48) "92"
46 SEMI@[48; 49) ";" 46 SEMICOLON@[48; 49) ";"
47 WHITESPACE@[49; 54) "\n " 47 WHITESPACE@[49; 54) "\n "
48 FN_DEF@[54; 65) 48 FN_DEF@[54; 65)
49 FN_KW@[54; 56) "fn" 49 FN_KW@[54; 56) "fn"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast b/crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast
index 891943f6e..e0fc96d33 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast
@@ -10,7 +10,7 @@ SOURCE_FILE@[0; 81)
10 WHITESPACE@[17; 18) " " 10 WHITESPACE@[17; 18) " "
11 NAME@[18; 19) 11 NAME@[18; 19)
12 IDENT@[18; 19) "S" 12 IDENT@[18; 19) "S"
13 SEMI@[19; 20) ";" 13 SEMICOLON@[19; 20) ";"
14 WHITESPACE@[20; 21) "\n" 14 WHITESPACE@[20; 21) "\n"
15 STRUCT_DEF@[21; 40) 15 STRUCT_DEF@[21; 40)
16 VISIBILITY@[21; 30) 16 VISIBILITY@[21; 30)
@@ -23,7 +23,7 @@ SOURCE_FILE@[0; 81)
23 WHITESPACE@[37; 38) " " 23 WHITESPACE@[37; 38) " "
24 NAME@[38; 39) 24 NAME@[38; 39)
25 IDENT@[38; 39) "S" 25 IDENT@[38; 39) "S"
26 SEMI@[39; 40) ";" 26 SEMICOLON@[39; 40) ";"
27 WHITESPACE@[40; 41) "\n" 27 WHITESPACE@[40; 41) "\n"
28 STRUCT_DEF@[41; 60) 28 STRUCT_DEF@[41; 60)
29 VISIBILITY@[41; 50) 29 VISIBILITY@[41; 50)
@@ -36,7 +36,7 @@ SOURCE_FILE@[0; 81)
36 WHITESPACE@[57; 58) " " 36 WHITESPACE@[57; 58) " "
37 NAME@[58; 59) 37 NAME@[58; 59)
38 IDENT@[58; 59) "S" 38 IDENT@[58; 59) "S"
39 SEMI@[59; 60) ";" 39 SEMICOLON@[59; 60) ";"
40 WHITESPACE@[60; 61) "\n" 40 WHITESPACE@[60; 61) "\n"
41 STRUCT_DEF@[61; 80) 41 STRUCT_DEF@[61; 80)
42 VISIBILITY@[61; 70) 42 VISIBILITY@[61; 70)
@@ -49,5 +49,5 @@ SOURCE_FILE@[0; 81)
49 WHITESPACE@[77; 78) " " 49 WHITESPACE@[77; 78) " "
50 NAME@[78; 79) 50 NAME@[78; 79)
51 IDENT@[78; 79) "S" 51 IDENT@[78; 79) "S"
52 SEMI@[79; 80) ";" 52 SEMICOLON@[79; 80) ";"
53 WHITESPACE@[80; 81) "\n" 53 WHITESPACE@[80; 81) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast
index 0f32aec9e..b7acc3f07 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast
@@ -9,5 +9,5 @@ SOURCE_FILE@[0; 22)
9 WHITESPACE@[18; 19) " " 9 WHITESPACE@[18; 19) " "
10 PLACEHOLDER_TYPE@[19; 20) 10 PLACEHOLDER_TYPE@[19; 20)
11 UNDERSCORE@[19; 20) "_" 11 UNDERSCORE@[19; 20) "_"
12 SEMI@[20; 21) ";" 12 SEMICOLON@[20; 21) ";"
13 WHITESPACE@[21; 22) "\n" 13 WHITESPACE@[21; 22) "\n"
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 48aaeaf07..430e4a999 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
@@ -28,7 +28,7 @@ SOURCE_FILE@[0; 39)
28 COMMA@[25; 26) "," 28 COMMA@[25; 26) ","
29 WHITESPACE@[26; 27) " " 29 WHITESPACE@[26; 27) " "
30 DOT_DOT_PAT@[27; 29) 30 DOT_DOT_PAT@[27; 29)
31 DOTDOT@[27; 29) ".." 31 DOT2@[27; 29) ".."
32 R_BRACK@[29; 30) "]" 32 R_BRACK@[29; 30) "]"
33 WHITESPACE@[30; 31) " " 33 WHITESPACE@[30; 31) " "
34 EQ@[31; 32) "=" 34 EQ@[31; 32) "="
@@ -36,7 +36,7 @@ SOURCE_FILE@[0; 39)
36 ARRAY_EXPR@[33; 35) 36 ARRAY_EXPR@[33; 35)
37 L_BRACK@[33; 34) "[" 37 L_BRACK@[33; 34) "["
38 R_BRACK@[34; 35) "]" 38 R_BRACK@[34; 35) "]"
39 SEMI@[35; 36) ";" 39 SEMICOLON@[35; 36) ";"
40 WHITESPACE@[36; 37) "\n" 40 WHITESPACE@[36; 37) "\n"
41 R_CURLY@[37; 38) "}" 41 R_CURLY@[37; 38) "}"
42 WHITESPACE@[38; 39) "\n" 42 WHITESPACE@[38; 39) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast
index b3a24281e..4eee1e7f1 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast
@@ -13,5 +13,5 @@ SOURCE_FILE@[0; 15)
13 L_PAREN@[10; 11) "(" 13 L_PAREN@[10; 11) "("
14 R_PAREN@[11; 12) ")" 14 R_PAREN@[11; 12) ")"
15 R_BRACK@[12; 13) "]" 15 R_BRACK@[12; 13) "]"
16 SEMI@[13; 14) ";" 16 SEMICOLON@[13; 14) ";"
17 WHITESPACE@[14; 15) "\n" 17 WHITESPACE@[14; 15) "\n"
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 666386d31..d8d82dacc 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
@@ -28,7 +28,7 @@ SOURCE_FILE@[0; 97)
28 TUPLE_EXPR@[25; 27) 28 TUPLE_EXPR@[25; 27)
29 L_PAREN@[25; 26) "(" 29 L_PAREN@[25; 26) "("
30 R_PAREN@[26; 27) ")" 30 R_PAREN@[26; 27) ")"
31 SEMI@[27; 28) ";" 31 SEMICOLON@[27; 28) ";"
32 WHITESPACE@[28; 33) "\n " 32 WHITESPACE@[28; 33) "\n "
33 LET_STMT@[33; 47) 33 LET_STMT@[33; 47)
34 LET_KW@[33; 36) "let" 34 LET_KW@[33; 36) "let"
@@ -48,7 +48,7 @@ SOURCE_FILE@[0; 97)
48 TUPLE_EXPR@[44; 46) 48 TUPLE_EXPR@[44; 46)
49 L_PAREN@[44; 45) "(" 49 L_PAREN@[44; 45) "("
50 R_PAREN@[45; 46) ")" 50 R_PAREN@[45; 46) ")"
51 SEMI@[46; 47) ";" 51 SEMICOLON@[46; 47) ";"
52 WHITESPACE@[47; 52) "\n " 52 WHITESPACE@[47; 52) "\n "
53 LET_STMT@[52; 67) 53 LET_STMT@[52; 67)
54 LET_KW@[52; 55) "let" 54 LET_KW@[52; 55) "let"
@@ -69,7 +69,7 @@ SOURCE_FILE@[0; 97)
69 TUPLE_EXPR@[64; 66) 69 TUPLE_EXPR@[64; 66)
70 L_PAREN@[64; 65) "(" 70 L_PAREN@[64; 65) "("
71 R_PAREN@[65; 66) ")" 71 R_PAREN@[65; 66) ")"
72 SEMI@[66; 67) ";" 72 SEMICOLON@[66; 67) ";"
73 WHITESPACE@[67; 72) "\n " 73 WHITESPACE@[67; 72) "\n "
74 LET_STMT@[72; 94) 74 LET_STMT@[72; 94)
75 LET_KW@[72; 75) "let" 75 LET_KW@[72; 75) "let"
@@ -85,7 +85,7 @@ SOURCE_FILE@[0; 97)
85 COMMA@[79; 80) "," 85 COMMA@[79; 80) ","
86 WHITESPACE@[80; 81) " " 86 WHITESPACE@[80; 81) " "
87 DOT_DOT_PAT@[81; 83) 87 DOT_DOT_PAT@[81; 83)
88 DOTDOT@[81; 83) ".." 88 DOT2@[81; 83) ".."
89 WHITESPACE@[83; 84) " " 89 WHITESPACE@[83; 84) " "
90 COMMA@[84; 85) "," 90 COMMA@[84; 85) ","
91 WHITESPACE@[85; 86) " " 91 WHITESPACE@[85; 86) " "
@@ -99,7 +99,7 @@ SOURCE_FILE@[0; 97)
99 TUPLE_EXPR@[91; 93) 99 TUPLE_EXPR@[91; 93)
100 L_PAREN@[91; 92) "(" 100 L_PAREN@[91; 92) "("
101 R_PAREN@[92; 93) ")" 101 R_PAREN@[92; 93) ")"
102 SEMI@[93; 94) ";" 102 SEMICOLON@[93; 94) ";"
103 WHITESPACE@[94; 95) "\n" 103 WHITESPACE@[94; 95) "\n"
104 R_CURLY@[95; 96) "}" 104 R_CURLY@[95; 96) "}"
105 WHITESPACE@[96; 97) "\n" 105 WHITESPACE@[96; 97) "\n"
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 0f1a367f7..ac6ab31f2 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
@@ -26,7 +26,7 @@ SOURCE_FILE@[0; 52)
26 TUPLE_EXPR@[25; 27) 26 TUPLE_EXPR@[25; 27)
27 L_PAREN@[25; 26) "(" 27 L_PAREN@[25; 26) "("
28 R_PAREN@[26; 27) ")" 28 R_PAREN@[26; 27) ")"
29 SEMI@[27; 28) ";" 29 SEMICOLON@[27; 28) ";"
30 WHITESPACE@[28; 33) "\n " 30 WHITESPACE@[28; 33) "\n "
31 LET_STMT@[33; 49) 31 LET_STMT@[33; 49)
32 LET_KW@[33; 36) "let" 32 LET_KW@[33; 36) "let"
@@ -44,7 +44,7 @@ SOURCE_FILE@[0; 52)
44 TUPLE_EXPR@[46; 48) 44 TUPLE_EXPR@[46; 48)
45 L_PAREN@[46; 47) "(" 45 L_PAREN@[46; 47) "("
46 R_PAREN@[47; 48) ")" 46 R_PAREN@[47; 48) ")"
47 SEMI@[48; 49) ";" 47 SEMICOLON@[48; 49) ";"
48 WHITESPACE@[49; 50) "\n" 48 WHITESPACE@[49; 50) "\n"
49 R_CURLY@[50; 51) "}" 49 R_CURLY@[50; 51) "}"
50 WHITESPACE@[51; 52) "\n" 50 WHITESPACE@[51; 52) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast
index f07027fa7..3371cab82 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast
@@ -39,5 +39,5 @@ SOURCE_FILE@[0; 43)
39 WHITESPACE@[38; 39) " " 39 WHITESPACE@[38; 39) " "
40 TYPE_BOUND@[39; 41) 40 TYPE_BOUND@[39; 41)
41 LIFETIME@[39; 41) "\'a" 41 LIFETIME@[39; 41) "\'a"
42 SEMI@[41; 42) ";" 42 SEMICOLON@[41; 42) ";"
43 WHITESPACE@[42; 43) "\n" 43 WHITESPACE@[42; 43) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast
index b17a2c257..e9ca214bb 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast
@@ -24,7 +24,7 @@ SOURCE_FILE@[0; 89)
24 PATH_SEGMENT@[21; 24) 24 PATH_SEGMENT@[21; 24)
25 NAME_REF@[21; 24) 25 NAME_REF@[21; 24)
26 IDENT@[21; 24) "i32" 26 IDENT@[21; 24) "i32"
27 SEMI@[24; 25) ";" 27 SEMICOLON@[24; 25) ";"
28 WHITESPACE@[25; 30) "\n " 28 WHITESPACE@[25; 30) "\n "
29 EXPR_STMT@[30; 43) 29 EXPR_STMT@[30; 43)
30 BIN_EXPR@[30; 42) 30 BIN_EXPR@[30; 42)
@@ -44,7 +44,7 @@ SOURCE_FILE@[0; 89)
44 WHITESPACE@[40; 41) " " 44 WHITESPACE@[40; 41) " "
45 LITERAL@[41; 42) 45 LITERAL@[41; 42)
46 INT_NUMBER@[41; 42) "1" 46 INT_NUMBER@[41; 42) "1"
47 SEMI@[42; 43) ";" 47 SEMICOLON@[42; 43) ";"
48 WHITESPACE@[43; 48) "\n " 48 WHITESPACE@[43; 48) "\n "
49 EXPR_STMT@[48; 62) 49 EXPR_STMT@[48; 62)
50 BIN_EXPR@[48; 61) 50 BIN_EXPR@[48; 61)
@@ -64,7 +64,7 @@ SOURCE_FILE@[0; 89)
64 WHITESPACE@[59; 60) " " 64 WHITESPACE@[59; 60) " "
65 LITERAL@[60; 61) 65 LITERAL@[60; 61)
66 INT_NUMBER@[60; 61) "1" 66 INT_NUMBER@[60; 61) "1"
67 SEMI@[61; 62) ";" 67 SEMICOLON@[61; 62) ";"
68 WHITESPACE@[62; 67) "\n " 68 WHITESPACE@[62; 67) "\n "
69 EXPR_STMT@[67; 86) 69 EXPR_STMT@[67; 86)
70 BIN_EXPR@[67; 85) 70 BIN_EXPR@[67; 85)
@@ -84,7 +84,7 @@ SOURCE_FILE@[0; 89)
84 WHITESPACE@[80; 81) " " 84 WHITESPACE@[80; 81) " "
85 LITERAL@[81; 85) 85 LITERAL@[81; 85)
86 INT_NUMBER@[81; 85) "0x37" 86 INT_NUMBER@[81; 85) "0x37"
87 SEMI@[85; 86) ";" 87 SEMICOLON@[85; 86) ";"
88 WHITESPACE@[86; 87) "\n" 88 WHITESPACE@[86; 87) "\n"
89 R_CURLY@[87; 88) "}" 89 R_CURLY@[87; 88) "}"
90 WHITESPACE@[88; 89) "\n" 90 WHITESPACE@[88; 89) "\n"
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 a6e14a114..aaef408cc 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
@@ -24,7 +24,7 @@ SOURCE_FILE@[0; 93)
24 BLOCK@[26; 28) 24 BLOCK@[26; 28)
25 L_CURLY@[26; 27) "{" 25 L_CURLY@[26; 27) "{"
26 R_CURLY@[27; 28) "}" 26 R_CURLY@[27; 28) "}"
27 SEMI@[28; 29) ";" 27 SEMICOLON@[28; 29) ";"
28 WHITESPACE@[29; 34) "\n " 28 WHITESPACE@[29; 34) "\n "
29 EXPR_STMT@[34; 67) 29 EXPR_STMT@[34; 67)
30 WHILE_EXPR@[34; 66) 30 WHILE_EXPR@[34; 66)
@@ -63,7 +63,7 @@ SOURCE_FILE@[0; 93)
63 BLOCK@[64; 66) 63 BLOCK@[64; 66)
64 L_CURLY@[64; 65) "{" 64 L_CURLY@[64; 65) "{"
65 R_CURLY@[65; 66) "}" 65 R_CURLY@[65; 66) "}"
66 SEMI@[66; 67) ";" 66 SEMICOLON@[66; 67) ";"
67 WHITESPACE@[67; 72) "\n " 67 WHITESPACE@[67; 72) "\n "
68 EXPR_STMT@[72; 90) 68 EXPR_STMT@[72; 90)
69 WHILE_EXPR@[72; 89) 69 WHILE_EXPR@[72; 89)
@@ -83,7 +83,7 @@ SOURCE_FILE@[0; 93)
83 BLOCK@[87; 89) 83 BLOCK@[87; 89)
84 L_CURLY@[87; 88) "{" 84 L_CURLY@[87; 88) "{"
85 R_CURLY@[88; 89) "}" 85 R_CURLY@[88; 89) "}"
86 SEMI@[89; 90) ";" 86 SEMICOLON@[89; 90) ";"
87 WHITESPACE@[90; 91) "\n" 87 WHITESPACE@[90; 91) "\n"
88 R_CURLY@[91; 92) "}" 88 R_CURLY@[91; 92) "}"
89 WHITESPACE@[92; 93) "\n" 89 WHITESPACE@[92; 93) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast
index 4c17f0db8..bad769850 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast
@@ -12,7 +12,7 @@ SOURCE_FILE@[0; 113)
12 PARAM_LIST@[11; 13) 12 PARAM_LIST@[11; 13)
13 L_PAREN@[11; 12) "(" 13 L_PAREN@[11; 12) "("
14 R_PAREN@[12; 13) ")" 14 R_PAREN@[12; 13) ")"
15 SEMI@[13; 14) ";" 15 SEMICOLON@[13; 14) ";"
16 WHITESPACE@[14; 15) "\n" 16 WHITESPACE@[14; 15) "\n"
17 TYPE_ALIAS_DEF@[15; 36) 17 TYPE_ALIAS_DEF@[15; 36)
18 TYPE_KW@[15; 19) "type" 18 TYPE_KW@[15; 19) "type"
@@ -29,7 +29,7 @@ SOURCE_FILE@[0; 113)
29 PARAM_LIST@[33; 35) 29 PARAM_LIST@[33; 35)
30 L_PAREN@[33; 34) "(" 30 L_PAREN@[33; 34) "("
31 R_PAREN@[34; 35) ")" 31 R_PAREN@[34; 35) ")"
32 SEMI@[35; 36) ";" 32 SEMICOLON@[35; 36) ";"
33 WHITESPACE@[36; 37) "\n" 33 WHITESPACE@[36; 37) "\n"
34 TYPE_ALIAS_DEF@[37; 69) 34 TYPE_ALIAS_DEF@[37; 69)
35 TYPE_KW@[37; 41) "type" 35 TYPE_KW@[37; 41) "type"
@@ -51,7 +51,7 @@ SOURCE_FILE@[0; 113)
51 PARAM_LIST@[66; 68) 51 PARAM_LIST@[66; 68)
52 L_PAREN@[66; 67) "(" 52 L_PAREN@[66; 67) "("
53 R_PAREN@[67; 68) ")" 53 R_PAREN@[67; 68) ")"
54 SEMI@[68; 69) ";" 54 SEMICOLON@[68; 69) ";"
55 WHITESPACE@[69; 70) "\n" 55 WHITESPACE@[69; 70) "\n"
56 TYPE_ALIAS_DEF@[70; 112) 56 TYPE_ALIAS_DEF@[70; 112)
57 TYPE_KW@[70; 74) "type" 57 TYPE_KW@[70; 74) "type"
@@ -82,7 +82,7 @@ SOURCE_FILE@[0; 113)
82 COMMA@[98; 99) "," 82 COMMA@[98; 99) ","
83 WHITESPACE@[99; 100) " " 83 WHITESPACE@[99; 100) " "
84 PARAM@[100; 103) 84 PARAM@[100; 103)
85 DOTDOTDOT@[100; 103) "..." 85 DOT3@[100; 103) "..."
86 WHITESPACE@[103; 104) " " 86 WHITESPACE@[103; 104) " "
87 R_PAREN@[104; 105) ")" 87 R_PAREN@[104; 105) ")"
88 WHITESPACE@[105; 106) " " 88 WHITESPACE@[105; 106) " "
@@ -94,5 +94,5 @@ SOURCE_FILE@[0; 113)
94 PATH_SEGMENT@[109; 111) 94 PATH_SEGMENT@[109; 111)
95 NAME_REF@[109; 111) 95 NAME_REF@[109; 111)
96 IDENT@[109; 111) "u8" 96 IDENT@[109; 111) "u8"
97 SEMI@[111; 112) ";" 97 SEMICOLON@[111; 112) ";"
98 WHITESPACE@[112; 113) "\n" 98 WHITESPACE@[112; 113) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast b/crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast
index 7642ea659..e6ee20b9a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast
@@ -12,7 +12,7 @@ SOURCE_FILE@[0; 54)
12 TUPLE_TYPE@[10; 12) 12 TUPLE_TYPE@[10; 12)
13 L_PAREN@[10; 11) "(" 13 L_PAREN@[10; 11) "("
14 R_PAREN@[11; 12) ")" 14 R_PAREN@[11; 12) ")"
15 SEMI@[12; 13) ";" 15 SEMICOLON@[12; 13) ";"
16 WHITESPACE@[13; 14) "\n" 16 WHITESPACE@[13; 14) "\n"
17 TYPE_ALIAS_DEF@[14; 35) 17 TYPE_ALIAS_DEF@[14; 35)
18 TYPE_KW@[14; 18) "type" 18 TYPE_KW@[14; 18) "type"
@@ -29,7 +29,7 @@ SOURCE_FILE@[0; 54)
29 TUPLE_TYPE@[32; 34) 29 TUPLE_TYPE@[32; 34)
30 L_PAREN@[32; 33) "(" 30 L_PAREN@[32; 33) "("
31 R_PAREN@[33; 34) ")" 31 R_PAREN@[33; 34) ")"
32 SEMI@[34; 35) ";" 32 SEMICOLON@[34; 35) ";"
33 WHITESPACE@[35; 36) "\n" 33 WHITESPACE@[35; 36) "\n"
34 TYPE_ALIAS_DEF@[36; 53) 34 TYPE_ALIAS_DEF@[36; 53)
35 TYPE_KW@[36; 40) "type" 35 TYPE_KW@[36; 40) "type"
@@ -46,5 +46,5 @@ SOURCE_FILE@[0; 54)
46 TUPLE_TYPE@[50; 52) 46 TUPLE_TYPE@[50; 52)
47 L_PAREN@[50; 51) "(" 47 L_PAREN@[50; 51) "("
48 R_PAREN@[51; 52) ")" 48 R_PAREN@[51; 52) ")"
49 SEMI@[52; 53) ";" 49 SEMICOLON@[52; 53) ";"
50 WHITESPACE@[53; 54) "\n" 50 WHITESPACE@[53; 54) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast
index 67ffdfd67..4bb95314f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast
@@ -22,14 +22,14 @@ SOURCE_FILE@[0; 102)
22 EXPR_STMT@[30; 36) 22 EXPR_STMT@[30; 36)
23 BREAK_EXPR@[30; 35) 23 BREAK_EXPR@[30; 35)
24 BREAK_KW@[30; 35) "break" 24 BREAK_KW@[30; 35) "break"
25 SEMI@[35; 36) ";" 25 SEMICOLON@[35; 36) ";"
26 WHITESPACE@[36; 45) "\n " 26 WHITESPACE@[36; 45) "\n "
27 EXPR_STMT@[45; 54) 27 EXPR_STMT@[45; 54)
28 BREAK_EXPR@[45; 53) 28 BREAK_EXPR@[45; 53)
29 BREAK_KW@[45; 50) "break" 29 BREAK_KW@[45; 50) "break"
30 WHITESPACE@[50; 51) " " 30 WHITESPACE@[50; 51) " "
31 LIFETIME@[51; 53) "\'l" 31 LIFETIME@[51; 53) "\'l"
32 SEMI@[53; 54) ";" 32 SEMICOLON@[53; 54) ";"
33 WHITESPACE@[54; 63) "\n " 33 WHITESPACE@[54; 63) "\n "
34 EXPR_STMT@[63; 72) 34 EXPR_STMT@[63; 72)
35 BREAK_EXPR@[63; 71) 35 BREAK_EXPR@[63; 71)
@@ -37,7 +37,7 @@ SOURCE_FILE@[0; 102)
37 WHITESPACE@[68; 69) " " 37 WHITESPACE@[68; 69) " "
38 LITERAL@[69; 71) 38 LITERAL@[69; 71)
39 INT_NUMBER@[69; 71) "92" 39 INT_NUMBER@[69; 71) "92"
40 SEMI@[71; 72) ";" 40 SEMICOLON@[71; 72) ";"
41 WHITESPACE@[72; 81) "\n " 41 WHITESPACE@[72; 81) "\n "
42 EXPR_STMT@[81; 93) 42 EXPR_STMT@[81; 93)
43 BREAK_EXPR@[81; 92) 43 BREAK_EXPR@[81; 92)
@@ -47,7 +47,7 @@ SOURCE_FILE@[0; 102)
47 WHITESPACE@[89; 90) " " 47 WHITESPACE@[89; 90) " "
48 LITERAL@[90; 92) 48 LITERAL@[90; 92)
49 INT_NUMBER@[90; 92) "92" 49 INT_NUMBER@[90; 92) "92"
50 SEMI@[92; 93) ";" 50 SEMICOLON@[92; 93) ";"
51 WHITESPACE@[93; 98) "\n " 51 WHITESPACE@[93; 98) "\n "
52 R_CURLY@[98; 99) "}" 52 R_CURLY@[98; 99) "}"
53 WHITESPACE@[99; 100) "\n" 53 WHITESPACE@[99; 100) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast b/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast
index 6e226de4b..1cd7a443f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast
@@ -26,11 +26,11 @@ SOURCE_FILE@[0; 71)
26 NAME_REF@[15; 16) 26 NAME_REF@[15; 16)
27 IDENT@[15; 16) "B" 27 IDENT@[15; 16) "B"
28 R_ANGLE@[16; 17) ">" 28 R_ANGLE@[16; 17) ">"
29 COLONCOLON@[17; 19) "::" 29 COLON2@[17; 19) "::"
30 PATH_SEGMENT@[19; 25) 30 PATH_SEGMENT@[19; 25)
31 NAME_REF@[19; 25) 31 NAME_REF@[19; 25)
32 IDENT@[19; 25) "Output" 32 IDENT@[19; 25) "Output"
33 SEMI@[25; 26) ";" 33 SEMICOLON@[25; 26) ";"
34 WHITESPACE@[26; 27) "\n" 34 WHITESPACE@[26; 27) "\n"
35 FN_DEF@[27; 70) 35 FN_DEF@[27; 70)
36 FN_KW@[27; 29) "fn" 36 FN_KW@[27; 29) "fn"
@@ -66,14 +66,14 @@ SOURCE_FILE@[0; 71)
66 NAME_REF@[48; 55) 66 NAME_REF@[48; 55)
67 IDENT@[48; 55) "Default" 67 IDENT@[48; 55) "Default"
68 R_ANGLE@[55; 56) ">" 68 R_ANGLE@[55; 56) ">"
69 COLONCOLON@[56; 58) "::" 69 COLON2@[56; 58) "::"
70 PATH_SEGMENT@[58; 65) 70 PATH_SEGMENT@[58; 65)
71 NAME_REF@[58; 65) 71 NAME_REF@[58; 65)
72 IDENT@[58; 65) "default" 72 IDENT@[58; 65) "default"
73 ARG_LIST@[65; 67) 73 ARG_LIST@[65; 67)
74 L_PAREN@[65; 66) "(" 74 L_PAREN@[65; 66) "("
75 R_PAREN@[66; 67) ")" 75 R_PAREN@[66; 67) ")"
76 SEMI@[67; 68) ";" 76 SEMICOLON@[67; 68) ";"
77 WHITESPACE@[68; 69) " " 77 WHITESPACE@[68; 69) " "
78 R_CURLY@[69; 70) "}" 78 R_CURLY@[69; 70) "}"
79 WHITESPACE@[70; 71) "\n" 79 WHITESPACE@[70; 71) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast
index 042cee879..f5db5a9e6 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast
@@ -21,9 +21,9 @@ SOURCE_FILE@[0; 21)
21 IDENT@[11; 13) "xs" 21 IDENT@[11; 13) "xs"
22 L_BRACK@[13; 14) "[" 22 L_BRACK@[13; 14) "["
23 RANGE_EXPR@[14; 16) 23 RANGE_EXPR@[14; 16)
24 DOTDOT@[14; 16) ".." 24 DOT2@[14; 16) ".."
25 R_BRACK@[16; 17) "]" 25 R_BRACK@[16; 17) "]"
26 SEMI@[17; 18) ";" 26 SEMICOLON@[17; 18) ";"
27 WHITESPACE@[18; 19) " " 27 WHITESPACE@[18; 19) " "
28 R_CURLY@[19; 20) "}" 28 R_CURLY@[19; 20) "}"
29 WHITESPACE@[20; 21) "\n" 29 WHITESPACE@[20; 21) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast
index 025faf5ca..2d9db61b3 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast
@@ -51,5 +51,5 @@ SOURCE_FILE@[0; 46)
51 NAME_REF@[40; 43) 51 NAME_REF@[40; 43)
52 IDENT@[40; 43) "u64" 52 IDENT@[40; 43) "u64"
53 R_ANGLE@[43; 44) ">" 53 R_ANGLE@[43; 44) ">"
54 SEMI@[44; 45) ";" 54 SEMICOLON@[44; 45) ";"
55 WHITESPACE@[45; 46) "\n" 55 WHITESPACE@[45; 46) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast b/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
index d180fcf20..4c175e210 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
@@ -59,5 +59,5 @@ SOURCE_FILE@[0; 71)
59 NAME_REF@[65; 68) 59 NAME_REF@[65; 68)
60 IDENT@[65; 68) "u32" 60 IDENT@[65; 68) "u32"
61 R_PAREN@[68; 69) ")" 61 R_PAREN@[68; 69) ")"
62 SEMI@[69; 70) ";" 62 SEMICOLON@[69; 70) ";"
63 WHITESPACE@[70; 71) "\n" 63 WHITESPACE@[70; 71) "\n"
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 e8003bf91..f9e677a03 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
@@ -29,7 +29,7 @@ SOURCE_FILE@[0; 118)
29 ARG_LIST@[24; 26) 29 ARG_LIST@[24; 26)
30 L_PAREN@[24; 25) "(" 30 L_PAREN@[24; 25) "("
31 R_PAREN@[25; 26) ")" 31 R_PAREN@[25; 26) ")"
32 SEMI@[26; 27) ";" 32 SEMICOLON@[26; 27) ";"
33 WHITESPACE@[27; 32) "\n " 33 WHITESPACE@[27; 32) "\n "
34 LET_STMT@[32; 54) 34 LET_STMT@[32; 54)
35 LET_KW@[32; 35) "let" 35 LET_KW@[32; 35) "let"
@@ -65,7 +65,7 @@ SOURCE_FILE@[0; 118)
65 INT_NUMBER@[50; 51) "2" 65 INT_NUMBER@[50; 51) "2"
66 COMMA@[51; 52) "," 66 COMMA@[51; 52) ","
67 R_PAREN@[52; 53) ")" 67 R_PAREN@[52; 53) ")"
68 SEMI@[53; 54) ";" 68 SEMICOLON@[53; 54) ";"
69 WHITESPACE@[54; 59) "\n " 69 WHITESPACE@[54; 59) "\n "
70 LET_STMT@[59; 84) 70 LET_STMT@[59; 84)
71 LET_KW@[59; 62) "let" 71 LET_KW@[59; 62) "let"
@@ -95,7 +95,7 @@ SOURCE_FILE@[0; 118)
95 NAME_REF@[70; 73) 95 NAME_REF@[70; 73)
96 IDENT@[70; 73) "Foo" 96 IDENT@[70; 73) "Foo"
97 R_ANGLE@[73; 74) ">" 97 R_ANGLE@[73; 74) ">"
98 COLONCOLON@[74; 76) "::" 98 COLON2@[74; 76) "::"
99 PATH_SEGMENT@[76; 80) 99 PATH_SEGMENT@[76; 80)
100 NAME_REF@[76; 80) 100 NAME_REF@[76; 80)
101 IDENT@[76; 80) "func" 101 IDENT@[76; 80) "func"
@@ -103,7 +103,7 @@ SOURCE_FILE@[0; 118)
103 L_PAREN@[80; 81) "(" 103 L_PAREN@[80; 81) "("
104 R_PAREN@[81; 82) ")" 104 R_PAREN@[81; 82) ")"
105 R_PAREN@[82; 83) ")" 105 R_PAREN@[82; 83) ")"
106 SEMI@[83; 84) ";" 106 SEMICOLON@[83; 84) ";"
107 WHITESPACE@[84; 89) "\n " 107 WHITESPACE@[84; 89) "\n "
108 EXPR_STMT@[89; 115) 108 EXPR_STMT@[89; 115)
109 CALL_EXPR@[89; 114) 109 CALL_EXPR@[89; 114)
@@ -134,7 +134,7 @@ SOURCE_FILE@[0; 118)
134 NAME_REF@[99; 104) 134 NAME_REF@[99; 104)
135 IDENT@[99; 104) "Trait" 135 IDENT@[99; 104) "Trait"
136 R_ANGLE@[104; 105) ">" 136 R_ANGLE@[104; 105) ">"
137 COLONCOLON@[105; 107) "::" 137 COLON2@[105; 107) "::"
138 PATH_SEGMENT@[107; 111) 138 PATH_SEGMENT@[107; 111)
139 NAME_REF@[107; 111) 139 NAME_REF@[107; 111)
140 IDENT@[107; 111) "func" 140 IDENT@[107; 111) "func"
@@ -142,7 +142,7 @@ SOURCE_FILE@[0; 118)
142 L_PAREN@[111; 112) "(" 142 L_PAREN@[111; 112) "("
143 R_PAREN@[112; 113) ")" 143 R_PAREN@[112; 113) ")"
144 R_PAREN@[113; 114) ")" 144 R_PAREN@[113; 114) ")"
145 SEMI@[114; 115) ";" 145 SEMICOLON@[114; 115) ";"
146 WHITESPACE@[115; 116) "\n" 146 WHITESPACE@[115; 116) "\n"
147 R_CURLY@[116; 117) "}" 147 R_CURLY@[116; 117) "}"
148 WHITESPACE@[117; 118) "\n" 148 WHITESPACE@[117; 118) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast b/crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast
index 18d8a151f..580f29cfb 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast
@@ -8,7 +8,7 @@ SOURCE_FILE@[0; 198)
8 PATH_SEGMENT@[4; 8) 8 PATH_SEGMENT@[4; 8)
9 NAME_REF@[4; 8) 9 NAME_REF@[4; 8)
10 IDENT@[4; 8) "some" 10 IDENT@[4; 8) "some"
11 COLONCOLON@[8; 10) "::" 11 COLON2@[8; 10) "::"
12 PATH_SEGMENT@[10; 14) 12 PATH_SEGMENT@[10; 14)
13 NAME_REF@[10; 14) 13 NAME_REF@[10; 14)
14 IDENT@[10; 14) "path" 14 IDENT@[10; 14) "path"
@@ -18,7 +18,7 @@ SOURCE_FILE@[0; 198)
18 WHITESPACE@[17; 18) " " 18 WHITESPACE@[17; 18) " "
19 NAME@[18; 27) 19 NAME@[18; 27)
20 IDENT@[18; 27) "some_name" 20 IDENT@[18; 27) "some_name"
21 SEMI@[27; 28) ";" 21 SEMICOLON@[27; 28) ";"
22 WHITESPACE@[28; 29) "\n" 22 WHITESPACE@[28; 29) "\n"
23 USE_ITEM@[29; 181) 23 USE_ITEM@[29; 181)
24 USE_KW@[29; 32) "use" 24 USE_KW@[29; 32) "use"
@@ -28,7 +28,7 @@ SOURCE_FILE@[0; 198)
28 PATH_SEGMENT@[33; 37) 28 PATH_SEGMENT@[33; 37)
29 NAME_REF@[33; 37) 29 NAME_REF@[33; 37)
30 IDENT@[33; 37) "some" 30 IDENT@[33; 37) "some"
31 COLONCOLON@[37; 39) "::" 31 COLON2@[37; 39) "::"
32 USE_TREE_LIST@[39; 180) 32 USE_TREE_LIST@[39; 180)
33 L_CURLY@[39; 40) "{" 33 L_CURLY@[39; 40) "{"
34 WHITESPACE@[40; 42) "\n " 34 WHITESPACE@[40; 42) "\n "
@@ -38,7 +38,7 @@ SOURCE_FILE@[0; 198)
38 PATH_SEGMENT@[42; 47) 38 PATH_SEGMENT@[42; 47)
39 NAME_REF@[42; 47) 39 NAME_REF@[42; 47)
40 IDENT@[42; 47) "other" 40 IDENT@[42; 47) "other"
41 COLONCOLON@[47; 49) "::" 41 COLON2@[47; 49) "::"
42 PATH_SEGMENT@[49; 53) 42 PATH_SEGMENT@[49; 53)
43 NAME_REF@[49; 53) 43 NAME_REF@[49; 53)
44 IDENT@[49; 53) "path" 44 IDENT@[49; 53) "path"
@@ -56,7 +56,7 @@ SOURCE_FILE@[0; 198)
56 PATH_SEGMENT@[75; 84) 56 PATH_SEGMENT@[75; 84)
57 NAME_REF@[75; 84) 57 NAME_REF@[75; 84)
58 IDENT@[75; 84) "different" 58 IDENT@[75; 84) "different"
59 COLONCOLON@[84; 86) "::" 59 COLON2@[84; 86) "::"
60 PATH_SEGMENT@[86; 90) 60 PATH_SEGMENT@[86; 90)
61 NAME_REF@[86; 90) 61 NAME_REF@[86; 90)
62 IDENT@[86; 90) "path" 62 IDENT@[86; 90) "path"
@@ -75,11 +75,11 @@ SOURCE_FILE@[0; 198)
75 PATH_SEGMENT@[111; 114) 75 PATH_SEGMENT@[111; 114)
76 NAME_REF@[111; 114) 76 NAME_REF@[111; 114)
77 IDENT@[111; 114) "yet" 77 IDENT@[111; 114) "yet"
78 COLONCOLON@[114; 116) "::" 78 COLON2@[114; 116) "::"
79 PATH_SEGMENT@[116; 123) 79 PATH_SEGMENT@[116; 123)
80 NAME_REF@[116; 123) 80 NAME_REF@[116; 123)
81 IDENT@[116; 123) "another" 81 IDENT@[116; 123) "another"
82 COLONCOLON@[123; 125) "::" 82 COLON2@[123; 125) "::"
83 PATH_SEGMENT@[125; 129) 83 PATH_SEGMENT@[125; 129)
84 NAME_REF@[125; 129) 84 NAME_REF@[125; 129)
85 IDENT@[125; 129) "path" 85 IDENT@[125; 129) "path"
@@ -95,31 +95,31 @@ SOURCE_FILE@[0; 198)
95 PATH_SEGMENT@[132; 139) 95 PATH_SEGMENT@[132; 139)
96 NAME_REF@[132; 139) 96 NAME_REF@[132; 139)
97 IDENT@[132; 139) "running" 97 IDENT@[132; 139) "running"
98 COLONCOLON@[139; 141) "::" 98 COLON2@[139; 141) "::"
99 PATH_SEGMENT@[141; 144) 99 PATH_SEGMENT@[141; 144)
100 NAME_REF@[141; 144) 100 NAME_REF@[141; 144)
101 IDENT@[141; 144) "out" 101 IDENT@[141; 144) "out"
102 COLONCOLON@[144; 146) "::" 102 COLON2@[144; 146) "::"
103 PATH_SEGMENT@[146; 148) 103 PATH_SEGMENT@[146; 148)
104 NAME_REF@[146; 148) 104 NAME_REF@[146; 148)
105 IDENT@[146; 148) "of" 105 IDENT@[146; 148) "of"
106 COLONCOLON@[148; 150) "::" 106 COLON2@[148; 150) "::"
107 PATH_SEGMENT@[150; 158) 107 PATH_SEGMENT@[150; 158)
108 NAME_REF@[150; 158) 108 NAME_REF@[150; 158)
109 IDENT@[150; 158) "synonyms" 109 IDENT@[150; 158) "synonyms"
110 COLONCOLON@[158; 160) "::" 110 COLON2@[158; 160) "::"
111 PATH_SEGMENT@[160; 164) 111 PATH_SEGMENT@[160; 164)
112 NAME_REF@[160; 164) 112 NAME_REF@[160; 164)
113 IDENT@[160; 164) "for_" 113 IDENT@[160; 164) "for_"
114 COLONCOLON@[164; 166) "::" 114 COLON2@[164; 166) "::"
115 PATH_SEGMENT@[166; 175) 115 PATH_SEGMENT@[166; 175)
116 NAME_REF@[166; 175) 116 NAME_REF@[166; 175)
117 IDENT@[166; 175) "different" 117 IDENT@[166; 175) "different"
118 COLONCOLON@[175; 177) "::" 118 COLON2@[175; 177) "::"
119 STAR@[177; 178) "*" 119 STAR@[177; 178) "*"
120 WHITESPACE@[178; 179) "\n" 120 WHITESPACE@[178; 179) "\n"
121 R_CURLY@[179; 180) "}" 121 R_CURLY@[179; 180) "}"
122 SEMI@[180; 181) ";" 122 SEMICOLON@[180; 181) ";"
123 WHITESPACE@[181; 182) "\n" 123 WHITESPACE@[181; 182) "\n"
124 USE_ITEM@[182; 197) 124 USE_ITEM@[182; 197)
125 USE_KW@[182; 185) "use" 125 USE_KW@[182; 185) "use"
@@ -134,5 +134,5 @@ SOURCE_FILE@[0; 198)
134 AS_KW@[192; 194) "as" 134 AS_KW@[192; 194) "as"
135 WHITESPACE@[194; 195) " " 135 WHITESPACE@[194; 195) " "
136 UNDERSCORE@[195; 196) "_" 136 UNDERSCORE@[195; 196) "_"
137 SEMI@[196; 197) ";" 137 SEMICOLON@[196; 197) ";"
138 WHITESPACE@[197; 198) "\n" 138 WHITESPACE@[197; 198) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast
index c7b4e614d..988b58d82 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast
@@ -16,5 +16,5 @@ SOURCE_FILE@[0; 17)
16 IDENT@[10; 13) "i32" 16 IDENT@[10; 13) "i32"
17 COMMA@[13; 14) "," 17 COMMA@[13; 14) ","
18 R_PAREN@[14; 15) ")" 18 R_PAREN@[14; 15) ")"
19 SEMI@[15; 16) ";" 19 SEMICOLON@[15; 16) ";"
20 WHITESPACE@[16; 17) "\n" 20 WHITESPACE@[16; 17) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast b/crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast
index 19f961e29..036035f6c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast
@@ -16,7 +16,7 @@ SOURCE_FILE@[0; 22)
16 PARAM_LIST@[16; 18) 16 PARAM_LIST@[16; 18)
17 L_PAREN@[16; 17) "(" 17 L_PAREN@[16; 17) "("
18 R_PAREN@[17; 18) ")" 18 R_PAREN@[17; 18) ")"
19 SEMI@[18; 19) ";" 19 SEMICOLON@[18; 19) ";"
20 WHITESPACE@[19; 20) " " 20 WHITESPACE@[19; 20) " "
21 R_CURLY@[20; 21) "}" 21 R_CURLY@[20; 21) "}"
22 WHITESPACE@[21; 22) "\n" 22 WHITESPACE@[21; 22) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast
index 6a469f8aa..d9fc5eb8a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast
@@ -10,5 +10,5 @@ SOURCE_FILE@[0; 13)
10 TUPLE_TYPE@[9; 11) 10 TUPLE_TYPE@[9; 11)
11 L_PAREN@[9; 10) "(" 11 L_PAREN@[9; 10) "("
12 R_PAREN@[10; 11) ")" 12 R_PAREN@[10; 11) ")"
13 SEMI@[11; 12) ";" 13 SEMICOLON@[11; 12) ";"
14 WHITESPACE@[12; 13) "\n" 14 WHITESPACE@[12; 13) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast
index ee55ee219..8647c23bf 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast
@@ -12,7 +12,7 @@ SOURCE_FILE@[0; 71)
12 PATH_SEGMENT@[9; 12) 12 PATH_SEGMENT@[9; 12)
13 NAME_REF@[9; 12) 13 NAME_REF@[9; 12)
14 IDENT@[9; 12) "Foo" 14 IDENT@[9; 12) "Foo"
15 SEMI@[12; 13) ";" 15 SEMICOLON@[12; 13) ";"
16 WHITESPACE@[13; 14) "\n" 16 WHITESPACE@[13; 14) "\n"
17 TYPE_ALIAS_DEF@[14; 29) 17 TYPE_ALIAS_DEF@[14; 29)
18 TYPE_KW@[14; 18) "type" 18 TYPE_KW@[14; 18) "type"
@@ -25,10 +25,10 @@ SOURCE_FILE@[0; 71)
25 PATH_TYPE@[23; 28) 25 PATH_TYPE@[23; 28)
26 PATH@[23; 28) 26 PATH@[23; 28)
27 PATH_SEGMENT@[23; 28) 27 PATH_SEGMENT@[23; 28)
28 COLONCOLON@[23; 25) "::" 28 COLON2@[23; 25) "::"
29 NAME_REF@[25; 28) 29 NAME_REF@[25; 28)
30 IDENT@[25; 28) "Foo" 30 IDENT@[25; 28) "Foo"
31 SEMI@[28; 29) ";" 31 SEMICOLON@[28; 29) ";"
32 WHITESPACE@[29; 30) "\n" 32 WHITESPACE@[29; 30) "\n"
33 TYPE_ALIAS_DEF@[30; 49) 33 TYPE_ALIAS_DEF@[30; 49)
34 TYPE_KW@[30; 34) "type" 34 TYPE_KW@[30; 34) "type"
@@ -43,11 +43,11 @@ SOURCE_FILE@[0; 71)
43 PATH@[39; 43) 43 PATH@[39; 43)
44 PATH_SEGMENT@[39; 43) 44 PATH_SEGMENT@[39; 43)
45 SELF_KW@[39; 43) "self" 45 SELF_KW@[39; 43) "self"
46 COLONCOLON@[43; 45) "::" 46 COLON2@[43; 45) "::"
47 PATH_SEGMENT@[45; 48) 47 PATH_SEGMENT@[45; 48)
48 NAME_REF@[45; 48) 48 NAME_REF@[45; 48)
49 IDENT@[45; 48) "Foo" 49 IDENT@[45; 48) "Foo"
50 SEMI@[48; 49) ";" 50 SEMICOLON@[48; 49) ";"
51 WHITESPACE@[49; 50) "\n" 51 WHITESPACE@[49; 50) "\n"
52 TYPE_ALIAS_DEF@[50; 70) 52 TYPE_ALIAS_DEF@[50; 70)
53 TYPE_KW@[50; 54) "type" 53 TYPE_KW@[50; 54) "type"
@@ -62,9 +62,9 @@ SOURCE_FILE@[0; 71)
62 PATH@[59; 64) 62 PATH@[59; 64)
63 PATH_SEGMENT@[59; 64) 63 PATH_SEGMENT@[59; 64)
64 SUPER_KW@[59; 64) "super" 64 SUPER_KW@[59; 64) "super"
65 COLONCOLON@[64; 66) "::" 65 COLON2@[64; 66) "::"
66 PATH_SEGMENT@[66; 69) 66 PATH_SEGMENT@[66; 69)
67 NAME_REF@[66; 69) 67 NAME_REF@[66; 69)
68 IDENT@[66; 69) "Foo" 68 IDENT@[66; 69) "Foo"
69 SEMI@[69; 70) ";" 69 SEMICOLON@[69; 70) ";"
70 WHITESPACE@[70; 71) "\n" 70 WHITESPACE@[70; 71) "\n"
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 f1018fcab..690d8504e 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
@@ -25,7 +25,7 @@ SOURCE_FILE@[0; 91)
25 PATH_SEGMENT@[23; 24) 25 PATH_SEGMENT@[23; 24)
26 NAME_REF@[23; 24) 26 NAME_REF@[23; 24)
27 IDENT@[23; 24) "a" 27 IDENT@[23; 24) "a"
28 SEMI@[24; 25) ";" 28 SEMICOLON@[24; 25) ";"
29 WHITESPACE@[25; 30) "\n " 29 WHITESPACE@[25; 30) "\n "
30 LET_STMT@[30; 43) 30 LET_STMT@[30; 43)
31 LET_KW@[30; 33) "let" 31 LET_KW@[30; 33) "let"
@@ -41,11 +41,11 @@ SOURCE_FILE@[0; 91)
41 PATH_SEGMENT@[38; 39) 41 PATH_SEGMENT@[38; 39)
42 NAME_REF@[38; 39) 42 NAME_REF@[38; 39)
43 IDENT@[38; 39) "a" 43 IDENT@[38; 39) "a"
44 COLONCOLON@[39; 41) "::" 44 COLON2@[39; 41) "::"
45 PATH_SEGMENT@[41; 42) 45 PATH_SEGMENT@[41; 42)
46 NAME_REF@[41; 42) 46 NAME_REF@[41; 42)
47 IDENT@[41; 42) "b" 47 IDENT@[41; 42) "b"
48 SEMI@[42; 43) ";" 48 SEMICOLON@[42; 43) ";"
49 WHITESPACE@[43; 48) "\n " 49 WHITESPACE@[43; 48) "\n "
50 LET_STMT@[48; 65) 50 LET_STMT@[48; 65)
51 LET_KW@[48; 51) "let" 51 LET_KW@[48; 51) "let"
@@ -58,11 +58,11 @@ SOURCE_FILE@[0; 91)
58 PATH_EXPR@[56; 64) 58 PATH_EXPR@[56; 64)
59 PATH@[56; 64) 59 PATH@[56; 64)
60 PATH_SEGMENT@[56; 64) 60 PATH_SEGMENT@[56; 64)
61 COLONCOLON@[56; 58) "::" 61 COLON2@[56; 58) "::"
62 NAME_REF@[58; 59) 62 NAME_REF@[58; 59)
63 IDENT@[58; 59) "a" 63 IDENT@[58; 59) "a"
64 TYPE_ARG_LIST@[59; 64) 64 TYPE_ARG_LIST@[59; 64)
65 COLONCOLON@[59; 61) "::" 65 COLON2@[59; 61) "::"
66 L_ANGLE@[61; 62) "<" 66 L_ANGLE@[61; 62) "<"
67 TYPE_ARG@[62; 63) 67 TYPE_ARG@[62; 63)
68 PATH_TYPE@[62; 63) 68 PATH_TYPE@[62; 63)
@@ -71,7 +71,7 @@ SOURCE_FILE@[0; 91)
71 NAME_REF@[62; 63) 71 NAME_REF@[62; 63)
72 IDENT@[62; 63) "b" 72 IDENT@[62; 63) "b"
73 R_ANGLE@[63; 64) ">" 73 R_ANGLE@[63; 64) ">"
74 SEMI@[64; 65) ";" 74 SEMICOLON@[64; 65) ";"
75 WHITESPACE@[65; 70) "\n " 75 WHITESPACE@[65; 70) "\n "
76 LET_STMT@[70; 88) 76 LET_STMT@[70; 88)
77 LET_KW@[70; 73) "let" 77 LET_KW@[70; 73) "let"
@@ -86,11 +86,11 @@ SOURCE_FILE@[0; 91)
86 PATH_SEGMENT@[78; 84) 86 PATH_SEGMENT@[78; 84)
87 NAME_REF@[78; 84) 87 NAME_REF@[78; 84)
88 IDENT@[78; 84) "format" 88 IDENT@[78; 84) "format"
89 EXCL@[84; 85) "!" 89 BANG@[84; 85) "!"
90 TOKEN_TREE@[85; 87) 90 TOKEN_TREE@[85; 87)
91 L_PAREN@[85; 86) "(" 91 L_PAREN@[85; 86) "("
92 R_PAREN@[86; 87) ")" 92 R_PAREN@[86; 87) ")"
93 SEMI@[87; 88) ";" 93 SEMICOLON@[87; 88) ";"
94 WHITESPACE@[88; 89) "\n" 94 WHITESPACE@[88; 89) "\n"
95 R_CURLY@[89; 90) "}" 95 R_CURLY@[89; 90) "}"
96 WHITESPACE@[90; 91) "\n" 96 WHITESPACE@[90; 91) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast
index 9a9a13370..c6082791a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast
@@ -63,7 +63,7 @@ SOURCE_FILE@[0; 116)
63 PATH_SEGMENT@[64; 72) 63 PATH_SEGMENT@[64; 72)
64 NAME_REF@[64; 72) 64 NAME_REF@[64; 72)
65 IDENT@[64; 72) "Iterator" 65 IDENT@[64; 72) "Iterator"
66 COLONCOLON@[72; 74) "::" 66 COLON2@[72; 74) "::"
67 PATH_SEGMENT@[74; 78) 67 PATH_SEGMENT@[74; 78)
68 NAME_REF@[74; 78) 68 NAME_REF@[74; 78)
69 IDENT@[74; 78) "Item" 69 IDENT@[74; 78) "Item"
@@ -94,7 +94,7 @@ SOURCE_FILE@[0; 116)
94 NAME_REF@[93; 101) 94 NAME_REF@[93; 101)
95 IDENT@[93; 101) "Iterator" 95 IDENT@[93; 101) "Iterator"
96 R_ANGLE@[101; 102) ">" 96 R_ANGLE@[101; 102) ">"
97 COLONCOLON@[102; 104) "::" 97 COLON2@[102; 104) "::"
98 PATH_SEGMENT@[104; 108) 98 PATH_SEGMENT@[104; 108)
99 NAME_REF@[104; 108) 99 NAME_REF@[104; 108)
100 IDENT@[104; 108) "Item" 100 IDENT@[104; 108) "Item"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast
index 3d659ce10..8d7083e97 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast
@@ -27,7 +27,7 @@ SOURCE_FILE@[0; 112)
27 LITERAL@[35; 36) 27 LITERAL@[35; 36)
28 INT_NUMBER@[35; 36) "0" 28 INT_NUMBER@[35; 36) "0"
29 WHITESPACE@[36; 37) " " 29 WHITESPACE@[36; 37) " "
30 DOTDOTDOT@[37; 40) "..." 30 DOT3@[37; 40) "..."
31 WHITESPACE@[40; 41) " " 31 WHITESPACE@[40; 41) " "
32 LITERAL_PAT@[41; 44) 32 LITERAL_PAT@[41; 44)
33 LITERAL@[41; 44) 33 LITERAL@[41; 44)
@@ -46,7 +46,7 @@ SOURCE_FILE@[0; 112)
46 LITERAL@[60; 63) 46 LITERAL@[60; 63)
47 INT_NUMBER@[60; 63) "101" 47 INT_NUMBER@[60; 63) "101"
48 WHITESPACE@[63; 64) " " 48 WHITESPACE@[63; 64) " "
49 DOTDOTEQ@[64; 67) "..=" 49 DOT2EQ@[64; 67) "..="
50 WHITESPACE@[67; 68) " " 50 WHITESPACE@[67; 68) " "
51 LITERAL_PAT@[68; 71) 51 LITERAL_PAT@[68; 71)
52 LITERAL@[68; 71) 52 LITERAL@[68; 71)
@@ -65,7 +65,7 @@ SOURCE_FILE@[0; 112)
65 LITERAL@[87; 90) 65 LITERAL@[87; 90)
66 INT_NUMBER@[87; 90) "200" 66 INT_NUMBER@[87; 90) "200"
67 WHITESPACE@[90; 91) " " 67 WHITESPACE@[90; 91) " "
68 DOTDOT@[91; 93) ".." 68 DOT2@[91; 93) ".."
69 WHITESPACE@[93; 94) " " 69 WHITESPACE@[93; 94) " "
70 LITERAL_PAT@[94; 97) 70 LITERAL_PAT@[94; 97)
71 LITERAL@[94; 97) 71 LITERAL@[94; 97)
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast b/crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast
index 7667201ba..c6e4ee532 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast
@@ -6,5 +6,5 @@ SOURCE_FILE@[0; 18)
6 WHITESPACE@[12; 13) " " 6 WHITESPACE@[12; 13) " "
7 NAME_REF@[13; 16) 7 NAME_REF@[13; 16)
8 IDENT@[13; 16) "foo" 8 IDENT@[13; 16) "foo"
9 SEMI@[16; 17) ";" 9 SEMICOLON@[16; 17) ";"
10 WHITESPACE@[17; 18) "\n" 10 WHITESPACE@[17; 18) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast b/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast
index dcf527639..f4206858b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast
@@ -22,7 +22,7 @@ SOURCE_FILE@[0; 112)
22 RECORD_FIELD_LIST@[17; 19) 22 RECORD_FIELD_LIST@[17; 19)
23 L_CURLY@[17; 18) "{" 23 L_CURLY@[17; 18) "{"
24 R_CURLY@[18; 19) "}" 24 R_CURLY@[18; 19) "}"
25 SEMI@[19; 20) ";" 25 SEMICOLON@[19; 20) ";"
26 WHITESPACE@[20; 25) "\n " 26 WHITESPACE@[20; 25) "\n "
27 EXPR_STMT@[25; 41) 27 EXPR_STMT@[25; 41)
28 RECORD_LIT@[25; 40) 28 RECORD_LIT@[25; 40)
@@ -49,7 +49,7 @@ SOURCE_FILE@[0; 112)
49 COMMA@[37; 38) "," 49 COMMA@[37; 38) ","
50 WHITESPACE@[38; 39) " " 50 WHITESPACE@[38; 39) " "
51 R_CURLY@[39; 40) "}" 51 R_CURLY@[39; 40) "}"
52 SEMI@[40; 41) ";" 52 SEMICOLON@[40; 41) ";"
53 WHITESPACE@[41; 46) "\n " 53 WHITESPACE@[41; 46) "\n "
54 EXPR_STMT@[46; 83) 54 EXPR_STMT@[46; 83)
55 RECORD_LIT@[46; 82) 55 RECORD_LIT@[46; 82)
@@ -75,7 +75,7 @@ SOURCE_FILE@[0; 112)
75 INT_NUMBER@[56; 58) "32" 75 INT_NUMBER@[56; 58) "32"
76 COMMA@[58; 59) "," 76 COMMA@[58; 59) ","
77 WHITESPACE@[59; 60) " " 77 WHITESPACE@[59; 60) " "
78 DOTDOT@[60; 62) ".." 78 DOT2@[60; 62) ".."
79 CALL_EXPR@[62; 80) 79 CALL_EXPR@[62; 80)
80 PATH_EXPR@[62; 78) 80 PATH_EXPR@[62; 78)
81 PATH@[62; 78) 81 PATH@[62; 78)
@@ -83,7 +83,7 @@ SOURCE_FILE@[0; 112)
83 PATH_SEGMENT@[62; 69) 83 PATH_SEGMENT@[62; 69)
84 NAME_REF@[62; 69) 84 NAME_REF@[62; 69)
85 IDENT@[62; 69) "Default" 85 IDENT@[62; 69) "Default"
86 COLONCOLON@[69; 71) "::" 86 COLON2@[69; 71) "::"
87 PATH_SEGMENT@[71; 78) 87 PATH_SEGMENT@[71; 78)
88 NAME_REF@[71; 78) 88 NAME_REF@[71; 78)
89 IDENT@[71; 78) "default" 89 IDENT@[71; 78) "default"
@@ -92,7 +92,7 @@ SOURCE_FILE@[0; 112)
92 R_PAREN@[79; 80) ")" 92 R_PAREN@[79; 80) ")"
93 WHITESPACE@[80; 81) " " 93 WHITESPACE@[80; 81) " "
94 R_CURLY@[81; 82) "}" 94 R_CURLY@[81; 82) "}"
95 SEMI@[82; 83) ";" 95 SEMICOLON@[82; 83) ";"
96 WHITESPACE@[83; 88) "\n " 96 WHITESPACE@[83; 88) "\n "
97 EXPR_STMT@[88; 109) 97 EXPR_STMT@[88; 109)
98 RECORD_LIT@[88; 108) 98 RECORD_LIT@[88; 108)
@@ -113,7 +113,7 @@ SOURCE_FILE@[0; 112)
113 INT_NUMBER@[105; 106) "1" 113 INT_NUMBER@[105; 106) "1"
114 WHITESPACE@[106; 107) " " 114 WHITESPACE@[106; 107) " "
115 R_CURLY@[107; 108) "}" 115 R_CURLY@[107; 108) "}"
116 SEMI@[108; 109) ";" 116 SEMICOLON@[108; 109) ";"
117 WHITESPACE@[109; 110) "\n" 117 WHITESPACE@[109; 110) "\n"
118 R_CURLY@[110; 111) "}" 118 R_CURLY@[110; 111) "}"
119 WHITESPACE@[111; 112) "\n" 119 WHITESPACE@[111; 112) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast b/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast
index 6b528c252..99e0a0bec 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast
@@ -18,7 +18,7 @@ SOURCE_FILE@[0; 70)
18 PATH_SEGMENT@[12; 23) 18 PATH_SEGMENT@[12; 23)
19 NAME_REF@[12; 23) 19 NAME_REF@[12; 23)
20 IDENT@[12; 23) "macro_rules" 20 IDENT@[12; 23) "macro_rules"
21 EXCL@[23; 24) "!" 21 BANG@[23; 24) "!"
22 WHITESPACE@[24; 25) " " 22 WHITESPACE@[24; 25) " "
23 NAME@[25; 28) 23 NAME@[25; 28)
24 IDENT@[25; 28) "foo" 24 IDENT@[25; 28) "foo"
@@ -33,26 +33,26 @@ SOURCE_FILE@[0; 70)
33 PATH_SEGMENT@[32; 35) 33 PATH_SEGMENT@[32; 35)
34 NAME_REF@[32; 35) 34 NAME_REF@[32; 35)
35 IDENT@[32; 35) "foo" 35 IDENT@[32; 35) "foo"
36 COLONCOLON@[35; 37) "::" 36 COLON2@[35; 37) "::"
37 PATH_SEGMENT@[37; 40) 37 PATH_SEGMENT@[37; 40)
38 NAME_REF@[37; 40) 38 NAME_REF@[37; 40)
39 IDENT@[37; 40) "bar" 39 IDENT@[37; 40) "bar"
40 EXCL@[40; 41) "!" 40 BANG@[40; 41) "!"
41 TOKEN_TREE@[41; 43) 41 TOKEN_TREE@[41; 43)
42 L_PAREN@[41; 42) "(" 42 L_PAREN@[41; 42) "("
43 R_PAREN@[42; 43) ")" 43 R_PAREN@[42; 43) ")"
44 SEMI@[43; 44) ";" 44 SEMICOLON@[43; 44) ";"
45 WHITESPACE@[44; 45) "\n" 45 WHITESPACE@[44; 45) "\n"
46 MACRO_CALL@[45; 59) 46 MACRO_CALL@[45; 59)
47 PATH@[45; 55) 47 PATH@[45; 55)
48 PATH@[45; 50) 48 PATH@[45; 50)
49 PATH_SEGMENT@[45; 50) 49 PATH_SEGMENT@[45; 50)
50 SUPER_KW@[45; 50) "super" 50 SUPER_KW@[45; 50) "super"
51 COLONCOLON@[50; 52) "::" 51 COLON2@[50; 52) "::"
52 PATH_SEGMENT@[52; 55) 52 PATH_SEGMENT@[52; 55)
53 NAME_REF@[52; 55) 53 NAME_REF@[52; 55)
54 IDENT@[52; 55) "baz" 54 IDENT@[52; 55) "baz"
55 EXCL@[55; 56) "!" 55 BANG@[55; 56) "!"
56 WHITESPACE@[56; 57) " " 56 WHITESPACE@[56; 57) " "
57 TOKEN_TREE@[57; 59) 57 TOKEN_TREE@[57; 59)
58 L_CURLY@[57; 58) "{" 58 L_CURLY@[57; 58) "{"
@@ -63,5 +63,5 @@ SOURCE_FILE@[0; 70)
63 WHITESPACE@[66; 67) " " 63 WHITESPACE@[66; 67) " "
64 NAME@[67; 68) 64 NAME@[67; 68)
65 IDENT@[67; 68) "S" 65 IDENT@[67; 68) "S"
66 SEMI@[68; 69) ";" 66 SEMICOLON@[68; 69) ";"
67 WHITESPACE@[69; 70) "\n" 67 WHITESPACE@[69; 70) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast
index 0cc3ac085..278549a46 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast
@@ -2,7 +2,7 @@ SOURCE_FILE@[0; 20)
2 IMPL_DEF@[0; 19) 2 IMPL_DEF@[0; 19)
3 IMPL_KW@[0; 4) "impl" 3 IMPL_KW@[0; 4) "impl"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@[4; 5) " "
5 EXCL@[5; 6) "!" 5 BANG@[5; 6) "!"
6 PATH_TYPE@[6; 10) 6 PATH_TYPE@[6; 10)
7 PATH@[6; 10) 7 PATH@[6; 10)
8 PATH_SEGMENT@[6; 10) 8 PATH_SEGMENT@[6; 10)
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast
index 2ace3c8ee..df24ae189 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast
@@ -24,7 +24,7 @@ SOURCE_FILE@[0; 137)
24 BLOCK@[23; 25) 24 BLOCK@[23; 25)
25 L_CURLY@[23; 24) "{" 25 L_CURLY@[23; 24) "{"
26 R_CURLY@[24; 25) "}" 26 R_CURLY@[24; 25) "}"
27 SEMI@[25; 26) ";" 27 SEMICOLON@[25; 26) ";"
28 WHITESPACE@[26; 31) "\n " 28 WHITESPACE@[26; 31) "\n "
29 EXPR_STMT@[31; 50) 29 EXPR_STMT@[31; 50)
30 IF_EXPR@[31; 49) 30 IF_EXPR@[31; 49)
@@ -45,7 +45,7 @@ SOURCE_FILE@[0; 137)
45 BLOCK@[47; 49) 45 BLOCK@[47; 49)
46 L_CURLY@[47; 48) "{" 46 L_CURLY@[47; 48) "{"
47 R_CURLY@[48; 49) "}" 47 R_CURLY@[48; 49) "}"
48 SEMI@[49; 50) ";" 48 SEMICOLON@[49; 50) ";"
49 WHITESPACE@[50; 55) "\n " 49 WHITESPACE@[50; 55) "\n "
50 EXPR_STMT@[55; 91) 50 EXPR_STMT@[55; 91)
51 IF_EXPR@[55; 90) 51 IF_EXPR@[55; 90)
@@ -80,7 +80,7 @@ SOURCE_FILE@[0; 137)
80 BLOCK@[88; 90) 80 BLOCK@[88; 90)
81 L_CURLY@[88; 89) "{" 81 L_CURLY@[88; 89) "{"
82 R_CURLY@[89; 90) "}" 82 R_CURLY@[89; 90) "}"
83 SEMI@[90; 91) ";" 83 SEMICOLON@[90; 91) ";"
84 WHITESPACE@[91; 96) "\n " 84 WHITESPACE@[91; 96) "\n "
85 EXPR_STMT@[96; 104) 85 EXPR_STMT@[96; 104)
86 IF_EXPR@[96; 103) 86 IF_EXPR@[96; 103)
@@ -97,7 +97,7 @@ SOURCE_FILE@[0; 137)
97 BLOCK@[101; 103) 97 BLOCK@[101; 103)
98 L_CURLY@[101; 102) "{" 98 L_CURLY@[101; 102) "{"
99 R_CURLY@[102; 103) "}" 99 R_CURLY@[102; 103) "}"
100 SEMI@[103; 104) ";" 100 SEMICOLON@[103; 104) ";"
101 WHITESPACE@[104; 109) "\n " 101 WHITESPACE@[104; 109) "\n "
102 EXPR_STMT@[109; 134) 102 EXPR_STMT@[109; 134)
103 IF_EXPR@[109; 133) 103 IF_EXPR@[109; 133)
@@ -126,7 +126,7 @@ SOURCE_FILE@[0; 137)
126 L_CURLY@[130; 131) "{" 126 L_CURLY@[130; 131) "{"
127 WHITESPACE@[131; 132) " " 127 WHITESPACE@[131; 132) " "
128 R_CURLY@[132; 133) "}" 128 R_CURLY@[132; 133) "}"
129 SEMI@[133; 134) ";" 129 SEMICOLON@[133; 134) ";"
130 WHITESPACE@[134; 135) "\n" 130 WHITESPACE@[134; 135) "\n"
131 R_CURLY@[135; 136) "}" 131 R_CURLY@[135; 136) "}"
132 WHITESPACE@[136; 137) "\n" 132 WHITESPACE@[136; 137) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast
index 2ee0dc199..bbf347580 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast
@@ -39,5 +39,5 @@ SOURCE_FILE@[0; 42)
39 WHITESPACE@[37; 38) " " 39 WHITESPACE@[37; 38) " "
40 TYPE_BOUND@[38; 40) 40 TYPE_BOUND@[38; 40)
41 LIFETIME@[38; 40) "\'a" 41 LIFETIME@[38; 40) "\'a"
42 SEMI@[40; 41) ";" 42 SEMICOLON@[40; 41) ";"
43 WHITESPACE@[41; 42) "\n" 43 WHITESPACE@[41; 42) "\n"
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 2f07af4e1..85edd0845 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
@@ -146,7 +146,7 @@ SOURCE_FILE@[0; 167)
146 COMMA@[156; 157) "," 146 COMMA@[156; 157) ","
147 WHITESPACE@[157; 162) "\n " 147 WHITESPACE@[157; 162) "\n "
148 R_CURLY@[162; 163) "}" 148 R_CURLY@[162; 163) "}"
149 SEMI@[163; 164) ";" 149 SEMICOLON@[163; 164) ";"
150 WHITESPACE@[164; 165) "\n" 150 WHITESPACE@[164; 165) "\n"
151 R_CURLY@[165; 166) "}" 151 R_CURLY@[165; 166) "}"
152 WHITESPACE@[166; 167) "\n" 152 WHITESPACE@[166; 167) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast
index f2ba4e909..35994e3fd 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast
@@ -7,9 +7,9 @@ SOURCE_FILE@[0; 16)
7 PATH@[4; 9) 7 PATH@[4; 9)
8 PATH_SEGMENT@[4; 9) 8 PATH_SEGMENT@[4; 9)
9 CRATE_KW@[4; 9) "crate" 9 CRATE_KW@[4; 9) "crate"
10 COLONCOLON@[9; 11) "::" 10 COLON2@[9; 11) "::"
11 PATH_SEGMENT@[11; 14) 11 PATH_SEGMENT@[11; 14)
12 NAME_REF@[11; 14) 12 NAME_REF@[11; 14)
13 IDENT@[11; 14) "foo" 13 IDENT@[11; 14) "foo"
14 SEMI@[14; 15) ";" 14 SEMICOLON@[14; 15) ";"
15 WHITESPACE@[15; 16) "\n" 15 WHITESPACE@[15; 16) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast
index 86afc9362..e24247890 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast
@@ -6,7 +6,7 @@ SOURCE_FILE@[0; 37)
6 PATH@[4; 9) 6 PATH@[4; 9)
7 PATH_SEGMENT@[4; 9) 7 PATH_SEGMENT@[4; 9)
8 CRATE_KW@[4; 9) "crate" 8 CRATE_KW@[4; 9) "crate"
9 COLONCOLON@[9; 11) "::" 9 COLON2@[9; 11) "::"
10 USE_TREE_LIST@[11; 17) 10 USE_TREE_LIST@[11; 17)
11 L_CURLY@[11; 12) "{" 11 L_CURLY@[11; 12) "{"
12 USE_TREE@[12; 16) 12 USE_TREE@[12; 16)
@@ -15,7 +15,7 @@ SOURCE_FILE@[0; 37)
15 NAME_REF@[12; 16) 15 NAME_REF@[12; 16)
16 IDENT@[12; 16) "Item" 16 IDENT@[12; 16) "Item"
17 R_CURLY@[16; 17) "}" 17 R_CURLY@[16; 17) "}"
18 SEMI@[17; 18) ";" 18 SEMICOLON@[17; 18) ";"
19 WHITESPACE@[18; 19) "\n" 19 WHITESPACE@[18; 19) "\n"
20 USE_ITEM@[19; 36) 20 USE_ITEM@[19; 36)
21 USE_KW@[19; 22) "use" 21 USE_KW@[19; 22) "use"
@@ -24,7 +24,7 @@ SOURCE_FILE@[0; 37)
24 PATH@[23; 27) 24 PATH@[23; 27)
25 PATH_SEGMENT@[23; 27) 25 PATH_SEGMENT@[23; 27)
26 SELF_KW@[23; 27) "self" 26 SELF_KW@[23; 27) "self"
27 COLONCOLON@[27; 29) "::" 27 COLON2@[27; 29) "::"
28 USE_TREE_LIST@[29; 35) 28 USE_TREE_LIST@[29; 35)
29 L_CURLY@[29; 30) "{" 29 L_CURLY@[29; 30) "{"
30 USE_TREE@[30; 34) 30 USE_TREE@[30; 34)
@@ -33,5 +33,5 @@ SOURCE_FILE@[0; 37)
33 NAME_REF@[30; 34) 33 NAME_REF@[30; 34)
34 IDENT@[30; 34) "Item" 34 IDENT@[30; 34) "Item"
35 R_CURLY@[34; 35) "}" 35 R_CURLY@[34; 35) "}"
36 SEMI@[35; 36) ";" 36 SEMICOLON@[35; 36) ";"
37 WHITESPACE@[36; 37) "\n" 37 WHITESPACE@[36; 37) "\n"
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 cd63d10f7..4b075569a 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
@@ -32,7 +32,7 @@ SOURCE_FILE@[0; 46)
32 WHITESPACE@[28; 29) " " 32 WHITESPACE@[28; 29) " "
33 LITERAL@[29; 30) 33 LITERAL@[29; 30)
34 INT_NUMBER@[29; 30) "2" 34 INT_NUMBER@[29; 30) "2"
35 SEMI@[30; 31) ";" 35 SEMICOLON@[30; 31) ";"
36 WHITESPACE@[31; 36) "\n " 36 WHITESPACE@[31; 36) "\n "
37 EXPR_STMT@[36; 39) 37 EXPR_STMT@[36; 39)
38 BLOCK_EXPR@[36; 39) 38 BLOCK_EXPR@[36; 39)
@@ -47,7 +47,7 @@ SOURCE_FILE@[0; 46)
47 AMP@[40; 41) "&" 47 AMP@[40; 41) "&"
48 LITERAL@[41; 42) 48 LITERAL@[41; 42)
49 INT_NUMBER@[41; 42) "2" 49 INT_NUMBER@[41; 42) "2"
50 SEMI@[42; 43) ";" 50 SEMICOLON@[42; 43) ";"
51 WHITESPACE@[43; 44) "\n" 51 WHITESPACE@[43; 44) "\n"
52 R_CURLY@[44; 45) "}" 52 R_CURLY@[44; 45) "}"
53 WHITESPACE@[45; 46) "\n" 53 WHITESPACE@[45; 46) "\n"
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 0af668056..559ffb578 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
@@ -24,7 +24,7 @@ SOURCE_FILE@[0; 97)
24 L_CURLY@[24; 25) "{" 24 L_CURLY@[24; 25) "{"
25 WHITESPACE@[25; 26) " " 25 WHITESPACE@[25; 26) " "
26 R_CURLY@[26; 27) "}" 26 R_CURLY@[26; 27) "}"
27 SEMI@[27; 28) ";" 27 SEMICOLON@[27; 28) ";"
28 WHITESPACE@[28; 33) "\n "