aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/tests/data
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_syntax/tests/data')
-rw-r--r--crates/ra_syntax/tests/data/parser/err/0028_macro_2.0.rs (renamed from crates/ra_syntax/tests/data/parser/ok/0034_macro_2.0.rs)1
-rw-r--r--crates/ra_syntax/tests/data/parser/err/0028_macro_2.0.txt (renamed from crates/ra_syntax/tests/data/parser/ok/0034_macro_2.0.txt)4
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/0058_type_arg.rs1
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/0063_lambda_expr.txt91
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/0069_match_arm.txt148
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0001_array_type_missing_semi.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0023_array_type_missing_semi.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0001_array_type_missing_semi.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0023_array_type_missing_semi.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0002_misplaced_label_err.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0108_misplaced_label_err.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0002_misplaced_label_err.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0108_misplaced_label_err.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0003_pointer_type_no_mutability.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0021_pointer_type_no_mutability.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0003_pointer_type_no_mutability.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0021_pointer_type_no_mutability.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0004_impl_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0111_impl_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0004_impl_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0111_impl_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0005_fn_pointer_type_missing_fn.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0029_fn_pointer_type_missing_fn.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0005_fn_pointer_type_missing_fn.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0029_fn_pointer_type_missing_fn.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0006_unsafe_block_in_mod.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0013_unsafe_block_in_mod.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0006_unsafe_block_in_mod.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0013_unsafe_block_in_mod.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0001_trait_item_list.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0049_trait_item_list.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0001_trait_item_list.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0049_trait_item_list.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0002_use_tree_list.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0118_use_tree_list.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0002_use_tree_list.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0118_use_tree_list.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0003_where_pred_for.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0113_where_pred_for.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0003_where_pred_for.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0113_where_pred_for.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0004_value_parameters_no_patterns.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0096_value_parameters_no_patterns.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0004_value_parameters_no_patterns.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0096_value_parameters_no_patterns.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0005_function_type_params.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0060_function_type_params.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0005_function_type_params.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0060_function_type_params.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0006_self_param.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0055_self_param.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0006_self_param.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0055_self_param.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0007_type_param_bounds.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0041_type_param_bounds.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0007_type_param_bounds.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0041_type_param_bounds.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0008_path_part.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0072_path_part.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0008_path_part.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0072_path_part.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0009_loop_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0084_loop_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0009_loop_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0084_loop_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0010_extern_block.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0003_extern_block.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0010_extern_block.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0003_extern_block.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0011_field_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0052_field_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0011_field_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0052_field_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0012_type_item_where_clause.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0016_type_item_where_clause.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0012_type_item_where_clause.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0016_type_item_where_clause.txt)1
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0013_pointer_type_mut.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0022_pointer_type_mut.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0013_pointer_type_mut.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0022_pointer_type_mut.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0014_never_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0020_never_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0014_never_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0020_never_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0015_continue_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0105_continue_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0015_continue_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0105_continue_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0016_unsafe_trait.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0007_unsafe_trait.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0016_unsafe_trait.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0007_unsafe_trait.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0017_array_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0024_array_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0017_array_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0024_array_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0018_arb_self_types.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0104_arb_self_types.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0018_arb_self_types.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0104_arb_self_types.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0019_unary_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0074_unary_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0019_unary_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0074_unary_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0020_use_star.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0116_use_star.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0020_use_star.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0116_use_star.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0021_impl_item_list.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0073_impl_item_list.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0021_impl_item_list.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0073_impl_item_list.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0022_crate_visibility.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0037_crate_visibility.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0022_crate_visibility.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0037_crate_visibility.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0023_placeholder_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0027_placeholder_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0023_placeholder_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0027_placeholder_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0024_slice_pat.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0089_slice_pat.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0024_slice_pat.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0089_slice_pat.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0025_slice_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0025_slice_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0025_slice_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0025_slice_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0026_tuple_pat_fields.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0071_tuple_pat_fields.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0026_tuple_pat_fields.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0071_tuple_pat_fields.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0027_ref_pat.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0035_ref_pat.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0027_ref_pat.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0035_ref_pat.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0028_impl_trait_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0063_impl_trait_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0028_impl_trait_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0063_impl_trait_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0029_cast_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0079_cast_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0029_cast_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0079_cast_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0030_cond.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0076_cond.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0030_cond.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0076_cond.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0031_while_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0077_while_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0031_while_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0077_while_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0032_fn_pointer_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0028_fn_pointer_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0032_fn_pointer_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0028_fn_pointer_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0033_reference_type;.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0026_reference_type;.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0033_reference_type;.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0026_reference_type;.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0034_break_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0106_break_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0034_break_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0106_break_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0068_pub_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0068_pub_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0036_unsafe_extern_fn.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0012_unsafe_extern_fn.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0036_unsafe_extern_fn.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0012_unsafe_extern_fn.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0037_qual_paths.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0101_qual_paths.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0037_qual_paths.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0101_qual_paths.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0038_full_range_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0102_full_range_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0038_full_range_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0102_full_range_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0039_type_arg.rs1
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0039_type_arg.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0058_type_arg.txt)8
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0099_crate_keyword_vis.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0099_crate_keyword_vis.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0041_trait_item.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0056_trait_item.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0041_trait_item.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0056_trait_item.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0042_call_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0043_call_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0042_call_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0043_call_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0043_use_alias.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0115_use_alias.rs)2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0043_use_alias.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0115_use_alias.txt)41
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0044_block_items.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0053_block_items.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0044_block_items.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0053_block_items.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0045_param_list_opt_patterns.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0097_param_list_opt_patterns.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0045_param_list_opt_patterns.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0097_param_list_opt_patterns.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0046_singleton_tuple_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0019_singleton_tuple_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0046_singleton_tuple_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0019_singleton_tuple_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0047_unsafe_default_impl.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0010_unsafe_default_impl.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0047_unsafe_default_impl.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0010_unsafe_default_impl.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0048_path_type_with_bounds.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0095_path_type_with_bounds.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0048_path_type_with_bounds.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0095_path_type_with_bounds.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0049_let_stmt;.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0050_let_stmt;.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0049_let_stmt;.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0050_let_stmt;.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0050_fn_decl.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0091_fn_decl.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0050_fn_decl.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0091_fn_decl.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0051_unit_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0018_unit_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0051_unit_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0018_unit_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0052_path_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0032_path_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0052_path_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0032_path_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0053_path_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0039_path_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0053_path_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0039_path_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0054_field_attrs.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0103_field_attrs.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0054_field_attrs.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0103_field_attrs.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0055_literal_pattern.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0092_literal_pattern.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0055_literal_pattern.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0092_literal_pattern.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0056_where_clause.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0098_where_clause.rs)1
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0056_where_clause.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0098_where_clause.txt)44
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0057_const_fn.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0002_const_fn.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0057_const_fn.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0002_const_fn.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0058_range_pat.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0094_range_pat.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0058_range_pat.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0094_range_pat.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0059_match_arms_commas.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0085_match_arms_commas.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0059_match_arms_commas.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0085_match_arms_commas.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0060_extern_crate.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0005_extern_crate.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0060_extern_crate.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0005_extern_crate.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0061_struct_lit.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0061_struct_lit.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0061_struct_lit.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0061_struct_lit.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0062_mod_contents.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0078_mod_contents.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0062_mod_contents.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0078_mod_contents.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0063_impl_item_neg.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0048_impl_item_neg.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0063_impl_item_neg.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0048_impl_item_neg.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0064_if_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0065_if_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0064_if_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0065_if_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0065_dyn_trait_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0100_dyn_trait_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0065_dyn_trait_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0100_dyn_trait_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0066_match_arm.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0069_match_arm.rs)2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0066_match_arm.txt146
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0067_crate_path.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0112_crate_path.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0067_crate_path.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0112_crate_path.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0068_union_items.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0110_union_items.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0068_union_items.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0110_union_items.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0069_use_tree_list_after_path.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0117_use_tree_list_after_path.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0069_use_tree_list_after_path.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0117_use_tree_list_after_path.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0088_stmt_bin_expr_ambiguity.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0088_stmt_bin_expr_ambiguity.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0071_match_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0070_match_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0071_match_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0070_match_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0072_return_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0068_return_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0072_return_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0068_return_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0073_type_item_type_params.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0014_type_item_type_params.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0073_type_item_type_params.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0014_type_item_type_params.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0087_stmt_postfix_expr_ambiguity.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0087_stmt_postfix_expr_ambiguity.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0075_block.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0045_block.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0075_block.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0045_block.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0076_function_where_clause.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0059_function_where_clause.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0076_function_where_clause.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0059_function_where_clause.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0077_try_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0075_try_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0077_try_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0075_try_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0078_type_item.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0015_type_item.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0078_type_item.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0015_type_item.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0079_impl_item.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0047_impl_item.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0079_impl_item.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0047_impl_item.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0080_postfix_range.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0083_postfix_range.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0080_postfix_range.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0083_postfix_range.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0031_for_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0031_for_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0082_ref_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0044_ref_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0082_ref_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0044_ref_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0083_struct_items.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0109_struct_items.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0083_struct_items.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0109_struct_items.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0084_paren_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0017_paren_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0084_paren_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0017_paren_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0085_expr_literals.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0040_expr_literals.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0085_expr_literals.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0040_expr_literals.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0086_function_ret_type.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0038_function_ret_type.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0086_function_ret_type.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0038_function_ret_type.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0087_unsafe_impl.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0008_unsafe_impl.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0087_unsafe_impl.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0008_unsafe_impl.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0088_break_ambiguity.rs6
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0088_break_ambiguity.txt65
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0089_extern_fn.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0004_extern_fn.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0089_extern_fn.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0004_extern_fn.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0090_type_param_default.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0042_type_param_default.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0090_type_param_default.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0042_type_param_default.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0091_auto_trait.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0057_auto_trait.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0091_auto_trait.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0057_auto_trait.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0092_fn_pointer_type_with_ret.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0030_fn_pointer_type_with_ret.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0092_fn_pointer_type_with_ret.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0030_fn_pointer_type_with_ret.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0093_index_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0081_index_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0093_index_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0081_index_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0094_unsafe_auto_trait.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0009_unsafe_auto_trait.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0094_unsafe_auto_trait.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0009_unsafe_auto_trait.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0095_placeholder_pat.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0036_placeholder_pat.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0095_placeholder_pat.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0036_placeholder_pat.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0096_no_semi_after_block.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0086_no_semi_after_block.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0096_no_semi_after_block.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0086_no_semi_after_block.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0097_default_impl.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0046_default_impl.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0097_default_impl.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0046_default_impl.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0098_const_unsafe_fn.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0001_const_unsafe_fn.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0098_const_unsafe_fn.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0001_const_unsafe_fn.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0099_param_list.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0064_param_list.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0099_param_list.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0064_param_list.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0100_for_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0085_for_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0100_for_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0085_for_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0101_unsafe_fn.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0011_unsafe_fn.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0101_unsafe_fn.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0011_unsafe_fn.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0102_field_pat_list.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0054_field_pat_list.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0102_field_pat_list.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0054_field_pat_list.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0103_array_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0086_array_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0103_array_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0086_array_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0104_path_fn_trait_args.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0093_path_fn_trait_args.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0104_path_fn_trait_args.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0093_path_fn_trait_args.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0105_block_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0067_block_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0105_block_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0067_block_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0106_lambda_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0066_lambda_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0106_lambda_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0066_lambda_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0107_method_call_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0051_method_call_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0107_method_call_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0051_method_call_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0108_tuple_expr.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0080_tuple_expr.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0108_tuple_expr.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0080_tuple_expr.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0109_label.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0107_label.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0109_label.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0107_label.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0110_use_path.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0114_use_path.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0110_use_path.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0114_use_path.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0111_tuple_pat.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0082_tuple_pat.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0111_tuple_pat.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0082_tuple_pat.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0112_bind_pat.rs (renamed from crates/ra_syntax/tests/data/parser/inline/0034_bind_pat.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0112_bind_pat.txt (renamed from crates/ra_syntax/tests/data/parser/inline/0034_bind_pat.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.rs3
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.txt56
-rw-r--r--crates/ra_syntax/tests/data/parser/ok/0029_range_forms.txt44
-rw-r--r--crates/ra_syntax/tests/data/parser/ok/0034_crate_path_in_call.rs (renamed from crates/ra_syntax/tests/data/parser/ok/0035_crate_path_in_call.rs)0
-rw-r--r--crates/ra_syntax/tests/data/parser/ok/0034_crate_path_in_call.txt (renamed from crates/ra_syntax/tests/data/parser/ok/0035_crate_path_in_call.txt)0
-rw-r--r--crates/ra_syntax/tests/data/parser/ok/0034_macro_stuck.txt250
-rw-r--r--crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.rs154
-rw-r--r--crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.txt2244
-rw-r--r--crates/ra_syntax/tests/data/parser/ok/0036_fully_qualified.rs8
-rw-r--r--crates/ra_syntax/tests/data/parser/ok/0036_fully_qualified.txt88
251 files changed, 2855 insertions, 554 deletions
diff --git a/crates/ra_syntax/tests/data/parser/ok/0034_macro_2.0.rs b/crates/ra_syntax/tests/data/parser/err/0028_macro_2.0.rs
index 2a70ee83a..781047ba1 100644
--- a/crates/ra_syntax/tests/data/parser/ok/0034_macro_2.0.rs
+++ b/crates/ra_syntax/tests/data/parser/err/0028_macro_2.0.rs
@@ -13,4 +13,3 @@ fn test_use_tree_merge() {
13 ); 13 );
14 } 14 }
15} 15}
16
diff --git a/crates/ra_syntax/tests/data/parser/ok/0034_macro_2.0.txt b/crates/ra_syntax/tests/data/parser/err/0028_macro_2.0.txt
index caff8df76..12919fab7 100644
--- a/crates/ra_syntax/tests/data/parser/ok/0034_macro_2.0.txt
+++ b/crates/ra_syntax/tests/data/parser/err/0028_macro_2.0.txt
@@ -1,4 +1,4 @@
1SOURCE_FILE@[0; 350) 1SOURCE_FILE@[0; 349)
2 MACRO_CALL@[0; 41) 2 MACRO_CALL@[0; 41)
3 PATH@[0; 5) 3 PATH@[0; 5)
4 PATH_SEGMENT@[0; 5) 4 PATH_SEGMENT@[0; 5)
@@ -314,4 +314,4 @@ SOURCE_FILE@[0; 350)
314 R_CURLY@[345; 346) 314 R_CURLY@[345; 346)
315 WHITESPACE@[346; 347) 315 WHITESPACE@[346; 347)
316 R_CURLY@[347; 348) 316 R_CURLY@[347; 348)
317 WHITESPACE@[348; 350) 317 WHITESPACE@[348; 349)
diff --git a/crates/ra_syntax/tests/data/parser/inline/0058_type_arg.rs b/crates/ra_syntax/tests/data/parser/inline/0058_type_arg.rs
deleted file mode 100644
index f0c8cc3a8..000000000
--- a/crates/ra_syntax/tests/data/parser/inline/0058_type_arg.rs
+++ /dev/null
@@ -1 +0,0 @@
1type A = B<'static, i32, Item=u64>
diff --git a/crates/ra_syntax/tests/data/parser/inline/0063_lambda_expr.txt b/crates/ra_syntax/tests/data/parser/inline/0063_lambda_expr.txt
deleted file mode 100644
index 8c1340c4a..000000000
--- a/crates/ra_syntax/tests/data/parser/inline/0063_lambda_expr.txt
+++ /dev/null
@@ -1,91 +0,0 @@
1SOURCE_FILE@[0; 74)
2 FN_DEF@[0; 74)
3 FN_KW@[0; 2)
4 NAME@[2; 6)
5 WHITESPACE@[2; 3)
6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9)
8 L_PAREN@[6; 7)
9 R_PAREN@[7; 8)
10 WHITESPACE@[8; 9)
11 BLOCK_EXPR@[9; 74)
12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 26)
14 LAMBDA_EXPR@[10; 20)
15 PARAM_LIST@[10; 18)
16 WHITESPACE@[10; 15)
17 PIPE@[15; 16)
18 PIPE@[16; 17)
19 WHITESPACE@[17; 18)
20 TUPLE_EXPR@[18; 20)
21 L_PAREN@[18; 19)
22 R_PAREN@[19; 20)
23 SEMI@[20; 21)
24 WHITESPACE@[21; 26)
25 EXPR_STMT@[26; 48)
26 LAMBDA_EXPR@[26; 42)
27 PARAM_LIST@[26; 29)
28 PIPE@[26; 27)
29 PIPE@[27; 28)
30 WHITESPACE@[28; 29)
31 THIN_ARROW@[29; 31)
32 PATH_TYPE@[31; 36)
33 PATH@[31; 36)
34 PATH_SEGMENT@[31; 36)
35 NAME_REF@[31; 36)
36 WHITESPACE@[31; 32)
37 IDENT@[32; 35) "i32"
38 WHITESPACE@[35; 36)
39 BLOCK_EXPR@[36; 42)
40 L_CURLY@[36; 37)
41 LITERAL@[37; 41)
42 WHITESPACE@[37; 38)
43 INT_NUMBER@[38; 40) "92"
44 WHITESPACE@[40; 41)
45 R_CURLY@[41; 42)
46 SEMI@[42; 43)
47 WHITESPACE@[43; 48)
48 EXPR_STMT@[48; 59)
49 LAMBDA_EXPR@[48; 53)
50 PARAM_LIST@[48; 52)
51 PIPE@[48; 49)
52 PARAM@[49; 50)
53 BIND_PAT@[49; 50)
54 NAME@[49; 50)
55 IDENT@[49; 50) "x"
56 PIPE@[50; 51)
57 WHITESPACE@[51; 52)
58 PATH_EXPR@[52; 53)
59 PATH@[52; 53)
60 PATH_SEGMENT@[52; 53)
61 NAME_REF@[52; 53)
62 IDENT@[52; 53) "x"
63 SEMI@[53; 54)
64 WHITESPACE@[54; 59)
65 EXPR_STMT@[59; 72)
66 LAMBDA_EXPR@[59; 70)
67 PARAM_LIST@[59; 69)
68 PIPE@[59; 60)
69 PARAM@[60; 66)
70 BIND_PAT@[60; 61)
71 NAME@[60; 61)
72 IDENT@[60; 61) "x"
73 COLON@[61; 62)
74 PATH_TYPE@[62; 66)
75 PATH@[62; 66)
76 PATH_SEGMENT@[62; 66)
77 NAME_REF@[62; 66)
78 WHITESPACE@[62; 63)
79 IDENT@[63; 66) "i32"
80 COMMA@[66; 67)
81 PIPE@[67; 68)
82 WHITESPACE@[68; 69)
83 PATH_EXPR@[69; 70)
84 PATH@[69; 70)
85 PATH_SEGMENT@[69; 70)
86 NAME_REF@[69; 70)
87 IDENT@[69; 70) "x"
88 SEMI@[70; 71)
89 WHITESPACE@[71; 72)
90 R_CURLY@[72; 73)
91 WHITESPACE@[73; 74)
diff --git a/crates/ra_syntax/tests/data/parser/inline/0069_match_arm.txt b/crates/ra_syntax/tests/data/parser/inline/0069_match_arm.txt
deleted file mode 100644
index e5647765c..000000000
--- a/crates/ra_syntax/tests/data/parser/inline/0069_match_arm.txt
+++ /dev/null
@@ -1,148 +0,0 @@
1SOURCE_FILE@[0; 161)
2 FN_DEF@[0; 160)
3 FN_KW@[0; 2)
4 WHITESPACE@[2; 3)
5 NAME@[3; 6)
6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 8)
8 L_PAREN@[6; 7)
9 R_PAREN@[7; 8)
10 WHITESPACE@[8; 9)
11 BLOCK@[9; 160)
12 L_CURLY@[9; 10)
13 WHITESPACE@[10; 15)
14 EXPR_STMT@[15; 158)
15 MATCH_EXPR@[15; 157)
16 MATCH_KW@[15; 20)
17 WHITESPACE@[20; 21)
18 TUPLE_EXPR@[21; 23)
19 L_PAREN@[21; 22)
20 R_PAREN@[22; 23)
21 WHITESPACE@[23; 24)
22 MATCH_ARM_LIST@[24; 157)
23 L_CURLY@[24; 25)
24 WHITESPACE@[25; 34)
25 MATCH_ARM@[34; 41)
26 PLACEHOLDER_PAT@[34; 35)
27 UNDERSCORE@[34; 35)
28 WHITESPACE@[35; 36)
29 FAT_ARROW@[36; 38)
30 WHITESPACE@[38; 39)
31 TUPLE_EXPR@[39; 41)
32 L_PAREN@[39; 40)
33 R_PAREN@[40; 41)
34 COMMA@[41; 42)
35 WHITESPACE@[42; 51)
36 MATCH_ARM@[51; 77)
37 PLACEHOLDER_PAT@[51; 52)
38 UNDERSCORE@[51; 52)
39 WHITESPACE@[52; 53)
40 IF_KW@[53; 55)
41 WHITESPACE@[55; 56)
42 BIN_EXPR@[56; 71)
43 PATH_EXPR@[56; 60)
44 PATH@[56; 60)
45 PATH_SEGMENT@[56; 60)
46 NAME_REF@[56; 60)
47 IDENT@[56; 60) "Test"
48 R_ANGLE@[60; 61)
49 BLOCK_EXPR@[61; 71)
50 BLOCK@[61; 71)
51 L_CURLY@[61; 62)
52 EXPR_STMT@[62; 67)
53 PATH_EXPR@[62; 67)
54 PATH@[62; 67)
55 PATH_SEGMENT@[62; 67)
56 NAME_REF@[62; 67)
57 IDENT@[62; 67) "field"
58 err: `expected SEMI`
59 err: `expected expression`
60 EXPR_STMT@[67; 68)
61 ERROR@[67; 68)
62 COLON@[67; 68)
63 err: `expected SEMI`
64 WHITESPACE@[68; 69)
65 LITERAL@[69; 70)
66 INT_NUMBER@[69; 70) "0"
67 R_CURLY@[70; 71)
68 WHITESPACE@[71; 72)
69 FAT_ARROW@[72; 74)
70 WHITESPACE@[74; 75)
71 TUPLE_EXPR@[75; 77)
72 L_PAREN@[75; 76)
73 R_PAREN@[76; 77)
74 COMMA@[77; 78)
75 WHITESPACE@[78; 87)
76 MATCH_ARM@[87; 103)
77 BIND_PAT@[87; 88)
78 NAME@[87; 88)
79 IDENT@[87; 88) "X"
80 WHITESPACE@[88; 89)
81 PIPE@[89; 90)
82 WHITESPACE@[90; 91)
83 BIND_PAT@[91; 92)
84 NAME@[91; 92)
85 IDENT@[91; 92) "Y"
86 WHITESPACE@[92; 93)
87 IF_KW@[93; 95)
88 WHITESPACE@[95; 96)
89 PATH_EXPR@[96; 97)
90 PATH@[96; 97)
91 PATH_SEGMENT@[96; 97)
92 NAME_REF@[96; 97)
93 IDENT@[96; 97) "Z"
94 WHITESPACE@[97; 98)
95 FAT_ARROW@[98; 100)
96 WHITESPACE@[100; 101)
97 TUPLE_EXPR@[101; 103)
98 L_PAREN@[101; 102)
99 R_PAREN@[102; 103)
100 COMMA@[103; 104)
101 WHITESPACE@[104; 113)
102 MATCH_ARM@[113; 131)
103 PIPE@[113; 114)
104 WHITESPACE@[114; 115)
105 BIND_PAT@[115; 116)
106 NAME@[115; 116)
107 IDENT@[115; 116) "X"
108 WHITESPACE@[116; 117)
109 PIPE@[117; 118)
110 WHITESPACE@[118; 119)
111 BIND_PAT@[119; 120)
112 NAME@[119; 120)
113 IDENT@[119; 120) "Y"
114 WHITESPACE@[120; 121)
115 IF_KW@[121; 123)
116 WHITESPACE@[123; 124)
117 PATH_EXPR@[124; 125)
118 PATH@[124; 125)
119 PATH_SEGMENT@[124; 125)
120 NAME_REF@[124; 125)
121 IDENT@[124; 125) "Z"
122 WHITESPACE@[125; 126)
123 FAT_ARROW@[126; 128)
124 WHITESPACE@[128; 129)
125 TUPLE_EXPR@[129; 131)
126 L_PAREN@[129; 130)
127 R_PAREN@[130; 131)
128 COMMA@[131; 132)
129 WHITESPACE@[132; 141)
130 MATCH_ARM@[141; 150)
131 PIPE@[141; 142)
132 WHITESPACE@[142; 143)
133 BIND_PAT@[143; 144)
134 NAME@[143; 144)
135 IDENT@[143; 144) "X"
136 WHITESPACE@[144; 145)
137 FAT_ARROW@[145; 147)
138 WHITESPACE@[147; 148)
139 TUPLE_EXPR@[148; 150)
140 L_PAREN@[148; 149)
141 R_PAREN@[149; 150)
142 COMMA@[150; 151)
143 WHITESPACE@[151; 156)
144 R_CURLY@[156; 157)
145 SEMI@[157; 158)
146 WHITESPACE@[158; 159)
147 R_CURLY@[159; 160)
148 WHITESPACE@[160; 161)
diff --git a/crates/ra_syntax/tests/data/parser/inline/0023_array_type_missing_semi.rs b/crates/ra_syntax/tests/data/parser/inline/err/0001_array_type_missing_semi.rs
index a94851443..a94851443 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0023_array_type_missing_semi.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0001_array_type_missing_semi.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0023_array_type_missing_semi.txt b/crates/ra_syntax/tests/data/parser/inline/err/0001_array_type_missing_semi.txt
index 036363587..036363587 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0023_array_type_missing_semi.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0001_array_type_missing_semi.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0108_misplaced_label_err.rs b/crates/ra_syntax/tests/data/parser/inline/err/0002_misplaced_label_err.rs
index a2164c510..a2164c510 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0108_misplaced_label_err.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0002_misplaced_label_err.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0108_misplaced_label_err.txt b/crates/ra_syntax/tests/data/parser/inline/err/0002_misplaced_label_err.txt
index 75533ecc1..75533ecc1 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0108_misplaced_label_err.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0002_misplaced_label_err.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0021_pointer_type_no_mutability.rs b/crates/ra_syntax/tests/data/parser/inline/err/0003_pointer_type_no_mutability.rs
index fae705131..fae705131 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0021_pointer_type_no_mutability.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0003_pointer_type_no_mutability.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0021_pointer_type_no_mutability.txt b/crates/ra_syntax/tests/data/parser/inline/err/0003_pointer_type_no_mutability.txt
index 189aa563e..189aa563e 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0021_pointer_type_no_mutability.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0003_pointer_type_no_mutability.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0111_impl_type.rs b/crates/ra_syntax/tests/data/parser/inline/err/0004_impl_type.rs
index b8c7b65e3..b8c7b65e3 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0111_impl_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0004_impl_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0111_impl_type.txt b/crates/ra_syntax/tests/data/parser/inline/err/0004_impl_type.txt
index 7279d5cae..7279d5cae 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0111_impl_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0004_impl_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0029_fn_pointer_type_missing_fn.rs b/crates/ra_syntax/tests/data/parser/inline/err/0005_fn_pointer_type_missing_fn.rs
index f014914ff..f014914ff 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0029_fn_pointer_type_missing_fn.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0005_fn_pointer_type_missing_fn.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0029_fn_pointer_type_missing_fn.txt b/crates/ra_syntax/tests/data/parser/inline/err/0005_fn_pointer_type_missing_fn.txt
index f97db4bff..f97db4bff 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0029_fn_pointer_type_missing_fn.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0005_fn_pointer_type_missing_fn.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0013_unsafe_block_in_mod.rs b/crates/ra_syntax/tests/data/parser/inline/err/0006_unsafe_block_in_mod.rs
index 26141e904..26141e904 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0013_unsafe_block_in_mod.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0006_unsafe_block_in_mod.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0013_unsafe_block_in_mod.txt b/crates/ra_syntax/tests/data/parser/inline/err/0006_unsafe_block_in_mod.txt
index d2da2bad7..d2da2bad7 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0013_unsafe_block_in_mod.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0006_unsafe_block_in_mod.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0049_trait_item_list.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0001_trait_item_list.rs
index a5ec3239f..a5ec3239f 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0049_trait_item_list.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0001_trait_item_list.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0049_trait_item_list.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0001_trait_item_list.txt
index 998ac3da9..998ac3da9 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0049_trait_item_list.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0001_trait_item_list.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0118_use_tree_list.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0002_use_tree_list.rs
index 06c387cee..06c387cee 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0118_use_tree_list.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0002_use_tree_list.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0118_use_tree_list.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0002_use_tree_list.txt
index 89a0b9f2a..89a0b9f2a 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0118_use_tree_list.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0002_use_tree_list.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0113_where_pred_for.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0003_where_pred_for.rs
index b448c6178..b448c6178 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0113_where_pred_for.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0003_where_pred_for.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0113_where_pred_for.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0003_where_pred_for.txt
index 921bdacf4..921bdacf4 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0113_where_pred_for.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0003_where_pred_for.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0096_value_parameters_no_patterns.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0004_value_parameters_no_patterns.rs
index d8c23c76a..d8c23c76a 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0096_value_parameters_no_patterns.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0004_value_parameters_no_patterns.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0096_value_parameters_no_patterns.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0004_value_parameters_no_patterns.txt
index f2d7e866b..f2d7e866b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0096_value_parameters_no_patterns.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0004_value_parameters_no_patterns.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0060_function_type_params.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0005_function_type_params.rs
index 9df40ed39..9df40ed39 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0060_function_type_params.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0005_function_type_params.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0060_function_type_params.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0005_function_type_params.txt
index b20f13267..b20f13267 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0060_function_type_params.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0005_function_type_params.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0055_self_param.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0006_self_param.rs
index 80c0a43f5..80c0a43f5 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0055_self_param.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0006_self_param.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0055_self_param.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0006_self_param.txt
index 53027c852..53027c852 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0055_self_param.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0006_self_param.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0041_type_param_bounds.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0007_type_param_bounds.rs
index 919bde0ee..919bde0ee 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0041_type_param_bounds.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0007_type_param_bounds.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0041_type_param_bounds.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0007_type_param_bounds.txt
index 745cf8798..745cf8798 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0041_type_param_bounds.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0007_type_param_bounds.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0072_path_part.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0008_path_part.rs
index f6e32c7c1..f6e32c7c1 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0072_path_part.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0008_path_part.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0072_path_part.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0008_path_part.txt
index 0020cfb4d..0020cfb4d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0072_path_part.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0008_path_part.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0084_loop_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0009_loop_expr.rs
index 9f078fa48..9f078fa48 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0084_loop_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0009_loop_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0084_loop_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0009_loop_expr.txt
index c3c64c322..c3c64c322 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0084_loop_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0009_loop_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0003_extern_block.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0010_extern_block.rs
index 26a9ccd1e..26a9ccd1e 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0003_extern_block.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0010_extern_block.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0003_extern_block.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0010_extern_block.txt
index 7e79c2280..7e79c2280 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0003_extern_block.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0010_extern_block.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0052_field_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0011_field_expr.rs
index 3e69538e5..3e69538e5 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0052_field_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0011_field_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0052_field_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0011_field_expr.txt
index 03fbf092b..03fbf092b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0052_field_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0011_field_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0016_type_item_where_clause.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0012_type_item_where_clause.rs
index a602d07f0..a602d07f0 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0016_type_item_where_clause.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0012_type_item_where_clause.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0016_type_item_where_clause.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0012_type_item_where_clause.txt
index f38b2f79a..dbb705acf 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0016_type_item_where_clause.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0012_type_item_where_clause.txt
@@ -21,7 +21,6 @@ SOURCE_FILE@[0; 31)
21 PATH_SEGMENT@[20; 24) 21 PATH_SEGMENT@[20; 24)
22 NAME_REF@[20; 24) 22 NAME_REF@[20; 24)
23 IDENT@[20; 24) "Copy" 23 IDENT@[20; 24) "Copy"
24 err: `expected COMMA`
25 WHITESPACE@[24; 25) 24 WHITESPACE@[24; 25)
26 EQ@[25; 26) 25 EQ@[25; 26)
27 WHITESPACE@[26; 27) 26 WHITESPACE@[26; 27)
diff --git a/crates/ra_syntax/tests/data/parser/inline/0022_pointer_type_mut.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0013_pointer_type_mut.rs
index 04b2bb9ba..04b2bb9ba 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0022_pointer_type_mut.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0013_pointer_type_mut.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0022_pointer_type_mut.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0013_pointer_type_mut.txt
index 149cd571d..149cd571d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0022_pointer_type_mut.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0013_pointer_type_mut.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0020_never_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0014_never_type.rs
index de399fcf4..de399fcf4 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0020_never_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0014_never_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0020_never_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0014_never_type.txt
index e0cae644d..e0cae644d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0020_never_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0014_never_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0105_continue_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0015_continue_expr.rs
index 474cc3f0e..474cc3f0e 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0105_continue_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0015_continue_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0105_continue_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0015_continue_expr.txt
index 39be5b2c8..39be5b2c8 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0105_continue_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0015_continue_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0007_unsafe_trait.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0016_unsafe_trait.rs
index 04e021550..04e021550 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0007_unsafe_trait.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0016_unsafe_trait.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0007_unsafe_trait.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0016_unsafe_trait.txt
index 3669c93a8..3669c93a8 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0007_unsafe_trait.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0016_unsafe_trait.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0024_array_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0017_array_type.rs
index 27eb22f22..27eb22f22 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0024_array_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0017_array_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0024_array_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0017_array_type.txt
index 2c2b615fc..2c2b615fc 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0024_array_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0017_array_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0104_arb_self_types.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0018_arb_self_types.rs
index 6a170d5ac..6a170d5ac 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0104_arb_self_types.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0018_arb_self_types.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0104_arb_self_types.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0018_arb_self_types.txt
index b2f04ea7b..b2f04ea7b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0104_arb_self_types.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0018_arb_self_types.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0074_unary_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0019_unary_expr.rs
index f1c3f7118..f1c3f7118 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0074_unary_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0019_unary_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0074_unary_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0019_unary_expr.txt
index 72d7d8bfb..72d7d8bfb 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0074_unary_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0019_unary_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0116_use_star.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0020_use_star.rs
index 6f15769a8..6f15769a8 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0116_use_star.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0020_use_star.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0116_use_star.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0020_use_star.txt
index 2db3cbf9e..2db3cbf9e 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0116_use_star.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0020_use_star.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0073_impl_item_list.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0021_impl_item_list.rs
index f10851487..f10851487 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0073_impl_item_list.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0021_impl_item_list.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0073_impl_item_list.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0021_impl_item_list.txt
index b15f93cd2..b15f93cd2 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0073_impl_item_list.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0021_impl_item_list.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0037_crate_visibility.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0022_crate_visibility.rs
index faeefde94..faeefde94 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0037_crate_visibility.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0022_crate_visibility.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0037_crate_visibility.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0022_crate_visibility.txt
index 7d137cfe9..7d137cfe9 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0037_crate_visibility.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0022_crate_visibility.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0027_placeholder_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0023_placeholder_type.rs
index 7952dbd57..7952dbd57 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0027_placeholder_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0023_placeholder_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0027_placeholder_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0023_placeholder_type.txt
index 43ada95d4..43ada95d4 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0027_placeholder_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0023_placeholder_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0089_slice_pat.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0024_slice_pat.rs
index 7955973b9..7955973b9 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0089_slice_pat.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0024_slice_pat.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0089_slice_pat.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0024_slice_pat.txt
index 72987308d..72987308d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0089_slice_pat.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0024_slice_pat.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0025_slice_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0025_slice_type.rs
index 4da1af827..4da1af827 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0025_slice_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0025_slice_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0025_slice_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0025_slice_type.txt
index db18c7139..db18c7139 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0025_slice_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0025_slice_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0071_tuple_pat_fields.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0026_tuple_pat_fields.rs
index 0dfe63629..0dfe63629 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0071_tuple_pat_fields.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0026_tuple_pat_fields.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0071_tuple_pat_fields.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0026_tuple_pat_fields.txt
index 737fbec22..737fbec22 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0071_tuple_pat_fields.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0026_tuple_pat_fields.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0035_ref_pat.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0027_ref_pat.rs
index de41f5cae..de41f5cae 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0035_ref_pat.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0027_ref_pat.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0035_ref_pat.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0027_ref_pat.txt
index 008f4f159..008f4f159 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0035_ref_pat.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0027_ref_pat.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0063_impl_trait_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0028_impl_trait_type.rs
index 54c5a7c46..54c5a7c46 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0063_impl_trait_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0028_impl_trait_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0063_impl_trait_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0028_impl_trait_type.txt
index efd4dd42a..efd4dd42a 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0063_impl_trait_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0028_impl_trait_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0079_cast_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0029_cast_expr.rs
index b571a5860..b571a5860 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0079_cast_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0029_cast_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0079_cast_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0029_cast_expr.txt
index cb56aef0b..cb56aef0b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0079_cast_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0029_cast_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0076_cond.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0030_cond.rs
index fdb37ee6f..fdb37ee6f 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0076_cond.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0030_cond.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0076_cond.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0030_cond.txt
index 641a09fff..641a09fff 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0076_cond.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0030_cond.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0077_while_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0031_while_expr.rs
index 293046a04..293046a04 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0077_while_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0031_while_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0077_while_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0031_while_expr.txt
index f9b074e82..f9b074e82 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0077_while_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0031_while_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0028_fn_pointer_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0032_fn_pointer_type.rs
index c9bf3bdb4..c9bf3bdb4 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0028_fn_pointer_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0032_fn_pointer_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0028_fn_pointer_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0032_fn_pointer_type.txt
index 0c508ec27..0c508ec27 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0028_fn_pointer_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0032_fn_pointer_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0026_reference_type;.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0033_reference_type;.rs
index 3ac0badab..3ac0badab 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0026_reference_type;.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0033_reference_type;.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0026_reference_type;.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0033_reference_type;.txt
index 7f35254d1..7f35254d1 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0026_reference_type;.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0033_reference_type;.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0106_break_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0034_break_expr.rs
index 1b4094636..1b4094636 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0106_break_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0034_break_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0106_break_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0034_break_expr.txt
index 1877311e8..1877311e8 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0106_break_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0034_break_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0068_pub_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.rs
index d9d99d2d3..d9d99d2d3 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0068_pub_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0068_pub_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.txt
index de20eee7a..de20eee7a 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0068_pub_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0012_unsafe_extern_fn.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0036_unsafe_extern_fn.rs
index 1295c2cd2..1295c2cd2 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0012_unsafe_extern_fn.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0036_unsafe_extern_fn.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0012_unsafe_extern_fn.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0036_unsafe_extern_fn.txt
index 0cde40595..0cde40595 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0012_unsafe_extern_fn.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0036_unsafe_extern_fn.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0101_qual_paths.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0037_qual_paths.rs
index d140692e2..d140692e2 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0101_qual_paths.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0037_qual_paths.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0101_qual_paths.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0037_qual_paths.txt
index 394fc7f5b..394fc7f5b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0101_qual_paths.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0037_qual_paths.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0102_full_range_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0038_full_range_expr.rs
index ae21ad94c..ae21ad94c 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0102_full_range_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0038_full_range_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0102_full_range_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0038_full_range_expr.txt
index caef145ce..caef145ce 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0102_full_range_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0038_full_range_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0039_type_arg.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0039_type_arg.rs
new file mode 100644
index 000000000..385c43131
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0039_type_arg.rs
@@ -0,0 +1 @@
type A = B<'static, i32, Item=u64>;
diff --git a/crates/ra_syntax/tests/data/parser/inline/0058_type_arg.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0039_type_arg.txt
index 086a74bdb..ccef7188f 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0058_type_arg.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0039_type_arg.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 35) 1SOURCE_FILE@[0; 36)
2 TYPE_DEF@[0; 34) 2 TYPE_DEF@[0; 35)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
@@ -36,5 +36,5 @@ SOURCE_FILE@[0; 35)
36 NAME_REF@[30; 33) 36 NAME_REF@[30; 33)
37 IDENT@[30; 33) "u64" 37 IDENT@[30; 33) "u64"
38 R_ANGLE@[33; 34) 38 R_ANGLE@[33; 34)
39 err: `expected SEMI` 39 SEMI@[34; 35)
40 WHITESPACE@[34; 35) 40 WHITESPACE@[35; 36)
diff --git a/crates/ra_syntax/tests/data/parser/inline/0099_crate_keyword_vis.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.rs
index 660d927cf..660d927cf 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0099_crate_keyword_vis.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0099_crate_keyword_vis.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.txt
index ff5add838..ff5add838 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0099_crate_keyword_vis.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0056_trait_item.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0041_trait_item.rs
index 4385afca9..4385afca9 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0056_trait_item.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0041_trait_item.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0056_trait_item.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0041_trait_item.txt
index 333a737ec..333a737ec 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0056_trait_item.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0041_trait_item.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0043_call_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0042_call_expr.rs
index 0c9a20718..0c9a20718 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0043_call_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0042_call_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0043_call_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0042_call_expr.txt
index 6364dc73c..6364dc73c 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0043_call_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0042_call_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0115_use_alias.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0043_use_alias.rs
index c7a141bbd..544caa020 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0115_use_alias.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0043_use_alias.rs
@@ -3,5 +3,5 @@ use some::{
3 other::path as some_other_name, 3 other::path as some_other_name,
4 different::path as different_name, 4 different::path as different_name,
5 yet::another::path, 5 yet::another::path,
6 running::out::of::synonyms::for::different::* 6 running::out::of::synonyms::for_::different::*
7}; 7};
diff --git a/crates/ra_syntax/tests/data/parser/inline/0115_use_alias.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0043_use_alias.txt
index f7b599476..8ef0ecbc6 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0115_use_alias.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0043_use_alias.txt
@@ -1,4 +1,4 @@
1SOURCE_FILE@[0; 181) 1SOURCE_FILE@[0; 182)
2 USE_ITEM@[0; 28) 2 USE_ITEM@[0; 28)
3 USE_KW@[0; 3) 3 USE_KW@[0; 3)
4 WHITESPACE@[3; 4) 4 WHITESPACE@[3; 4)
@@ -20,16 +20,16 @@ SOURCE_FILE@[0; 181)
20 IDENT@[18; 27) "some_name" 20 IDENT@[18; 27) "some_name"
21 SEMI@[27; 28) 21 SEMI@[27; 28)
22 WHITESPACE@[28; 29) 22 WHITESPACE@[28; 29)
23 USE_ITEM@[29; 180) 23 USE_ITEM@[29; 181)
24 USE_KW@[29; 32) 24 USE_KW@[29; 32)
25 WHITESPACE@[32; 33) 25 WHITESPACE@[32; 33)
26 USE_TREE@[33; 179) 26 USE_TREE@[33; 180)
27 PATH@[33; 37) 27 PATH@[33; 37)
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 COLONCOLON@[37; 39)
32 USE_TREE_LIST@[39; 179) 32 USE_TREE_LIST@[39; 180)
33 L_CURLY@[39; 40) 33 L_CURLY@[39; 40)
34 WHITESPACE@[40; 42) 34 WHITESPACE@[40; 42)
35 USE_TREE@[42; 72) 35 USE_TREE@[42; 72)
@@ -85,9 +85,9 @@ SOURCE_FILE@[0; 181)
85 IDENT@[125; 129) "path" 85 IDENT@[125; 129) "path"
86 COMMA@[129; 130) 86 COMMA@[129; 130)
87 WHITESPACE@[130; 132) 87 WHITESPACE@[130; 132)
88 USE_TREE@[132; 177) 88 USE_TREE@[132; 178)
89 PATH@[132; 174) 89 PATH@[132; 175)
90 PATH@[132; 163) 90 PATH@[132; 164)
91 PATH@[132; 158) 91 PATH@[132; 158)
92 PATH@[132; 148) 92 PATH@[132; 148)
93 PATH@[132; 144) 93 PATH@[132; 144)
@@ -108,17 +108,16 @@ SOURCE_FILE@[0; 181)
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 COLONCOLON@[158; 160)
111 err: `expected identifier` 111 PATH_SEGMENT@[160; 164)
112 PATH_SEGMENT@[160; 163) 112 NAME_REF@[160; 164)
113 ERROR@[160; 163) 113 IDENT@[160; 164) "for_"
114 FOR_KW@[160; 163) 114 COLONCOLON@[164; 166)
115 COLONCOLON@[163; 165) 115 PATH_SEGMENT@[166; 175)
116 PATH_SEGMENT@[165; 174) 116 NAME_REF@[166; 175)
117 NAME_REF@[165; 174) 117 IDENT@[166; 175) "different"
118 IDENT@[165; 174) "different" 118 COLONCOLON@[175; 177)
119 COLONCOLON@[174; 176) 119 STAR@[177; 178)
120 STAR@[176; 177) 120 WHITESPACE@[178; 179)
121 WHITESPACE@[177; 178) 121 R_CURLY@[179; 180)
122 R_CURLY@[178; 179) 122 SEMI@[180; 181)
123 SEMI@[179; 180) 123 WHITESPACE@[181; 182)
124 WHITESPACE@[180; 181)
diff --git a/crates/ra_syntax/tests/data/parser/inline/0053_block_items.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0044_block_items.rs
index d9868718c..d9868718c 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0053_block_items.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0044_block_items.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0053_block_items.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0044_block_items.txt
index dd1843ee5..dd1843ee5 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0053_block_items.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0044_block_items.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0097_param_list_opt_patterns.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0045_param_list_opt_patterns.rs
index 9b93442c0..9b93442c0 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0097_param_list_opt_patterns.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0045_param_list_opt_patterns.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0097_param_list_opt_patterns.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0045_param_list_opt_patterns.txt
index 2ce7a6714..2ce7a6714 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0097_param_list_opt_patterns.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0045_param_list_opt_patterns.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0019_singleton_tuple_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0046_singleton_tuple_type.rs
index cb66bad24..cb66bad24 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0019_singleton_tuple_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0046_singleton_tuple_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0019_singleton_tuple_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0046_singleton_tuple_type.txt
index 173c325d0..173c325d0 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0019_singleton_tuple_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0046_singleton_tuple_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0010_unsafe_default_impl.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0047_unsafe_default_impl.rs
index 9cd6c57bd..9cd6c57bd 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0010_unsafe_default_impl.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0047_unsafe_default_impl.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0010_unsafe_default_impl.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0047_unsafe_default_impl.txt
index 6003ba645..6003ba645 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0010_unsafe_default_impl.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0047_unsafe_default_impl.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0095_path_type_with_bounds.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0048_path_type_with_bounds.rs
index 215210e27..215210e27 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0095_path_type_with_bounds.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0048_path_type_with_bounds.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0095_path_type_with_bounds.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0048_path_type_with_bounds.txt
index 911a27ea1..911a27ea1 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0095_path_type_with_bounds.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0048_path_type_with_bounds.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0050_let_stmt;.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0049_let_stmt;.rs
index 0a9af907f..0a9af907f 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0050_let_stmt;.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0049_let_stmt;.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0050_let_stmt;.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0049_let_stmt;.txt
index 9c2aad7e0..9c2aad7e0 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0050_let_stmt;.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0049_let_stmt;.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0091_fn_decl.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0050_fn_decl.rs
index c9f74f7f5..c9f74f7f5 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0091_fn_decl.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0050_fn_decl.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0091_fn_decl.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0050_fn_decl.txt
index bb87e1d06..bb87e1d06 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0091_fn_decl.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0050_fn_decl.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0018_unit_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0051_unit_type.rs
index c039cf7d3..c039cf7d3 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0018_unit_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0051_unit_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0018_unit_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0051_unit_type.txt
index 9fd19ba4a..9fd19ba4a 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0018_unit_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0051_unit_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0032_path_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0052_path_type.rs
index bf94f32e1..bf94f32e1 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0032_path_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0052_path_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0032_path_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0052_path_type.txt
index b72b96e95..b72b96e95 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0032_path_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0052_path_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0039_path_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0053_path_expr.rs
index 333ebabef..333ebabef 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0039_path_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0053_path_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0039_path_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0053_path_expr.txt
index 673ea1d3d..673ea1d3d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0039_path_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0053_path_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0103_field_attrs.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0054_field_attrs.rs
index 4744d8ac0..4744d8ac0 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0103_field_attrs.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0054_field_attrs.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0103_field_attrs.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0054_field_attrs.txt
index e02ebf400..e02ebf400 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0103_field_attrs.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0054_field_attrs.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0092_literal_pattern.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0055_literal_pattern.rs
index 16f674d9d..16f674d9d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0092_literal_pattern.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0055_literal_pattern.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0092_literal_pattern.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0055_literal_pattern.txt
index 99b289d56..99b289d56 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0092_literal_pattern.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0055_literal_pattern.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0098_where_clause.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0056_where_clause.rs
index 592a005f9..19d7e571b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0098_where_clause.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0056_where_clause.rs
@@ -3,4 +3,5 @@ where
3 'a: 'b + 'c, 3 'a: 'b + 'c,
4 T: Clone + Copy + 'static, 4 T: Clone + Copy + 'static,
5 Iterator::Item: 'a, 5 Iterator::Item: 'a,
6 <T as Iterator>::Item: 'a
6{} 7{}
diff --git a/crates/ra_syntax/tests/data/parser/inline/0098_where_clause.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0056_where_clause.txt
index 54c3d64f1..68485dc0b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0098_where_clause.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0056_where_clause.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 87) 1SOURCE_FILE@[0; 116)
2 FN_DEF@[0; 86) 2 FN_DEF@[0; 115)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 WHITESPACE@[2; 3) 4 WHITESPACE@[2; 3)
5 NAME@[3; 6) 5 NAME@[3; 6)
@@ -8,7 +8,7 @@ SOURCE_FILE@[0; 87)
8 L_PAREN@[6; 7) 8 L_PAREN@[6; 7)
9 R_PAREN@[7; 8) 9 R_PAREN@[7; 8)
10 WHITESPACE@[8; 9) 10 WHITESPACE@[8; 9)
11 WHERE_CLAUSE@[9; 83) 11 WHERE_CLAUSE@[9; 112)
12 WHERE_KW@[9; 14) 12 WHERE_KW@[9; 14)
13 WHITESPACE@[14; 18) 13 WHITESPACE@[14; 18)
14 WHERE_PRED@[18; 29) 14 WHERE_PRED@[18; 29)
@@ -64,8 +64,36 @@ SOURCE_FILE@[0; 87)
64 WHITESPACE@[79; 80) 64 WHITESPACE@[79; 80)
65 LIFETIME@[80; 82) "'a" 65 LIFETIME@[80; 82) "'a"
66 COMMA@[82; 83) 66 COMMA@[82; 83)
67 WHITESPACE@[83; 84) 67 WHITESPACE@[83; 87)
68 BLOCK@[84; 86) 68 WHERE_PRED@[87; 112)
69 L_CURLY@[84; 85) 69 PATH_TYPE@[87; 108)
70 R_CURLY@[85; 86) 70 PATH@[87; 108)
71 WHITESPACE@[86; 87) 71 PATH@[87; 102)
72 PATH_SEGMENT@[87; 102)
73 L_ANGLE@[87; 88)
74 PATH_TYPE@[88; 89)
75 PATH@[88; 89)
76 PATH_SEGMENT@[88; 89)
77 NAME_REF@[88; 89)
78 IDENT@[88; 89) "T"
79 WHITESPACE@[89; 90)
80 AS_KW@[90; 92)
81 WHITESPACE@[92; 93)
82 PATH_TYPE@[93; 101)
83 PATH@[93; 101)
84 PATH_SEGMENT@[93; 101)
85 NAME_REF@[93; 101)
86 IDENT@[93; 101) "Iterator"
87 R_ANGLE@[101; 102)
88 COLONCOLON@[102; 104)
89 PATH_SEGMENT@[104; 108)
90 NAME_REF@[104; 108)
91 IDENT@[104; 108) "Item"
92 COLON@[108; 109)
93 WHITESPACE@[109; 110)
94 LIFETIME@[110; 112) "'a"
95 WHITESPACE@[112; 113)
96 BLOCK@[113; 115)
97 L_CURLY@[113; 114)
98 R_CURLY@[114; 115)
99 WHITESPACE@[115; 116)
diff --git a/crates/ra_syntax/tests/data/parser/inline/0002_const_fn.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0057_const_fn.rs
index 8c84d9cd7..8c84d9cd7 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0002_const_fn.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0057_const_fn.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0002_const_fn.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0057_const_fn.txt
index 8206d973b..8206d973b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0002_const_fn.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0057_const_fn.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0094_range_pat.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0058_range_pat.rs
index c12ab6fce..c12ab6fce 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0094_range_pat.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0058_range_pat.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0094_range_pat.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0058_range_pat.txt
index d47f38903..d47f38903 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0094_range_pat.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0058_range_pat.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0085_match_arms_commas.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0059_match_arms_commas.rs
index 1f25d577a..1f25d577a 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0085_match_arms_commas.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0059_match_arms_commas.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0085_match_arms_commas.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0059_match_arms_commas.txt
index 1034846c8..1034846c8 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0085_match_arms_commas.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0059_match_arms_commas.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0005_extern_crate.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0060_extern_crate.rs
index 49af74e1b..49af74e1b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0005_extern_crate.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0060_extern_crate.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0005_extern_crate.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0060_extern_crate.txt
index 7ffdc7fbd..7ffdc7fbd 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0005_extern_crate.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0060_extern_crate.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0061_struct_lit.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0061_struct_lit.rs
index eb711f68a..eb711f68a 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0061_struct_lit.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0061_struct_lit.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0061_struct_lit.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0061_struct_lit.txt
index aec25403d..aec25403d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0061_struct_lit.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0061_struct_lit.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0078_mod_contents.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0062_mod_contents.rs
index 24a15c5c5..24a15c5c5 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0078_mod_contents.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0062_mod_contents.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0078_mod_contents.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0062_mod_contents.txt
index 62528ca47..62528ca47 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0078_mod_contents.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0062_mod_contents.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0048_impl_item_neg.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0063_impl_item_neg.rs
index b7527c870..b7527c870 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0048_impl_item_neg.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0063_impl_item_neg.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0048_impl_item_neg.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0063_impl_item_neg.txt
index b83db380e..b83db380e 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0048_impl_item_neg.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0063_impl_item_neg.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0065_if_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0064_if_expr.rs
index 4b0d9af89..4b0d9af89 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0065_if_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0064_if_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0065_if_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0064_if_expr.txt
index 637d23d9e..637d23d9e 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0065_if_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0064_if_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0100_dyn_trait_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0065_dyn_trait_type.rs
index c3ecabb99..c3ecabb99 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0100_dyn_trait_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0065_dyn_trait_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0100_dyn_trait_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0065_dyn_trait_type.txt
index d07fe70b2..d07fe70b2 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0100_dyn_trait_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0065_dyn_trait_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0069_match_arm.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0066_match_arm.rs
index 3380fa4ca..9e009e24f 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0069_match_arm.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0066_match_arm.rs
@@ -1,7 +1,7 @@
1fn foo() { 1fn foo() {
2 match () { 2 match () {
3 _ => (), 3 _ => (),
4 _ if Test>{field: 0} => (), 4 _ if Test > Test{field: 0} => (),
5 X | Y if Z => (), 5 X | Y if Z => (),
6 | X | Y if Z => (), 6 | X | Y if Z => (),
7 | X => (), 7 | X => (),
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0066_match_arm.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0066_match_arm.txt
new file mode 100644
index 000000000..98e7535a3
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0066_match_arm.txt
@@ -0,0 +1,146 @@
1SOURCE_FILE@[0; 167)
2 FN_DEF@[0; 166)
3 FN_KW@[0; 2)
4 WHITESPACE@[2; 3)
5 NAME@[3; 6)
6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 8)
8 L_PAREN@[6; 7)
9 R_PAREN@[7; 8)
10 WHITESPACE@[8; 9)
11 BLOCK@[9; 166)
12 L_CURLY@[9; 10)
13 WHITESPACE@[10; 15)
14 EXPR_STMT@[15; 164)
15 MATCH_EXPR@[15; 163)
16 MATCH_KW@[15; 20)
17 WHITESPACE@[20; 21)
18 TUPLE_EXPR@[21; 23)
19 L_PAREN@[21; 22)
20 R_PAREN@[22; 23)
21 WHITESPACE@[23; 24)
22 MATCH_ARM_LIST@[24; 163)
23 L_CURLY@[24; 25)
24 WHITESPACE@[25; 34)
25 MATCH_ARM@[34; 41)
26 PLACEHOLDER_PAT@[34; 35)
27 UNDERSCORE@[34; 35)
28 WHITESPACE@[35; 36)
29 FAT_ARROW@[36; 38)
30 WHITESPACE@[38; 39)
31 TUPLE_EXPR@[39; 41)
32 L_PAREN@[39; 40)
33 R_PAREN@[40; 41)
34 COMMA@[41; 42)
35 WHITESPACE@[42; 51)
36 MATCH_ARM@[51; 83)
37 PLACEHOLDER_PAT@[51; 52)
38 UNDERSCORE@[51; 52)
39 WHITESPACE@[52; 53)
40 IF_KW@[53; 55)
41 WHITESPACE@[55; 56)
42 BIN_EXPR@[56; 77)
43 PATH_EXPR@[56; 60)
44 PATH@[56; 60)
45 PATH_SEGMENT@[56; 60)
46 NAME_REF@[56; 60)
47 IDENT@[56; 60) "Test"
48 WHITESPACE@[60; 61)
49 R_ANGLE@[61; 62)
50 WHITESPACE@[62; 63)
51 STRUCT_LIT@[63; 77)
52 PATH@[63; 67)
53 PATH_SEGMENT@[63; 67)
54 NAME_REF@[63; 67)
55 IDENT@[63; 67) "Test"
56 NAMED_FIELD_LIST@[67; 77)
57 L_CURLY@[67; 68)
58 NAMED_FIELD@[68; 76)
59 NAME_REF@[68; 73)
60 IDENT@[68; 73) "field"
61 COLON@[73; 74)
62 WHITESPACE@[74; 75)
63 LITERAL@[75; 76)
64 INT_NUMBER@[75; 76) "0"
65 R_CURLY@[76; 77)
66 WHITESPACE@[77; 78)
67 FAT_ARROW@[78; 80)
68 WHITESPACE@[80; 81)
69 TUPLE_EXPR@[81; 83)
70 L_PAREN@[81; 82)
71 R_PAREN@[82; 83)
72 COMMA@[83; 84)
73 WHITESPACE@[84; 93)
74 MATCH_ARM@[93; 109)
75 BIND_PAT@[93; 94)
76 NAME@[93; 94)
77 IDENT@[93; 94) "X"
78 WHITESPACE@[94; 95)
79 PIPE@[95; 96)
80 WHITESPACE@[96; 97)
81 BIND_PAT@[97; 98)
82 NAME@[97; 98)
83 IDENT@[97; 98) "Y"
84 WHITESPACE@[98; 99)
85 IF_KW@[99; 101)
86 WHITESPACE@[101; 102)
87 PATH_EXPR@[102; 103)
88 PATH@[102; 103)
89 PATH_SEGMENT@[102; 103)
90 NAME_REF@[102; 103)
91 IDENT@[102; 103) "Z"
92 WHITESPACE@[103; 104)
93 FAT_ARROW@[104; 106)
94 WHITESPACE@[106; 107)
95 TUPLE_EXPR@[107; 109)
96 L_PAREN@[107; 108)
97 R_PAREN@[108; 109)
98 COMMA@[109; 110)
99 WHITESPACE@[110; 119)
100 MATCH_ARM@[119; 137)
101 PIPE@[119; 120)
102 WHITESPACE@[120; 121)
103 BIND_PAT@[121; 122)
104 NAME@[121; 122)
105 IDENT@[121; 122) "X"
106 WHITESPACE@[122; 123)
107 PIPE@[123; 124)
108 WHITESPACE@[124; 125)
109 BIND_PAT@[125; 126)
110 NAME@[125; 126)
111 IDENT@[125; 126) "Y"
112 WHITESPACE@[126; 127)
113 IF_KW@[127; 129)
114 WHITESPACE@[129; 130)
115 PATH_EXPR@[130; 131)
116 PATH@[130; 131)
117 PATH_SEGMENT@[130; 131)
118 NAME_REF@[130; 131)
119 IDENT@[130; 131) "Z"
120 WHITESPACE@[131; 132)
121 FAT_ARROW@[132; 134)
122 WHITESPACE@[134; 135)
123 TUPLE_EXPR@[135; 137)
124 L_PAREN@[135; 136)
125 R_PAREN@[136; 137)
126 COMMA@[137; 138)
127 WHITESPACE@[138; 147)
128 MATCH_ARM@[147; 156)
129 PIPE@[147; 148)
130 WHITESPACE@[148; 149)
131 BIND_PAT@[149; 150)
132 NAME@[149; 150)
133 IDENT@[149; 150) "X"
134 WHITESPACE@[150; 151)
135 FAT_ARROW@[151; 153)
136 WHITESPACE@[153; 154)
137 TUPLE_EXPR@[154; 156)
138 L_PAREN@[154; 155)
139 R_PAREN@[155; 156)
140 COMMA@[156; 157)
141 WHITESPACE@[157; 162)
142 R_CURLY@[162; 163)
143 SEMI@[163; 164)
144 WHITESPACE@[164; 165)
145 R_CURLY@[165; 166)
146 WHITESPACE@[166; 167)
diff --git a/crates/ra_syntax/tests/data/parser/inline/0112_crate_path.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0067_crate_path.rs
index 1bbb5930b..1bbb5930b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0112_crate_path.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0067_crate_path.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0112_crate_path.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0067_crate_path.txt
index 382286457..382286457 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0112_crate_path.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0067_crate_path.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0110_union_items.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0068_union_items.rs
index b7dd610d8..b7dd610d8 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0110_union_items.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0068_union_items.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0110_union_items.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0068_union_items.txt
index 2d2fb1a0b..2d2fb1a0b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0110_union_items.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0068_union_items.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0117_use_tree_list_after_path.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0069_use_tree_list_after_path.rs
index c0a3d634e..c0a3d634e 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0117_use_tree_list_after_path.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0069_use_tree_list_after_path.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0117_use_tree_list_after_path.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0069_use_tree_list_after_path.txt
index cac746e5b..cac746e5b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0117_use_tree_list_after_path.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0069_use_tree_list_after_path.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0088_stmt_bin_expr_ambiguity.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rs
index 37b843742..37b843742 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0088_stmt_bin_expr_ambiguity.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0088_stmt_bin_expr_ambiguity.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.txt
index d8c599537..d8c599537 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0088_stmt_bin_expr_ambiguity.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0070_match_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0071_match_expr.rs
index c9205dfa3..c9205dfa3 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0070_match_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0071_match_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0070_match_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0071_match_expr.txt
index cc22bd3b2..cc22bd3b2 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0070_match_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0071_match_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0068_return_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0072_return_expr.rs
index 5733666b6..5733666b6 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0068_return_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0072_return_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0068_return_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0072_return_expr.txt
index f8d1db41c..f8d1db41c 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0068_return_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0072_return_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0014_type_item_type_params.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0073_type_item_type_params.rs
index defd110c4..defd110c4 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0014_type_item_type_params.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0073_type_item_type_params.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0014_type_item_type_params.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0073_type_item_type_params.txt
index 89b34d4f1..89b34d4f1 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0014_type_item_type_params.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0073_type_item_type_params.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0087_stmt_postfix_expr_ambiguity.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rs
index 2edd578f9..2edd578f9 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0087_stmt_postfix_expr_ambiguity.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0087_stmt_postfix_expr_ambiguity.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.txt
index 48e0026af..48e0026af 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0087_stmt_postfix_expr_ambiguity.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0045_block.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0075_block.rs
index 81f44c533..81f44c533 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0045_block.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0075_block.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0045_block.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0075_block.txt
index c13e22b3a..c13e22b3a 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0045_block.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0075_block.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0059_function_where_clause.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0076_function_where_clause.rs
index f0920b2a8..f0920b2a8 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0059_function_where_clause.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0076_function_where_clause.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0059_function_where_clause.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0076_function_where_clause.txt
index b58d09e35..b58d09e35 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0059_function_where_clause.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0076_function_where_clause.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0075_try_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0077_try_expr.rs
index 8b74f7bc8..8b74f7bc8 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0075_try_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0077_try_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0075_try_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0077_try_expr.txt
index f47e6da55..f47e6da55 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0075_try_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0077_try_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0015_type_item.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0078_type_item.rs
index 04c0344fa..04c0344fa 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0015_type_item.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0078_type_item.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0015_type_item.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0078_type_item.txt
index 4b66a05a6..4b66a05a6 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0015_type_item.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0078_type_item.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0047_impl_item.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0079_impl_item.rs
index d6337f6b3..d6337f6b3 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0047_impl_item.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0079_impl_item.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0047_impl_item.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0079_impl_item.txt
index 1b9a8aa0e..1b9a8aa0e 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0047_impl_item.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0079_impl_item.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0083_postfix_range.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0080_postfix_range.rs
index c39fe8e68..c39fe8e68 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0083_postfix_range.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0080_postfix_range.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0083_postfix_range.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0080_postfix_range.txt
index 415ff2a20..415ff2a20 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0083_postfix_range.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0080_postfix_range.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0031_for_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.rs
index 4d6a18c6b..4d6a18c6b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0031_for_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0031_for_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt
index 843cc4973..843cc4973 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0031_for_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0044_ref_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0082_ref_expr.rs
index 2dac6be95..2dac6be95 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0044_ref_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0082_ref_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0044_ref_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0082_ref_expr.txt
index 2cd888762..2cd888762 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0044_ref_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0082_ref_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0109_struct_items.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0083_struct_items.rs
index 693e3f3ee..693e3f3ee 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0109_struct_items.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0083_struct_items.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0109_struct_items.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0083_struct_items.txt
index 058639375..058639375 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0109_struct_items.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0083_struct_items.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0017_paren_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0084_paren_type.rs
index 6e1b25101..6e1b25101 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0017_paren_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0084_paren_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0017_paren_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0084_paren_type.txt
index bd5feb6b3..bd5feb6b3 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0017_paren_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0084_paren_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0040_expr_literals.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0085_expr_literals.rs
index 2e11a5a6e..2e11a5a6e 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0040_expr_literals.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0085_expr_literals.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0040_expr_literals.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0085_expr_literals.txt
index 1d88f952d..1d88f952d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0040_expr_literals.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0085_expr_literals.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0038_function_ret_type.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0086_function_ret_type.rs
index d22d8cada..d22d8cada 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0038_function_ret_type.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0086_function_ret_type.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0038_function_ret_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0086_function_ret_type.txt
index 1edf9412f..1edf9412f 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0038_function_ret_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0086_function_ret_type.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0008_unsafe_impl.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0087_unsafe_impl.rs
index 41055f41d..41055f41d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0008_unsafe_impl.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0087_unsafe_impl.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0008_unsafe_impl.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0087_unsafe_impl.txt
index f9c96c242..f9c96c242 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0008_unsafe_impl.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0087_unsafe_impl.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0088_break_ambiguity.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0088_break_ambiguity.rs
new file mode 100644
index 000000000..560eb05b9
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0088_break_ambiguity.rs
@@ -0,0 +1,6 @@
1fn foo(){
2 if break {}
3 while break {}
4 for i in break {}
5 match break {}
6}
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0088_break_ambiguity.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0088_break_ambiguity.txt
new file mode 100644
index 000000000..6032a6c17
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0088_break_ambiguity.txt
@@ -0,0 +1,65 @@
1SOURCE_FILE@[0; 88)
2 FN_DEF@[0; 87)
3 FN_KW@[0; 2)
4 WHITESPACE@[2; 3)
5 NAME@[3; 6)
6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 8)
8 L_PAREN@[6; 7)
9 R_PAREN@[7; 8)
10 BLOCK@[8; 87)
11 L_CURLY@[8; 9)
12 WHITESPACE@[9; 14)
13 EXPR_STMT@[14; 25)
14 IF_EXPR@[14; 25)
15 IF_KW@[14; 16)
16 WHITESPACE@[16; 17)
17 CONDITION@[17; 22)
18 BREAK_EXPR@[17; 22)
19 BREAK_KW@[17; 22)
20 WHITESPACE@[22; 23)
21 BLOCK@[23; 25)
22 L_CURLY@[23; 24)
23 R_CURLY@[24; 25)
24 WHITESPACE@[25; 30)
25 EXPR_STMT@[30; 44)
26 WHILE_EXPR@[30; 44)
27 WHILE_KW@[30; 35)
28 WHITESPACE@[35; 36)
29 CONDITION@[36; 41)
30 BREAK_EXPR@[36; 41)
31 BREAK_KW@[36; 41)
32 WHITESPACE@[41; 42)
33 BLOCK@[42; 44)
34 L_CURLY@[42; 43)
35 R_CURLY@[43; 44)
36 WHITESPACE@[44; 49)
37 EXPR_STMT@[49; 66)
38 FOR_EXPR@[49; 66)
39 FOR_KW@[49; 52)
40 WHITESPACE@[52; 53)
41 BIND_PAT@[53; 54)
42 NAME@[53; 54)
43 IDENT@[53; 54) "i"
44 WHITESPACE@[54; 55)
45 IN_KW@[55; 57)
46 WHITESPACE@[57; 58)
47 BREAK_EXPR@[58; 63)
48 BREAK_KW@[58; 63)
49 WHITESPACE@[63; 64)
50 BLOCK@[64; 66)
51 L_CURLY@[64; 65)
52 R_CURLY@[65; 66)
53 WHITESPACE@[66; 71)
54 MATCH_EXPR@[71; 85)
55 MATCH_KW@[71; 76)
56 WHITESPACE@[76; 77)
57 BREAK_EXPR@[77; 82)
58 BREAK_KW@[77; 82)
59 WHITESPACE@[82; 83)
60 MATCH_ARM_LIST@[83; 85)
61 L_CURLY@[83; 84)
62 R_CURLY@[84; 85)
63 WHITESPACE@[85; 86)
64 R_CURLY@[86; 87)
65 WHITESPACE@[87; 88)
diff --git a/crates/ra_syntax/tests/data/parser/inline/0004_extern_fn.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0089_extern_fn.rs
index 394a049f0..394a049f0 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0004_extern_fn.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0089_extern_fn.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0004_extern_fn.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0089_extern_fn.txt
index d2b26566d..d2b26566d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0004_extern_fn.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0089_extern_fn.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0042_type_param_default.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0090_type_param_default.rs
index 540eacb02..540eacb02 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0042_type_param_default.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0090_type_param_default.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0042_type_param_default.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0090_type_param_default.txt
index 59b3fbd2e..59b3fbd2e 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0042_type_param_default.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0090_type_param_default.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0057_auto_trait.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0091_auto_trait.rs
index 72adf6035..72adf6035 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0057_auto_trait.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0091_auto_trait.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0057_auto_trait.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0091_auto_trait.txt
index 8b3ce28d0..8b3ce28d0 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0057_auto_trait.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0091_auto_trait.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0030_fn_pointer_type_with_ret.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0092_fn_pointer_type_with_ret.rs
index e3ba5e87f..e3ba5e87f 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0030_fn_pointer_type_with_ret.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0092_fn_pointer_type_with_ret.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0030_fn_pointer_type_with_ret.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0092_fn_pointer_type_with_ret.txt
index f092c6df7..f092c6df7 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0030_fn_pointer_type_with_ret.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0092_fn_pointer_type_with_ret.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0081_index_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0093_index_expr.rs
index b9ba78a6c..b9ba78a6c 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0081_index_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0093_index_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0081_index_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0093_index_expr.txt
index 6e10be559..6e10be559 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0081_index_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0093_index_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0009_unsafe_auto_trait.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0094_unsafe_auto_trait.rs
index 03d29f324..03d29f324 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0009_unsafe_auto_trait.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0094_unsafe_auto_trait.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0009_unsafe_auto_trait.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0094_unsafe_auto_trait.txt
index b541ceff8..b541ceff8 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0009_unsafe_auto_trait.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0094_unsafe_auto_trait.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0036_placeholder_pat.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0095_placeholder_pat.rs
index 4d719c433..4d719c433 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0036_placeholder_pat.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0095_placeholder_pat.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0036_placeholder_pat.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0095_placeholder_pat.txt
index 08ba391e3..08ba391e3 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0036_placeholder_pat.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0095_placeholder_pat.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0086_no_semi_after_block.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0096_no_semi_after_block.rs
index 4919665cb..4919665cb 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0086_no_semi_after_block.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0096_no_semi_after_block.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0086_no_semi_after_block.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0096_no_semi_after_block.txt
index 63b230091..63b230091 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0086_no_semi_after_block.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0096_no_semi_after_block.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0046_default_impl.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0097_default_impl.rs
index ef6aa84a2..ef6aa84a2 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0046_default_impl.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0097_default_impl.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0046_default_impl.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0097_default_impl.txt
index f45b6251f..f45b6251f 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0046_default_impl.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0097_default_impl.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0001_const_unsafe_fn.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0098_const_unsafe_fn.rs
index 31a1e435f..31a1e435f 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0001_const_unsafe_fn.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0098_const_unsafe_fn.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0001_const_unsafe_fn.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0098_const_unsafe_fn.txt
index 814c9f1a0..814c9f1a0 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0001_const_unsafe_fn.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0098_const_unsafe_fn.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0064_param_list.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0099_param_list.rs
index 9d55bedbb..9d55bedbb 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0064_param_list.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0099_param_list.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0064_param_list.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0099_param_list.txt
index 503fc97ff..503fc97ff 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0064_param_list.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0099_param_list.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0085_for_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0100_for_expr.rs
index 972197d2a..972197d2a 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0085_for_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0100_for_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0085_for_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0100_for_expr.txt
index 998f12110..998f12110 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0085_for_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0100_for_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0011_unsafe_fn.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0101_unsafe_fn.rs
index 33cfc4cd7..33cfc4cd7 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0011_unsafe_fn.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0101_unsafe_fn.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0011_unsafe_fn.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0101_unsafe_fn.txt
index 5498dbcbb..5498dbcbb 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0011_unsafe_fn.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0101_unsafe_fn.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0054_field_pat_list.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0102_field_pat_list.rs
index da3412fa8..da3412fa8 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0054_field_pat_list.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0102_field_pat_list.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0054_field_pat_list.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0102_field_pat_list.txt
index 13a51a9d9..13a51a9d9 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0054_field_pat_list.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0102_field_pat_list.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0086_array_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0103_array_expr.rs
index 4dc1999d1..4dc1999d1 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0086_array_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0103_array_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0086_array_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0103_array_expr.txt
index 42df7c450..42df7c450 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0086_array_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0103_array_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0093_path_fn_trait_args.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0104_path_fn_trait_args.rs
index aef45e561..aef45e561 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0093_path_fn_trait_args.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0104_path_fn_trait_args.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0093_path_fn_trait_args.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0104_path_fn_trait_args.txt
index ba1163c2d..ba1163c2d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0093_path_fn_trait_args.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0104_path_fn_trait_args.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0067_block_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0105_block_expr.rs
index 2fed74c5e..2fed74c5e 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0067_block_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0105_block_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0067_block_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0105_block_expr.txt
index eeb184ab2..eeb184ab2 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0067_block_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0105_block_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0066_lambda_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0106_lambda_expr.rs
index c20d29751..c20d29751 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0066_lambda_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0106_lambda_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0066_lambda_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0106_lambda_expr.txt
index 98271c233..98271c233 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0066_lambda_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0106_lambda_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0051_method_call_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0107_method_call_expr.rs
index 1a3aa35ae..1a3aa35ae 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0051_method_call_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0107_method_call_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0051_method_call_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0107_method_call_expr.txt
index 51ecfdf78..51ecfdf78 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0051_method_call_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0107_method_call_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0080_tuple_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0108_tuple_expr.rs
index e4f774280..e4f774280 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0080_tuple_expr.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0108_tuple_expr.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0080_tuple_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0108_tuple_expr.txt
index 4e427c909..4e427c909 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0080_tuple_expr.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0108_tuple_expr.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0107_label.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0109_label.rs
index 48e83f263..48e83f263 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0107_label.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0109_label.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0107_label.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0109_label.txt
index c641c3b16..c641c3b16 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0107_label.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0109_label.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0114_use_path.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0110_use_path.rs
index 328e94736..328e94736 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0114_use_path.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0110_use_path.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0114_use_path.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0110_use_path.txt
index 420449e61..420449e61 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0114_use_path.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0110_use_path.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0082_tuple_pat.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0111_tuple_pat.rs
index f785acd36..f785acd36 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0082_tuple_pat.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0111_tuple_pat.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0082_tuple_pat.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0111_tuple_pat.txt
index 2471f6f8c..2471f6f8c 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0082_tuple_pat.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0111_tuple_pat.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/0034_bind_pat.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0112_bind_pat.rs
index 820a9e72c..820a9e72c 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0034_bind_pat.rs
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0112_bind_pat.rs
diff --git a/crates/ra_syntax/tests/data/parser/inline/0034_bind_pat.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0112_bind_pat.txt
index 86f8154ea..86f8154ea 100644
--- a/crates/ra_syntax/tests/data/parser/inline/0034_bind_pat.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0112_bind_pat.txt
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.rs
new file mode 100644
index 000000000..bbf09e367
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.rs
@@ -0,0 +1,3 @@
1fn foo(){
2 ;;;some_expr();;;;{;;;};;;;Ok(())
3}
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.txt
new file mode 100644
index 000000000..db91e3075
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.txt
@@ -0,0 +1,56 @@
1SOURCE_FILE@[0; 50)
2 FN_DEF@[0; 49)
3 FN_KW@[0; 2)
4 WHITESPACE@[2; 3)
5 NAME@[3; 6)
6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 8)
8 L_PAREN@[6; 7)
9 R_PAREN@[7; 8)
10 BLOCK@[8; 49)
11 L_CURLY@[8; 9)
12 WHITESPACE@[9; 14)
13 SEMI@[14; 15)
14 SEMI@[15; 16)
15 SEMI@[16; 17)
16 EXPR_STMT@[17; 29)
17 CALL_EXPR@[17; 28)
18 PATH_EXPR@[17; 26)
19 PATH@[17; 26)
20 PATH_SEGMENT@[17; 26)
21 NAME_REF@[17; 26)
22 IDENT@[17; 26) "some_expr"
23 ARG_LIST@[26; 28)
24 L_PAREN@[26; 27)
25 R_PAREN@[27; 28)
26 SEMI@[28; 29)
27 SEMI@[29; 30)
28 SEMI@[30; 31)
29 SEMI@[31; 32)
30 EXPR_STMT@[32; 38)
31 BLOCK_EXPR@[32; 37)
32 BLOCK@[32; 37)
33 L_CURLY@[32; 33)
34 SEMI@[33; 34)
35 SEMI@[34; 35)
36 SEMI@[35; 36)
37 R_CURLY@[36; 37)
38 SEMI@[37; 38)
39 SEMI@[38; 39)
40 SEMI@[39; 40)
41 SEMI@[40; 41)
42 CALL_EXPR@[41; 47)
43 PATH_EXPR@[41; 43)
44 PATH@[41; 43)
45 PATH_SEGMENT@[41; 43)
46 NAME_REF@[41; 43)
47 IDENT@[41; 43) "Ok"
48 ARG_LIST@[43; 47)
49 L_PAREN@[43; 44)
50 TUPLE_EXPR@[44; 46)
51 L_PAREN@[44; 45)
52 R_PAREN@[45; 46)
53 R_PAREN@[46; 47)
54 WHITESPACE@[47; 48)
55 R_CURLY@[48; 49)
56 WHITESPACE@[49; 50)
diff --git a/crates/ra_syntax/tests/data/parser/ok/0029_range_forms.txt b/crates/ra_syntax/tests/data/parser/ok/0029_range_forms.txt
index e3706bfbd..e59542ba1 100644
--- a/crates/ra_syntax/tests/data/parser/ok/0029_range_forms.txt
+++ b/crates/ra_syntax/tests/data/parser/ok/0029_range_forms.txt
@@ -79,34 +79,28 @@ SOURCE_FILE@[0; 153)
79 DOTDOT@[73; 75) 79 DOTDOT@[73; 75)
80 SEMI@[75; 76) 80 SEMI@[75; 76)
81 WHITESPACE@[76; 86) 81 WHITESPACE@[76; 86)
82 err: `expected expression` 82 EXPR_STMT@[86; 95)
83 EXPR_STMT@[86; 89) 83 RANGE_EXPR@[86; 94)
84 ERROR@[86; 89)
85 DOTDOTEQ@[86; 89) 84 DOTDOTEQ@[86; 89)
86 err: `expected SEMI` 85 BIN_EXPR@[89; 94)
87 EXPR_STMT@[89; 95) 86 LITERAL@[89; 90)
88 BIN_EXPR@[89; 94) 87 INT_NUMBER@[89; 90) "1"
89 LITERAL@[89; 90) 88 WHITESPACE@[90; 91)
90 INT_NUMBER@[89; 90) "1" 89 PLUS@[91; 92)
91 WHITESPACE@[90; 91) 90 WHITESPACE@[92; 93)
92 PLUS@[91; 92) 91 LITERAL@[93; 94)
93 WHITESPACE@[92; 93) 92 INT_NUMBER@[93; 94) "1"
94 LITERAL@[93; 94)
95 INT_NUMBER@[93; 94) "1"
96 SEMI@[94; 95) 93 SEMI@[94; 95)
97 WHITESPACE@[95; 100) 94 WHITESPACE@[95; 100)
98 err: `expected expression` 95 EXPR_STMT@[100; 109)
99 EXPR_STMT@[100; 103) 96 BIN_EXPR@[100; 108)
100 ERROR@[100; 103) 97 RANGE_EXPR@[100; 104)
101 DOTDOTEQ@[100; 103) 98 DOTDOTEQ@[100; 103)
102 err: `expected SEMI` 99 PATH_EXPR@[103; 104)
103 EXPR_STMT@[103; 109) 100 PATH@[103; 104)
104 BIN_EXPR@[103; 108) 101 PATH_SEGMENT@[103; 104)
105 PATH_EXPR@[103; 104) 102 NAME_REF@[103; 104)
106 PATH@[103; 104) 103 IDENT@[103; 104) "z"
107 PATH_SEGMENT@[103; 104)
108 NAME_REF@[103; 104)
109 IDENT@[103; 104) "z"
110 WHITESPACE@[104; 105) 104 WHITESPACE@[104; 105)
111 EQ@[105; 106) 105 EQ@[105; 106)
112 WHITESPACE@[106; 107) 106 WHITESPACE@[106; 107)
diff --git a/crates/ra_syntax/tests/data/parser/ok/0035_crate_path_in_call.rs b/crates/ra_syntax/tests/data/parser/ok/0034_crate_path_in_call.rs
index f1ed30220..f1ed30220 100644
--- a/crates/ra_syntax/tests/data/parser/ok/0035_crate_path_in_call.rs
+++ b/crates/ra_syntax/tests/data/parser/ok/0034_crate_path_in_call.rs
diff --git a/crates/ra_syntax/tests/data/parser/ok/0035_crate_path_in_call.txt b/crates/ra_syntax/tests/data/parser/ok/0034_crate_path_in_call.txt
index 3995f476c..3995f476c 100644
--- a/crates/ra_syntax/tests/data/parser/ok/0035_crate_path_in_call.txt
+++ b/crates/ra_syntax/tests/data/parser/ok/0034_crate_path_in_call.txt
diff --git a/crates/ra_syntax/tests/data/parser/ok/0034_macro_stuck.txt b/crates/ra_syntax/tests/data/parser/ok/0034_macro_stuck.txt
deleted file mode 100644
index cf9a1a2fa..000000000
--- a/crates/ra_syntax/tests/data/parser/ok/0034_macro_stuck.txt
+++ /dev/null
@@ -1,250 +0,0 @@
1SOURCE_FILE@[0; 350)
2 MACRO_CALL@[0; 41)
3 PATH@[0; 5)
4 PATH_SEGMENT@[0; 5)
5 NAME_REF@[0; 5)
6 IDENT@[0; 5) "macro"
7 err: `expected EXCL`
8 WHITESPACE@[5; 6)
9 IDENT@[6; 21) "parse_use_trees"
10 TOKEN_TREE@[21; 41)
11 L_PAREN@[21; 22)
12 DOLLAR@[22; 23)
13 TOKEN_TREE@[23; 32)
14 L_PAREN@[23; 24)
15 DOLLAR@[24; 25)
16 IDENT@[25; 26) "s"
17 COLON@[26; 27)
18 IDENT@[27; 31) "expr"
19 R_PAREN@[31; 32)
20 COMMA@[32; 33)
21 STAR@[33; 34)
22 WHITESPACE@[34; 35)
23 DOLLAR@[35; 36)
24 TOKEN_TREE@[36; 39)
25 L_PAREN@[36; 37)
26 COMMA@[37; 38)
27 R_PAREN@[38; 39)
28 STAR@[39; 40)
29 R_PAREN@[40; 41)
30 err: `expected SEMI`
31 WHITESPACE@[41; 42)
32 err: `expected an item`
33 ERROR@[42; 93)
34 L_CURLY@[42; 43)
35 WHITESPACE@[43; 48)
36 IDENT@[48; 51) "vec"
37 EXCL@[51; 52)
38 L_BRACK@[52; 53)
39 WHITESPACE@[53; 62)
40 DOLLAR@[62; 63)
41 L_PAREN@[63; 64)
42 IDENT@[64; 78) "parse_use_tree"
43 L_PAREN@[78; 79)
44 DOLLAR@[79; 80)
45 IDENT@[80; 81) "s"
46 R_PAREN@[81; 82)
47 COMMA@[82; 83)
48 R_PAREN@[83; 84)
49 STAR@[84; 85)
50 WHITESPACE@[85; 90)
51 R_BRACK@[90; 91)
52 WHITESPACE@[91; 92)
53 R_CURLY@[92; 93)
54 WHITESPACE@[93; 95)
55 FN_DEF@[95; 348)
56 ATTR@[95; 102)
57 POUND@[95; 96)
58 TOKEN_TREE@[96; 102)
59 L_BRACK@[96; 97)
60 IDENT@[97; 101) "test"
61 R_BRACK@[101; 102)
62 WHITESPACE@[102; 103)
63 FN_KW@[103; 105)
64 WHITESPACE@[105; 106)
65 NAME@[106; 125)
66 IDENT@[106; 125) "test_use_tree_merge"
67 PARAM_LIST@[125; 127)
68 L_PAREN@[125; 126)
69 R_PAREN@[126; 127)
70 WHITESPACE@[127; 128)
71 BLOCK@[128; 348)
72 L_CURLY@[128; 129)
73 WHITESPACE@[129; 134)
74 EXPR_STMT@[134; 139)
75 PATH_EXPR@[134; 139)
76 PATH@[134; 139)
77 PATH_SEGMENT@[134; 139)
78 NAME_REF@[134; 139)
79 IDENT@[134; 139) "macro"
80 err: `expected SEMI`
81 WHITESPACE@[139; 140)
82 EXPR_STMT@[140; 203)
83 CALL_EXPR@[140; 203)
84 PATH_EXPR@[140; 150)
85 PATH@[140; 150)
86 PATH_SEGMENT@[140; 150)
87 NAME_REF@[140; 150)
88 IDENT@[140; 150) "test_merge"
89 ARG_LIST@[150; 203)
90 L_PAREN@[150; 151)
91 ARRAY_EXPR@[151; 202)
92 L_BRACK@[151; 152)
93 err: `expected expression`
94 ERROR@[152; 153)
95 DOLLAR@[152; 153)
96 err: `expected COMMA`
97 TUPLE_EXPR@[153; 166)
98 L_PAREN@[153; 154)
99 err: `expected expression`
100 ERROR@[154; 155)
101 DOLLAR@[154; 155)
102 err: `expected COMMA`
103 PATH_EXPR@[155; 160)
104 PATH@[155; 160)
105 PATH_SEGMENT@[155; 160)
106 NAME_REF@[155; 160)
107 IDENT@[155; 160) "input"
108 err: `expected COMMA`
109 err: `expected expression`
110 ERROR@[160; 161)
111 COLON@[160; 161)
112 err: `expected COMMA`
113 PATH_EXPR@[161; 165)
114 PATH@[161; 165)
115 PATH_SEGMENT@[161; 165)
116 NAME_REF@[161; 165)
117 IDENT@[161; 165) "expr"
118 R_PAREN@[165; 166)
119 COMMA@[166; 167)
120 PREFIX_EXPR@[167; 170)
121 STAR@[167; 168)
122 WHITESPACE@[168; 169)
123 err: `expected expression`
124 ERROR@[169; 170)
125 DOLLAR@[169; 170)
126 err: `expected COMMA`
127 BIN_EXPR@[170; 175)
128 PAREN_EXPR@[170; 173)
129 L_PAREN@[170; 171)
130 err: `expected expression`
131 ERROR@[171; 172)
132 COMMA@[171; 172)
133 R_PAREN@[172; 173)
134 STAR@[173; 174)
135 err: `expected expression`
136 ERROR@[174; 175)
137 R_BRACK@[174; 175)
138 COMMA@[175; 176)
139 WHITESPACE@[176; 177)
140 ARRAY_EXPR@[177; 202)
141 L_BRACK@[177; 178)
142 err: `expected expression`
143 ERROR@[178; 179)
144 DOLLAR@[178; 179)
145 err: `expected COMMA`
146 TUPLE_EXPR@[179; 193)
147 L_PAREN@[179; 180)
148 err: `expected expression`
149 ERROR@[180; 181)
150 DOLLAR@[180; 181)
151 err: `expected COMMA`
152 PATH_EXPR@[181; 187)
153 PATH@[181; 187)
154 PATH_SEGMENT@[181; 187)
155 NAME_REF@[181; 187)
156 IDENT@[181; 187) "output"
157 err: `expected COMMA`
158 err: `expected expression`
159 ERROR@[187; 188)
160 COLON@[187; 188)
161 err: `expected COMMA`
162 PATH_EXPR@[188; 192)
163 PATH@[188; 192)
164 PATH_SEGMENT@[188; 192)
165 NAME_REF@[188; 192)
166 IDENT@[188; 192) "expr"
167 R_PAREN@[192; 193)
168 COMMA@[193; 194)
169 PREFIX_EXPR@[194; 197)
170 STAR@[194; 195)
171 WHITESPACE@[195; 196)
172 err: `expected expression`
173 ERROR@[196; 197)
174 DOLLAR@[196; 197)
175 err: `expected COMMA`
176 BIN_EXPR@[197; 202)
177 PAREN_EXPR@[197; 200)
178 L_PAREN@[197; 198)
179 err: `expected expression`
180 ERROR@[198; 199)
181 COMMA@[198; 199)
182 R_PAREN@[199; 200)
183 STAR@[200; 201)
184 err: `expected expression`
185 ERROR@[201; 202)
186 R_BRACK@[201; 202)
187 err: `expected COMMA`
188 err: `expected expression`
189 err: `expected R_BRACK`
190 err: `expected COMMA`
191 err: `expected expression`
192 err: `expected R_BRACK`
193 R_PAREN@[202; 203)
194 err: `expected SEMI`
195 WHITESPACE@[203; 204)
196 BLOCK_EXPR@[204; 346)
197 BLOCK@[204; 346)
198 L_CURLY@[204; 205)
199 WHITESPACE@[205; 214)
200 EXPR_STMT@[214; 340)
201 MACRO_CALL@[214; 339)
202 PATH@[214; 223)
203 PATH_SEGMENT@[214; 223)
204 NAME_REF@[214; 223)
205 IDENT@[214; 223) "assert_eq"
206 EXCL@[223; 224)
207 TOKEN_TREE@[224; 339)
208 L_PAREN@[224; 225)
209 WHITESPACE@[225; 238)
210 IDENT@[238; 253) "merge_use_trees"
211 TOKEN_TREE@[253; 284)
212 L_PAREN@[253; 254)
213 IDENT@[254; 269) "parse_use_trees"
214 EXCL@[269; 270)
215 TOKEN_TREE@[270; 283)
216 L_PAREN@[270; 271)
217 DOLLAR@[271; 272)
218 TOKEN_TREE@[272; 281)
219 L_PAREN@[272; 273)
220 DOLLAR@[273; 274)
221 IDENT@[274; 279) "input"
222 COMMA@[279; 280)
223 R_PAREN@[280; 281)
224 STAR@[281; 282)
225 R_PAREN@[282; 283)
226 R_PAREN@[283; 284)
227 COMMA@[284; 285)
228 WHITESPACE@[285; 298)
229 IDENT@[298; 313) "parse_use_trees"
230 EXCL@[313; 314)
231 TOKEN_TREE@[314; 328)
232 L_PAREN@[314; 315)
233 DOLLAR@[315; 316)
234 TOKEN_TREE@[316; 326)
235 L_PAREN@[316; 317)
236 DOLLAR@[317; 318)
237 IDENT@[318; 324) "output"
238 COMMA@[324; 325)
239 R_PAREN@[325; 326)
240 STAR@[326; 327)
241 R_PAREN@[327; 328)
242 COMMA@[328; 329)
243 WHITESPACE@[329; 338)
244 R_PAREN@[338; 339)
245 SEMI@[339; 340)
246 WHITESPACE@[340; 345)
247 R_CURLY@[345; 346)
248 WHITESPACE@[346; 347)
249 R_CURLY@[347; 348)
250 WHITESPACE@[348; 350)
diff --git a/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.rs b/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.rs
new file mode 100644
index 000000000..8c1323163
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.rs
@@ -0,0 +1,154 @@
1//! Adapted from a `rustc` test, which can be found at
2//! https://github.com/rust-lang/rust/blob/6d34ec18c7d7e574553f6347ecf08e1e1c45c13d/src/test/run-pass/weird-exprs.rs.
3//!
4//! Reported to rust-analyzer in https://github.com/rust-analyzer/rust-analyzer/issues/290
5
6#![allow(non_camel_case_types)]
7#![allow(dead_code)]
8#![allow(unreachable_code)]
9#![allow(unused_parens)]
10
11#![recursion_limit = "128"]
12
13use std::cell::Cell;
14use std::mem::swap;
15
16// Just a grab bag of stuff that you wouldn't want to actually write.
17
18fn strange() -> bool { let _x: bool = return true; }
19
20fn funny() {
21 fn f(_x: ()) { }
22 f(return);
23}
24
25fn what() {
26 fn the(x: &Cell<bool>) {
27 return while !x.get() { x.set(true); };
28 }
29 let i = &Cell::new(false);
30 let dont = {||the(i)};
31 dont();
32 assert!((i.get()));
33}
34
35fn zombiejesus() {
36 loop {
37 while (return) {
38 if (return) {
39 match (return) {
40 1 => {
41 if (return) {
42 return
43 } else {
44 return
45 }
46 }
47 _ => { return }
48 };
49 } else if (return) {
50 return;
51 }
52 }
53 if (return) { break; }
54 }
55}
56
57fn notsure() {
58 let mut _x: isize;
59 let mut _y = (_x = 0) == (_x = 0);
60 let mut _z = (_x = 0) < (_x = 0);
61 let _a = (_x += 0) == (_x = 0);
62 let _b = swap(&mut _y, &mut _z) == swap(&mut _y, &mut _z);
63}
64
65fn canttouchthis() -> usize {
66 fn p() -> bool { true }
67 let _a = (assert!((true)) == (assert!(p())));
68 let _c = (assert!((p())) == ());
69 let _b: bool = (println!("{}", 0) == (return 0));
70}
71
72fn angrydome() {
73 loop { if break { } }
74 let mut i = 0;
75 loop { i += 1; if i == 1 { match (continue) { 1 => { }, _ => panic!("wat") } }
76 break; }
77}
78
79fn evil_lincoln() { let _evil = println!("lincoln"); }
80
81fn dots() {
82 assert_eq!(String::from(".................................................."),
83 format!("{:?}", .. .. .. .. .. .. .. .. .. .. .. .. ..
84 .. .. .. .. .. .. .. .. .. .. .. ..));
85}
86
87fn u8(u8: u8) {
88 if u8 != 0u8 {
89 assert_eq!(8u8, {
90 macro_rules! u8 {
91 (u8) => {
92 mod u8 {
93 pub fn u8<'u8: 'u8 + 'u8>(u8: &'u8 u8) -> &'u8 u8 {
94 "u8";
95 u8
96 }
97 }
98 };
99 }
100
101 u8!(u8);
102 let &u8: &u8 = u8::u8(&8u8);
103 crate::u8(0u8);
104 u8
105 });
106 }
107}
108
109fn fishy() {
110 assert_eq!(String::from("><>"),
111 String::<>::from::<>("><>").chars::<>().rev::<>().collect::<String>());
112}
113
114fn union() {
115 union union<'union> { union: &'union union<'union>, }
116}
117
118fn special_characters() {
119 let val = !((|(..):(_,_),__@_|__)((&*"\\",'🤔')/**/,{})=={&[..=..][..];})//
120 ;
121 assert!(!val);
122}
123
124fn punch_card() -> impl std::fmt::Debug {
125 ..=..=.. .. .. .. .. .. .. .. .. .. .. ..=.. ..
126 ..=.. ..=.. .. .. .. .. .. .. .. .. ..=..=..=..
127 ..=.. ..=.. ..=.. ..=.. .. ..=..=.. .. ..=.. ..
128 ..=..=.. .. ..=.. ..=.. ..=.. .. .. .. ..=.. ..
129 ..=.. ..=.. ..=.. ..=.. .. ..=.. .. .. ..=.. ..
130 ..=.. ..=.. ..=.. ..=.. .. .. ..=.. .. ..=.. ..
131 ..=.. ..=.. .. ..=..=.. ..=..=.. .. .. ..=.. ..
132}
133
134fn ktulhu() {
135 ;;;();;;;;;;;;()
136}
137
138pub fn main() {
139 strange();
140 funny();
141 what();
142 zombiejesus();
143 notsure();
144 canttouchthis();
145 angrydome();
146 evil_lincoln();
147 dots();
148 u8(8u8);
149 fishy();
150 union();
151 special_characters();
152 punch_card();
153 ktulhu();
154}
diff --git a/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.txt b/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.txt
new file mode 100644
index 000000000..20932a837
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.txt
@@ -0,0 +1,2244 @@
1SOURCE_FILE@[0; 3813)
2 COMMENT@[0; 55)
3 WHITESPACE@[55; 56)
4 COMMENT@[56; 173)
5 WHITESPACE@[173; 174)
6 COMMENT@[174; 178)
7 WHITESPACE@[178; 179)
8 COMMENT@[179; 269)
9 WHITESPACE@[269; 271)
10 ATTR@[271; 302)
11 POUND@[271; 272)
12 EXCL@[272; 273)
13 TOKEN_TREE@[273; 302)
14 L_BRACK@[273; 274)
15 IDENT@[274; 279) "allow"
16 TOKEN_TREE@[279; 301)
17 L_PAREN@[279; 280)
18 IDENT@[280; 300) "non_camel_case_types"
19 R_PAREN@[300; 301)
20 R_BRACK@[301; 302)
21 WHITESPACE@[302; 303)
22 ATTR@[303; 323)
23 POUND@[303; 304)
24 EXCL@[304; 305)
25 TOKEN_TREE@[305; 323)
26 L_BRACK@[305; 306)
27 IDENT@[306; 311) "allow"
28 TOKEN_TREE@[311; 322)
29 L_PAREN@[311; 312)
30 IDENT@[312; 321) "dead_code"
31 R_PAREN@[321; 322)
32 R_BRACK@[322; 323)
33 WHITESPACE@[323; 324)
34 ATTR@[324; 351)
35 POUND@[324; 325)
36 EXCL@[325; 326)
37 TOKEN_TREE@[326; 351)
38 L_BRACK@[326; 327)
39 IDENT@[327; 332) "allow"
40 TOKEN_TREE@[332; 350)
41 L_PAREN@[332; 333)
42 IDENT@[333; 349) "unreachable_code"
43 R_PAREN@[349; 350)
44 R_BRACK@[350; 351)
45 WHITESPACE@[351; 352)
46 ATTR@[352; 376)
47 POUND@[352; 353)
48 EXCL@[353; 354)
49 TOKEN_TREE@[354; 376)
50 L_BRACK@[354; 355)
51 IDENT@[355; 360) "allow"
52 TOKEN_TREE@[360; 375)
53 L_PAREN@[360; 361)
54 IDENT@[361; 374) "unused_parens"
55 R_PAREN@[374; 375)
56 R_BRACK@[375; 376)
57 WHITESPACE@[376; 378)
58 ATTR@[378; 405)
59 POUND@[378; 379)
60 EXCL@[379; 380)
61 TOKEN_TREE@[380; 405)
62 L_BRACK@[380; 381)
63 IDENT@[381; 396) "recursion_limit"
64 WHITESPACE@[396; 397)
65 EQ@[397; 398)
66 WHITESPACE@[398; 399)
67 STRING@[399; 404)
68 R_BRACK@[404; 405)
69 WHITESPACE@[405; 407)
70 USE_ITEM@[407; 427)
71 USE_KW@[407; 410)
72 WHITESPACE@[410; 411)
73 USE_TREE@[411; 426)
74 PATH@[411; 426)
75 PATH@[411; 420)
76 PATH@[411; 414)
77 PATH_SEGMENT@[411; 414)
78 NAME_REF@[411; 414)
79 IDENT@[411; 414) "std"
80 COLONCOLON@[414; 416)
81 PATH_SEGMENT@[416; 420)
82 NAME_REF@[416; 420)
83 IDENT@[416; 420) "cell"
84 COLONCOLON@[420; 422)
85 PATH_SEGMENT@[422; 426)
86 NAME_REF@[422; 426)
87 IDENT@[422; 426) "Cell"
88 SEMI@[426; 427)
89 WHITESPACE@[427; 428)
90 USE_ITEM@[428; 447)
91 USE_KW@[428; 431)
92 WHITESPACE@[431; 432)
93 USE_TREE@[432; 446)
94 PATH@[432; 446)
95 PATH@[432; 440)
96 PATH@[432; 435)
97 PATH_SEGMENT@[432; 435)
98 NAME_REF@[432; 435)
99 IDENT@[432; 435) "std"
100 COLONCOLON@[435; 437)
101 PATH_SEGMENT@[437; 440)
102 NAME_REF@[437; 440)
103 IDENT@[437; 440) "mem"
104 COLONCOLON@[440; 442)
105 PATH_SEGMENT@[442; 446)
106 NAME_REF@[442; 446)
107 IDENT@[442; 446) "swap"
108 SEMI@[446; 447)
109 WHITESPACE@[447; 449)
110 COMMENT@[449; 518)
111 WHITESPACE@[518; 520)
112 FN_DEF@[520; 572)
113 FN_KW@[520; 522)
114 WHITESPACE@[522; 523)
115 NAME@[523; 530)
116 IDENT@[523; 530) "strange"
117 PARAM_LIST@[530; 532)
118 L_PAREN@[530; 531)
119 R_PAREN@[531; 532)
120 WHITESPACE@[532; 533)
121 RET_TYPE@[533; 540)
122 THIN_ARROW@[533; 535)
123 WHITESPACE@[535; 536)
124 PATH_TYPE@[536; 540)
125 PATH@[536; 540)
126 PATH_SEGMENT@[536; 540)
127 NAME_REF@[536; 540)
128 IDENT@[536; 540) "bool"
129 WHITESPACE@[540; 541)
130 BLOCK@[541; 572)
131 L_CURLY@[541; 542)
132 WHITESPACE@[542; 543)
133 LET_STMT@[543; 570)
134 LET_KW@[543; 546)
135 WHITESPACE@[546; 547)
136 BIND_PAT@[547; 549)
137 NAME@[547; 549)
138 IDENT@[547; 549) "_x"
139 COLON@[549; 550)
140 WHITESPACE@[550; 551)
141 PATH_TYPE@[551; 555)
142 PATH@[551; 555)
143 PATH_SEGMENT@[551; 555)
144 NAME_REF@[551; 555)
145 IDENT@[551; 555) "bool"
146 WHITESPACE@[555; 556)
147 EQ@[556; 557)
148 WHITESPACE@[557; 558)
149 RETURN_EXPR@[558; 569)
150 RETURN_KW@[558; 564)
151 WHITESPACE@[564; 565)
152 LITERAL@[565; 569)
153 TRUE_KW@[565; 569)
154 SEMI@[569; 570)
155 WHITESPACE@[570; 571)
156 R_CURLY@[571; 572)
157 WHITESPACE@[572; 574)
158 FN_DEF@[574; 624)
159 FN_KW@[574; 576)
160 WHITESPACE@[576; 577)
161 NAME@[577; 582)
162 IDENT@[577; 582) "funny"
163 PARAM_LIST@[582; 584)
164 L_PAREN@[582; 583)
165 R_PAREN@[583; 584)
166 WHITESPACE@[584; 585)
167 BLOCK@[585; 624)
168 L_CURLY@[585; 586)
169 WHITESPACE@[586; 591)
170 FN_DEF@[591; 607)
171 FN_KW@[591; 593)
172 WHITESPACE@[593; 594)
173 NAME@[594; 595)
174 IDENT@[594; 595) "f"
175 PARAM_LIST@[595; 603)
176 L_PAREN@[595; 596)
177 PARAM@[596; 602)
178 BIND_PAT@[596; 598)
179 NAME@[596; 598)
180 IDENT@[596; 598) "_x"
181 COLON@[598; 599)
182 WHITESPACE@[599; 600)
183 TUPLE_TYPE@[600; 602)
184 L_PAREN@[600; 601)
185 R_PAREN@[601; 602)
186 R_PAREN@[602; 603)
187 WHITESPACE@[603; 604)
188 BLOCK@[604; 607)
189 L_CURLY@[604; 605)
190 WHITESPACE@[605; 606)
191 R_CURLY@[606; 607)
192 WHITESPACE@[607; 612)
193 EXPR_STMT@[612; 622)
194 CALL_EXPR@[612; 621)
195 PATH_EXPR@[612; 613)
196 PATH@[612; 613)
197 PATH_SEGMENT@[612; 613)
198 NAME_REF@[612; 613)
199 IDENT@[612; 613) "f"
200 ARG_LIST@[613; 621)
201 L_PAREN@[613; 614)
202 RETURN_EXPR@[614; 620)
203 RETURN_KW@[614; 620)
204 R_PAREN@[620; 621)
205 SEMI@[621; 622)
206 WHITESPACE@[622; 623)
207 R_CURLY@[623; 624)
208 WHITESPACE@[624; 626)
209 FN_DEF@[626; 816)
210 FN_KW@[626; 628)
211 WHITESPACE@[628; 629)
212 NAME@[629; 633)
213 IDENT@[629; 633) "what"
214 PARAM_LIST@[633; 635)
215 L_PAREN@[633; 634)
216 R_PAREN@[634; 635)
217 WHITESPACE@[635; 636)
218 BLOCK@[636; 816)
219 L_CURLY@[636; 637)
220 WHITESPACE@[637; 642)
221 FN_DEF@[642; 720)
222 FN_KW@[642; 644)
223 WHITESPACE@[644; 645)
224 NAME@[645; 648)
225 IDENT@[645; 648) "the"
226 PARAM_LIST@[648; 664)
227 L_PAREN@[648; 649)
228 PARAM@[649; 663)
229 BIND_PAT@[649; 650)
230 NAME@[649; 650)
231 IDENT@[649; 650) "x"
232 COLON@[650; 651)
233 WHITESPACE@[651; 652)
234 REFERENCE_TYPE@[652; 663)
235 AMP@[652; 653)
236 PATH_TYPE@[653; 663)
237 PATH@[653; 663)
238 PATH_SEGMENT@[653; 663)
239 NAME_REF@[653; 657)
240 IDENT@[653; 657) "Cell"
241 TYPE_ARG_LIST@[657; 663)
242 L_ANGLE@[657; 658)
243 TYPE_ARG@[658; 662)
244 PATH_TYPE@[658; 662)
245 PATH@[658; 662)
246 PATH_SEGMENT@[658; 662)
247 NAME_REF@[658; 662)
248 IDENT@[658; 662) "bool"
249 R_ANGLE@[662; 663)
250 R_PAREN@[663; 664)
251 WHITESPACE@[664; 665)
252 BLOCK@[665; 720)
253 L_CURLY@[665; 666)
254 WHITESPACE@[666; 675)
255 EXPR_STMT@[675; 714)
256 RETURN_EXPR@[675; 713)
257 RETURN_KW@[675; 681)
258 WHITESPACE@[681; 682)
259 WHILE_EXPR@[682; 713)
260 WHILE_KW@[682; 687)
261 WHITESPACE@[687; 688)
262 CONDITION@[688; 696)
263 PREFIX_EXPR@[688; 696)
264 EXCL@[688; 689)
265 METHOD_CALL_EXPR@[689; 696)
266 PATH_EXPR@[689; 690)
267 PATH@[689; 690)
268 PATH_SEGMENT@[689; 690)
269 NAME_REF@[689; 690)
270 IDENT@[689; 690) "x"
271 DOT@[690; 691)
272 NAME_REF@[691; 694)
273 IDENT@[691; 694) "get"
274 ARG_LIST@[694; 696)
275 L_PAREN@[694; 695)
276 R_PAREN@[695; 696)
277 WHITESPACE@[696; 697)
278 BLOCK@[697; 713)
279 L_CURLY@[697; 698)
280 WHITESPACE@[698; 699)
281 EXPR_STMT@[699; 711)
282 METHOD_CALL_EXPR@[699; 710)
283 PATH_EXPR@[699; 700)
284 PATH@[699; 700)
285 PATH_SEGMENT@[699; 700)
286 NAME_REF@[699; 700)
287 IDENT@[699; 700) "x"
288 DOT@[700; 701)
289 NAME_REF@[701; 704)
290 IDENT@[701; 704) "set"
291 ARG_LIST@[704; 710)
292 L_PAREN@[704; 705)
293 LITERAL@[705; 709)
294 TRUE_KW@[705; 709)
295 R_PAREN@[709; 710)
296 SEMI@[710; 711)
297 WHITESPACE@[711; 712)
298 R_CURLY@[712; 713)
299 SEMI@[713; 714)
300 WHITESPACE@[714; 719)
301 R_CURLY@[719; 720)
302 WHITESPACE@[720; 725)
303 LET_STMT@[725; 751)
304 LET_KW@[725; 728)
305 WHITESPACE@[728; 729)
306 BIND_PAT@[729; 730)
307 NAME@[729; 730)
308 IDENT@[729; 730) "i"
309 WHITESPACE@[730; 731)
310 EQ@[731; 732)
311 WHITESPACE@[732; 733)
312 REF_EXPR@[733; 750)
313 AMP@[733; 734)
314 CALL_EXPR@[734; 750)
315 PATH_EXPR@[734; 743)
316 PATH@[734; 743)
317 PATH@[734; 738)
318 PATH_SEGMENT@[734; 738)
319 NAME_REF@[734; 738)
320 IDENT@[734; 738) "Cell"
321 COLONCOLON@[738; 740)
322 PATH_SEGMENT@[740; 743)
323 NAME_REF@[740; 743)
324 IDENT@[740; 743) "new"
325 ARG_LIST@[743; 750)
326 L_PAREN@[743; 744)
327 LITERAL@[744; 749)
328 FALSE_KW@[744; 749)
329 R_PAREN@[749; 750)
330 SEMI@[750; 751)
331 WHITESPACE@[751; 756)
332 LET_STMT@[756; 778)
333 LET_KW@[756; 759)
334 WHITESPACE@[759; 760)
335 BIND_PAT@[760; 764)
336 NAME@[760; 764)
337 IDENT@[760; 764) "dont"
338 WHITESPACE@[764; 765)
339 EQ@[765; 766)
340 WHITESPACE@[766; 767)
341 BLOCK_EXPR@[767; 777)
342 BLOCK@[767; 777)
343 L_CURLY@[767; 768)
344 LAMBDA_EXPR@[768; 776)
345 PARAM_LIST@[768; 770)
346 PIPE@[768; 769)
347 PIPE@[769; 770)
348 CALL_EXPR@[770; 776)
349 PATH_EXPR@[770; 773)
350 PATH@[770; 773)
351 PATH_SEGMENT@[770; 773)
352 NAME_REF@[770; 773)
353 IDENT@[770; 773) "the"
354 ARG_LIST@[773; 776)
355 L_PAREN@[773; 774)
356 PATH_EXPR@[774; 775)
357 PATH@[774; 775)
358 PATH_SEGMENT@[774; 775)
359 NAME_REF@[774; 775)
360 IDENT@[774; 775) "i"
361 R_PAREN@[775; 776)
362 R_CURLY@[776; 777)
363 SEMI@[777; 778)
364 WHITESPACE@[778; 783)
365 EXPR_STMT@[783; 790)
366 CALL_EXPR@[783; 789)
367 PATH_EXPR@[783; 787)
368 PATH@[783; 787)
369 PATH_SEGMENT@[783; 787)
370 NAME_REF@[783; 787)
371 IDENT@[783; 787) "dont"
372 ARG_LIST@[787; 789)
373 L_PAREN@[787; 788)
374 R_PAREN@[788; 789)
375 SEMI@[789; 790)
376 WHITESPACE@[790; 795)
377 EXPR_STMT@[795; 814)
378 MACRO_CALL@[795; 813)
379 PATH@[795; 801)
380 PATH_SEGMENT@[795; 801)
381 NAME_REF@[795; 801)
382 IDENT@[795; 801) "assert"
383 EXCL@[801; 802)
384 TOKEN_TREE@[802; 813)
385 L_PAREN@[802; 803)
386 TOKEN_TREE@[803; 812)
387 L_PAREN@[803; 804)
388 IDENT@[804; 805) "i"
389 DOT@[805; 806)
390 IDENT@[806; 809) "get"
391 TOKEN_TREE@[809; 811)
392 L_PAREN@[809; 810)
393 R_PAREN@[810; 811)
394 R_PAREN@[811; 812)
395 R_PAREN@[812; 813)
396 SEMI@[813; 814)
397 WHITESPACE@[814; 815)
398 R_CURLY@[815; 816)
399 WHITESPACE@[816; 818)
400 FN_DEF@[818; 1322)
401 FN_KW@[818; 820)
402 WHITESPACE@[820; 821)
403 NAME@[821; 832)
404 IDENT@[821; 832) "zombiejesus"
405 PARAM_LIST@[832; 834)
406 L_PAREN@[832; 833)
407 R_PAREN@[833; 834)
408 WHITESPACE@[834; 835)
409 BLOCK@[835; 1322)
410 L_CURLY@[835; 836)
411 WHITESPACE@[836; 841)
412 LOOP_EXPR@[841; 1320)
413 LOOP_KW@[841; 845)
414 WHITESPACE@[845; 846)
415 BLOCK@[846; 1320)
416 L_CURLY@[846; 847)
417 WHITESPACE@[847; 856)
418 EXPR_STMT@[856; 1283)
419 WHILE_EXPR@[856; 1283)
420 WHILE_KW@[856; 861)
421 WHITESPACE@[861; 862)
422 CONDITION@[862; 870)
423 PAREN_EXPR@[862; 870)
424 L_PAREN@[862; 863)
425 RETURN_EXPR@[863; 869)
426 RETURN_KW@[863; 869)
427 R_PAREN@[869; 870)
428 WHITESPACE@[870; 871)
429 BLOCK@[871; 1283)
430 L_CURLY@[871; 872)
431 WHITESPACE@[872; 885)
432 IF_EXPR@[885; 1273)
433 IF_KW@[885; 887)
434 WHITESPACE@[887; 888)
435 CONDITION@[888; 896)
436 PAREN_EXPR@[888; 896)
437 L_PAREN@[888; 889)
438 RETURN_EXPR@[889; 895)
439 RETURN_KW@[889; 895)
440 R_PAREN@[895; 896)
441 WHITESPACE@[896; 897)
442 BLOCK@[897; 1216)
443 L_CURLY@[897; 898)
444 WHITESPACE@[898; 915)
445 EXPR_STMT@[915; 1202)
446 MATCH_EXPR@[915; 1201)
447 MATCH_KW@[915; 920)
448 WHITESPACE@[920; 921)
449 PAREN_EXPR@[921; 929)
450 L_PAREN@[921; 922)
451 RETURN_EXPR@[922; 928)
452 RETURN_KW@[922; 928)
453 R_PAREN@[928; 929)
454 WHITESPACE@[929; 930)
455 MATCH_ARM_LIST@[930; 1201)
456 L_CURLY@[930; 931)
457 WHITESPACE@[931; 952)
458 MATCH_ARM@[952; 1147)
459 LITERAL@[952; 953)
460 INT_NUMBER@[952; 953) "1"
461 WHITESPACE@[953; 954)
462 FAT_ARROW@[954; 956)
463 WHITESPACE@[956; 957)
464 BLOCK_EXPR@[957; 1147)
465 BLOCK@[957; 1147)
466 L_CURLY@[957; 958)
467 WHITESPACE@[958; 983)
468 IF_EXPR@[983; 1125)
469 IF_KW@[983; 985)
470 WHITESPACE@[985; 986)
471 CONDITION@[986; 994)
472 PAREN_EXPR@[986; 994)
473 L_PAREN@[986; 987)
474 RETURN_EXPR@[987; 993)
475 RETURN_KW@[987; 993)
476 R_PAREN@[993; 994)
477 WHITESPACE@[994; 995)
478 BLOCK@[995; 1057)
479 L_CURLY@[995; 996)
480 WHITESPACE@[996; 1025)
481 RETURN_EXPR@[1025; 1031)
482 RETURN_KW@[1025; 1031)
483 WHITESPACE@[1031; 1056)
484 R_CURLY@[1056; 1057)
485 WHITESPACE@[1057; 1058)
486 ELSE_KW@[1058; 1062)
487 WHITESPACE@[1062; 1063)
488 BLOCK@[1063; 1125)
489 L_CURLY@[1063; 1064)
490 WHITESPACE@[1064; 1093)
491 RETURN_EXPR@[1093; 1099)
492 RETURN_KW@[1093; 1099)
493 WHITESPACE@[1099; 1124)
494 R_CURLY@[1124; 1125)
495 WHITESPACE@[1125; 1146)
496 R_CURLY@[1146; 1147)
497 WHITESPACE@[1147; 1168)
498 MATCH_ARM@[1168; 1183)
499 PLACEHOLDER_PAT@[1168; 1169)
500 UNDERSCORE@[1168; 1169)
501 WHITESPACE@[1169; 1170)
502 FAT_ARROW@[1170; 1172)
503 WHITESPACE@[1172; 1173)
504 BLOCK_EXPR@[1173; 1183)
505 BLOCK@[1173; 1183)
506 L_CURLY@[1173; 1174)
507 WHITESPACE@[1174; 1175)
508 RETURN_EXPR@[1175; 1181)
509 RETURN_KW@[1175; 1181)
510 WHITESPACE@[1181; 1182)
511 R_CURLY@[1182; 1183)
512 WHITESPACE@[1183; 1200)
513 R_CURLY@[1200; 1201)
514 SEMI@[1201; 1202)
515 WHITESPACE@[1202; 1215)
516 R_CURLY@[1215; 1216)
517 WHITESPACE@[1216; 1217)
518 ELSE_KW@[1217; 1221)
519 WHITESPACE@[1221; 1222)
520 IF_EXPR@[1222; 1273)
521 IF_KW@[1222; 1224)
522 WHITESPACE@[1224; 1225)
523 CONDITION@[1225; 1233)
524 PAREN_EXPR@[1225; 1233)
525 L_PAREN@[1225; 1226)
526 RETURN_EXPR@[1226; 1232)
527 RETURN_KW@[1226; 1232)
528 R_PAREN@[1232; 1233)
529 WHITESPACE@[1233; 1234)
530 BLOCK@[1234; 1273)
531 L_CURLY@[1234; 1235)
532 WHITESPACE@[1235; 1252)
533 EXPR_STMT@[1252; 1259)
534 RETURN_EXPR@[1252; 1258)
535 RETURN_KW@[1252; 1258)
536 SEMI@[1258; 1259)
537 WHITESPACE@[1259; 1272)
538 R_CURLY@[1272; 1273)
539 WHITESPACE@[1273; 1282)
540 R_CURLY@[1282; 1283)
541 WHITESPACE@[1283; 1292)
542 IF_EXPR@[1292; 1314)
543 IF_KW@[1292; 1294)
544 WHITESPACE@[1294; 1295)
545 CONDITION@[1295; 1303)
546 PAREN_EXPR@[1295; 1303)
547 L_PAREN@[1295; 1296)
548 RETURN_EXPR@[1296; 1302)
549 RETURN_KW@[1296; 1302)
550 R_PAREN@[1302; 1303)
551 WHITESPACE@[1303; 1304)
552 BLOCK@[1304; 1314)
553 L_CURLY@[1304; 1305)
554 WHITESPACE@[1305; 1306)
555 EXPR_STMT@[1306; 1312)
556 BREAK_EXPR@[1306; 1311)
557 BREAK_KW@[1306; 1311)
558 SEMI@[1311; 1312)
559 WHITESPACE@[1312; 1313)
560 R_CURLY@[1313; 1314)
561 WHITESPACE@[1314; 1319)
562 R_CURLY@[1319; 1320)
563 WHITESPACE@[1320; 1321)
564 R_CURLY@[1321; 1322)
565 WHITESPACE@[1322; 1324)
566 FN_DEF@[1324; 1539)
567 FN_KW@[1324; 1326)
568 WHITESPACE@[1326; 1327)
569 NAME@[1327; 1334)
570 IDENT@[1327; 1334) "notsure"
571 PARAM_LIST@[1334; 1336)
572 L_PAREN@[1334; 1335)
573 R_PAREN@[1335; 1336)
574 WHITESPACE@[1336; 1337)
575 BLOCK@[1337; 1539)
576 L_CURLY@[1337; 1338)
577 WHITESPACE@[1338; 1343)
578 LET_STMT@[1343; 1361)
579 LET_KW@[1343; 1346)
580 WHITESPACE@[1346; 1347)
581 BIND_PAT@[1347; 1353)
582 MUT_KW@[1347; 1350)
583 WHITESPACE@[1350; 1351)
584 NAME@[1351; 1353)
585 IDENT@[1351; 1353) "_x"
586 COLON@[1353; 1354)
587 WHITESPACE@[1354; 1355)
588 PATH_TYPE@[1355; 1360)
589 PATH@[1355; 1360)
590 PATH_SEGMENT@[1355; 1360)
591 NAME_REF@[1355; 1360)
592 IDENT@[1355; 1360) "isize"
593 SEMI@[1360; 1361)
594 WHITESPACE@[1361; 1366)
595 LET_STMT@[1366; 1400)
596 LET_KW@[1366; 1369)
597 WHITESPACE@[1369; 1370)
598 BIND_PAT@[1370; 1376)
599 MUT_KW@[1370; 1373)
600 WHITESPACE@[1373; 1374)
601 NAME@[1374; 1376)
602 IDENT@[1374; 1376) "_y"
603 WHITESPACE@[1376; 1377)
604 EQ@[1377; 1378)
605 WHITESPACE@[1378; 1379)
606 BIN_EXPR@[1379; 1399)
607 PAREN_EXPR@[1379; 1387)
608 L_PAREN@[1379; 1380)
609 BIN_EXPR@[1380; 1386)
610 PATH_EXPR@[1380; 1382)
611 PATH@[1380; 1382)
612 PATH_SEGMENT@[1380; 1382)
613 NAME_REF@[1380; 1382)
614 IDENT@[1380; 1382) "_x"
615 WHITESPACE@[1382; 1383)
616 EQ@[1383; 1384)
617 WHITESPACE@[1384; 1385)
618 LITERAL@[1385; 1386)
619 INT_NUMBER@[1385; 1386) "0"
620 R_PAREN@[1386; 1387)
621 WHITESPACE@[1387; 1388)
622 EQEQ@[1388; 1390)
623 WHITESPACE@[1390; 1391)
624 PAREN_EXPR@[1391; 1399)
625 L_PAREN@[1391; 1392)
626 BIN_EXPR@[1392; 1398)
627 PATH_EXPR@[1392; 1394)
628 PATH@[1392; 1394)
629 PATH_SEGMENT@[1392; 1394)
630 NAME_REF@[1392; 1394)
631 IDENT@[1392; 1394) "_x"
632 WHITESPACE@[1394; 1395)
633 EQ@[1395; 1396)
634 WHITESPACE@[1396; 1397)
635 LITERAL@[1397; 1398)
636 INT_NUMBER@[1397; 1398) "0"
637 R_PAREN@[1398; 1399)
638 SEMI@[1399; 1400)
639 WHITESPACE@[1400; 1405)
640 LET_STMT@[1405; 1438)
641 LET_KW@[1405; 1408)
642 WHITESPACE@[1408; 1409)
643 BIND_PAT@[1409; 1415)
644 MUT_KW@[1409; 1412)
645 WHITESPACE@[1412; 1413)
646 NAME@[1413; 1415)
647 IDENT@[1413; 1415) "_z"
648 WHITESPACE@[1415; 1416)
649 EQ@[1416; 1417)
650 WHITESPACE@[1417; 1418)
651 BIN_EXPR@[1418; 1437)
652 PAREN_EXPR@[1418; 1426)
653 L_PAREN@[1418; 1419)
654 BIN_EXPR@[1419; 1425)
655 PATH_EXPR@[1419; 1421)
656 PATH@[1419; 1421)
657 PATH_SEGMENT@[1419; 1421)
658 NAME_REF@[1419; 1421)
659 IDENT@[1419; 1421) "_x"
660 WHITESPACE@[1421; 1422)
661 EQ@[1422; 1423)
662 WHITESPACE@[1423; 1424)
663 LITERAL@[1424; 1425)
664 INT_NUMBER@[1424; 1425) "0"
665 R_PAREN@[1425; 1426)
666 WHITESPACE@[1426; 1427)
667 L_ANGLE@[1427; 1428)
668 WHITESPACE@[1428; 1429)
669 PAREN_EXPR@[1429; 1437)
670 L_PAREN@[1429; 1430)
671 BIN_EXPR@[1430; 1436)
672 PATH_EXPR@[1430; 1432)
673 PATH@[1430; 1432)
674 PATH_SEGMENT@[1430; 1432)
675 NAME_REF@[1430; 1432)
676 IDENT@[1430; 1432) "_x"
677 WHITESPACE@[1432; 1433)
678 EQ@[1433; 1434)
679 WHITESPACE@[1434; 1435)
680 LITERAL@[1435; 1436)
681 INT_NUMBER@[1435; 1436) "0"
682 R_PAREN@[1436; 1437)
683 SEMI@[1437; 1438)
684 WHITESPACE@[1438; 1443)
685 LET_STMT@[1443; 1474)
686 LET_KW@[1443; 1446)
687 WHITESPACE@[1446; 1447)
688 BIND_PAT@[1447; 1449)
689 NAME@[1447; 1449)
690 IDENT@[1447; 1449) "_a"
691 WHITESPACE@[1449; 1450)
692 EQ@[1450; 1451)
693 WHITESPACE@[1451; 1452)
694 BIN_EXPR@[1452; 1473)
695 PAREN_EXPR@[1452; 1461)
696 L_PAREN@[1452; 1453)
697 BIN_EXPR@[1453; 1460)
698 PATH_EXPR@[1453; 1455)
699 PATH@[1453; 1455)
700 PATH_SEGMENT@[1453; 1455)
701 NAME_REF@[1453; 1455)
702 IDENT@[1453; 1455) "_x"
703 WHITESPACE@[1455; 1456)
704 PLUSEQ@[1456; 1458)
705 WHITESPACE@[1458; 1459)
706 LITERAL@[1459; 1460)
707 INT_NUMBER@[1459; 1460) "0"
708 R_PAREN@[1460; 1461)
709 WHITESPACE@[1461; 1462)
710 EQEQ@[1462; 1464)
711 WHITESPACE@[1464; 1465)
712 PAREN_EXPR@[1465; 1473)
713 L_PAREN@[1465; 1466)
714 BIN_EXPR@[1466; 1472)
715 PATH_EXPR@[1466; 1468)
716 PATH@[1466; 1468)
717 PATH_SEGMENT@[1466; 1468)
718 NAME_REF@[1466; 1468)
719 IDENT@[1466; 1468) "_x"
720 WHITESPACE@[1468; 1469)
721 EQ@[1469; 1470)
722 WHITESPACE@[1470; 1471)
723 LITERAL@[1471; 1472)
724 INT_NUMBER@[1471; 1472) "0"
725 R_PAREN@[1472; 1473)
726 SEMI@[1473; 1474)
727 WHITESPACE@[1474; 1479)
728 LET_STMT@[1479; 1537)
729 LET_KW@[1479; 1482)
730 WHITESPACE@[1482; 1483)
731 BIND_PAT@[1483; 1485)
732 NAME@[1483; 1485)
733 IDENT@[1483; 1485) "_b"
734 WHITESPACE@[1485; 1486)
735 EQ@[1486; 1487)
736 WHITESPACE@[1487; 1488)
737 BIN_EXPR@[1488; 1536)
738 CALL_EXPR@[1488; 1510)
739 PATH_EXPR@[1488; 1492)
740 PATH@[1488; 1492)
741 PATH_SEGMENT@[1488; 1492)
742 NAME_REF@[1488; 1492)
743 IDENT@[1488; 1492) "swap"
744 ARG_LIST@[1492; 1510)
745 L_PAREN@[1492; 1493)
746 REF_EXPR@[1493; 1500)
747 AMP@[1493; 1494)
748 MUT_KW@[1494; 1497)
749 WHITESPACE@[1497; 1498)
750 PATH_EXPR@[1498; 1500)
751 PATH@[1498; 1500)
752 PATH_SEGMENT@[1498; 1500)
753 NAME_REF@[1498; 1500)
754 IDENT@[1498; 1500) "_y"
755 COMMA@[1500; 1501)
756 WHITESPACE@[1501; 1502)
757 REF_EXPR@[1502; 1509)
758 AMP@[1502; 1503)
759 MUT_KW@[1503; 1506)
760 WHITESPACE@[1506; 1507)
761 PATH_EXPR@[1507; 1509)
762 PATH@[1507; 1509)
763 PATH_SEGMENT@[1507; 1509)
764 NAME_REF@[1507; 1509)
765 IDENT@[1507; 1509) "_z"
766 R_PAREN@[1509; 1510)
767 WHITESPACE@[1510; 1511)
768 EQEQ@[1511; 1513)
769 WHITESPACE@[1513; 1514)
770 CALL_EXPR@[1514; 1536)
771 PATH_EXPR@[1514; 1518)
772 PATH@[1514; 1518)
773 PATH_SEGMENT@[1514; 1518)
774 NAME_REF@[1514; 1518)
775 IDENT@[1514; 1518) "swap"
776 ARG_LIST@[1518; 1536)
777 L_PAREN@[1518; 1519)
778 REF_EXPR@[1519; 1526)
779 AMP@[1519; 1520)
780 MUT_KW@[1520; 1523)
781 WHITESPACE@[1523; 1524)
782 PATH_EXPR@[1524; 1526)
783 PATH@[1524; 1526)
784 PATH_SEGMENT@[1524; 1526)
785 NAME_REF@[1524; 1526)
786 IDENT@[1524; 1526) "_y"
787 COMMA@[1526; 1527)
788 WHITESPACE@[1527; 1528)
789 REF_EXPR@[1528; 1535)
790 AMP@[1528; 1529)
791 MUT_KW@[1529; 1532)
792 WHITESPACE@[1532; 1533)
793 PATH_EXPR@[1533; 1535)
794 PATH@[1533; 1535)
795 PATH_SEGMENT@[1533; 1535)
796 NAME_REF@[1533; 1535)
797 IDENT@[1533; 1535) "_z"
798 R_PAREN@[1535; 1536)
799 SEMI@[1536; 1537)
800 WHITESPACE@[1537; 1538)
801 R_CURLY@[1538; 1539)
802 WHITESPACE@[1539; 1541)
803 FN_DEF@[1541; 1741)
804 FN_KW@[1541; 1543)
805 WHITESPACE@[1543; 1544)
806 NAME@[1544; 1557)
807 IDENT@[1544; 1557) "canttouchthis"
808 PARAM_LIST@[1557; 1559)
809 L_PAREN@[1557; 1558)
810 R_PAREN@[1558; 1559)
811 WHITESPACE@[1559; 1560)
812 RET_TYPE@[1560; 1568)
813 THIN_ARROW@[1560; 1562)
814 WHITESPACE@[1562; 1563)
815 PATH_TYPE@[1563; 1568)
816 PATH@[1563; 1568)
817 PATH_SEGMENT@[1563; 1568)
818 NAME_REF@[1563; 1568)
819 IDENT@[1563; 1568) "usize"
820 WHITESPACE@[1568; 1569)
821 BLOCK@[1569; 1741)
822 L_CURLY@[1569; 1570)
823 WHITESPACE@[1570; 1575)
824 FN_DEF@[1575; 1598)
825 FN_KW@[1575; 1577)
826 WHITESPACE@[1577; 1578)
827 NAME@[1578; 1579)
828 IDENT@[1578; 1579) "p"
829 PARAM_LIST@[1579; 1581)
830 L_PAREN@[1579; 1580)
831 R_PAREN@[1580; 1581)
832 WHITESPACE@[1581; 1582)
833 RET_TYPE@[1582; 1589)
834 THIN_ARROW@[1582; 1584)
835 WHITESPACE@[1584; 1585)
836 PATH_TYPE@[1585; 1589)
837 PATH@[1585; 1589)
838 PATH_SEGMENT@[1585; 1589)
839 NAME_REF@[1585; 1589)
840 IDENT@[1585; 1589) "bool"
841 WHITESPACE@[1589; 1590)
842 BLOCK@[1590; 1598)
843 L_CURLY@[1590; 1591)
844 WHITESPACE@[1591; 1592)
845 LITERAL@[1592; 1596)
846 TRUE_KW@[1592; 1596)
847 WHITESPACE@[1596; 1597)
848 R_CURLY@[1597; 1598)
849 WHITESPACE@[1598; 1603)
850 LET_STMT@[1603; 1648)
851 LET_KW@[1603; 1606)
852 WHITESPACE@[1606; 1607)
853 BIND_PAT@[1607; 1609)
854 NAME@[1607; 1609)
855 IDENT@[1607; 1609) "_a"
856 WHITESPACE@[1609; 1610)
857 EQ@[1610; 1611)
858 WHITESPACE@[1611; 1612)
859 PAREN_EXPR@[1612; 1647)
860 L_PAREN@[1612; 1613)
861 BIN_EXPR@[1613; 1646)
862 MACRO_CALL@[1613; 1628)
863 PATH@[1613; 1619)
864 PATH_SEGMENT@[1613; 1619)
865 NAME_REF@[1613; 1619)
866 IDENT@[1613; 1619) "assert"
867 EXCL@[1619; 1620)
868 TOKEN_TREE@[1620; 1628)
869 L_PAREN@[1620; 1621)
870 TOKEN_TREE@[1621; 1627)
871 L_PAREN@[1621; 1622)
872 TRUE_KW@[1622; 1626)
873 R_PAREN@[1626; 1627)
874 R_PAREN@[1627; 1628)
875 WHITESPACE@[1628; 1629)
876 EQEQ@[1629; 1631)
877 WHITESPACE@[1631; 1632)
878 PAREN_EXPR@[1632; 1646)
879 L_PAREN@[1632; 1633)
880 MACRO_CALL@[1633; 1645)
881 PATH@[1633; 1639)
882 PATH_SEGMENT@[1633; 1639)
883 NAME_REF@[1633; 1639)
884 IDENT@[1633; 1639) "assert"
885 EXCL@[1639; 1640)
886 TOKEN_TREE@[1640; 1645)
887 L_PAREN@[1640; 1641)
888 IDENT@[1641; 1642) "p"
889 TOKEN_TREE@[1642; 1644)
890 L_PAREN@[1642; 1643)
891 R_PAREN@[1643; 1644)
892 R_PAREN@[1644; 1645)
893 R_PAREN@[1645; 1646)
894 R_PAREN@[1646; 1647)
895 SEMI@[1647; 1648)
896 WHITESPACE@[1648; 1653)
897 LET_STMT@[1653; 1685)
898 LET_KW@[1653; 1656)
899 WHITESPACE@[1656; 1657)
900 BIND_PAT@[1657; 1659)
901 NAME@[1657; 1659)
902 IDENT@[1657; 1659) "_c"
903 WHITESPACE@[1659; 1660)
904 EQ@[1660; 1661)
905 WHITESPACE@[1661; 1662)
906 PAREN_EXPR@[1662; 1684)
907 L_PAREN@[1662; 1663)
908 BIN_EXPR@[1663; 1683)
909 MACRO_CALL@[1663; 1677)
910 PATH@[1663; 1669)
911 PATH_SEGMENT@[1663; 1669)
912 NAME_REF@[1663; 1669)
913 IDENT@[1663; 1669) "assert"
914 EXCL@[1669; 1670)
915 TOKEN_TREE@[1670; 1677)
916 L_PAREN@[1670; 1671)
917 TOKEN_TREE@[1671; 1676)
918 L_PAREN@[1671; 1672)
919 IDENT@[1672; 1673) "p"
920 TOKEN_TREE@[1673; 1675)
921 L_PAREN@[1673; 1674)
922 R_PAREN@[1674; 1675)
923 R_PAREN@[1675; 1676)
924 R_PAREN@[1676; 1677)
925 WHITESPACE@[1677; 1678)
926 EQEQ@[1678; 1680)
927 WHITESPACE@[1680; 1681)
928 TUPLE_EXPR@[1681; 1683)
929 L_PAREN@[1681; 1682)
930 R_PAREN@[1682; 1683)
931 R_PAREN@[1683; 1684)
932 SEMI@[1684; 1685)
933 WHITESPACE@[1685; 1690)
934 LET_STMT@[1690; 1739)
935 LET_KW@[1690; 1693)
936 WHITESPACE@[1693; 1694)
937 BIND_PAT@[1694; 1696)
938 NAME@[1694; 1696)
939 IDENT@[1694; 1696) "_b"
940 COLON@[1696; 1697)
941 WHITESPACE@[1697; 1698)
942 PATH_TYPE@[1698; 1702)
943 PATH@[1698; 1702)
944 PATH_SEGMENT@[1698; 1702)
945 NAME_REF@[1698; 1702)
946 IDENT@[1698; 1702) "bool"
947 WHITESPACE@[1702; 1703)
948 EQ@[1703; 1704)
949 WHITESPACE@[1704; 1705)
950 PAREN_EXPR@[1705; 1738)
951 L_PAREN@[1705; 1706)
952 BIN_EXPR@[1706; 1737)
953 MACRO_CALL@[1706; 1723)
954 PATH@[1706; 1713)
955 PATH_SEGMENT@[1706; 1713)
956 NAME_REF@[1706; 1713)
957 IDENT@[1706; 1713) "println"
958 EXCL@[1713; 1714)
959 TOKEN_TREE@[1714; 1723)
960 L_PAREN@[1714; 1715)
961 STRING@[1715; 1719)
962 COMMA@[1719; 1720)
963 WHITESPACE@[1720; 1721)
964 INT_NUMBER@[1721; 1722) "0"
965 R_PAREN@[1722; 1723)
966 WHITESPACE@[1723; 1724)
967 EQEQ@[1724; 1726)
968 WHITESPACE@[1726; 1727)
969 PAREN_EXPR@[1727; 1737)
970 L_PAREN@[1727; 1728)
971 RETURN_EXPR@[1728; 1736)
972 RETURN_KW@[1728; 1734)
973 WHITESPACE@[1734; 1735)
974 LITERAL@[1735; 1736)
975 INT_NUMBER@[1735; 1736) "0"
976 R_PAREN@[1736; 1737)
977 R_PAREN@[1737; 1738)
978 SEMI@[1738; 1739)
979 WHITESPACE@[1739; 1740)
980 R_CURLY@[1740; 1741)
981 WHITESPACE@[1741; 1743)
982 FN_DEF@[1743; 1904)
983 FN_KW@[1743; 1745)
984 WHITESPACE@[1745; 1746)
985 NAME@[1746; 1755)
986 IDENT@[1746; 1755) "angrydome"
987 PARAM_LIST@[1755; 1757)
988 L_PAREN@[1755; 1756)
989 R_PAREN@[1756; 1757)
990 WHITESPACE@[1757; 1758)
991 BLOCK@[1758; 1904)
992 L_CURLY@[1758; 1759)
993 WHITESPACE@[1759; 1764)
994 EXPR_STMT@[1764; 1785)
995 LOOP_EXPR@[1764; 1785)
996 LOOP_KW@[1764; 1768)
997 WHITESPACE@[1768; 1769)
998 BLOCK@[1769; 1785)
999 L_CURLY@[1769; 1770)
1000 WHITESPACE@[1770; 1771)
1001 IF_EXPR@[1771; 1783)
1002 IF_KW@[1771; 1773)
1003 WHITESPACE@[1773; 1774)
1004 CONDITION@[1774; 1779)
1005 BREAK_EXPR@[1774; 1779)
1006 BREAK_KW@[1774; 1779)
1007 WHITESPACE@[1779; 1780)
1008 BLOCK@[1780; 1783)
1009 L_CURLY@[1780; 1781)
1010 WHITESPACE@[1781; 1782)
1011 R_CURLY@[1782; 1783)
1012 WHITESPACE@[1783; 1784)
1013 R_CURLY@[1784; 1785)
1014 WHITESPACE@[1785; 1790)
1015 LET_STMT@[1790; 1804)
1016 LET_KW@[1790; 1793)
1017 WHITESPACE@[1793; 1794)
1018 BIND_PAT@[1794; 1799)
1019 MUT_KW@[1794; 1797)
1020 WHITESPACE@[1797; 1798)
1021 NAME@[1798; 1799)
1022 IDENT@[1798; 1799) "i"
1023 WHITESPACE@[1799; 1800)
1024 EQ@[1800; 1801)
1025 WHITESPACE@[1801; 1802)
1026 LITERAL@[1802; 1803)
1027 INT_NUMBER@[1802; 1803) "0"
1028 SEMI@[1803; 1804)
1029 WHITESPACE@[1804; 1809)
1030 LOOP_EXPR@[1809; 1902)
1031 LOOP_KW@[1809; 1813)
1032 WHITESPACE@[1813; 1814)
1033 BLOCK@[1814; 1902)
1034 L_CURLY@[1814; 1815)
1035 WHITESPACE@[1815; 1816)
1036 EXPR_STMT@[1816; 1823)
1037 BIN_EXPR@[1816; 1822)
1038 PATH_EXPR@[1816; 1817)
1039 PATH@[1816; 1817)
1040 PATH_SEGMENT@[1816; 1817)
1041 NAME_REF@[1816; 1817)
1042 IDENT@[1816; 1817) "i"
1043 WHITESPACE@[1817; 1818)
1044 PLUSEQ@[1818; 1820)
1045 WHITESPACE@[1820; 1821)
1046 LITERAL@[1821; 1822)
1047 INT_NUMBER@[1821; 1822) "1"
1048 SEMI@[1822; 1823)
1049 WHITESPACE@[1823; 1824)
1050 EXPR_STMT@[1824; 1887)
1051 IF_EXPR@[1824; 1887)
1052 IF_KW@[1824; 1826)
1053 WHITESPACE@[1826; 1827)
1054 CONDITION@[1827; 1833)
1055 BIN_EXPR@[1827; 1833)
1056 PATH_EXPR@[1827; 1828)
1057 PATH@[1827; 1828)
1058 PATH_SEGMENT@[1827; 1828)
1059 NAME_REF@[1827; 1828)
1060 IDENT@[1827; 1828) "i"
1061 WHITESPACE@[1828; 1829)
1062 EQEQ@[1829; 1831)
1063 WHITESPACE@[1831; 1832)
1064 LITERAL@[1832; 1833)
1065 INT_NUMBER@[1832; 1833) "1"
1066 WHITESPACE@[1833; 1834)
1067 BLOCK@[1834; 1887)
1068 L_CURLY@[1834; 1835)
1069 WHITESPACE@[1835; 1836)
1070 MATCH_EXPR@[1836; 1885)
1071 MATCH_KW@[1836; 1841)
1072 WHITESPACE@[1841; 1842)
1073 PAREN_EXPR@[1842; 1852)
1074 L_PAREN@[1842; 1843)
1075 CONTINUE_EXPR@[1843; 1851)
1076 CONTINUE_KW@[1843; 1851)
1077 R_PAREN@[1851; 1852)
1078 WHITESPACE@[1852; 1853)
1079 MATCH_ARM_LIST@[1853; 1885)
1080 L_CURLY@[1853; 1854)
1081 WHITESPACE@[1854; 1855)
1082 MATCH_ARM@[1855; 1863)
1083 LITERAL@[1855; 1856)
1084 INT_NUMBER@[1855; 1856) "1"
1085 WHITESPACE@[1856; 1857)
1086 FAT_ARROW@[1857; 1859)
1087 WHITESPACE@[1859; 1860)
1088 BLOCK_EXPR@[1860; 1863)
1089 BLOCK@[1860; 1863)
1090 L_CURLY@[1860; 1861)
1091 WHITESPACE@[1861; 1862)
1092 R_CURLY@[1862; 1863)
1093 COMMA@[1863; 1864)
1094 WHITESPACE@[1864; 1865)
1095 MATCH_ARM@[1865; 1883)
1096 PLACEHOLDER_PAT@[1865; 1866)
1097 UNDERSCORE@[1865; 1866)
1098 WHITESPACE@[1866; 1867)
1099 FAT_ARROW@[1867; 1869)
1100 WHITESPACE@[1869; 1870)
1101 MACRO_CALL@[1870; 1883)
1102 PATH@[1870; 1875)
1103 PATH_SEGMENT@[1870; 1875)
1104 NAME_REF@[1870; 1875)
1105 IDENT@[1870; 1875) "panic"
1106 EXCL@[1875; 1876)
1107 TOKEN_TREE@[1876; 1883)
1108 L_PAREN@[1876; 1877)
1109 STRING@[1877; 1882)
1110 R_PAREN@[1882; 1883)
1111 WHITESPACE@[1883; 1884)
1112 R_CURLY@[1884; 1885)
1113 WHITESPACE@[1885; 1886)
1114 R_CURLY@[1886; 1887)
1115 WHITESPACE@[1887; 1894)
1116 EXPR_STMT@[1894; 1900)
1117 BREAK_EXPR@[1894; 1899)
1118 BREAK_KW@[1894; 1899)
1119 SEMI@[1899; 1900)
1120 WHITESPACE@[1900; 1901)
1121 R_CURLY@[1901; 1902)
1122 WHITESPACE@[1902; 1903)
1123 R_CURLY@[1903; 1904)
1124 WHITESPACE@[1904; 1906)
1125 FN_DEF@[1906; 1960)
1126 FN_KW@[1906; 1908)
1127 WHITESPACE@[1908; 1909)
1128 NAME@[1909; 1921)
1129 IDENT@[1909; 1921) "evil_lincoln"
1130 PARAM_LIST@[1921; 1923)
1131 L_PAREN@[1921; 1922)
1132 R_PAREN@[1922; 1923)
1133 WHITESPACE@[1923; 1924)
1134 BLOCK@[1924; 1960)
1135 L_CURLY@[1924; 1925)
1136 WHITESPACE@[1925; 1926)
1137 LET_STMT@[1926; 1958)
1138 LET_KW@[1926; 1929)
1139 WHITESPACE@[1929; 1930)
1140 BIND_PAT@[1930; 1935)
1141 NAME@[1930; 1935)
1142 IDENT@[1930; 1935) "_evil"
1143 WHITESPACE@[1935; 1936)
1144 EQ@[1936; 1937)
1145 WHITESPACE@[1937; 1938)
1146 MACRO_CALL@[1938; 1957)
1147 PATH@[1938; 1945)
1148 PATH_SEGMENT@[1938; 1945)
1149 NAME_REF@[1938; 1945)
1150 IDENT@[1938; 1945) "println"
1151 EXCL@[1945; 1946)
1152 TOKEN_TREE@[1946; 1957)
1153 L_PAREN@[1946; 1947)
1154 STRING@[1947; 1956)
1155 R_PAREN@[1956; 1957)
1156 SEMI@[1957; 1958)
1157 WHITESPACE@[1958; 1959)
1158 R_CURLY@[1959; 1960)
1159 WHITESPACE@[1960; 1962)
1160 FN_DEF@[1962; 2198)
1161 FN_KW@[1962; 1964)
1162 WHITESPACE@[1964; 1965)
1163 NAME@[1965; 1969)
1164 IDENT@[1965; 1969) "dots"
1165 PARAM_LIST@[1969; 1971)
1166 L_PAREN@[1969; 1970)
1167 R_PAREN@[1970; 1971)
1168 WHITESPACE@[1971; 1972)
1169 BLOCK@[1972; 2198)
1170 L_CURLY@[1972; 1973)
1171 WHITESPACE@[1973; 1978)
1172 EXPR_STMT@[1978; 2196)
1173 MACRO_CALL@[1978; 2195)
1174 PATH@[1978; 1987)
1175 PATH_SEGMENT@[1978; 1987)
1176 NAME_REF@[1978; 1987)
1177 IDENT@[1978; 1987) "assert_eq"
1178 EXCL@[1987; 1988)
1179 TOKEN_TREE@[1988; 2195)
1180 L_PAREN@[1988; 1989)
1181 IDENT@[1989; 1995) "String"
1182 COLONCOLON@[1995; 1997)
1183 IDENT@[1997; 2001) "from"
1184 TOKEN_TREE@[2001; 2055)
1185 L_PAREN@[2001; 2002)
1186 STRING@[2002; 2054)
1187 R_PAREN@[2054; 2055)
1188 COMMA@[2055; 2056)
1189 WHITESPACE@[2056; 2072)
1190 IDENT@[2072; 2078) "format"
1191 EXCL@[2078; 2079)
1192 TOKEN_TREE@[2079; 2194)
1193 L_PAREN@[2079; 2080)
1194 STRING@[2080; 2086)
1195 COMMA@[2086; 2087)
1196 WHITESPACE@[2087; 2088)
1197 DOTDOT@[2088; 2090)
1198 WHITESPACE@[2090; 2091)
1199 DOTDOT@[2091; 2093)
1200 WHITESPACE@[2093; 2094)
1201 DOTDOT@[2094; 2096)
1202 WHITESPACE@[2096; 2097)
1203 DOTDOT@[2097; 2099)
1204 WHITESPACE@[2099; 2100)
1205 DOTDOT@[2100; 2102)
1206 WHITESPACE@[2102; 2103)
1207 DOTDOT@[2103; 2105)
1208 WHITESPACE@[2105; 2106)
1209 DOTDOT@[2106; 2108)
1210 WHITESPACE@[2108; 2109)
1211 DOTDOT@[2109; 2111)
1212 WHITESPACE@[2111; 2112)
1213 DOTDOT@[2112; 2114)
1214 WHITESPACE@[2114; 2115)
1215 DOTDOT@[2115; 2117)
1216 WHITESPACE@[2117; 2118)
1217 DOTDOT@[2118; 2120)
1218 WHITESPACE@[2120; 2121)
1219 DOTDOT@[2121; 2123)
1220 WHITESPACE@[2123; 2124)
1221 DOTDOT@[2124; 2126)
1222 WHITESPACE@[2126; 2158)
1223 DOTDOT@[2158; 2160)
1224 WHITESPACE@[2160; 2161)
1225 DOTDOT@[2161; 2163)
1226 WHITESPACE@[2163; 2164)
1227 DOTDOT@[2164; 2166)
1228 WHITESPACE@[2166; 2167)
1229 DOTDOT@[2167; 2169)
1230 WHITESPACE@[2169; 2170)
1231 DOTDOT@[2170; 2172)
1232 WHITESPACE@[2172; 2173)
1233 DOTDOT@[2173; 2175)
1234 WHITESPACE@[2175; 2176)
1235 DOTDOT@[2176; 2178)
1236 WHITESPACE@[2178; 2179)
1237 DOTDOT@[2179; 2181)
1238 WHITESPACE@[2181; 2182)
1239 DOTDOT@[2182; 2184)
1240 WHITESPACE@[2184; 2185)
1241 DOTDOT@[2185; 2187)
1242 WHITESPACE@[2187; 2188)
1243 DOTDOT@[2188; 2190)
1244 WHITESPACE@[2190; 2191)
1245 DOTDOT@[2191; 2193)
1246 R_PAREN@[2193; 2194)
1247 R_PAREN@[2194; 2195)
1248 SEMI@[2195; 2196)
1249 WHITESPACE@[2196; 2197)
1250 R_CURLY@[2197; 2198)
1251 WHITESPACE@[2198; 2200)
1252 FN_DEF@[2200; 2693)
1253 FN_KW@[2200; 2202)
1254 WHITESPACE@[2202; 2203)
1255 NAME@[2203; 2205)
1256 IDENT@[2203; 2205) "u8"
1257 PARAM_LIST@[2205; 2213)
1258 L_PAREN@[2205; 2206)
1259 PARAM@[2206; 2212)
1260 BIND_PAT@[2206; 2208)
1261 NAME@[2206; 2208)
1262 IDENT@[2206; 2208) "u8"
1263 COLON@[2208; 2209)
1264 WHITESPACE@[2209; 2210)
1265 PATH_TYPE@[2210; 2212)
1266 PATH@[2210; 2212)
1267 PATH_SEGMENT@[2210; 2212)
1268 NAME_REF@[2210; 2212)
1269 IDENT@[2210; 2212) "u8"
1270 R_PAREN@[2212; 2213)
1271 WHITESPACE@[2213; 2214)
1272 BLOCK@[2214; 2693)
1273 L_CURLY@[2214; 2215)
1274 WHITESPACE@[2215; 2220)
1275 IF_EXPR@[2220; 2691)
1276 IF_KW@[2220; 2222)
1277 WHITESPACE@[2222; 2223)
1278 CONDITION@[2223; 2232)
1279 BIN_EXPR@[2223; 2232)
1280 PATH_EXPR@[2223; 2225)
1281 PATH@[2223; 2225)
1282 PATH_SEGMENT@[2223; 2225)
1283 NAME_REF@[2223; 2225)
1284 IDENT@[2223; 2225) "u8"
1285 WHITESPACE@[2225; 2226)
1286 NEQ@[2226; 2228)
1287 WHITESPACE@[2228; 2229)
1288 LITERAL@[2229; 2232)
1289 INT_NUMBER@[2229; 2232) "0u8"
1290 WHITESPACE@[2232; 2233)
1291 BLOCK@[2233; 2691)
1292 L_CURLY@[2233; 2234)
1293 WHITESPACE@[2234; 2243)
1294 EXPR_STMT@[2243; 2685)
1295 MACRO_CALL@[2243; 2684)
1296 PATH@[2243; 2252)
1297 PATH_SEGMENT@[2243; 2252)
1298 NAME_REF@[2243; 2252)
1299 IDENT@[2243; 2252) "assert_eq"
1300 EXCL@[2252; 2253)
1301 TOKEN_TREE@[2253; 2684)
1302 L_PAREN@[2253; 2254)
1303 INT_NUMBER@[2254; 2257) "8u8"
1304 COMMA@[2257; 2258)
1305 WHITESPACE@[2258; 2259)
1306 TOKEN_TREE@[2259; 2683)
1307 L_CURLY@[2259; 2260)
1308 WHITESPACE@[2260; 2273)
1309 IDENT@[2273; 2284) "macro_rules"
1310 EXCL@[2284; 2285)
1311 WHITESPACE@[2285; 2286)
1312 IDENT@[2286; 2288) "u8"
1313 WHITESPACE@[2288; 2289)
1314 TOKEN_TREE@[2289; 2567)
1315 L_CURLY@[2289; 2290)
1316 WHITESPACE@[2290; 2307)
1317 TOKEN_TREE@[2307; 2311)
1318 L_PAREN@[2307; 2308)
1319 IDENT@[2308; 2310) "u8"
1320 R_PAREN@[2310; 2311)
1321 WHITESPACE@[2311; 2312)
1322 FAT_ARROW@[2312; 2314)
1323 WHITESPACE@[2314; 2315)
1324 TOKEN_TREE@[2315; 2552)
1325 L_CURLY@[2315; 2316)
1326 WHITESPACE@[2316; 2337)
1327 MOD_KW@[2337; 2340)
1328 WHITESPACE@[2340; 2341)
1329 IDENT@[2341; 2343) "u8"
1330 WHITESPACE@[2343; 2344)
1331 TOKEN_TREE@[2344; 2534)
1332 L_CURLY@[2344; 2345)
1333 WHITESPACE@[2345; 2370)
1334 PUB_KW@[2370; 2373)
1335 WHITESPACE@[2373; 2374)
1336 FN_KW@[2374; 2376)
1337 WHITESPACE@[2376; 2377)
1338 IDENT@[2377; 2379) "u8"
1339 L_ANGLE@[2379; 2380)
1340 LIFETIME@[2380; 2383) "'u8"
1341 COLON@[2383; 2384)
1342 WHITESPACE@[2384; 2385)
1343 LIFETIME@[2385; 2388) "'u8"
1344 WHITESPACE@[2388; 2389)
1345 PLUS@[2389; 2390)
1346 WHITESPACE@[2390; 2391)
1347 LIFETIME@[2391; 2394) "'u8"
1348 R_ANGLE@[2394; 2395)
1349 TOKEN_TREE@[2395; 2408)
1350 L_PAREN@[2395; 2396)
1351 IDENT@[2396; 2398) "u8"
1352 COLON@[2398; 2399)
1353 WHITESPACE@[2399; 2400)
1354 AMP@[2400; 2401)
1355 LIFETIME@[2401; 2404) "'u8"
1356 WHITESPACE@[2404; 2405)
1357 IDENT@[2405; 2407) "u8"
1358 R_PAREN@[2407; 2408)
1359 WHITESPACE@[2408; 2409)
1360 THIN_ARROW@[2409; 2411)
1361 WHITESPACE@[2411; 2412)
1362 AMP@[2412; 2413)
1363 LIFETIME@[2413; 2416) "'u8"
1364 WHITESPACE@[2416; 2417)
1365 IDENT@[2417; 2419) "u8"
1366 WHITESPACE@[2419; 2420)
1367 TOKEN_TREE@[2420; 2512)
1368 L_CURLY@[2420; 2421)
1369 WHITESPACE@[2421; 2450)
1370 STRING@[2450; 2454)
1371 SEMI@[2454; 2455)
1372 WHITESPACE@[2455; 2484)
1373 IDENT@[2484; 2486) "u8"
1374 WHITESPACE@[2486; 2511)
1375 R_CURLY@[2511; 2512)
1376 WHITESPACE@[2512; 2533)
1377 R_CURLY@[2533; 2534)
1378 WHITESPACE@[2534; 2551)
1379 R_CURLY@[2551; 2552)
1380 SEMI@[2552; 2553)
1381 WHITESPACE@[2553; 2566)
1382 R_CURLY@[2566; 2567)
1383 WHITESPACE@[2567; 2581)
1384 IDENT@[2581; 2583) "u8"
1385 EXCL@[2583; 2584)
1386 TOKEN_TREE@[2584; 2588)
1387 L_PAREN@[2584; 2585)
1388 IDENT@[2585; 2587) "u8"
1389 R_PAREN@[2587; 2588)
1390 SEMI@[2588; 2589)
1391 WHITESPACE@[2589; 2602)
1392 LET_KW@[2602; 2605)
1393 WHITESPACE@[2605; 2606)
1394 AMP@[2606; 2607)
1395 IDENT@[2607; 2609) "u8"
1396 COLON@[2609; 2610)
1397 WHITESPACE@[2610; 2611)
1398 AMP@[2611; 2612)
1399 IDENT@[2612; 2614) "u8"
1400 WHITESPACE@[2614; 2615)
1401 EQ@[2615; 2616)
1402 WHITESPACE@[2616; 2617)
1403 IDENT@[2617; 2619) "u8"
1404 COLONCOLON@[2619; 2621)
1405 IDENT@[2621; 2623) "u8"
1406 TOKEN_TREE@[2623; 2629)
1407 L_PAREN@[2623; 2624)
1408 AMP@[2624; 2625)
1409 INT_NUMBER@[2625; 2628) "8u8"
1410 R_PAREN@[2628; 2629)
1411 SEMI@[2629; 2630)
1412 WHITESPACE@[2630; 2643)
1413 CRATE_KW@[2643; 2648)
1414 COLONCOLON@[2648; 2650)
1415 IDENT@[2650; 2652) "u8"
1416 TOKEN_TREE@[2652; 2657)
1417 L_PAREN@[2652; 2653)
1418 INT_NUMBER@[2653; 2656) "0u8"
1419 R_PAREN@[2656; 2657)
1420 SEMI@[2657; 2658)
1421 WHITESPACE@[2658; 2671)
1422 IDENT@[2671; 2673) "u8"
1423 WHITESPACE@[2673; 2682)
1424 R_CURLY@[2682; 2683)
1425 R_PAREN@[2683; 2684)
1426 SEMI@[2684; 2685)
1427 WHITESPACE@[2685; 2690)
1428 R_CURLY@[2690; 2691)
1429 WHITESPACE@[2691; 2692)
1430 R_CURLY@[2692; 2693)
1431 WHITESPACE@[2693; 2695)
1432 FN_DEF@[2695; 2832)
1433 FN_KW@[2695; 2697)
1434 WHITESPACE@[2697; 2698)
1435 NAME@[2698; 2703)
1436 IDENT@[2698; 2703) "fishy"
1437 PARAM_LIST@[2703; 2705)
1438 L_PAREN@[2703; 2704)
1439 R_PAREN@[2704; 2705)
1440 WHITESPACE@[2705; 2706)
1441 BLOCK@[2706; 2832)
1442 L_CURLY@[2706; 2707)
1443 WHITESPACE@[2707; 2712)
1444 EXPR_STMT@[2712; 2830)
1445 MACRO_CALL@[2712; 2829)
1446 PATH@[2712; 2721)
1447 PATH_SEGMENT@[2712; 2721)
1448 NAME_REF@[2712; 2721)
1449 IDENT@[2712; 2721) "assert_eq"
1450 EXCL@[2721; 2722)
1451 TOKEN_TREE@[2722; 2829)
1452 L_PAREN@[2722; 2723)
1453 IDENT@[2723; 2729) "String"
1454 COLONCOLON@[2729; 2731)
1455 IDENT@[2731; 2735) "from"
1456 TOKEN_TREE@[2735; 2742)
1457 L_PAREN@[2735; 2736)
1458 STRING@[2736; 2741)
1459 R_PAREN@[2741; 2742)
1460 COMMA@[2742; 2743)
1461 WHITESPACE@[2743; 2759)
1462 IDENT@[2759; 2765) "String"
1463 COLONCOLON@[2765; 2767)
1464 L_ANGLE@[2767; 2768)
1465 R_ANGLE@[2768; 2769)
1466 COLONCOLON@[2769; 2771)
1467 IDENT@[2771; 2775) "from"
1468 COLONCOLON@[2775; 2777)
1469 L_ANGLE@[2777; 2778)
1470 R_ANGLE@[2778; 2779)
1471 TOKEN_TREE@[2779; 2786)
1472 L_PAREN@[2779; 2780)
1473 STRING@[2780; 2785)
1474 R_PAREN@[2785; 2786)
1475 DOT@[2786; 2787)
1476 IDENT@[2787; 2792) "chars"
1477 COLONCOLON@[2792; 2794)
1478 L_ANGLE@[2794; 2795)
1479 R_ANGLE@[2795; 2796)
1480 TOKEN_TREE@[2796; 2798)
1481 L_PAREN@[2796; 2797)
1482 R_PAREN@[2797; 2798)
1483 DOT@[2798; 2799)
1484 IDENT@[2799; 2802) "rev"
1485 COLONCOLON@[2802; 2804)
1486 L_ANGLE@[2804; 2805)
1487 R_ANGLE@[2805; 2806)
1488 TOKEN_TREE@[2806; 2808)
1489 L_PAREN@[2806; 2807)
1490 R_PAREN@[2807; 2808)
1491 DOT@[2808; 2809)
1492 IDENT@[2809; 2816) "collect"
1493 COLONCOLON@[2816; 2818)
1494 L_ANGLE@[2818; 2819)
1495 IDENT@[2819; 2825) "String"
1496 R_ANGLE@[2825; 2826)
1497 TOKEN_TREE@[2826; 2828)
1498 L_PAREN@[2826; 2827)
1499 R_PAREN@[2827; 2828)
1500 R_PAREN@[2828; 2829)
1501 SEMI@[2829; 2830)
1502 WHITESPACE@[2830; 2831)
1503 R_CURLY@[2831; 2832)
1504 WHITESPACE@[2832; 2834)
1505 FN_DEF@[2834; 2906)
1506 FN_KW@[2834; 2836)
1507 WHITESPACE@[2836; 2837)
1508 NAME@[2837; 2842)
1509 IDENT@[2837; 2842) "union"
1510 PARAM_LIST@[2842; 2844)
1511 L_PAREN@[2842; 2843)
1512 R_PAREN@[2843; 2844)
1513 WHITESPACE@[2844; 2845)
1514 BLOCK@[2845; 2906)
1515 L_CURLY@[2845; 2846)
1516 WHITESPACE@[2846; 2851)
1517 STRUCT_DEF@[2851; 2904)
1518 UNION_KW@[2851; 2856)
1519 WHITESPACE@[2856; 2857)
1520 NAME@[2857; 2862)
1521 IDENT@[2857; 2862) "union"
1522 TYPE_PARAM_LIST@[2862; 2870)
1523 L_ANGLE@[2862; 2863)
1524 LIFETIME_PARAM@[2863; 2869)
1525 LIFETIME@[2863; 2869) "'union"
1526 R_ANGLE@[2869; 2870)
1527 WHITESPACE@[2870; 2871)
1528 NAMED_FIELD_DEF_LIST@[2871; 2904)
1529 L_CURLY@[2871; 2872)
1530 WHITESPACE@[2872; 2873)
1531 NAMED_FIELD_DEF@[2873; 2901)
1532 NAME@[2873; 2878)
1533 IDENT@[2873; 2878) "union"
1534 COLON@[2878; 2879)
1535 WHITESPACE@[2879; 2880)
1536 REFERENCE_TYPE@[2880; 2901)
1537 AMP@[2880; 2881)
1538 LIFETIME@[2881; 2887) "'union"
1539 WHITESPACE@[2887; 2888)
1540 PATH_TYPE@[2888; 2901)
1541 PATH@[2888; 2901)
1542 PATH_SEGMENT@[2888; 2901)
1543 NAME_REF@[2888; 2893)
1544 IDENT@[2888; 2893) "union"
1545 TYPE_ARG_LIST@[2893; 2901)
1546 L_ANGLE@[2893; 2894)
1547 LIFETIME_ARG@[2894; 2900)
1548 LIFETIME@[2894; 2900) "'union"
1549 R_ANGLE@[2900; 2901)
1550 COMMA@[2901; 2902)
1551 WHITESPACE@[2902; 2903)
1552 R_CURLY@[2903; 2904)
1553 WHITESPACE@[2904; 2905)
1554 R_CURLY@[2905; 2906)
1555 WHITESPACE@[2906; 2908)
1556 FN_DEF@[2908; 3042)
1557 FN_KW@[2908; 2910)
1558 WHITESPACE@[2910; 2911)
1559 NAME@[2911; 2929)
1560 IDENT@[2911; 2929) "special_characters"
1561 PARAM_LIST@[2929; 2931)
1562 L_PAREN@[2929; 2930)
1563 R_PAREN@[2930; 2931)
1564 WHITESPACE@[2931; 2932)
1565 BLOCK@[2932; 3042)
1566 L_CURLY@[2932; 2933)
1567 WHITESPACE@[2933; 2938)
1568 LET_STMT@[2938; 3021)
1569 LET_KW@[2938; 2941)
1570 WHITESPACE@[2941; 2942)
1571 BIND_PAT@[2942; 2945)
1572 NAME@[2942; 2945)
1573 IDENT@[2942; 2945) "val"
1574 WHITESPACE@[2945; 2946)
1575 EQ@[2946; 2947)
1576 WHITESPACE@[2947; 2948)
1577 PREFIX_EXPR@[2948; 3013)
1578 EXCL@[2948; 2949)
1579 PAREN_EXPR@[2949; 3013)
1580 L_PAREN@[2949; 2950)
1581 BIN_EXPR@[2950; 3012)
1582 CALL_EXPR@[2950; 2995)
1583 PAREN_EXPR@[2950; 2971)
1584 L_PAREN@[2950; 2951)
1585 LAMBDA_EXPR@[2951; 2970)
1586 PARAM_LIST@[2951; 2968)
1587 PIPE@[2951; 2952)
1588 PARAM@[2952; 2962)
1589 TUPLE_PAT@[2952; 2956)
1590 L_PAREN@[2952; 2953)
1591 DOTDOT@[2953; 2955)
1592 R_PAREN@[2955; 2956)
1593 COLON@[2956; 2957)
1594 TUPLE_TYPE@[2957; 2962)
1595 L_PAREN@[2957; 2958)
1596 PLACEHOLDER_TYPE@[2958; 2959)
1597 UNDERSCORE@[2958; 2959)
1598 COMMA@[2959; 2960)
1599 PLACEHOLDER_TYPE@[2960; 2961)
1600 UNDERSCORE@[2960; 2961)
1601 R_PAREN@[2961; 2962)
1602 COMMA@[2962; 2963)
1603 PARAM@[2963; 2967)
1604 BIND_PAT@[2963; 2967)
1605 NAME@[2963; 2965)
1606 IDENT@[2963; 2965) "__"
1607 AT@[2965; 2966)
1608 PLACEHOLDER_PAT@[2966; 2967)
1609 UNDERSCORE@[2966; 2967)
1610 PIPE@[2967; 2968)
1611 PATH_EXPR@[2968; 2970)
1612 PATH@[2968; 2970)
1613 PATH_SEGMENT@[2968; 2970)
1614 NAME_REF@[2968; 2970)
1615 IDENT@[2968; 2970) "__"
1616 R_PAREN@[2970; 2971)
1617 ARG_LIST@[2971; 2995)
1618 L_PAREN@[2971; 2972)
1619 TUPLE_EXPR@[2972; 2987)
1620 L_PAREN@[2972; 2973)
1621 REF_EXPR@[2973; 2979)
1622 AMP@[2973; 2974)
1623 PREFIX_EXPR@[2974; 2979)
1624 STAR@[2974; 2975)
1625 LITERAL@[2975; 2979)
1626 STRING@[2975; 2979)
1627 COMMA@[2979; 2980)
1628 LITERAL@[2980; 2986)
1629 CHAR@[2980; 2986)
1630 R_PAREN@[2986; 2987)
1631 COMMENT@[2987; 2991)
1632 COMMA@[2991; 2992)
1633 BLOCK_EXPR@[2992; 2994)
1634 BLOCK@[2992; 2994)
1635 L_CURLY@[2992; 2993)
1636 R_CURLY@[2993; 2994)
1637 R_PAREN@[2994; 2995)
1638 EQEQ@[2995; 2997)
1639 BLOCK_EXPR@[2997; 3012)
1640 BLOCK@[2997; 3012)
1641 L_CURLY@[2997; 2998)
1642 EXPR_STMT@[2998; 3011)
1643 REF_EXPR@[2998; 3010)
1644 AMP@[2998; 2999)
1645 INDEX_EXPR@[2999; 3010)
1646 ARRAY_EXPR@[2999; 3006)
1647 L_BRACK@[2999; 3000)
1648 RANGE_EXPR@[3000; 3005)
1649 DOTDOTEQ@[3000; 3003)
1650 RANGE_EXPR@[3003; 3005)
1651 DOTDOT@[3003; 3005)
1652 R_BRACK@[3005; 3006)
1653 L_BRACK@[3006; 3007)
1654 RANGE_EXPR@[3007; 3009)
1655 DOTDOT@[3007; 3009)
1656 R_BRACK@[3009; 3010)
1657 SEMI@[3010; 3011)
1658 R_CURLY@[3011; 3012)
1659 R_PAREN@[3012; 3013)
1660 COMMENT@[3013; 3015)
1661 WHITESPACE@[3015; 3020)
1662 SEMI@[3020; 3021)
1663 WHITESPACE@[3021; 3026)
1664 EXPR_STMT@[3026; 3040)
1665 MACRO_CALL@[3026; 3039)
1666 PATH@[3026; 3032)
1667 PATH_SEGMENT@[3026; 3032)
1668 NAME_REF@[3026; 3032)
1669 IDENT@[3026; 3032) "assert"
1670 EXCL@[3032; 3033)
1671 TOKEN_TREE@[3033; 3039)
1672 L_PAREN@[3033; 3034)
1673 EXCL@[3034; 3035)
1674 IDENT@[3035; 3038) "val"
1675 R_PAREN@[3038; 3039)
1676 SEMI@[3039; 3040)
1677 WHITESPACE@[3040; 3041)
1678 R_CURLY@[3041; 3042)
1679 WHITESPACE@[3042; 3044)
1680 FN_DEF@[3044; 3514)
1681 FN_KW@[3044; 3046)
1682 WHITESPACE@[3046; 3047)
1683 NAME@[3047; 3057)
1684 IDENT@[3047; 3057) "punch_card"
1685 PARAM_LIST@[3057; 3059)
1686 L_PAREN@[3057; 3058)
1687 R_PAREN@[3058; 3059)
1688 WHITESPACE@[3059; 3060)
1689 RET_TYPE@[3060; 3083)
1690 THIN_ARROW@[3060; 3062)
1691 WHITESPACE@[3062; 3063)
1692 IMPL_TRAIT_TYPE@[3063; 3083)
1693 IMPL_KW@[3063; 3067)
1694 WHITESPACE@[3067; 3068)
1695 PATH_TYPE@[3068; 3083)
1696 PATH@[3068; 3083)
1697 PATH@[3068; 3076)
1698 PATH@[3068; 3071)
1699 PATH_SEGMENT@[3068; 3071)
1700 NAME_REF@[3068; 3071)
1701 IDENT@[3068; 3071) "std"
1702 COLONCOLON@[3071; 3073)
1703 PATH_SEGMENT@[3073; 3076)
1704 NAME_REF@[3073; 3076)
1705 IDENT@[3073; 3076) "fmt"
1706 COLONCOLON@[3076; 3078)
1707 PATH_SEGMENT@[3078; 3083)
1708 NAME_REF@[3078; 3083)
1709 IDENT@[3078; 3083) "Debug"
1710 WHITESPACE@[3083; 3084)
1711 BLOCK@[3084; 3514)
1712 L_CURLY@[3084; 3085)
1713 WHITESPACE@[3085; 3090)
1714 RANGE_EXPR@[3090; 3512)
1715 DOTDOTEQ@[3090; 3093)
1716 RANGE_EXPR@[3093; 3512)
1717 DOTDOTEQ@[3093; 3096)
1718 RANGE_EXPR@[3096; 3512)
1719 DOTDOT@[3096; 3098)
1720 WHITESPACE@[3098; 3099)
1721 RANGE_EXPR@[3099; 3512)
1722 DOTDOT@[3099; 3101)
1723 WHITESPACE@[3101; 3105)
1724 RANGE_EXPR@[3105; 3512)
1725 DOTDOT@[3105; 3107)
1726 WHITESPACE@[3107; 3108)
1727 RANGE_EXPR@[3108; 3512)
1728 DOTDOT@[3108; 3110)
1729 WHITESPACE@[3110; 3111)
1730 RANGE_EXPR@[3111; 3512)
1731 DOTDOT@[3111; 3113)
1732 WHITESPACE@[3113; 3114)
1733 RANGE_EXPR@[3114; 3512)
1734 DOTDOT@[3114; 3116)
1735 WHITESPACE@[3116; 3120)
1736 RANGE_EXPR@[3120; 3512)
1737 DOTDOT@[3120; 3122)
1738 WHITESPACE@[3122; 3123)
1739 RANGE_EXPR@[3123; 3512)
1740 DOTDOT@[3123; 3125)
1741 WHITESPACE@[3125; 3126)
1742 RANGE_EXPR@[3126; 3512)
1743 DOTDOT@[3126; 3128)
1744 WHITESPACE@[3128; 3129)
1745 RANGE_EXPR@[3129; 3512)
1746 DOTDOT@[3129; 3131)
1747 WHITESPACE@[3131; 3135)
1748 RANGE_EXPR@[3135; 3512)
1749 DOTDOT@[3135; 3137)
1750 WHITESPACE@[3137; 3138)
1751 RANGE_EXPR@[3138; 3512)
1752 DOTDOTEQ@[3138; 3141)
1753 RANGE_EXPR@[3141; 3512)
1754 DOTDOT@[3141; 3143)
1755 WHITESPACE@[3143; 3144)
1756 RANGE_EXPR@[3144; 3512)
1757 DOTDOT@[3144; 3146)
1758 WHITESPACE@[3146; 3151)
1759 RANGE_EXPR@[3151; 3512)
1760 DOTDOTEQ@[3151; 3154)
1761 RANGE_EXPR@[3154; 3512)
1762 DOTDOT@[3154; 3156)
1763 WHITESPACE@[3156; 3157)
1764 RANGE_EXPR@[3157; 3512)
1765 DOTDOTEQ@[3157; 3160)
1766 RANGE_EXPR@[3160; 3512)
1767 DOTDOT@[3160; 3162)
1768 WHITESPACE@[3162; 3166)
1769 RANGE_EXPR@[3166; 3512)
1770 DOTDOT@[3166; 3168)
1771 WHITESPACE@[3168; 3169)
1772 RANGE_EXPR@[3169; 3512)
1773 DOTDOT@[3169; 3171)
1774 WHITESPACE@[3171; 3172)
1775 RANGE_EXPR@[3172; 3512)
1776 DOTDOT@[3172; 3174)
1777 WHITESPACE@[3174; 3175)
1778 RANGE_EXPR@[3175; 3512)
1779 DOTDOT@[3175; 3177)
1780 WHITESPACE@[3177; 3181)
1781 RANGE_EXPR@[3181; 3512)
1782 DOTDOT@[3181; 3183)
1783 WHITESPACE@[3183; 3184)
1784 RANGE_EXPR@[3184; 3512)
1785 DOTDOT@[3184; 3186)
1786 WHITESPACE@[3186; 3187)
1787 RANGE_EXPR@[3187; 3512)
1788 DOTDOT@[3187; 3189)
1789 WHITESPACE@[3189; 3190)
1790 RANGE_EXPR@[3190; 3512)
1791 DOTDOT@[3190; 3192)
1792 WHITESPACE@[3192; 3196)
1793 RANGE_EXPR@[3196; 3512)
1794 DOTDOTEQ@[3196; 3199)
1795 RANGE_EXPR@[3199; 3512)
1796 DOTDOTEQ@[3199; 3202)
1797 RANGE_EXPR@[3202; 3512)
1798 DOTDOTEQ@[3202; 3205)
1799 RANGE_EXPR@[3205; 3512)
1800 DOTDOT@[3205; 3207)
1801 WHITESPACE@[3207; 3212)
1802 RANGE_EXPR@[3212; 3512)
1803 DOTDOTEQ@[3212; 3215)
1804 RANGE_EXPR@[3215; 3512)
1805 DOTDOT@[3215; 3217)
1806 WHITESPACE@[3217; 3218)
1807 RANGE_EXPR@[3218; 3512)
1808 DOTDOTEQ@[3218; 3221)
1809 RANGE_EXPR@[3221; 3512)
1810 DOTDOT@[3221; 3223)
1811 WHITESPACE@[3223; 3227)
1812 RANGE_EXPR@[3227; 3512)
1813 DOTDOTEQ@[3227; 3230)
1814 RANGE_EXPR@[3230; 3512)
1815 DOTDOT@[3230; 3232)
1816 WHITESPACE@[3232; 3233)
1817 RANGE_EXPR@[3233; 3512)
1818 DOTDOTEQ@[3233; 3236)
1819 RANGE_EXPR@[3236; 3512)
1820 DOTDOT@[3236; 3238)
1821 WHITESPACE@[3238; 3242)
1822 RANGE_EXPR@[3242; 3512)
1823 DOTDOT@[3242; 3244)
1824 WHITESPACE@[3244; 3245)
1825 RANGE_EXPR@[3245; 3512)
1826 DOTDOTEQ@[3245; 3248)
1827 RANGE_EXPR@[3248; 3512)
1828 DOTDOTEQ@[3248; 3251)
1829 RANGE_EXPR@[3251; 3512)
1830 DOTDOT@[3251; 3253)
1831 WHITESPACE@[3253; 3257)
1832 RANGE_EXPR@[3257; 3512)
1833 DOTDOT@[3257; 3259)
1834 WHITESPACE@[3259; 3260)
1835 RANGE_EXPR@[3260; 3512)
1836 DOTDOTEQ@[3260; 3263)
1837 RANGE_EXPR@[3263; 3512)
1838 DOTDOT@[3263; 3265)
1839 WHITESPACE@[3265; 3266)
1840 RANGE_EXPR@[3266; 3512)
1841 DOTDOT@[3266; 3268)
1842 WHITESPACE@[3268; 3273)
1843 RANGE_EXPR@[3273; 3512)
1844 DOTDOTEQ@[3273; 3276)
1845 RANGE_EXPR@[3276; 3512)
1846 DOTDOTEQ@[3276; 3279)
1847 RANGE_EXPR@[3279; 3512)
1848 DOTDOT@[3279; 3281)
1849 WHITESPACE@[3281; 3282)
1850 RANGE_EXPR@[3282; 3512)
1851 DOTDOT@[3282; 3284)
1852 WHITESPACE@[3284; 3288)
1853 RANGE_EXPR@[3288; 3512)
1854 DOTDOTEQ@[3288; 3291)
1855 RANGE_EXPR@[3291; 3512)
1856 DOTDOT@[3291; 3293)
1857 WHITESPACE@[3293; 3294)
1858 RANGE_EXPR@[3294; 3512)
1859 DOTDOTEQ@[3294; 3297)
1860 RANGE_EXPR@[3297; 3512)
1861 DOTDOT@[3297; 3299)
1862 WHITESPACE@[3299; 3303)
1863 RANGE_EXPR@[3303; 3512)
1864 DOTDOTEQ@[3303; 3306)
1865 RANGE_EXPR@[3306; 3512)
1866 DOTDOT@[3306; 3308)
1867 WHITESPACE@[3308; 3309)
1868 RANGE_EXPR@[3309; 3512)
1869 DOTDOT@[3309; 3311)
1870 WHITESPACE@[3311; 3312)
1871 RANGE_EXPR@[3312; 3512)
1872 DOTDOT@[3312; 3314)
1873 WHITESPACE@[3314; 3318)
1874 RANGE_EXPR@[3318; 3512)
1875 DOTDOT@[3318; 3320)
1876 WHITESPACE@[3320; 3321)
1877 RANGE_EXPR@[3321; 3512)
1878 DOTDOTEQ@[3321; 3324)
1879 RANGE_EXPR@[3324; 3512)
1880 DOTDOT@[3324; 3326)
1881 WHITESPACE@[3326; 3327)
1882 RANGE_EXPR@[3327; 3512)
1883 DOTDOT@[3327; 3329)
1884 WHITESPACE@[3329; 3334)
1885 RANGE_EXPR@[3334; 3512)
1886 DOTDOTEQ@[3334; 3337)
1887 RANGE_EXPR@[3337; 3512)
1888 DOTDOT@[3337; 3339)
1889 WHITESPACE@[3339; 3340)
1890 RANGE_EXPR@[3340; 3512)
1891 DOTDOTEQ@[3340; 3343)
1892 RANGE_EXPR@[3343; 3512)
1893 DOTDOT@[3343; 3345)
1894 WHITESPACE@[3345; 3349)
1895 RANGE_EXPR@[3349; 3512)
1896 DOTDOTEQ@[3349; 3352)
1897 RANGE_EXPR@[3352; 3512)
1898 DOTDOT@[3352; 3354)
1899 WHITESPACE@[3354; 3355)
1900 RANGE_EXPR@[3355; 3512)
1901 DOTDOTEQ@[3355; 3358)
1902 RANGE_EXPR@[3358; 3512)
1903 DOTDOT@[3358; 3360)
1904 WHITESPACE@[3360; 3364)
1905 RANGE_EXPR@[3364; 3512)
1906 DOTDOT@[3364; 3366)
1907 WHITESPACE@[3366; 3367)
1908 RANGE_EXPR@[3367; 3512)
1909 DOTDOTEQ@[3367; 3370)
1910 RANGE_EXPR@[3370; 3512)
1911 DOTDOT@[3370; 3372)
1912 WHITESPACE@[3372; 3373)
1913 RANGE_EXPR@[3373; 3512)
1914 DOTDOT@[3373; 3375)
1915 WHITESPACE@[3375; 3379)
1916 RANGE_EXPR@[3379; 3512)
1917 DOTDOT@[3379; 3381)
1918 WHITESPACE@[3381; 3382)
1919 RANGE_EXPR@[3382; 3512)
1920 DOTDOTEQ@[3382; 3385)
1921 RANGE_EXPR@[3385; 3512)
1922 DOTDOT@[3385; 3387)
1923 WHITESPACE@[3387; 3388)
1924 RANGE_EXPR@[3388; 3512)
1925 DOTDOT@[3388; 3390)
1926 WHITESPACE@[3390; 3395)
1927 RANGE_EXPR@[3395; 3512)
1928 DOTDOTEQ@[3395; 3398)
1929 RANGE_EXPR@[3398; 3512)
1930 DOTDOT@[3398; 3400)
1931 WHITESPACE@[3400; 3401)
1932 RANGE_EXPR@[3401; 3512)
1933 DOTDOTEQ@[3401; 3404)
1934 RANGE_EXPR@[3404; 3512)
1935 DOTDOT@[3404; 3406)
1936 WHITESPACE@[3406; 3410)
1937 RANGE_EXPR@[3410; 3512)
1938 DOTDOTEQ@[3410; 3413)
1939 RANGE_EXPR@[3413; 3512)
1940 DOTDOT@[3413; 3415)
1941 WHITESPACE@[3415; 3416)
1942 RANGE_EXPR@[3416; 3512)
1943 DOTDOTEQ@[3416; 3419)
1944 RANGE_EXPR@[3419; 3512)
1945 DOTDOT@[3419; 3421)
1946 WHITESPACE@[3421; 3425)
1947 RANGE_EXPR@[3425; 3512)
1948 DOTDOT@[3425; 3427)
1949 WHITESPACE@[3427; 3428)
1950 RANGE_EXPR@[3428; 3512)
1951 DOTDOT@[3428; 3430)
1952 WHITESPACE@[3430; 3431)
1953 RANGE_EXPR@[3431; 3512)
1954 DOTDOTEQ@[3431; 3434)
1955 RANGE_EXPR@[3434; 3512)
1956 DOTDOT@[3434; 3436)
1957 WHITESPACE@[3436; 3440)
1958 RANGE_EXPR@[3440; 3512)
1959 DOTDOT@[3440; 3442)
1960 WHITESPACE@[3442; 3443)
1961 RANGE_EXPR@[3443; 3512)
1962 DOTDOTEQ@[3443; 3446)
1963 RANGE_EXPR@[3446; 3512)
1964 DOTDOT@[3446; 3448)
1965 WHITESPACE@[3448; 3449)
1966 RANGE_EXPR@[3449; 3512)
1967 DOTDOT@[3449; 3451)
1968 WHITESPACE@[3451; 3456)
1969 RANGE_EXPR@[3456; 3512)
1970 DOTDOTEQ@[3456; 3459)
1971 RANGE_EXPR@[3459; 3512)
1972 DOTDOT@[3459; 3461)
1973 WHITESPACE@[3461; 3462)
1974 RANGE_EXPR@[3462; 3512)
1975 DOTDOTEQ@[3462; 3465)
1976 RANGE_EXPR@[3465; 3512)
1977 DOTDOT@[3465; 3467)
1978 WHITESPACE@[3467; 3471)
1979 RANGE_EXPR@[3471; 3512)
1980 DOTDOT@[3471; 3473)
1981 WHITESPACE@[3473; 3474)
1982 RANGE_EXPR@[3474; 3512)
1983 DOTDOTEQ@[3474; 3477)
1984 RANGE_EXPR@[3477; 3512)
1985 DOTDOTEQ@[3477; 3480)
1986 RANGE_EXPR@[3480; 3512)
1987 DOTDOT@[3480; 3482)
1988 WHITESPACE@[3482; 3486)
1989 RANGE_EXPR@[3486; 3512)
1990 DOTDOTEQ@[3486; 3489)
1991 RANGE_EXPR@[3489; 3512)
1992 DOTDOTEQ@[3489; 3492)
1993 RANGE_EXPR@[3492; 3512)
1994 DOTDOT@[3492; 3494)
1995 WHITESPACE@[3494; 3495)
1996 RANGE_EXPR@[3495; 3512)
1997 DOTDOT@[3495; 3497)
1998 WHITESPACE@[3497; 3501)
1999 RANGE_EXPR@[3501; 3512)
2000 DOTDOT@[3501; 3503)
2001 WHITESPACE@[3503; 3504)
2002 RANGE_EXPR@[3504; 3512)
2003 DOTDOTEQ@[3504; 3507)
2004 RANGE_EXPR@[3507; 3512)
2005 DOTDOT@[3507; 3509)
2006 WHITESPACE@[3509; 3510)
2007 RANGE_EXPR@[3510; 3512)
2008 DOTDOT@[3510; 3512)
2009 WHITESPACE@[3512; 3513)
2010 R_CURLY@[3513; 3514)
2011 WHITESPACE@[3514; 3516)
2012 FN_DEF@[3516; 3552)
2013 FN_KW@[3516; 3518)
2014 WHITESPACE@[3518; 3519)
2015 NAME@[3519; 3525)
2016 IDENT@[3519; 3525) "ktulhu"
2017 PARAM_LIST@[3525; 3527)
2018 L_PAREN@[3525; 3526)
2019 R_PAREN@[3526; 3527)
2020 WHITESPACE@[3527; 3528)
2021 BLOCK@[3528; 3552)
2022 L_CURLY@[3528; 3529)
2023 WHITESPACE@[3529; 3534)
2024 SEMI@[3534; 3535)
2025 SEMI@[3535; 3536)
2026 SEMI@[3536; 3537)
2027 EXPR_STMT@[3537; 3540)
2028 TUPLE_EXPR@[3537; 3539)
2029 L_PAREN@[3537; 3538)
2030 R_PAREN@[3538; 3539)
2031 SEMI@[3539; 3540)
2032 SEMI@[3540; 3541)
2033 SEMI@[3541; 3542)
2034 SEMI@[3542; 3543)
2035 SEMI@[3543; 3544)
2036 SEMI@[3544; 3545)
2037 SEMI@[3545; 3546)
2038 SEMI@[3546; 3547)
2039 SEMI@[3547; 3548)
2040 TUPLE_EXPR@[3548; 3550)
2041 L_PAREN@[3548; 3549)
2042 R_PAREN@[3549; 3550)
2043 WHITESPACE@[3550; 3551)
2044 R_CURLY@[3551; 3552)
2045 WHITESPACE@[3552; 3554)
2046 FN_DEF@[3554; 3812)
2047 VISIBILITY@[3554; 3557)
2048 PUB_KW@[3554; 3557)
2049 WHITESPACE@[3557; 3558)
2050 FN_KW@[3558; 3560)
2051 WHITESPACE@[3560; 3561)
2052 NAME@[3561; 3565)
2053 IDENT@[3561; 3565) "main"
2054 PARAM_LIST@[3565; 3567)
2055 L_PAREN@[3565; 3566)
2056 R_PAREN@[3566; 3567)
2057 WHITESPACE@[3567; 3568)
2058 BLOCK@[3568; 3812)
2059 L_CURLY@[3568; 3569)
2060 WHITESPACE@[3569; 3574)
2061 EXPR_STMT@[3574; 3584)
2062 CALL_EXPR@[3574; 3583)
2063 PATH_EXPR@[3574; 3581)
2064 PATH@[3574; 3581)
2065 PATH_SEGMENT@[3574; 3581)
2066 NAME_REF@[3574; 3581)
2067 IDENT@[3574; 3581) "strange"
2068 ARG_LIST@[3581; 3583)
2069 L_PAREN@[3581; 3582)
2070 R_PAREN@[3582; 3583)
2071 SEMI@[3583; 3584)
2072 WHITESPACE@[3584; 3589)
2073 EXPR_STMT@[3589; 3597)
2074 CALL_EXPR@[3589; 3596)
2075 PATH_EXPR@[3589; 3594)
2076 PATH@[3589; 3594)
2077 PATH_SEGMENT@[3589; 3594)
2078 NAME_REF@[3589; 3594)
2079 IDENT@[3589; 3594) "funny"
2080 ARG_LIST@[3594; 3596)
2081 L_PAREN@[3594; 3595)
2082 R_PAREN@[3595; 3596)
2083 SEMI@[3596; 3597)
2084 WHITESPACE@[3597; 3602)
2085 EXPR_STMT@[3602; 3609)
2086 CALL_EXPR@[3602; 3608)
2087 PATH_EXPR@[3602; 3606)
2088 PATH@[3602; 3606)
2089 PATH_SEGMENT@[3602; 3606)
2090 NAME_REF@[3602; 3606)
2091 IDENT@[3602; 3606) "what"
2092 ARG_LIST@[3606; 3608)
2093 L_PAREN@[3606; 3607)
2094 R_PAREN@[3607; 3608)
2095 SEMI@[3608; 3609)
2096 WHITESPACE@[3609; 3614)
2097 EXPR_STMT@[3614; 3628)
2098 CALL_EXPR@[3614; 3627)
2099 PATH_EXPR@[3614; 3625)
2100 PATH@[3614; 3625)
2101 PATH_SEGMENT@[3614; 3625)
2102 NAME_REF@[3614; 3625)
2103 IDENT@[3614; 3625) "zombiejesus"
2104 ARG_LIST@[3625; 3627)
2105 L_PAREN@[3625; 3626)
2106 R_PAREN@[3626; 3627)
2107 SEMI@[3627; 3628)
2108 WHITESPACE@[3628; 3633)
2109 EXPR_STMT@[3633; 3643)
2110 CALL_EXPR@[3633; 3642)
2111 PATH_EXPR@[3633; 3640)
2112 PATH@[3633; 3640)
2113 PATH_SEGMENT@[3633; 3640)
2114 NAME_REF@[3633; 3640)
2115 IDENT@[3633; 3640) "notsure"
2116 ARG_LIST@[3640; 3642)
2117 L_PAREN@[3640; 3641)
2118 R_PAREN@[3641; 3642)
2119 SEMI@[3642; 3643)
2120 WHITESPACE@[3643; 3648)
2121 EXPR_STMT@[3648; 3664)
2122 CALL_EXPR@[3648; 3663)
2123 PATH_EXPR@[3648; 3661)
2124 PATH@[3648; 3661)
2125 PATH_SEGMENT@[3648; 3661)
2126 NAME_REF@[3648; 3661)
2127 IDENT@[3648; 3661) "canttouchthis"
2128 ARG_LIST@[3661; 3663)
2129 L_PAREN@[3661; 3662)
2130 R_PAREN@[3662; 3663)
2131 SEMI@[3663; 3664)
2132 WHITESPACE@[3664; 3669)
2133 EXPR_STMT@[3669; 3681)
2134 CALL_EXPR@[3669; 3680)
2135 PATH_EXPR@[3669; 3678)
2136 PATH@[3669; 3678)
2137 PATH_SEGMENT@[3669; 3678)
2138 NAME_REF@[3669; 3678)
2139 IDENT@[3669; 3678) "angrydome"
2140 ARG_LIST@[3678; 3680)
2141 L_PAREN@[3678; 3679)
2142 R_PAREN@[3679; 3680)
2143 SEMI@[3680; 3681)
2144 WHITESPACE@[3681; 3686)
2145 EXPR_STMT@[3686; 3701)
2146 CALL_EXPR@[3686; 3700)
2147 PATH_EXPR@[3686; 3698)
2148 PATH@[3686; 3698)
2149 PATH_SEGMENT@[3686; 3698)
2150 NAME_REF@[3686; 3698)
2151 IDENT@[3686; 3698) "evil_lincoln"
2152 ARG_LIST@[3698; 3700)
2153 L_PAREN@[3698; 3699)
2154 R_PAREN@[3699; 3700)
2155 SEMI@[3700; 3701)
2156 WHITESPACE@[3701; 3706)
2157 EXPR_STMT@[3706; 3713)
2158 CALL_EXPR@[3706; 3712)
2159 PATH_EXPR@[3706; 3710)
2160 PATH@[3706; 3710)
2161 PATH_SEGMENT@[3706; 3710)
2162 NAME_REF@[3706; 3710)
2163 IDENT@[3706; 3710) "dots"
2164 ARG_LIST@[3710; 3712)
2165 L_PAREN@[3710; 3711)
2166 R_PAREN@[3711; 3712)
2167 SEMI@[3712; 3713)
2168 WHITESPACE@[3713; 3718)
2169 EXPR_STMT@[3718; 3726)
2170 CALL_EXPR@[3718; 3725)
2171 PATH_EXPR@[3718; 3720)
2172 PATH@[3718; 3720)
2173 PATH_SEGMENT@[3718; 3720)
2174 NAME_REF@[3718; 3720)
2175 IDENT@[3718; 3720) "u8"
2176 ARG_LIST@[3720; 3725)
2177 L_PAREN@[3720; 3721)
2178 LITERAL@[3721; 3724)
2179 INT_NUMBER@[3721; 3724) "8u8"
2180 R_PAREN@[3724; 3725)
2181 SEMI@[3725; 3726)
2182 WHITESPACE@[3726; 3731)
2183 EXPR_STMT@[3731; 3739)
2184 CALL_EXPR@[3731; 3738)
2185 PATH_EXPR@[3731; 3736)
2186 PATH@[3731; 3736)
2187 PATH_SEGMENT@[3731; 3736)
2188 NAME_REF@[3731; 3736)
2189 IDENT@[3731; 3736) "fishy"
2190 ARG_LIST@[3736; 3738)
2191 L_PAREN@[3736; 3737)
2192 R_PAREN@[3737; 3738)
2193 SEMI@[3738; 3739)
2194 WHITESPACE@[3739; 3744)
2195 EXPR_STMT@[3744; 3752)
2196 CALL_EXPR@[3744; 3751)
2197 PATH_EXPR@[3744; 3749)
2198 PATH@[3744; 3749)
2199 PATH_SEGMENT@[3744; 3749)
2200 NAME_REF@[3744; 3749)
2201 IDENT@[3744; 3749) "union"
2202 ARG_LIST@[3749; 3751)
2203 L_PAREN@[3749; 3750)
2204 R_PAREN@[3750; 3751)
2205 SEMI@[3751; 3752)
2206 WHITESPACE@[3752; 3757)
2207 EXPR_STMT@[3757; 3778)
2208 CALL_EXPR@[3757; 3777)
2209 PATH_EXPR@[3757; 3775)
2210 PATH@[3757; 3775)
2211 PATH_SEGMENT@[3757; 3775)
2212 NAME_REF@[3757; 3775)
2213 IDENT@[3757; 3775) "special_characters"
2214 ARG_LIST@[3775; 3777)
2215 L_PAREN@[3775; 3776)
2216 R_PAREN@[3776; 3777)
2217 SEMI@[3777; 3778)
2218 WHITESPACE@[3778; 3783)
2219 EXPR_STMT@[3783; 3796)
2220 CALL_EXPR@[3783; 3795)
2221 PATH_EXPR@[3783; 3793)
2222 PATH@[3783; 3793)
2223 PATH_SEGMENT@[3783; 3793)
2224 NAME_REF@[3783; 3793)
2225 IDENT@[3783; 3793) "punch_card"
2226 ARG_LIST@[3793; 3795)
2227 L_PAREN@[3793; 3794)
2228 R_PAREN@[3794; 3795)
2229 SEMI@[3795; 3796)
2230 WHITESPACE@[3796; 3801)
2231 EXPR_STMT@[3801; 3810)
2232 CALL_EXPR@[3801; 3809)
2233 PATH_EXPR@[3801; 3807)
2234 PATH@[3801; 3807)
2235 PATH_SEGMENT@[3801; 3807)
2236 NAME_REF@[3801; 3807)
2237 IDENT@[3801; 3807) "ktulhu"
2238 ARG_LIST@[3807; 3809)
2239 L_PAREN@[3807; 3808)
2240 R_PAREN@[3808; 3809)
2241 SEMI@[3809; 3810)
2242 WHITESPACE@[3810; 3811)
2243 R_CURLY@[3811; 3812)
2244 WHITESPACE@[3812; 3813)
diff --git a/crates/ra_syntax/tests/data/parser/ok/0036_fully_qualified.rs b/crates/ra_syntax/tests/data/parser/ok/0036_fully_qualified.rs
new file mode 100644
index 000000000..6da27933e
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/ok/0036_fully_qualified.rs
@@ -0,0 +1,8 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/311
2
3pub fn foo<S: Iterator>() -> String
4where
5 <S as Iterator>::Item: Eq,
6{
7 "".to_owned()
8}
diff --git a/crates/ra_syntax/tests/data/parser/ok/0036_fully_qualified.txt b/crates/ra_syntax/tests/data/parser/ok/0036_fully_qualified.txt
new file mode 100644
index 000000000..208e5e51c
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/ok/0036_fully_qualified.txt
@@ -0,0 +1,88 @@
1SOURCE_FILE@[0; 157)
2 COMMENT@[0; 60)
3 WHITESPACE@[60; 62)
4 FN_DEF@[62; 156)
5 VISIBILITY@[62; 65)
6 PUB_KW@[62; 65)
7 WHITESPACE@[65; 66)
8 FN_KW@[66; 68)
9 WHITESPACE@[68; 69)
10 NAME@[69; 72)
11 IDENT@[69; 72) "foo"
12 TYPE_PARAM_LIST@[72; 85)
13 L_ANGLE@[72; 73)
14 TYPE_PARAM@[73; 84)
15 NAME@[73; 74)
16 IDENT@[73; 74) "S"
17 COLON@[74; 75)
18 WHITESPACE@[75; 76)
19 PATH_TYPE@[76; 84)
20 PATH@[76; 84)
21 PATH_SEGMENT@[76; 84)
22 NAME_REF@[76; 84)
23 IDENT@[76; 84) "Iterator"
24 R_ANGLE@[84; 85)
25 PARAM_LIST@[85; 87)
26 L_PAREN@[85; 86)
27 R_PAREN@[86; 87)
28 WHITESPACE@[87; 88)
29 RET_TYPE@[88; 97)
30 THIN_ARROW@[88; 90)
31 WHITESPACE@[90; 91)
32 PATH_TYPE@[91; 97)
33 PATH@[91; 97)
34 PATH_SEGMENT@[91; 97)
35 NAME_REF@[91; 97)
36 IDENT@[91; 97) "String"
37 WHITESPACE@[97; 98)
38 WHERE_CLAUSE@[98; 134)
39 WHERE_KW@[98; 103)
40 WHITESPACE@[103; 108)
41 WHERE_PRED@[108; 133)
42 PATH_TYPE@[108; 129)
43 PATH@[108; 129)
44 PATH@[108; 123)
45 PATH_SEGMENT@[108; 123)
46 L_ANGLE@[108; 109)
47 PATH_TYPE@[109; 110)
48 PATH@[109; 110)
49 PATH_SEGMENT@[109; 110)
50 NAME_REF@[109; 110)
51 IDENT@[109; 110) "S"
52 WHITESPACE@[110; 111)
53 AS_KW@[111; 113)
54 WHITESPACE@[113; 114)
55 PATH_TYPE@[114; 122)
56 PATH@[114; 122)
57 PATH_SEGMENT@[114; 122)
58 NAME_REF@[114; 122)
59 IDENT@[114; 122) "Iterator"
60 R_ANGLE@[122; 123)
61 COLONCOLON@[123; 125)
62 PATH_SEGMENT@[125; 129)
63 NAME_REF@[125; 129)
64 IDENT@[125; 129) "Item"
65 COLON@[129; 130)
66 WHITESPACE@[130; 131)
67 PATH_TYPE@[131; 133)
68 PATH@[131; 133)
69 PATH_SEGMENT@[131; 133)
70 NAME_REF@[131; 133)
71 IDENT@[131; 133) "Eq"
72 COMMA@[133; 134)
73 WHITESPACE@[134; 135)
74 BLOCK@[135; 156)
75 L_CURLY@[135; 136)
76 WHITESPACE@[136; 141)
77 METHOD_CALL_EXPR@[141; 154)
78 LITERAL@[141; 143)
79 STRING@[141; 143)
80 DOT@[143; 144)
81 NAME_REF@[144; 152)
82 IDENT@[144; 152) "to_owned"
83 ARG_LIST@[152; 154)
84 L_PAREN@[152; 153)
85 R_PAREN@[153; 154)
86 WHITESPACE@[154; 155)
87 R_CURLY@[155; 156)
88 WHITESPACE@[156; 157)