Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/parser/src/tests.rs18
-rw-r--r--crates/parser/test_data/lexer/err/empty_exponent.rast48
-rw-r--r--crates/parser/test_data/lexer/err/empty_int.rast26
-rw-r--r--crates/parser/test_data/lexer/err/lifetime_starts_with_a_number.rast4
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_block_comment_at_eof.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_block_comment_with_content.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_at_eof.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_string_at_eof.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_string_with_ascii_escape.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_string_with_ferris.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_double_quote.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_n.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_string_with_space.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_string_with_unicode_escape.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_with_ascii_escape.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_with_ferris.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_with_slash.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_with_slash_n.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_with_slash_single_quote.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_with_space.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_byte_with_unicode_escape.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_char_at_eof.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_char_with_ascii_escape.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_char_with_ferris.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_char_with_slash.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_char_with_slash_n.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_char_with_slash_single_quote.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_char_with_space.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_char_with_unicode_escape.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_nested_block_comment_entirely.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_nested_block_comment_partially.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_byte_string_at_eof.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ascii_escape.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ferris.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash_n.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_space.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_unicode_escape.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_string_at_eof.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_string_with_ascii_escape.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_string_with_ferris.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash_n.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_string_with_space.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_raw_string_with_unicode_escape.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_string_at_eof.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_string_with_ascii_escape.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_string_with_ferris.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_string_with_slash.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_string_with_slash_double_quote.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_string_with_slash_n.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_string_with_space.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unclosed_string_with_unicode_escape.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unstarted_raw_byte_string_at_eof.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unstarted_raw_byte_string_with_ascii.rast9
-rw-r--r--crates/parser/test_data/lexer/err/unstarted_raw_string_at_eof.rast1
-rw-r--r--crates/parser/test_data/lexer/err/unstarted_raw_string_with_ascii.rast9
-rw-r--r--crates/parser/test_data/lexer/ok/block_comment.rast6
-rw-r--r--crates/parser/test_data/lexer/ok/byte_strings.rast22
-rw-r--r--crates/parser/test_data/lexer/ok/chars.rast16
-rw-r--r--crates/parser/test_data/lexer/ok/hello.rast3
-rw-r--r--crates/parser/test_data/lexer/ok/ident.rast14
-rw-r--r--crates/parser/test_data/lexer/ok/keywords.rast64
-rw-r--r--crates/parser/test_data/lexer/ok/lifetimes.rast8
-rw-r--r--crates/parser/test_data/lexer/ok/numbers.rast57
-rw-r--r--crates/parser/test_data/lexer/ok/raw_ident.rast2
-rw-r--r--crates/parser/test_data/lexer/ok/raw_strings.rast2
-rw-r--r--crates/parser/test_data/lexer/ok/single_line_comments.rast22
-rw-r--r--crates/parser/test_data/lexer/ok/strings.rast8
-rw-r--r--crates/parser/test_data/lexer/ok/symbols.rast77
-rw-r--r--crates/parser/test_data/lexer/ok/whitespace.rast12
-rw-r--r--crates/parser/test_data/parser/err/0000_struct_field_missing_comma.rast68
-rw-r--r--crates/parser/test_data/parser/err/0000_struct_field_missing_comma.txt34
-rw-r--r--crates/parser/test_data/parser/err/0001_item_recovery_in_file.rast36
-rw-r--r--crates/parser/test_data/parser/err/0001_item_recovery_in_file.txt18
-rw-r--r--crates/parser/test_data/parser/err/0002_duplicate_shebang.rast90
-rw-r--r--crates/parser/test_data/parser/err/0002_duplicate_shebang.txt45
-rw-r--r--crates/parser/test_data/parser/err/0003_C++_semicolon.rast76
-rw-r--r--crates/parser/test_data/parser/err/0003_C++_semicolon.txt39
-rw-r--r--crates/parser/test_data/parser/err/0004_use_path_bad_segment.rast30
-rw-r--r--crates/parser/test_data/parser/err/0004_use_path_bad_segment.txt15
-rw-r--r--crates/parser/test_data/parser/err/0005_attribute_recover.rast124
-rw-r--r--crates/parser/test_data/parser/err/0005_attribute_recover.txt62
-rw-r--r--crates/parser/test_data/parser/err/0006_named_field_recovery.rast148
-rw-r--r--crates/parser/test_data/parser/err/0006_named_field_recovery.txt74
-rw-r--r--crates/parser/test_data/parser/err/0007_stray_curly_in_file.rast66
-rw-r--r--crates/parser/test_data/parser/err/0007_stray_curly_in_file.txt33
-rw-r--r--crates/parser/test_data/parser/err/0008_item_block_recovery.rast161
-rw-r--r--crates/parser/test_data/parser/err/0008_item_block_recovery.txt80
-rw-r--r--crates/parser/test_data/parser/err/0009_broken_struct_type_parameter.rast112
-rw-r--r--crates/parser/test_data/parser/err/0009_broken_struct_type_parameter.txt56
-rw-r--r--crates/parser/test_data/parser/err/0010_unsafe_lambda_block.rast90
-rw-r--r--crates/parser/test_data/parser/err/0010_unsafe_lambda_block.txt45
-rw-r--r--crates/parser/test_data/parser/err/0011_extern_struct.rast26
-rw-r--r--crates/parser/test_data/parser/err/0011_extern_struct.txt13
-rw-r--r--crates/parser/test_data/parser/err/0013_invalid_type.rast178
-rw-r--r--crates/parser/test_data/parser/err/0013_invalid_type.txt89
-rw-r--r--crates/parser/test_data/parser/err/0014_where_no_bounds.rast64
-rw-r--r--crates/parser/test_data/parser/err/0014_where_no_bounds.txt32
-rw-r--r--crates/parser/test_data/parser/err/0015_curly_in_params.rast48
-rw-r--r--crates/parser/test_data/parser/err/0015_curly_in_params.txt24
-rw-r--r--crates/parser/test_data/parser/err/0016_missing_semi.rast88
-rw-r--r--crates/parser/test_data/parser/err/0016_missing_semi.txt44
-rw-r--r--crates/parser/test_data/parser/err/0017_incomplete_binexpr.rast94
-rw-r--r--crates/parser/test_data/parser/err/0017_incomplete_binexpr.txt47
-rw-r--r--crates/parser/test_data/parser/err/0018_incomplete_fn.rast266
-rw-r--r--crates/parser/test_data/parser/err/0018_incomplete_fn.txt133
-rw-r--r--crates/parser/test_data/parser/err/0019_let_recover.rast214
-rw-r--r--crates/parser/test_data/parser/err/0019_let_recover.txt107
-rw-r--r--crates/parser/test_data/parser/err/0020_fn_recover.rast42
-rw-r--r--crates/parser/test_data/parser/err/0020_fn_recover.txt21
-rw-r--r--crates/parser/test_data/parser/err/0021_incomplete_param.rast68
-rw-r--r--crates/parser/test_data/parser/err/0021_incomplete_param.txt34
-rw-r--r--crates/parser/test_data/parser/err/0022_bad_exprs.rast342
-rw-r--r--crates/parser/test_data/parser/err/0022_bad_exprs.txt171
-rw-r--r--crates/parser/test_data/parser/err/0023_mismatched_paren.rast88
-rw-r--r--crates/parser/test_data/parser/err/0023_mismatched_paren.txt44
-rw-r--r--crates/parser/test_data/parser/err/0024_many_type_parens.rast652
-rw-r--r--crates/parser/test_data/parser/err/0024_many_type_parens.txt331
-rw-r--r--crates/parser/test_data/parser/err/0025_nope.rast (renamed from crates/parser/test_data/parser/err/0025_nope.txt)0
-rw-r--r--crates/parser/test_data/parser/err/0026_imp_recovery.rast98
-rw-r--r--crates/parser/test_data/parser/err/0026_imp_recovery.txt49
-rw-r--r--crates/parser/test_data/parser/err/0027_incomplere_where_for.rast58
-rw-r--r--crates/parser/test_data/parser/err/0027_incomplere_where_for.txt29
-rw-r--r--crates/parser/test_data/parser/err/0029_field_completion.rast72
-rw-r--r--crates/parser/test_data/parser/err/0029_field_completion.txt36
-rw-r--r--crates/parser/test_data/parser/err/0032_match_arms_inner_attrs.rast410
-rw-r--r--crates/parser/test_data/parser/err/0032_match_arms_inner_attrs.txt205
-rw-r--r--crates/parser/test_data/parser/err/0033_match_arms_outer_attrs.rast136
-rw-r--r--crates/parser/test_data/parser/err/0033_match_arms_outer_attrs.txt68
-rw-r--r--crates/parser/test_data/parser/err/0034_bad_box_pattern.rast192
-rw-r--r--crates/parser/test_data/parser/err/0034_bad_box_pattern.txt96
-rw-r--r--crates/parser/test_data/parser/err/0035_use_recover.rast110
-rw-r--r--crates/parser/test_data/parser/err/0035_use_recover.txt55
-rw-r--r--crates/parser/test_data/parser/err/0036_partial_use.rast102
-rw-r--r--crates/parser/test_data/parser/err/0036_partial_use.txt51
-rw-r--r--crates/parser/test_data/parser/err/0039_lambda_recovery.rast166
-rw-r--r--crates/parser/test_data/parser/err/0039_lambda_recovery.txt83
-rw-r--r--crates/parser/test_data/parser/err/0042_weird_blocks.rast150
-rw-r--r--crates/parser/test_data/parser/err/0042_weird_blocks.txt75
-rw-r--r--crates/parser/test_data/parser/err/0043_unexpected_for_type.rast512
-rw-r--r--crates/parser/test_data/parser/err/0043_unexpected_for_type.txt256
-rw-r--r--crates/parser/test_data/parser/err/0044_item_modifiers.rast96
-rw-r--r--crates/parser/test_data/parser/err/0044_item_modifiers.txt48
-rw-r--r--crates/parser/test_data/parser/err/0047_repated_extern_modifier.rast30
-rw-r--r--crates/parser/test_data/parser/err/0047_repated_extern_modifier.txt15
-rw-r--r--crates/parser/test_data/parser/err/0048_double_fish.rast246
-rw-r--r--crates/parser/test_data/parser/err/0048_double_fish.txt123
-rw-r--r--crates/parser/test_data/parser/inline/err/0001_array_type_missing_semi.rast54
-rw-r--r--crates/parser/test_data/parser/inline/err/0001_array_type_missing_semi.txt27
-rw-r--r--crates/parser/test_data/parser/inline/err/0002_misplaced_label_err.rast56
-rw-r--r--crates/parser/test_data/parser/inline/err/0002_misplaced_label_err.txt28
-rw-r--r--crates/parser/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast34
-rw-r--r--crates/parser/test_data/parser/inline/err/0003_pointer_type_no_mutability.txt17
-rw-r--r--crates/parser/test_data/parser/inline/err/0004_impl_type.rast158
-rw-r--r--crates/parser/test_data/parser/inline/err/0004_impl_type.txt79
-rw-r--r--crates/parser/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast46
-rw-r--r--crates/parser/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.txt23
-rw-r--r--crates/parser/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast74
-rw-r--r--crates/parser/test_data/parser/inline/err/0006_unsafe_block_in_mod.txt37
-rw-r--r--crates/parser/test_data/parser/inline/err/0007_async_without_semicolon.rast64
-rw-r--r--crates/parser/test_data/parser/inline/err/0007_async_without_semicolon.txt32
-rw-r--r--crates/parser/test_data/parser/inline/err/0008_pub_expr.rast52
-rw-r--r--crates/parser/test_data/parser/inline/err/0008_pub_expr.txt26
-rw-r--r--crates/parser/test_data/parser/inline/err/0013_anonymous_static.rast42
-rw-r--r--crates/parser/test_data/parser/inline/err/0013_anonymous_static.txt21
-rw-r--r--crates/parser/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast98
-rw-r--r--crates/parser/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.txt49
-rw-r--r--crates/parser/test_data/parser/inline/err/0014_struct_field_recover.rast62
-rw-r--r--crates/parser/test_data/parser/inline/err/0014_struct_field_recover.txt31
-rw-r--r--crates/parser/test_data/parser/inline/err/0015_empty_segment.rast28
-rw-r--r--crates/parser/test_data/parser/inline/err/0015_empty_segment.txt14
-rw-r--r--crates/parser/test_data/parser/inline/err/0015_missing_fn_param_type.rast106
-rw-r--r--crates/parser/test_data/parser/inline/err/0015_missing_fn_param_type.txt53
-rw-r--r--crates/parser/test_data/parser/inline/ok/0002_use_tree_list.rast58
-rw-r--r--crates/parser/test_data/parser/inline/ok/0002_use_tree_list.txt29
-rw-r--r--crates/parser/test_data/parser/inline/ok/0003_where_pred_for.rast126
-rw-r--r--crates/parser/test_data/parser/inline/ok/0003_where_pred_for.txt63
-rw-r--r--crates/parser/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast120
-rw-r--r--crates/parser/test_data/parser/inline/ok/0004_value_parameters_no_patterns.txt60
-rw-r--r--crates/parser/test_data/parser/inline/ok/0005_function_type_params.rast76
-rw-r--r--crates/parser/test_data/parser/inline/ok/0005_function_type_params.txt38
-rw-r--r--crates/parser/test_data/parser/inline/ok/0006_self_param.rast256
-rw-r--r--crates/parser/test_data/parser/inline/ok/0006_self_param.txt128
-rw-r--r--crates/parser/test_data/parser/inline/ok/0007_type_param_bounds.rast106
-rw-r--r--crates/parser/test_data/parser/inline/ok/0007_type_param_bounds.txt53
-rw-r--r--crates/parser/test_data/parser/inline/ok/0008_path_part.rast196
-rw-r--r--crates/parser/test_data/parser/inline/ok/0008_path_part.txt98
-rw-r--r--crates/parser/test_data/parser/inline/ok/0009_loop_expr.rast52
-rw-r--r--crates/parser/test_data/parser/inline/ok/0009_loop_expr.txt26
-rw-r--r--crates/parser/test_data/parser/inline/ok/0010_extern_block.rast42
-rw-r--r--crates/parser/test_data/parser/inline/ok/0010_extern_block.txt21
-rw-r--r--crates/parser/test_data/parser/inline/ok/0011_field_expr.rast120
-rw-r--r--crates/parser/test_data/parser/inline/ok/0011_field_expr.txt60
-rw-r--r--crates/parser/test_data/parser/inline/ok/0012_type_item_where_clause.rast66
-rw-r--r--crates/parser/test_data/parser/inline/ok/0012_type_item_where_clause.txt33
-rw-r--r--crates/parser/test_data/parser/inline/ok/0013_pointer_type_mut.rast70
-rw-r--r--crates/parser/test_data/parser/inline/ok/0013_pointer_type_mut.txt35
-rw-r--r--crates/parser/test_data/parser/inline/ok/0014_never_type.rast26
-rw-r--r--crates/parser/test_data/parser/inline/ok/0014_never_type.txt13
-rw-r--r--crates/parser/test_data/parser/inline/ok/0015_continue_expr.rast76
-rw-r--r--crates/parser/test_data/parser/inline/ok/0015_continue_expr.txt38
-rw-r--r--crates/parser/test_data/parser/inline/ok/0017_array_type.rast42
-rw-r--r--crates/parser/test_data/parser/inline/ok/0017_array_type.txt21
-rw-r--r--crates/parser/test_data/parser/inline/ok/0018_arb_self_types.rast152
-rw-r--r--crates/parser/test_data/parser/inline/ok/0018_arb_self_types.txt76
-rw-r--r--crates/parser/test_data/parser/inline/ok/0019_unary_expr.rast90
-rw-r--r--crates/parser/test_data/parser/inline/ok/0019_unary_expr.txt45
-rw-r--r--crates/parser/test_data/parser/inline/ok/0021_assoc_item_list.rast162
-rw-r--r--crates/parser/test_data/parser/inline/ok/0021_assoc_item_list.txt81
-rw-r--r--crates/parser/test_data/parser/inline/ok/0022_crate_visibility.rast98
-rw-r--r--crates/parser/test_data/parser/inline/ok/0022_crate_visibility.txt49
-rw-r--r--crates/parser/test_data/parser/inline/ok/0023_placeholder_type.rast26
-rw-r--r--crates/parser/test_data/parser/inline/ok/0023_placeholder_type.txt13
-rw-r--r--crates/parser/test_data/parser/inline/ok/0024_slice_pat.rast84
-rw-r--r--crates/parser/test_data/parser/inline/ok/0024_slice_pat.txt42
-rw-r--r--crates/parser/test_data/parser/inline/ok/0025_slice_type.rast34
-rw-r--r--crates/parser/test_data/parser/inline/ok/0025_slice_type.txt17
-rw-r--r--crates/parser/test_data/parser/inline/ok/0026_tuple_pat_fields.rast210
-rw-r--r--crates/parser/test_data/parser/inline/ok/0026_tuple_pat_fields.txt105
-rw-r--r--crates/parser/test_data/parser/inline/ok/0027_ref_pat.rast100
-rw-r--r--crates/parser/test_data/parser/inline/ok/0027_ref_pat.txt50
-rw-r--r--crates/parser/test_data/parser/inline/ok/0028_impl_trait_type.rast90
-rw-r--r--crates/parser/test_data/parser/inline/ok/0028_impl_trait_type.txt45
-rw-r--r--crates/parser/test_data/parser/inline/ok/0029_cast_expr.rast180
-rw-r--r--crates/parser/test_data/parser/inline/ok/0029_cast_expr.txt90
-rw-r--r--crates/parser/test_data/parser/inline/ok/0030_let_expr.txt90
-rw-r--r--crates/parser/test_data/parser/inline/ok/0031_while_expr.rast176
-rw-r--r--crates/parser/test_data/parser/inline/ok/0031_while_expr.txt87
-rw-r--r--crates/parser/test_data/parser/inline/ok/0032_fn_pointer_type.rast196
-rw-r--r--crates/parser/test_data/parser/inline/ok/0032_fn_pointer_type.txt98
-rw-r--r--crates/parser/test_data/parser/inline/ok/0033_reference_type;.rast102
-rw-r--r--crates/parser/test_data/parser/inline/ok/0033_reference_type;.txt51
-rw-r--r--crates/parser/test_data/parser/inline/ok/0034_break_expr.rast114
-rw-r--r--crates/parser/test_data/parser/inline/ok/0034_break_expr.txt57
-rw-r--r--crates/parser/test_data/parser/inline/ok/0037_qual_paths.rast158
-rw-r--r--crates/parser/test_data/parser/inline/ok/0037_qual_paths.txt79
-rw-r--r--crates/parser/test_data/parser/inline/ok/0038_full_range_expr.rast58
-rw-r--r--crates/parser/test_data/parser/inline/ok/0038_full_range_expr.txt29
-rw-r--r--crates/parser/test_data/parser/inline/ok/0040_crate_keyword_vis.rast126
-rw-r--r--crates/parser/test_data/parser/inline/ok/0040_crate_keyword_vis.txt63
-rw-r--r--crates/parser/test_data/parser/inline/ok/0041_trait_item.rast62
-rw-r--r--crates/parser/test_data/parser/inline/ok/0041_trait_item.txt31
-rw-r--r--crates/parser/test_data/parser/inline/ok/0042_call_expr.rast296
-rw-r--r--crates/parser/test_data/parser/inline/ok/0042_call_expr.txt148
-rw-r--r--crates/parser/test_data/parser/inline/ok/0044_block_items.rast60
-rw-r--r--crates/parser/test_data/parser/inline/ok/0044_block_items.txt30
-rw-r--r--crates/parser/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast96
-rw-r--r--crates/parser/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt48
-rw-r--r--crates/parser/test_data/parser/inline/ok/0046_singleton_tuple_type.rast40
-rw-r--r--crates/parser/test_data/parser/inline/ok/0046_singleton_tuple_type.txt20
-rw-r--r--crates/parser/test_data/parser/inline/ok/0048_path_type_with_bounds.rast170
-rw-r--r--crates/parser/test_data/parser/inline/ok/0048_path_type_with_bounds.txt85
-rw-r--r--crates/parser/test_data/parser/inline/ok/0050_fn_decl.rast44
-rw-r--r--crates/parser/test_data/parser/inline/ok/0050_fn_decl.txt22
-rw-r--r--crates/parser/test_data/parser/inline/ok/0051_unit_type.rast28
-rw-r--r--crates/parser/test_data/parser/inline/ok/0051_unit_type.txt14
-rw-r--r--crates/parser/test_data/parser/inline/ok/0052_path_type.rast144
-rw-r--r--crates/parser/test_data/parser/inline/ok/0052_path_type.txt72
-rw-r--r--crates/parser/test_data/parser/inline/ok/0053_path_expr.rast192
-rw-r--r--crates/parser/test_data/parser/inline/ok/0053_path_expr.txt96
-rw-r--r--crates/parser/test_data/parser/inline/ok/0054_record_field_attrs.rast66
-rw-r--r--crates/parser/test_data/parser/inline/ok/0054_record_field_attrs.txt33
-rw-r--r--crates/parser/test_data/parser/inline/ok/0055_literal_pattern.rast154
-rw-r--r--crates/parser/test_data/parser/inline/ok/0055_literal_pattern.txt77
-rw-r--r--crates/parser/test_data/parser/inline/ok/0056_where_clause.rast234
-rw-r--r--crates/parser/test_data/parser/inline/ok/0056_where_clause.txt117
-rw-r--r--crates/parser/test_data/parser/inline/ok/0058_range_pat.rast502
-rw-r--r--crates/parser/test_data/parser/inline/ok/0058_range_pat.txt251
-rw-r--r--crates/parser/test_data/parser/inline/ok/0059_match_arms_commas.rast120
-rw-r--r--crates/parser/test_data/parser/inline/ok/0059_match_arms_commas.txt60
-rw-r--r--crates/parser/test_data/parser/inline/ok/0060_extern_crate.rast20
-rw-r--r--crates/parser/test_data/parser/inline/ok/0060_extern_crate.txt10
-rw-r--r--crates/parser/test_data/parser/inline/ok/0061_record_lit.rast250
-rw-r--r--crates/parser/test_data/parser/inline/ok/0061_record_lit.txt125
-rw-r--r--crates/parser/test_data/parser/inline/ok/0062_mod_contents.rast130
-rw-r--r--crates/parser/test_data/parser/inline/ok/0062_mod_contents.txt65
-rw-r--r--crates/parser/test_data/parser/inline/ok/0063_impl_item_neg.rast46
-rw-r--r--crates/parser/test_data/parser/inline/ok/0063_impl_item_neg.txt23
-rw-r--r--crates/parser/test_data/parser/inline/ok/0064_if_expr.rast258
-rw-r--r--crates/parser/test_data/parser/inline/ok/0064_if_expr.txt126
-rw-r--r--crates/parser/test_data/parser/inline/ok/0065_dyn_trait_type.rast90
-rw-r--r--crates/parser/test_data/parser/inline/ok/0065_dyn_trait_type.txt45
-rw-r--r--crates/parser/test_data/parser/inline/ok/0066_match_arm.rast304
-rw-r--r--crates/parser/test_data/parser/inline/ok/0066_match_arm.txt152
-rw-r--r--crates/parser/test_data/parser/inline/ok/0067_crate_path.rast32
-rw-r--r--crates/parser/test_data/parser/inline/ok/0067_crate_path.txt16
-rw-r--r--crates/parser/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast106
-rw-r--r--crates/parser/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.txt53
-rw-r--r--crates/parser/test_data/parser/inline/ok/0071_match_expr.rast192
-rw-r--r--crates/parser/test_data/parser/inline/ok/0071_match_expr.txt96
-rw-r--r--crates/parser/test_data/parser/inline/ok/0072_return_expr.rast58
-rw-r--r--crates/parser/test_data/parser/inline/ok/0072_return_expr.txt29
-rw-r--r--crates/parser/test_data/parser/inline/ok/0073_type_item_type_params.rast40
-rw-r--r--crates/parser/test_data/parser/inline/ok/0073_type_item_type_params.txt20
-rw-r--r--crates/parser/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast126
-rw-r--r--crates/parser/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.txt63
-rw-r--r--crates/parser/test_data/parser/inline/ok/0075_block.rast180
-rw-r--r--crates/parser/test_data/parser/inline/ok/0075_block.txt90
-rw-r--r--crates/parser/test_data/parser/inline/ok/0076_function_where_clause.rast80
-rw-r--r--crates/parser/test_data/parser/inline/ok/0076_function_where_clause.txt40
-rw-r--r--crates/parser/test_data/parser/inline/ok/0077_try_expr.rast52
-rw-r--r--crates/parser/test_data/parser/inline/ok/0077_try_expr.txt26
-rw-r--r--crates/parser/test_data/parser/inline/ok/0078_type_alias.rast32
-rw-r--r--crates/parser/test_data/parser/inline/ok/0078_type_alias.txt16
-rw-r--r--crates/parser/test_data/parser/inline/ok/0079_impl_item.rast28
-rw-r--r--crates/parser/test_data/parser/inline/ok/0079_impl_item.txt14
-rw-r--r--crates/parser/test_data/parser/inline/ok/0080_postfix_range.rast192
-rw-r--r--crates/parser/test_data/parser/inline/ok/0080_postfix_range.txt96
-rw-r--r--crates/parser/test_data/parser/inline/ok/0081_for_type.rast234
-rw-r--r--crates/parser/test_data/parser/inline/ok/0081_for_type.txt117
-rw-r--r--crates/parser/test_data/parser/inline/ok/0082_ref_expr.rast278
-rw-r--r--crates/parser/test_data/parser/inline/ok/0082_ref_expr.txt139
-rw-r--r--crates/parser/test_data/parser/inline/ok/0084_paren_type.rast38
-rw-r--r--crates/parser/test_data/parser/inline/ok/0084_paren_type.txt19
-rw-r--r--crates/parser/test_data/parser/inline/ok/0085_expr_literals.rast272
-rw-r--r--crates/parser/test_data/parser/inline/ok/0085_expr_literals.txt136
-rw-r--r--crates/parser/test_data/parser/inline/ok/0086_function_ret_type.rast72
-rw-r--r--crates/parser/test_data/parser/inline/ok/0086_function_ret_type.txt36
-rw-r--r--crates/parser/test_data/parser/inline/ok/0088_break_ambiguity.rast136
-rw-r--r--crates/parser/test_data/parser/inline/ok/0088_break_ambiguity.txt67
-rw-r--r--crates/parser/test_data/parser/inline/ok/0090_type_param_default.rast44
-rw-r--r--crates/parser/test_data/parser/inline/ok/0090_type_param_default.txt22
-rw-r--r--crates/parser/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast46
-rw-r--r--crates/parser/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.txt23
-rw-r--r--crates/parser/test_data/parser/inline/ok/0093_index_expr.rast68
-rw-r--r--crates/parser/test_data/parser/inline/ok/0093_index_expr.txt34
-rw-r--r--crates/parser/test_data/parser/inline/ok/0095_placeholder_pat.rast58
-rw-r--r--crates/parser/test_data/parser/inline/ok/0095_placeholder_pat.txt29
-rw-r--r--crates/parser/test_data/parser/inline/ok/0096_no_semi_after_block.rast250
-rw-r--r--crates/parser/test_data/parser/inline/ok/0096_no_semi_after_block.txt124
-rw-r--r--crates/parser/test_data/parser/inline/ok/0099_param_list.rast206
-rw-r--r--crates/parser/test_data/parser/inline/ok/0099_param_list.txt103
-rw-r--r--crates/parser/test_data/parser/inline/ok/0100_for_expr.rast72
-rw-r--r--crates/parser/test_data/parser/inline/ok/0100_for_expr.txt36
-rw-r--r--crates/parser/test_data/parser/inline/ok/0102_record_pat_field_list.rast350
-rw-r--r--crates/parser/test_data/parser/inline/ok/0102_record_pat_field_list.txt175
-rw-r--r--crates/parser/test_data/parser/inline/ok/0103_array_expr.rast110
-rw-r--r--crates/parser/test_data/parser/inline/ok/0103_array_expr.txt55
-rw-r--r--crates/parser/test_data/parser/inline/ok/0104_path_fn_trait_args.rast82
-rw-r--r--crates/parser/test_data/parser/inline/ok/0104_path_fn_trait_args.txt41
-rw-r--r--crates/parser/test_data/parser/inline/ok/0106_lambda_expr.rast344
-rw-r--r--crates/parser/test_data/parser/inline/ok/0106_lambda_expr.txt204
-rw-r--r--crates/parser/test_data/parser/inline/ok/0107_method_call_expr.rast126
-rw-r--r--crates/parser/test_data/parser/inline/ok/0107_method_call_expr.txt63
-rw-r--r--crates/parser/test_data/parser/inline/ok/0108_tuple_expr.rast78
-rw-r--r--crates/parser/test_data/parser/inline/ok/0108_tuple_expr.txt39
-rw-r--r--crates/parser/test_data/parser/inline/ok/0109_label.rast141
-rw-r--r--crates/parser/test_data/parser/inline/ok/0109_label.txt70
-rw-r--r--crates/parser/test_data/parser/inline/ok/0111_tuple_pat.rast180
-rw-r--r--crates/parser/test_data/parser/inline/ok/0111_tuple_pat.txt90
-rw-r--r--crates/parser/test_data/parser/inline/ok/0112_bind_pat.rast256
-rw-r--r--crates/parser/test_data/parser/inline/ok/0112_bind_pat.txt128
-rw-r--r--crates/parser/test_data/parser/inline/ok/0113_nocontentexpr.rast114
-rw-r--r--crates/parser/test_data/parser/inline/ok/0113_nocontentexpr.txt57
-rw-r--r--crates/parser/test_data/parser/inline/ok/0114_tuple_struct_where.rast84
-rw-r--r--crates/parser/test_data/parser/inline/ok/0114_tuple_struct_where.txt42
-rw-r--r--crates/parser/test_data/parser/inline/ok/0115_tuple_field_attrs.rast56
-rw-r--r--crates/parser/test_data/parser/inline/ok/0115_tuple_field_attrs.txt28
-rw-r--r--crates/parser/test_data/parser/inline/ok/0117_macro_call_type.rast92
-rw-r--r--crates/parser/test_data/parser/inline/ok/0117_macro_call_type.txt46
-rw-r--r--crates/parser/test_data/parser/inline/ok/0118_match_guard.rast153
-rw-r--r--crates/parser/test_data/parser/inline/ok/0118_match_guard.txt77
-rw-r--r--crates/parser/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast168
-rw-r--r--crates/parser/test_data/parser/inline/ok/0120_match_arms_inner_attribute.txt84
-rw-r--r--crates/parser/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast302
-rw-r--r--crates/parser/test_data/parser/inline/ok/0121_match_arms_outer_attributes.txt151
-rw-r--r--crates/parser/test_data/parser/inline/ok/0123_param_list_vararg.rast100
-rw-r--r--crates/parser/test_data/parser/inline/ok/0123_param_list_vararg.txt50
-rw-r--r--crates/parser/test_data/parser/inline/ok/0125_crate_keyword_path.rast66
-rw-r--r--crates/parser/test_data/parser/inline/ok/0125_crate_keyword_path.txt33
-rw-r--r--crates/parser/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast98
-rw-r--r--crates/parser/test_data/parser/inline/ok/0125_record_literal_field_with_attr.txt49
-rw-r--r--crates/parser/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast208
-rw-r--r--crates/parser/test_data/parser/inline/ok/0126_attr_on_expr_stmt.txt104
-rw-r--r--crates/parser/test_data/parser/inline/ok/0129_marco_pat.rast74
-rw-r--r--crates/parser/test_data/parser/inline/ok/0129_marco_pat.txt37
-rw-r--r--crates/parser/test_data/parser/inline/ok/0130_let_stmt.rast72
-rw-r--r--crates/parser/test_data/parser/inline/ok/0130_let_stmt.txt36
-rw-r--r--crates/parser/test_data/parser/inline/ok/0130_try_block_expr.rast64
-rw-r--r--crates/parser/test_data/parser/inline/ok/0130_try_block_expr.txt32
-rw-r--r--crates/parser/test_data/parser/inline/ok/0131_existential_type.rast62
-rw-r--r--crates/parser/test_data/parser/inline/ok/0131_existential_type.txt31
-rw-r--r--crates/parser/test_data/parser/inline/ok/0132_box_expr.rast180
-rw-r--r--crates/parser/test_data/parser/inline/ok/0132_box_expr.txt90
-rw-r--r--crates/parser/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast128
-rw-r--r--crates/parser/test_data/parser/inline/ok/0134_nocontentexpr_after_item.txt64
-rw-r--r--crates/parser/test_data/parser/inline/ok/0137_await_expr.rast140
-rw-r--r--crates/parser/test_data/parser/inline/ok/0137_await_expr.txt70
-rw-r--r--crates/parser/test_data/parser/inline/ok/0138_associated_type_bounds.rast222
-rw-r--r--crates/parser/test_data/parser/inline/ok/0138_associated_type_bounds.txt111
-rw-r--r--crates/parser/test_data/parser/inline/ok/0138_expression_after_block.rast132
-rw-r--r--crates/parser/test_data/parser/inline/ok/0138_expression_after_block.txt66
-rw-r--r--crates/parser/test_data/parser/inline/ok/0138_self_param_outer_attr.rast56
-rw-r--r--crates/parser/test_data/parser/inline/ok/0138_self_param_outer_attr.txt28
-rw-r--r--crates/parser/test_data/parser/inline/ok/0139_param_outer_arg.rast72
-rw-r--r--crates/parser/test_data/parser/inline/ok/0139_param_outer_arg.txt36
-rw-r--r--crates/parser/test_data/parser/inline/ok/0142_for_range_from.rast84
-rw-r--r--crates/parser/test_data/parser/inline/ok/0142_for_range_from.txt42
-rw-r--r--crates/parser/test_data/parser/inline/ok/0143_box_pat.rast222
-rw-r--r--crates/parser/test_data/parser/inline/ok/0143_box_pat.txt111
-rw-r--r--crates/parser/test_data/parser/inline/ok/0144_dot_dot_pat.rast912
-rw-r--r--crates/parser/test_data/parser/inline/ok/0144_dot_dot_pat.txt456
-rw-r--r--crates/parser/test_data/parser/inline/ok/0145_record_pat_field.rast246
-rw-r--r--crates/parser/test_data/parser/inline/ok/0145_record_pat_field.txt123
-rw-r--r--crates/parser/test_data/parser/inline/ok/0146_as_precedence.rast86
-rw-r--r--crates/parser/test_data/parser/inline/ok/0146_as_precedence.txt43
-rw-r--r--crates/parser/test_data/parser/inline/ok/0147_const_param.rast46
-rw-r--r--crates/parser/test_data/parser/inline/ok/0147_const_param.txt23
-rw-r--r--crates/parser/test_data/parser/inline/ok/0147_macro_def.rast38
-rw-r--r--crates/parser/test_data/parser/inline/ok/0147_macro_def.txt19
-rw-r--r--crates/parser/test_data/parser/inline/ok/0150_array_attrs.rast96
-rw-r--r--crates/parser/test_data/parser/inline/ok/0150_array_attrs.txt48
-rw-r--r--crates/parser/test_data/parser/inline/ok/0150_impl_type_params.rast76
-rw-r--r--crates/parser/test_data/parser/inline/ok/0150_impl_type_params.txt38
-rw-r--r--crates/parser/test_data/parser/inline/ok/0151_fn.rast30
-rw-r--r--crates/parser/test_data/parser/inline/ok/0151_fn.txt15
-rw-r--r--crates/parser/test_data/parser/inline/ok/0151_trait_alias.rast66
-rw-r--r--crates/parser/test_data/parser/inline/ok/0151_trait_alias.txt33
-rw-r--r--crates/parser/test_data/parser/inline/ok/0152_arg_with_attr.rast76
-rw-r--r--crates/parser/test_data/parser/inline/ok/0152_arg_with_attr.txt38
-rw-r--r--crates/parser/test_data/parser/inline/ok/0153_pub_parens_typepath.rast112
-rw-r--r--crates/parser/test_data/parser/inline/ok/0153_pub_parens_typepath.txt56
-rw-r--r--crates/parser/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast116
-rw-r--r--crates/parser/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.txt58
-rw-r--r--crates/parser/test_data/parser/inline/ok/0154_no_dyn_trait_leading_for.rast86
-rw-r--r--crates/parser/test_data/parser/inline/ok/0154_no_dyn_trait_leading_for.txt43
-rw-r--r--crates/parser/test_data/parser/inline/ok/0154_tuple_attrs.rast102
-rw-r--r--crates/parser/test_data/parser/inline/ok/0154_tuple_attrs.txt51
-rw-r--r--crates/parser/test_data/parser/inline/ok/0155_closure_params.rast140
-rw-r--r--crates/parser/test_data/parser/inline/ok/0155_closure_params.txt70
-rw-r--r--crates/parser/test_data/parser/inline/ok/0156_const_block_pat.rast158
-rw-r--r--crates/parser/test_data/parser/inline/ok/0156_const_block_pat.txt79
-rw-r--r--crates/parser/test_data/parser/inline/ok/0156_fn_def_param.rast88
-rw-r--r--crates/parser/test_data/parser/inline/ok/0156_fn_def_param.txt44
-rw-r--r--crates/parser/test_data/parser/inline/ok/0156_or_pattern.rast224
-rw-r--r--crates/parser/test_data/parser/inline/ok/0156_or_pattern.txt112
-rw-r--r--crates/parser/test_data/parser/inline/ok/0157_const_block.rast48
-rw-r--r--crates/parser/test_data/parser/inline/ok/0157_const_block.txt24
-rw-r--r--crates/parser/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast52
-rw-r--r--crates/parser/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.txt26
-rw-r--r--crates/parser/test_data/parser/inline/ok/0157_variant_discriminant.rast60
-rw-r--r--crates/parser/test_data/parser/inline/ok/0157_variant_discriminant.txt30
-rw-r--r--crates/parser/test_data/parser/inline/ok/0158_binop_resets_statementness.rast76
-rw-r--r--crates/parser/test_data/parser/inline/ok/0158_binop_resets_statementness.txt38
-rw-r--r--crates/parser/test_data/parser/inline/ok/0158_lambda_ret_block.rast90
-rw-r--r--crates/parser/test_data/parser/inline/ok/0158_lambda_ret_block.txt45
-rw-r--r--crates/parser/test_data/parser/inline/ok/0158_macro_rules_non_brace.rast114
-rw-r--r--crates/parser/test_data/parser/inline/ok/0158_macro_rules_non_brace.txt57
-rw-r--r--crates/parser/test_data/parser/inline/ok/0159_try_macro_fallback.rast70
-rw-r--r--crates/parser/test_data/parser/inline/ok/0159_try_macro_fallback.txt35
-rw-r--r--crates/parser/test_data/parser/inline/ok/0159_yield_expr.rast58
-rw-r--r--crates/parser/test_data/parser/inline/ok/0159_yield_expr.txt29
-rw-r--r--crates/parser/test_data/parser/inline/ok/0160_crate_visibility_in.rast84
-rw-r--r--crates/parser/test_data/parser/inline/ok/0160_crate_visibility_in.txt42
-rw-r--r--crates/parser/test_data/parser/inline/ok/0160_try_macro_rules.rast48
-rw-r--r--crates/parser/test_data/parser/inline/ok/0160_try_macro_rules.txt24
-rw-r--r--crates/parser/test_data/parser/inline/ok/0161_impl_item_const.rast48
-rw-r--r--crates/parser/test_data/parser/inline/ok/0161_impl_item_const.txt24
-rw-r--r--crates/parser/test_data/parser/inline/ok/0161_labeled_block.rast56
-rw-r--r--crates/parser/test_data/parser/inline/ok/0161_labeled_block.txt28
-rw-r--r--crates/parser/test_data/parser/inline/ok/0162_default_async_unsafe_fn.rast86
-rw-r--r--crates/parser/test_data/parser/inline/ok/0162_default_async_unsafe_fn.txt43
-rw-r--r--crates/parser/test_data/parser/inline/ok/0162_unsafe_block.rast48
-rw-r--r--crates/parser/test_data/parser/inline/ok/0162_unsafe_block.txt24
-rw-r--r--crates/parser/test_data/parser/inline/ok/0163_default_async_fn.rast82
-rw-r--r--crates/parser/test_data/parser/inline/ok/0163_default_async_fn.txt41
-rw-r--r--crates/parser/test_data/parser/inline/ok/0163_default_unsafe_item.rast90
-rw-r--r--crates/parser/test_data/parser/inline/ok/0163_default_unsafe_item.txt45
-rw-r--r--crates/parser/test_data/parser/inline/ok/0164_default_item.rast48
-rw-r--r--crates/parser/test_data/parser/inline/ok/0164_default_item.txt24
-rw-r--r--crates/parser/test_data/parser/inline/ok/0164_type_path_in_pattern.rast78
-rw-r--r--crates/parser/test_data/parser/inline/ok/0164_type_path_in_pattern.txt39
-rw-r--r--crates/parser/test_data/parser/inline/ok/0165_const_param_defaults.rast62
-rw-r--r--crates/parser/test_data/parser/inline/ok/0165_const_param_defaults.txt31
-rw-r--r--crates/parser/test_data/parser/inline/ok/0166_half_open_range_pat.rast64
-rw-r--r--crates/parser/test_data/parser/inline/ok/0166_half_open_range_pat.txt32
-rw-r--r--crates/parser/test_data/parser/inline/ok/0168_extern_crate_rename.rast32
-rw-r--r--crates/parser/test_data/parser/inline/ok/0168_extern_crate_rename.txt16
-rw-r--r--crates/parser/test_data/parser/inline/ok/0168_extern_crate_self.rast20
-rw-r--r--crates/parser/test_data/parser/inline/ok/0168_extern_crate_self.txt10
-rw-r--r--crates/parser/test_data/parser/inline/ok/0169_mod_item.rast16
-rw-r--r--crates/parser/test_data/parser/inline/ok/0169_mod_item.txt8
-rw-r--r--crates/parser/test_data/parser/inline/ok/0170_mod_item_curly.rast24
-rw-r--r--crates/parser/test_data/parser/inline/ok/0170_mod_item_curly.txt12
-rw-r--r--crates/parser/test_data/parser/inline/ok/0170_tuple_struct.rast50
-rw-r--r--crates/parser/test_data/parser/inline/ok/0170_tuple_struct.txt25
-rw-r--r--crates/parser/test_data/parser/inline/ok/0171_struct_item.rast22
-rw-r--r--crates/parser/test_data/parser/inline/ok/0171_struct_item.txt11
-rw-r--r--crates/parser/test_data/parser/inline/ok/0172_const_item.rast40
-rw-r--r--crates/parser/test_data/parser/inline/ok/0172_const_item.txt20
-rw-r--r--crates/parser/test_data/parser/inline/ok/0172_record_field_list.rast70
-rw-r--r--crates/parser/test_data/parser/inline/ok/0172_record_field_list.txt35
-rw-r--r--crates/parser/test_data/parser/inline/ok/0173_anonymous_const.rast38
-rw-r--r--crates/parser/test_data/parser/inline/ok/0173_anonymous_const.txt19
-rw-r--r--crates/parser/test_data/parser/inline/ok/0173_macro_def_curly.rast54
-rw-r--r--crates/parser/test_data/parser/inline/ok/0173_macro_def_curly.txt27
-rw-r--r--crates/parser/test_data/parser/inline/ok/0173_union_item.rast70
-rw-r--r--crates/parser/test_data/parser/inline/ok/0173_union_item.txt35
-rw-r--r--crates/parser/test_data/parser/inline/ok/0174_trait_item_generic_params.rast70
-rw-r--r--crates/parser/test_data/parser/inline/ok/0174_trait_item_generic_params.txt35
-rw-r--r--crates/parser/test_data/parser/inline/ok/0174_unit_struct.rast16
-rw-r--r--crates/parser/test_data/parser/inline/ok/0174_unit_struct.txt8
-rw-r--r--crates/parser/test_data/parser/inline/ok/0174_use_tree_star.rast48
-rw-r--r--crates/parser/test_data/parser/inline/ok/0174_use_tree_star.txt24
-rw-r--r--crates/parser/test_data/parser/inline/ok/0175_trait_item_bounds.rast58
-rw-r--r--crates/parser/test_data/parser/inline/ok/0175_trait_item_bounds.txt29
-rw-r--r--crates/parser/test_data/parser/inline/ok/0176_trait_item_where_clause.rast60
-rw-r--r--crates/parser/test_data/parser/inline/ok/0176_trait_item_where_clause.txt30
-rw-r--r--crates/parser/test_data/parser/inline/ok/0176_use_tree_alias.rast64
-rw-r--r--crates/parser/test_data/parser/inline/ok/0176_use_tree_alias.txt32
-rw-r--r--crates/parser/test_data/parser/inline/ok/0177_assoc_item_list_inner_attrs.rast52
-rw-r--r--crates/parser/test_data/parser/inline/ok/0177_assoc_item_list_inner_attrs.txt26
-rw-r--r--crates/parser/test_data/parser/inline/ok/0177_trait_alias_where_clause.rast192
-rw-r--r--crates/parser/test_data/parser/inline/ok/0177_trait_alias_where_clause.txt96
-rw-r--r--crates/parser/test_data/parser/inline/ok/0177_use_tree.rast60
-rw-r--r--crates/parser/test_data/parser/inline/ok/0177_use_tree.txt30
-rw-r--r--crates/parser/test_data/parser/inline/ok/0177_use_tree_path.rast144
-rw-r--r--crates/parser/test_data/parser/inline/ok/0177_use_tree_path.txt72
-rw-r--r--crates/parser/test_data/parser/inline/ok/0178_use_tree_path_use_tree.rast40
-rw-r--r--crates/parser/test_data/parser/inline/ok/0178_use_tree_path_use_tree.txt20
-rw-r--r--crates/parser/test_data/parser/inline/ok/0179_use_tree_abs_star.rast52
-rw-r--r--crates/parser/test_data/parser/inline/ok/0179_use_tree_abs_star.txt26
-rw-r--r--crates/parser/test_data/parser/inline/ok/0180_use_tree_path_star.rast26
-rw-r--r--crates/parser/test_data/parser/inline/ok/0180_use_tree_path_star.txt13
-rw-r--r--crates/parser/test_data/parser/inline/ok/0181_generic_param_attribute.rast92
-rw-r--r--crates/parser/test_data/parser/inline/ok/0181_generic_param_attribute.txt46
-rw-r--r--crates/parser/test_data/parser/inline/ok/0181_use_item.rast32
-rw-r--r--crates/parser/test_data/parser/inline/ok/0181_use_item.txt16
-rw-r--r--crates/parser/test_data/parser/inline/ok/0182_lifetime_param.rast50
-rw-r--r--crates/parser/test_data/parser/inline/ok/0182_lifetime_param.txt25
-rw-r--r--crates/parser/test_data/parser/inline/ok/0183_const_arg_block.rast64
-rw-r--r--crates/parser/test_data/parser/inline/ok/0183_const_arg_block.txt32
-rw-r--r--crates/parser/test_data/parser/inline/ok/0183_type_param.rast60
-rw-r--r--crates/parser/test_data/parser/inline/ok/0183_type_param.txt30
-rw-r--r--crates/parser/test_data/parser/inline/ok/0184_const_arg.rast44
-rw-r--r--crates/parser/test_data/parser/inline/ok/0184_const_arg.txt22
-rw-r--r--crates/parser/test_data/parser/inline/ok/0184_generic_param_list.rast60
-rw-r--r--crates/parser/test_data/parser/inline/ok/0184_generic_param_list.txt30
-rw-r--r--crates/parser/test_data/parser/inline/ok/0185_assoc_type_bound.rast74
-rw-r--r--crates/parser/test_data/parser/inline/ok/0185_assoc_type_bound.txt37
-rw-r--r--crates/parser/test_data/parser/inline/ok/0186_lifetime_arg.rast44
-rw-r--r--crates/parser/test_data/parser/inline/ok/0186_lifetime_arg.txt22
-rw-r--r--crates/parser/test_data/parser/inline/ok/0187_assoc_type_eq.rast82
-rw-r--r--crates/parser/test_data/parser/inline/ok/0187_assoc_type_eq.txt41
-rw-r--r--crates/parser/test_data/parser/inline/ok/0188_const_arg_path.rast74
-rw-r--r--crates/parser/test_data/parser/inline/ok/0188_const_arg_path.txt37
-rw-r--r--crates/parser/test_data/parser/inline/ok/0189_const_arg_literal.rast54
-rw-r--r--crates/parser/test_data/parser/inline/ok/0189_const_arg_literal.txt27
-rw-r--r--crates/parser/test_data/parser/inline/ok/0190_generic_arg.rast50
-rw-r--r--crates/parser/test_data/parser/inline/ok/0190_generic_arg.txt25
-rw-r--r--crates/parser/test_data/parser/inline/ok/0191_const_arg_negative_number.rast48
-rw-r--r--crates/parser/test_data/parser/inline/ok/0191_const_arg_negative_number.txt24
-rw-r--r--crates/parser/test_data/parser/inline/ok/0192_const_arg_bool_literal.rast44
-rw-r--r--crates/parser/test_data/parser/inline/ok/0192_const_arg_bool_literal.txt22
-rw-r--r--crates/parser/test_data/parser/inline/ok/0193_let_stmt_init.rast58
-rw-r--r--crates/parser/test_data/parser/inline/ok/0193_let_stmt_init.txt29
-rw-r--r--crates/parser/test_data/parser/inline/ok/0194_let_else.rast102
-rw-r--r--crates/parser/test_data/parser/inline/ok/0194_let_else.txt51
-rw-r--r--crates/parser/test_data/parser/inline/ok/0194_let_stmt_ascription.rast62
-rw-r--r--crates/parser/test_data/parser/inline/ok/0194_let_stmt_ascription.txt31
-rw-r--r--crates/parser/test_data/parser/inline/ok/0194_macro_inside_generic_arg.rast72
-rw-r--r--crates/parser/test_data/parser/inline/ok/0194_macro_inside_generic_arg.txt36
-rw-r--r--crates/parser/test_data/parser/inline/ok/0196_pub_tuple_field.rast60
-rw-r--r--crates/parser/test_data/parser/inline/ok/0196_pub_tuple_field.txt30
-rw-r--r--crates/parser/test_data/parser/inline/ok/0197_destructuring_assignment_struct_rest_pattern.rast (renamed from crates/parser/test_data/parser/inline/ok/0197_destructuring_assignment_struct_rest_pattern.txt)0
-rw-r--r--crates/parser/test_data/parser/inline/ok/0198_destructuring_assignment_wildcard_pat.rast (renamed from crates/parser/test_data/parser/inline/ok/0198_destructuring_assignment_wildcard_pat.txt)0
-rw-r--r--crates/parser/test_data/parser/ok/0000_empty.rast2
-rw-r--r--crates/parser/test_data/parser/ok/0000_empty.txt1
-rw-r--r--crates/parser/test_data/parser/ok/0001_struct_item.rast78
-rw-r--r--crates/parser/test_data/parser/ok/0001_struct_item.txt39
-rw-r--r--crates/parser/test_data/parser/ok/0002_struct_item_field.rast44
-rw-r--r--crates/parser/test_data/parser/ok/0002_struct_item_field.txt22
-rw-r--r--crates/parser/test_data/parser/ok/0004_file_shebang.rast4
-rw-r--r--crates/parser/test_data/parser/ok/0004_file_shebang.txt2
-rw-r--r--crates/parser/test_data/parser/ok/0005_fn_item.rast32
-rw-r--r--crates/parser/test_data/parser/ok/0005_fn_item.txt16
-rw-r--r--crates/parser/test_data/parser/ok/0006_inner_attributes.rast388
-rw-r--r--crates/parser/test_data/parser/ok/0006_inner_attributes.txt194
-rw-r--r--crates/parser/test_data/parser/ok/0007_extern_crate.rast80
-rw-r--r--crates/parser/test_data/parser/ok/0007_extern_crate.txt40
-rw-r--r--crates/parser/test_data/parser/ok/0008_mod_item.rast154
-rw-r--r--crates/parser/test_data/parser/ok/0008_mod_item.txt77
-rw-r--r--crates/parser/test_data/parser/ok/0009_use_item.rast42
-rw-r--r--crates/parser/test_data/parser/ok/0009_use_item.txt21
-rw-r--r--crates/parser/test_data/parser/ok/0010_use_path_segments.rast84
-rw-r--r--crates/parser/test_data/parser/ok/0010_use_path_segments.txt42
-rw-r--r--crates/parser/test_data/parser/ok/0011_outer_attribute.rast122
-rw-r--r--crates/parser/test_data/parser/ok/0011_outer_attribute.txt61
-rw-r--r--crates/parser/test_data/parser/ok/0012_visibility.rast266
-rw-r--r--crates/parser/test_data/parser/ok/0012_visibility.txt133
-rw-r--r--crates/parser/test_data/parser/ok/0013_use_path_self_super.rast72
-rw-r--r--crates/parser/test_data/parser/ok/0013_use_path_self_super.txt36
-rw-r--r--crates/parser/test_data/parser/ok/0014_use_tree.rast190
-rw-r--r--crates/parser/test_data/parser/ok/0014_use_tree.txt95
-rw-r--r--crates/parser/test_data/parser/ok/0015_use_tree.rast130
-rw-r--r--crates/parser/test_data/parser/ok/0015_use_tree.txt65
-rw-r--r--crates/parser/test_data/parser/ok/0016_struct_flavors.rast186
-rw-r--r--crates/parser/test_data/parser/ok/0016_struct_flavors.txt93
-rw-r--r--crates/parser/test_data/parser/ok/0017_attr_trailing_comma.rast60
-rw-r--r--crates/parser/test_data/parser/ok/0017_attr_trailing_comma.txt30
-rw-r--r--crates/parser/test_data/parser/ok/0018_struct_type_params.rast548
-rw-r--r--crates/parser/test_data/parser/ok/0018_struct_type_params.txt274
-rw-r--r--crates/parser/test_data/parser/ok/0019_enums.rast310
-rw-r--r--crates/parser/test_data/parser/ok/0019_enums.txt155
-rw-r--r--crates/parser/test_data/parser/ok/0020_type_param_bounds.rast566
-rw-r--r--crates/parser/test_data/parser/ok/0020_type_param_bounds.txt283
-rw-r--r--crates/parser/test_data/parser/ok/0022_empty_extern_block.rast42
-rw-r--r--crates/parser/test_data/parser/ok/0022_empty_extern_block.txt21
-rw-r--r--crates/parser/test_data/parser/ok/0023_static_items.rast82
-rw-r--r--crates/parser/test_data/parser/ok/0023_static_items.txt41
-rw-r--r--crates/parser/test_data/parser/ok/0024_const_item.rast2
-rw-r--r--crates/parser/test_data/parser/ok/0024_const_item.txt1
-rw-r--r--crates/parser/test_data/parser/ok/0025_extern_fn_in_block.rast66
-rw-r--r--crates/parser/test_data/parser/ok/0025_extern_fn_in_block.txt33
-rw-r--r--crates/parser/test_data/parser/ok/0026_const_fn_in_block.rast64
-rw-r--r--crates/parser/test_data/parser/ok/0026_const_fn_in_block.txt32
-rw-r--r--crates/parser/test_data/parser/ok/0027_unsafe_fn_in_block.rast86
-rw-r--r--crates/parser/test_data/parser/ok/0027_unsafe_fn_in_block.txt43
-rw-r--r--crates/parser/test_data/parser/ok/0028_operator_binding_power.rast372
-rw-r--r--crates/parser/test_data/parser/ok/0028_operator_binding_power.txt186
-rw-r--r--crates/parser/test_data/parser/ok/0029_range_forms.rast304
-rw-r--r--crates/parser/test_data/parser/ok/0029_range_forms.txt152
-rw-r--r--crates/parser/test_data/parser/ok/0030_string_suffixes.rast128
-rw-r--r--crates/parser/test_data/parser/ok/0030_string_suffixes.txt64
-rw-r--r--crates/parser/test_data/parser/ok/0030_traits.rast122
-rw-r--r--crates/parser/test_data/parser/ok/0030_traits.txt61
-rw-r--r--crates/parser/test_data/parser/ok/0031_extern.rast1946
-rw-r--r--crates/parser/test_data/parser/ok/0031_extern.txt973
-rw-r--r--crates/parser/test_data/parser/ok/0032_where_for.rast186
-rw-r--r--crates/parser/test_data/parser/ok/0032_where_for.txt93
-rw-r--r--crates/parser/test_data/parser/ok/0033_label_break.rast450
-rw-r--r--crates/parser/test_data/parser/ok/0033_label_break.txt223
-rw-r--r--crates/parser/test_data/parser/ok/0034_crate_path_in_call.rast86
-rw-r--r--crates/parser/test_data/parser/ok/0034_crate_path_in_call.txt43
-rw-r--r--crates/parser/test_data/parser/ok/0035_weird_exprs.rast4665
-rw-r--r--crates/parser/test_data/parser/ok/0035_weird_exprs.txt2328
-rw-r--r--crates/parser/test_data/parser/ok/0036_fully_qualified.rast186
-rw-r--r--crates/parser/test_data/parser/ok/0036_fully_qualified.txt93
-rw-r--r--crates/parser/test_data/parser/ok/0037_mod.rast32
-rw-r--r--crates/parser/test_data/parser/ok/0037_mod.txt16
-rw-r--r--crates/parser/test_data/parser/ok/0038_where_pred_type.rast86
-rw-r--r--crates/parser/test_data/parser/ok/0038_where_pred_type.txt43
-rw-r--r--crates/parser/test_data/parser/ok/0039_raw_fn_item.rast32
-rw-r--r--crates/parser/test_data/parser/ok/0039_raw_fn_item.txt16
-rw-r--r--crates/parser/test_data/parser/ok/0040_raw_struct_item_field.rast44
-rw-r--r--crates/parser/test_data/parser/ok/0040_raw_struct_item_field.txt22
-rw-r--r--crates/parser/test_data/parser/ok/0041_raw_keywords.rast100
-rw-r--r--crates/parser/test_data/parser/ok/0041_raw_keywords.txt50
-rw-r--r--crates/parser/test_data/parser/ok/0042_ufcs_call_list.rast252
-rw-r--r--crates/parser/test_data/parser/ok/0042_ufcs_call_list.txt126
-rw-r--r--crates/parser/test_data/parser/ok/0043_complex_assignment.rast220
-rw-r--r--crates/parser/test_data/parser/ok/0043_complex_assignment.txt110
-rw-r--r--crates/parser/test_data/parser/ok/0044_let_attrs.rast154
-rw-r--r--crates/parser/test_data/parser/ok/0044_let_attrs.txt77
-rw-r--r--crates/parser/test_data/parser/ok/0045_block_attrs.rast460
-rw-r--r--crates/parser/test_data/parser/ok/0045_block_attrs.txt230
-rw-r--r--crates/parser/test_data/parser/ok/0046_extern_inner_attributes.rast58
-rw-r--r--crates/parser/test_data/parser/ok/0046_extern_inner_attributes.txt29
-rw-r--r--crates/parser/test_data/parser/ok/0047_minus_in_inner_pattern.rast646
-rw-r--r--crates/parser/test_data/parser/ok/0047_minus_in_inner_pattern.txt323
-rw-r--r--crates/parser/test_data/parser/ok/0048_compound_assignment.rast402
-rw-r--r--crates/parser/test_data/parser/ok/0048_compound_assignment.txt201
-rw-r--r--crates/parser/test_data/parser/ok/0049_async_block.rast72
-rw-r--r--crates/parser/test_data/parser/ok/0049_async_block.txt36
-rw-r--r--crates/parser/test_data/parser/ok/0050_async_block_as_argument.rast184
-rw-r--r--crates/parser/test_data/parser/ok/0050_async_block_as_argument.txt92
-rw-r--r--crates/parser/test_data/parser/ok/0051_parameter_attrs.rast1096
-rw-r--r--crates/parser/test_data/parser/ok/0051_parameter_attrs.txt548
-rw-r--r--crates/parser/test_data/parser/ok/0052_for_range_block.rast162
-rw-r--r--crates/parser/test_data/parser/ok/0052_for_range_block.txt81
-rw-r--r--crates/parser/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast74
-rw-r--r--crates/parser/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt37
-rw-r--r--crates/parser/test_data/parser/ok/0054_qual_path_in_type_arg.rast252
-rw-r--r--crates/parser/test_data/parser/ok/0054_qual_path_in_type_arg.txt126
-rw-r--r--crates/parser/test_data/parser/ok/0055_dot_dot_dot.rast100
-rw-r--r--crates/parser/test_data/parser/ok/0055_dot_dot_dot.txt50
-rw-r--r--crates/parser/test_data/parser/ok/0056_neq_in_type.rast131
-rw-r--r--crates/parser/test_data/parser/ok/0056_neq_in_type.txt65
-rw-r--r--crates/parser/test_data/parser/ok/0057_loop_in_call.rast118
-rw-r--r--crates/parser/test_data/parser/ok/0057_loop_in_call.txt59
-rw-r--r--crates/parser/test_data/parser/ok/0058_unary_expr_precedence.rast194
-rw-r--r--crates/parser/test_data/parser/ok/0058_unary_expr_precedence.txt97
-rw-r--r--crates/parser/test_data/parser/ok/0059_loops_in_parens.rast201
-rw-r--r--crates/parser/test_data/parser/ok/0059_loops_in_parens.txt100
-rw-r--r--crates/parser/test_data/parser/ok/0060_as_range.rast112
-rw-r--r--crates/parser/test_data/parser/ok/0060_as_range.txt56
-rw-r--r--crates/parser/test_data/parser/ok/0061_match_full_range.rast54
-rw-r--r--crates/parser/test_data/parser/ok/0061_match_full_range.txt27
-rw-r--r--crates/parser/test_data/parser/ok/0062_macro_2.0.rast354
-rw-r--r--crates/parser/test_data/parser/ok/0062_macro_2.0.txt177
-rw-r--r--crates/parser/test_data/parser/ok/0063_trait_fn_patterns.rast396
-rw-r--r--crates/parser/test_data/parser/ok/0063_trait_fn_patterns.txt198
-rw-r--r--crates/parser/test_data/parser/ok/0063_variadic_fun.rast268
-rw-r--r--crates/parser/test_data/parser/ok/0063_variadic_fun.txt134
-rw-r--r--crates/parser/test_data/parser/ok/0064_impl_fn_params.rast332
-rw-r--r--crates/parser/test_data/parser/ok/0064_impl_fn_params.txt166
-rw-r--r--crates/parser/test_data/parser/ok/0065_comment_newline.rast34
-rw-r--r--crates/parser/test_data/parser/ok/0065_comment_newline.txt17
-rw-r--r--crates/parser/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast122
-rw-r--r--crates/parser/test_data/parser/ok/0065_plus_after_fn_trait_bound.txt61
-rw-r--r--crates/parser/test_data/parser/ok/0066_default_modifier.rast444
-rw-r--r--crates/parser/test_data/parser/ok/0066_default_modifier.txt222
-rw-r--r--crates/parser/test_data/parser/ok/0067_where_for_pred.rast826
-rw-r--r--crates/parser/test_data/parser/ok/0067_where_for_pred.txt413
-rw-r--r--crates/parser/test_data/parser/ok/0068_item_modifiers.rast476
-rw-r--r--crates/parser/test_data/parser/ok/0068_item_modifiers.txt238
-rw-r--r--crates/parser/test_data/parser/ok/0069_multi_trait_object.rast408
-rw-r--r--crates/parser/test_data/parser/ok/0069_multi_trait_object.txt204
-rw-r--r--crates/parser/test_data/parser/ok/0070_expr_attr_placement.rast118
-rw-r--r--crates/parser/test_data/parser/ok/0070_expr_attr_placement.txt59
-rw-r--r--crates/parser/test_data/parser/ok/0071_stmt_attr_placement.rast142
-rw-r--r--crates/parser/test_data/parser/ok/0071_stmt_attr_placement.txt71
-rw-r--r--crates/parser/test_data/parser/ok/0072_destructuring_assignment.rast (renamed from crates/parser/test_data/parser/ok/0072_destructuring_assignment.txt)0
715 files changed, 24858 insertions, 48830 deletions
diff --git a/crates/parser/src/tests.rs b/crates/parser/src/tests.rs
index cb25abdfea..735c0b3e40 100644
--- a/crates/parser/src/tests.rs
+++ b/crates/parser/src/tests.rs
@@ -16,7 +16,7 @@ use crate::{LexedStr, TopEntryPoint};
fn lex_ok() {
for case in TestCase::list("lexer/ok") {
let actual = lex(&case.text);
- expect_file![case.txt].assert_eq(&actual)
+ expect_file![case.rast].assert_eq(&actual)
}
}
@@ -24,7 +24,7 @@ fn lex_ok() {
fn lex_err() {
for case in TestCase::list("lexer/err") {
let actual = lex(&case.text);
- expect_file![case.txt].assert_eq(&actual)
+ expect_file![case.rast].assert_eq(&actual)
}
}
@@ -48,7 +48,7 @@ fn parse_ok() {
for case in TestCase::list("parser/ok") {
let (actual, errors) = parse(TopEntryPoint::SourceFile, &case.text);
assert!(!errors, "errors in an OK file {}:\n{}", case.rs.display(), actual);
- expect_file![case.txt].assert_eq(&actual);
+ expect_file![case.rast].assert_eq(&actual);
}
}
@@ -57,7 +57,7 @@ fn parse_inline_ok() {
for case in TestCase::list("parser/inline/ok") {
let (actual, errors) = parse(TopEntryPoint::SourceFile, &case.text);
assert!(!errors, "errors in an OK file {}:\n{}", case.rs.display(), actual);
- expect_file![case.txt].assert_eq(&actual);
+ expect_file![case.rast].assert_eq(&actual);
}
}
@@ -66,7 +66,7 @@ fn parse_err() {
for case in TestCase::list("parser/err") {
let (actual, errors) = parse(TopEntryPoint::SourceFile, &case.text);
assert!(errors, "no errors in an ERR file {}:\n{}", case.rs.display(), actual);
- expect_file![case.txt].assert_eq(&actual)
+ expect_file![case.rast].assert_eq(&actual)
}
}
@@ -75,7 +75,7 @@ fn parse_inline_err() {
for case in TestCase::list("parser/inline/err") {
let (actual, errors) = parse(TopEntryPoint::SourceFile, &case.text);
assert!(errors, "no errors in an ERR file {}:\n{}", case.rs.display(), actual);
- expect_file![case.txt].assert_eq(&actual)
+ expect_file![case.rast].assert_eq(&actual)
}
}
@@ -137,7 +137,7 @@ fn parse(entry: TopEntryPoint, text: &str) -> (String, bool) {
#[derive(PartialEq, Eq, PartialOrd, Ord)]
struct TestCase {
rs: PathBuf,
- txt: PathBuf,
+ rast: PathBuf,
text: String,
}
@@ -155,9 +155,9 @@ impl TestCase {
let path = file.path();
if path.extension().unwrap_or_default() == "rs" {
let rs = path;
- let txt = rs.with_extension("txt");
+ let rast = rs.with_extension("rast");
let text = fs::read_to_string(&rs).unwrap();
- res.push(TestCase { rs, txt, text });
+ res.push(TestCase { rs, rast, text });
}
}
res.sort();
diff --git a/crates/parser/test_data/lexer/err/empty_exponent.rast b/crates/parser/test_data/lexer/err/empty_exponent.rast
new file mode 100644
index 0000000000..af03d73ced
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/empty_exponent.rast
@@ -0,0 +1,48 @@
+FLOAT_NUMBER "0e" error: Missing digits after the exponent symbol
+WHITESPACE "\n"
+FLOAT_NUMBER "0E" error: Missing digits after the exponent symbol
+WHITESPACE "\n\n"
+FLOAT_NUMBER "42e+" error: Missing digits after the exponent symbol
+WHITESPACE "\n"
+FLOAT_NUMBER "42e-" error: Missing digits after the exponent symbol
+WHITESPACE "\n"
+FLOAT_NUMBER "42E+" error: Missing digits after the exponent symbol
+WHITESPACE "\n"
+FLOAT_NUMBER "42E-" error: Missing digits after the exponent symbol
+WHITESPACE "\n\n"
+INT_NUMBER "42"
+DOT "."
+IDENT "e"
+PLUS "+"
+WHITESPACE "\n"
+INT_NUMBER "42"
+DOT "."
+IDENT "e"
+MINUS "-"
+WHITESPACE "\n"
+INT_NUMBER "42"
+DOT "."
+IDENT "E"
+PLUS "+"
+WHITESPACE "\n"
+INT_NUMBER "42"
+DOT "."
+IDENT "E"
+MINUS "-"
+WHITESPACE "\n\n"
+FLOAT_NUMBER "42.2e+" error: Missing digits after the exponent symbol
+WHITESPACE "\n"
+FLOAT_NUMBER "42.2e-" error: Missing digits after the exponent symbol
+WHITESPACE "\n"
+FLOAT_NUMBER "42.2E+" error: Missing digits after the exponent symbol
+WHITESPACE "\n"
+FLOAT_NUMBER "42.2E-" error: Missing digits after the exponent symbol
+WHITESPACE "\n\n"
+FLOAT_NUMBER "42.2e+f32" error: Missing digits after the exponent symbol
+WHITESPACE "\n"
+FLOAT_NUMBER "42.2e-f32" error: Missing digits after the exponent symbol
+WHITESPACE "\n"
+FLOAT_NUMBER "42.2E+f32" error: Missing digits after the exponent symbol
+WHITESPACE "\n"
+FLOAT_NUMBER "42.2E-f32" error: Missing digits after the exponent symbol
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/err/empty_int.rast b/crates/parser/test_data/lexer/err/empty_int.rast
new file mode 100644
index 0000000000..7f7194f452
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/empty_int.rast
@@ -0,0 +1,26 @@
+INT_NUMBER "0b" error: Missing digits after the integer base prefix
+WHITESPACE "\n"
+INT_NUMBER "0o" error: Missing digits after the integer base prefix
+WHITESPACE "\n"
+INT_NUMBER "0x" error: Missing digits after the integer base prefix
+WHITESPACE "\n\n"
+INT_NUMBER "0b_" error: Missing digits after the integer base prefix
+WHITESPACE "\n"
+INT_NUMBER "0o_" error: Missing digits after the integer base prefix
+WHITESPACE "\n"
+INT_NUMBER "0x_" error: Missing digits after the integer base prefix
+WHITESPACE "\n\n"
+INT_NUMBER "0bnoDigit" error: Missing digits after the integer base prefix
+WHITESPACE "\n"
+INT_NUMBER "0onoDigit" error: Missing digits after the integer base prefix
+WHITESPACE "\n"
+INT_NUMBER "0xnoDigit" error: Missing digits after the integer base prefix
+WHITESPACE "\n\n"
+INT_NUMBER "0xG" error: Missing digits after the integer base prefix
+WHITESPACE "\n"
+INT_NUMBER "0xg" error: Missing digits after the integer base prefix
+WHITESPACE "\n\n"
+INT_NUMBER "0x_g" error: Missing digits after the integer base prefix
+WHITESPACE "\n"
+INT_NUMBER "0x_G" error: Missing digits after the integer base prefix
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/err/lifetime_starts_with_a_number.rast b/crates/parser/test_data/lexer/err/lifetime_starts_with_a_number.rast
new file mode 100644
index 0000000000..e919bf2a4a
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/lifetime_starts_with_a_number.rast
@@ -0,0 +1,4 @@
+LIFETIME_IDENT "'1" error: Lifetime name cannot start with a number
+WHITESPACE "\n"
+LIFETIME_IDENT "'1lifetime" error: Lifetime name cannot start with a number
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/err/unclosed_block_comment_at_eof.rast b/crates/parser/test_data/lexer/err/unclosed_block_comment_at_eof.rast
new file mode 100644
index 0000000000..7d2c329762
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_block_comment_at_eof.rast
@@ -0,0 +1 @@
+COMMENT "/*" error: Missing trailing `*/` symbols to terminate the block comment
diff --git a/crates/parser/test_data/lexer/err/unclosed_block_comment_with_content.rast b/crates/parser/test_data/lexer/err/unclosed_block_comment_with_content.rast
new file mode 100644
index 0000000000..227a20660f
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_block_comment_with_content.rast
@@ -0,0 +1 @@
+COMMENT "/* comment\n" error: Missing trailing `*/` symbols to terminate the block comment
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_at_eof.rast b/crates/parser/test_data/lexer/err/unclosed_byte_at_eof.rast
new file mode 100644
index 0000000000..36944dbb2d
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_at_eof.rast
@@ -0,0 +1 @@
+BYTE "b'" error: Missing trailing `'` symbol to terminate the byte literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_string_at_eof.rast b/crates/parser/test_data/lexer/err/unclosed_byte_string_at_eof.rast
new file mode 100644
index 0000000000..534a3cadcc
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_string_at_eof.rast
@@ -0,0 +1 @@
+BYTE_STRING "b\"" error: Missing trailing `"` symbol to terminate the byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_string_with_ascii_escape.rast b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_ascii_escape.rast
new file mode 100644
index 0000000000..03f61de9a8
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_ascii_escape.rast
@@ -0,0 +1 @@
+BYTE_STRING "b\"\\x7f" error: Missing trailing `"` symbol to terminate the byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_string_with_ferris.rast b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_ferris.rast
new file mode 100644
index 0000000000..e11d49d1ee
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_ferris.rast
@@ -0,0 +1 @@
+BYTE_STRING "b\"🦀" error: Missing trailing `"` symbol to terminate the byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash.rast b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash.rast
new file mode 100644
index 0000000000..4e374b1206
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash.rast
@@ -0,0 +1 @@
+BYTE_STRING "b\"\\" error: Missing trailing `"` symbol to terminate the byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_double_quote.rast b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_double_quote.rast
new file mode 100644
index 0000000000..ee19975860
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_double_quote.rast
@@ -0,0 +1 @@
+BYTE_STRING "b\"\\\"" error: Missing trailing `"` symbol to terminate the byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_n.rast b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_n.rast
new file mode 100644
index 0000000000..b109d8629c
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_n.rast
@@ -0,0 +1 @@
+BYTE_STRING "b\"\\n" error: Missing trailing `"` symbol to terminate the byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_string_with_space.rast b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_space.rast
new file mode 100644
index 0000000000..eaca94fa41
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_space.rast
@@ -0,0 +1 @@
+BYTE_STRING "b\" " error: Missing trailing `"` symbol to terminate the byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_string_with_unicode_escape.rast b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_unicode_escape.rast
new file mode 100644
index 0000000000..3b79f48bcd
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_string_with_unicode_escape.rast
@@ -0,0 +1 @@
+BYTE_STRING "b\"\\u{20AA}" error: Missing trailing `"` symbol to terminate the byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_with_ascii_escape.rast b/crates/parser/test_data/lexer/err/unclosed_byte_with_ascii_escape.rast
new file mode 100644
index 0000000000..5525376f45
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_with_ascii_escape.rast
@@ -0,0 +1 @@
+BYTE "b'\\x7f" error: Missing trailing `'` symbol to terminate the byte literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_with_ferris.rast b/crates/parser/test_data/lexer/err/unclosed_byte_with_ferris.rast
new file mode 100644
index 0000000000..e7a8be4f6e
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_with_ferris.rast
@@ -0,0 +1 @@
+BYTE "b'🦀" error: Missing trailing `'` symbol to terminate the byte literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_with_slash.rast b/crates/parser/test_data/lexer/err/unclosed_byte_with_slash.rast
new file mode 100644
index 0000000000..d9937135a9
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_with_slash.rast
@@ -0,0 +1 @@
+BYTE "b'\\" error: Missing trailing `'` symbol to terminate the byte literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_with_slash_n.rast b/crates/parser/test_data/lexer/err/unclosed_byte_with_slash_n.rast
new file mode 100644
index 0000000000..c408cdb2b5
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_with_slash_n.rast
@@ -0,0 +1 @@
+BYTE "b'\\n" error: Missing trailing `'` symbol to terminate the byte literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_with_slash_single_quote.rast b/crates/parser/test_data/lexer/err/unclosed_byte_with_slash_single_quote.rast
new file mode 100644
index 0000000000..b331f95607
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_with_slash_single_quote.rast
@@ -0,0 +1 @@
+BYTE "b'\\'" error: Missing trailing `'` symbol to terminate the byte literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_with_space.rast b/crates/parser/test_data/lexer/err/unclosed_byte_with_space.rast
new file mode 100644
index 0000000000..80c0e1c00a
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_with_space.rast
@@ -0,0 +1 @@
+BYTE "b' " error: Missing trailing `'` symbol to terminate the byte literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_byte_with_unicode_escape.rast b/crates/parser/test_data/lexer/err/unclosed_byte_with_unicode_escape.rast
new file mode 100644
index 0000000000..e1c3dc141e
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_byte_with_unicode_escape.rast
@@ -0,0 +1 @@
+BYTE "b'\\u{20AA}" error: Missing trailing `'` symbol to terminate the byte literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_char_at_eof.rast b/crates/parser/test_data/lexer/err/unclosed_char_at_eof.rast
new file mode 100644
index 0000000000..218c7a2d76
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_char_at_eof.rast
@@ -0,0 +1 @@
+CHAR "'" error: Missing trailing `'` symbol to terminate the character literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_char_with_ascii_escape.rast b/crates/parser/test_data/lexer/err/unclosed_char_with_ascii_escape.rast
new file mode 100644
index 0000000000..a0d8e1b83a
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_char_with_ascii_escape.rast
@@ -0,0 +1 @@
+CHAR "'\\x7f" error: Missing trailing `'` symbol to terminate the character literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_char_with_ferris.rast b/crates/parser/test_data/lexer/err/unclosed_char_with_ferris.rast
new file mode 100644
index 0000000000..56f19cce07
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_char_with_ferris.rast
@@ -0,0 +1 @@
+CHAR "'🦀" error: Missing trailing `'` symbol to terminate the character literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_char_with_slash.rast b/crates/parser/test_data/lexer/err/unclosed_char_with_slash.rast
new file mode 100644
index 0000000000..cfa0e0752a
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_char_with_slash.rast
@@ -0,0 +1 @@
+CHAR "'\\" error: Missing trailing `'` symbol to terminate the character literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_char_with_slash_n.rast b/crates/parser/test_data/lexer/err/unclosed_char_with_slash_n.rast
new file mode 100644
index 0000000000..6a42a4e22b
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_char_with_slash_n.rast
@@ -0,0 +1 @@
+CHAR "'\\n" error: Missing trailing `'` symbol to terminate the character literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_char_with_slash_single_quote.rast b/crates/parser/test_data/lexer/err/unclosed_char_with_slash_single_quote.rast
new file mode 100644
index 0000000000..1275f6aa85
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_char_with_slash_single_quote.rast
@@ -0,0 +1 @@
+CHAR "'\\'" error: Missing trailing `'` symbol to terminate the character literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_char_with_space.rast b/crates/parser/test_data/lexer/err/unclosed_char_with_space.rast
new file mode 100644
index 0000000000..746c425c4e
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_char_with_space.rast
@@ -0,0 +1 @@
+CHAR "' " error: Missing trailing `'` symbol to terminate the character literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_char_with_unicode_escape.rast b/crates/parser/test_data/lexer/err/unclosed_char_with_unicode_escape.rast
new file mode 100644
index 0000000000..9abd590982
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_char_with_unicode_escape.rast
@@ -0,0 +1 @@
+CHAR "'\\u{20AA}" error: Missing trailing `'` symbol to terminate the character literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_nested_block_comment_entirely.rast b/crates/parser/test_data/lexer/err/unclosed_nested_block_comment_entirely.rast
new file mode 100644
index 0000000000..15ce8905a9
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_nested_block_comment_entirely.rast
@@ -0,0 +1 @@
+COMMENT "/* /* /*\n" error: Missing trailing `*/` symbols to terminate the block comment
diff --git a/crates/parser/test_data/lexer/err/unclosed_nested_block_comment_partially.rast b/crates/parser/test_data/lexer/err/unclosed_nested_block_comment_partially.rast
new file mode 100644
index 0000000000..e9b74ee7f8
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_nested_block_comment_partially.rast
@@ -0,0 +1 @@
+COMMENT "/** /*! /* comment */ */\n" error: Missing trailing `*/` symbols to terminate the block comment
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_at_eof.rast b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_at_eof.rast
new file mode 100644
index 0000000000..6ec1780c30
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_at_eof.rast
@@ -0,0 +1 @@
+BYTE_STRING "br##\"" error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ascii_escape.rast b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ascii_escape.rast
new file mode 100644
index 0000000000..d65f1bb2ff
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ascii_escape.rast
@@ -0,0 +1 @@
+BYTE_STRING "br##\"\\x7f" error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ferris.rast b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ferris.rast
new file mode 100644
index 0000000000..0f9e0a1657
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ferris.rast
@@ -0,0 +1 @@
+BYTE_STRING "br##\"🦀" error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash.rast b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash.rast
new file mode 100644
index 0000000000..202dcd2d43
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash.rast
@@ -0,0 +1 @@
+BYTE_STRING "br##\"\\" error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash_n.rast b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash_n.rast
new file mode 100644
index 0000000000..d45485b529
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash_n.rast
@@ -0,0 +1 @@
+BYTE_STRING "br##\"\\n" error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_space.rast b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_space.rast
new file mode 100644
index 0000000000..1bfabbc3ab
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_space.rast
@@ -0,0 +1 @@
+BYTE_STRING "br##\" " error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_unicode_escape.rast b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_unicode_escape.rast
new file mode 100644
index 0000000000..104ab8aaee
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_unicode_escape.rast
@@ -0,0 +1 @@
+BYTE_STRING "br##\"\\u{20AA}" error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_string_at_eof.rast b/crates/parser/test_data/lexer/err/unclosed_raw_string_at_eof.rast
new file mode 100644
index 0000000000..71b20fd19d
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_string_at_eof.rast
@@ -0,0 +1 @@
+STRING "r##\"" error: Missing trailing `"` with `#` symbols to terminate the raw string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_string_with_ascii_escape.rast b/crates/parser/test_data/lexer/err/unclosed_raw_string_with_ascii_escape.rast
new file mode 100644
index 0000000000..dc106dd24a
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_string_with_ascii_escape.rast
@@ -0,0 +1 @@
+STRING "r##\"\\x7f" error: Missing trailing `"` with `#` symbols to terminate the raw string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_string_with_ferris.rast b/crates/parser/test_data/lexer/err/unclosed_raw_string_with_ferris.rast
new file mode 100644
index 0000000000..30ee029f65
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_string_with_ferris.rast
@@ -0,0 +1 @@
+STRING "r##\"🦀" error: Missing trailing `"` with `#` symbols to terminate the raw string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash.rast b/crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash.rast
new file mode 100644
index 0000000000..8a6f6cc436
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash.rast
@@ -0,0 +1 @@
+STRING "r##\"\\" error: Missing trailing `"` with `#` symbols to terminate the raw string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash_n.rast b/crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash_n.rast
new file mode 100644
index 0000000000..f46eff2516
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash_n.rast
@@ -0,0 +1 @@
+STRING "r##\"\\n" error: Missing trailing `"` with `#` symbols to terminate the raw string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_string_with_space.rast b/crates/parser/test_data/lexer/err/unclosed_raw_string_with_space.rast
new file mode 100644
index 0000000000..49b6afea45
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_string_with_space.rast
@@ -0,0 +1 @@
+STRING "r##\" " error: Missing trailing `"` with `#` symbols to terminate the raw string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_raw_string_with_unicode_escape.rast b/crates/parser/test_data/lexer/err/unclosed_raw_string_with_unicode_escape.rast
new file mode 100644
index 0000000000..d10d6d8e8c
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_raw_string_with_unicode_escape.rast
@@ -0,0 +1 @@
+STRING "r##\"\\u{20AA}" error: Missing trailing `"` with `#` symbols to terminate the raw string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_string_at_eof.rast b/crates/parser/test_data/lexer/err/unclosed_string_at_eof.rast
new file mode 100644
index 0000000000..3b89ce0ca1
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_string_at_eof.rast
@@ -0,0 +1 @@
+STRING "\"" error: Missing trailing `"` symbol to terminate the string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_string_with_ascii_escape.rast b/crates/parser/test_data/lexer/err/unclosed_string_with_ascii_escape.rast
new file mode 100644
index 0000000000..6694cf17a6
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_string_with_ascii_escape.rast
@@ -0,0 +1 @@
+STRING "\"\\x7f" error: Missing trailing `"` symbol to terminate the string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_string_with_ferris.rast b/crates/parser/test_data/lexer/err/unclosed_string_with_ferris.rast
new file mode 100644
index 0000000000..5f4501c18e
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_string_with_ferris.rast
@@ -0,0 +1 @@
+STRING "\"🦀" error: Missing trailing `"` symbol to terminate the string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_string_with_slash.rast b/crates/parser/test_data/lexer/err/unclosed_string_with_slash.rast
new file mode 100644
index 0000000000..a8ac565ac8
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_string_with_slash.rast
@@ -0,0 +1 @@
+STRING "\"\\" error: Missing trailing `"` symbol to terminate the string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_string_with_slash_double_quote.rast b/crates/parser/test_data/lexer/err/unclosed_string_with_slash_double_quote.rast
new file mode 100644
index 0000000000..919183b919
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_string_with_slash_double_quote.rast
@@ -0,0 +1 @@
+STRING "\"\\\"" error: Missing trailing `"` symbol to terminate the string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_string_with_slash_n.rast b/crates/parser/test_data/lexer/err/unclosed_string_with_slash_n.rast
new file mode 100644
index 0000000000..39e288af96
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_string_with_slash_n.rast
@@ -0,0 +1 @@
+STRING "\"\\n" error: Missing trailing `"` symbol to terminate the string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_string_with_space.rast b/crates/parser/test_data/lexer/err/unclosed_string_with_space.rast
new file mode 100644
index 0000000000..dcff94d7ed
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_string_with_space.rast
@@ -0,0 +1 @@
+STRING "\" " error: Missing trailing `"` symbol to terminate the string literal
diff --git a/crates/parser/test_data/lexer/err/unclosed_string_with_unicode_escape.rast b/crates/parser/test_data/lexer/err/unclosed_string_with_unicode_escape.rast
new file mode 100644
index 0000000000..ac232b530d
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unclosed_string_with_unicode_escape.rast
@@ -0,0 +1 @@
+STRING "\"\\u{20AA}" error: Missing trailing `"` symbol to terminate the string literal
diff --git a/crates/parser/test_data/lexer/err/unstarted_raw_byte_string_at_eof.rast b/crates/parser/test_data/lexer/err/unstarted_raw_byte_string_at_eof.rast
new file mode 100644
index 0000000000..cf942c92f3
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unstarted_raw_byte_string_at_eof.rast
@@ -0,0 +1 @@
+BYTE_STRING "br##" error: Missing `"` symbol after `#` symbols to begin the raw byte string literal
diff --git a/crates/parser/test_data/lexer/err/unstarted_raw_byte_string_with_ascii.rast b/crates/parser/test_data/lexer/err/unstarted_raw_byte_string_with_ascii.rast
new file mode 100644
index 0000000000..042769c275
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unstarted_raw_byte_string_with_ascii.rast
@@ -0,0 +1,9 @@
+BYTE_STRING "br## " error: Missing `"` symbol after `#` symbols to begin the raw byte string literal
+IDENT "I"
+WHITESPACE " "
+IDENT "lack"
+WHITESPACE " "
+IDENT "a"
+WHITESPACE " "
+IDENT "quote"
+BANG "!"
diff --git a/crates/parser/test_data/lexer/err/unstarted_raw_string_at_eof.rast b/crates/parser/test_data/lexer/err/unstarted_raw_string_at_eof.rast
new file mode 100644
index 0000000000..2f7c7529a9
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unstarted_raw_string_at_eof.rast
@@ -0,0 +1 @@
+STRING "r##" error: Missing `"` symbol after `#` symbols to begin the raw string literal
diff --git a/crates/parser/test_data/lexer/err/unstarted_raw_string_with_ascii.rast b/crates/parser/test_data/lexer/err/unstarted_raw_string_with_ascii.rast
new file mode 100644
index 0000000000..4a06b0abe7
--- /dev/null
+++ b/crates/parser/test_data/lexer/err/unstarted_raw_string_with_ascii.rast
@@ -0,0 +1,9 @@
+STRING "r## " error: Missing `"` symbol after `#` symbols to begin the raw string literal
+IDENT "I"
+WHITESPACE " "
+IDENT "lack"
+WHITESPACE " "
+IDENT "a"
+WHITESPACE " "
+IDENT "quote"
+BANG "!"
diff --git a/crates/parser/test_data/lexer/ok/block_comment.rast b/crates/parser/test_data/lexer/ok/block_comment.rast
new file mode 100644
index 0000000000..18bb5cad87
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/block_comment.rast
@@ -0,0 +1,6 @@
+COMMENT "/* */"
+WHITESPACE "\n"
+COMMENT "/**/"
+WHITESPACE "\n"
+COMMENT "/* /* */ */"
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/ok/byte_strings.rast b/crates/parser/test_data/lexer/ok/byte_strings.rast
new file mode 100644
index 0000000000..c848ac368e
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/byte_strings.rast
@@ -0,0 +1,22 @@
+BYTE "b''"
+WHITESPACE " "
+BYTE "b'x'"
+WHITESPACE " "
+BYTE_STRING "b\"foo\""
+WHITESPACE " "
+BYTE_STRING "br\"\""
+WHITESPACE "\n"
+BYTE "b''suf"
+WHITESPACE " "
+BYTE_STRING "b\"\"ix"
+WHITESPACE " "
+BYTE_STRING "br\"\"br"
+WHITESPACE "\n"
+BYTE "b'\\n'"
+WHITESPACE " "
+BYTE "b'\\\\'"
+WHITESPACE " "
+BYTE "b'\\''"
+WHITESPACE " "
+BYTE "b'hello'"
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/ok/chars.rast b/crates/parser/test_data/lexer/ok/chars.rast
new file mode 100644
index 0000000000..66e58cc298
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/chars.rast
@@ -0,0 +1,16 @@
+CHAR "'x'"
+WHITESPACE " "
+CHAR "' '"
+WHITESPACE " "
+CHAR "'0'"
+WHITESPACE " "
+CHAR "'hello'"
+WHITESPACE " "
+CHAR "'\\x7f'"
+WHITESPACE " "
+CHAR "'\\n'"
+WHITESPACE " "
+CHAR "'\\\\'"
+WHITESPACE " "
+CHAR "'\\''"
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/ok/hello.rast b/crates/parser/test_data/lexer/ok/hello.rast
new file mode 100644
index 0000000000..7f5ce9de1b
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/hello.rast
@@ -0,0 +1,3 @@
+IDENT "hello"
+WHITESPACE " "
+IDENT "world"
diff --git a/crates/parser/test_data/lexer/ok/ident.rast b/crates/parser/test_data/lexer/ok/ident.rast
new file mode 100644
index 0000000000..5689644c07
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/ident.rast
@@ -0,0 +1,14 @@
+IDENT "foo"
+WHITESPACE " "
+IDENT "foo_"
+WHITESPACE " "
+IDENT "_foo"
+WHITESPACE " "
+UNDERSCORE "_"
+WHITESPACE " "
+IDENT "__"
+WHITESPACE " "
+IDENT "x"
+WHITESPACE " "
+IDENT "привет"
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/ok/keywords.rast b/crates/parser/test_data/lexer/ok/keywords.rast
new file mode 100644
index 0000000000..e19b1399aa
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/keywords.rast
@@ -0,0 +1,64 @@
+ASYNC_KW "async"
+WHITESPACE " "
+FN_KW "fn"
+WHITESPACE " "
+USE_KW "use"
+WHITESPACE " "
+STRUCT_KW "struct"
+WHITESPACE " "
+TRAIT_KW "trait"
+WHITESPACE " "
+ENUM_KW "enum"
+WHITESPACE " "
+IMPL_KW "impl"
+WHITESPACE " "
+TRUE_KW "true"
+WHITESPACE " "
+FALSE_KW "false"
+WHITESPACE " "
+AS_KW "as"
+WHITESPACE " "
+EXTERN_KW "extern"
+WHITESPACE " "
+CRATE_KW "crate"
+WHITESPACE "\n"
+MOD_KW "mod"
+WHITESPACE " "
+PUB_KW "pub"
+WHITESPACE " "
+SELF_KW "self"
+WHITESPACE " "
+SUPER_KW "super"
+WHITESPACE " "
+IN_KW "in"
+WHITESPACE " "
+WHERE_KW "where"
+WHITESPACE " "
+FOR_KW "for"
+WHITESPACE " "
+LOOP_KW "loop"
+WHITESPACE " "
+WHILE_KW "while"
+WHITESPACE " "
+IF_KW "if"
+WHITESPACE " "
+MATCH_KW "match"
+WHITESPACE " "
+CONST_KW "const"
+WHITESPACE "\n"
+STATIC_KW "static"
+WHITESPACE " "
+MUT_KW "mut"
+WHITESPACE " "
+TYPE_KW "type"
+WHITESPACE " "
+REF_KW "ref"
+WHITESPACE " "
+LET_KW "let"
+WHITESPACE " "
+ELSE_KW "else"
+WHITESPACE " "
+MOVE_KW "move"
+WHITESPACE " "
+RETURN_KW "return"
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/ok/lifetimes.rast b/crates/parser/test_data/lexer/ok/lifetimes.rast
new file mode 100644
index 0000000000..eeb1e95414
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/lifetimes.rast
@@ -0,0 +1,8 @@
+LIFETIME_IDENT "'a"
+WHITESPACE " "
+LIFETIME_IDENT "'foo"
+WHITESPACE " "
+LIFETIME_IDENT "'foo_bar_baz"
+WHITESPACE " "
+LIFETIME_IDENT "'_"
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/ok/numbers.rast b/crates/parser/test_data/lexer/ok/numbers.rast
new file mode 100644
index 0000000000..8d13c3f610
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/numbers.rast
@@ -0,0 +1,57 @@
+INT_NUMBER "0"
+WHITESPACE " "
+INT_NUMBER "00"
+WHITESPACE " "
+INT_NUMBER "0_"
+WHITESPACE " "
+FLOAT_NUMBER "0."
+WHITESPACE " "
+INT_NUMBER "0z"
+WHITESPACE "\n"
+INT_NUMBER "01790"
+WHITESPACE " "
+INT_NUMBER "0b1790"
+WHITESPACE " "
+INT_NUMBER "0o1790"
+WHITESPACE " "
+INT_NUMBER "0x1790aAbBcCdDeEfF"
+WHITESPACE " "
+INT_NUMBER "001279"
+WHITESPACE " "
+INT_NUMBER "0_1279"
+WHITESPACE " "
+FLOAT_NUMBER "0.1279"
+WHITESPACE " "
+FLOAT_NUMBER "0e1279"
+WHITESPACE " "
+FLOAT_NUMBER "0E1279"
+WHITESPACE "\n"
+INT_NUMBER "0"
+DOT "."
+DOT "."
+INT_NUMBER "2"
+WHITESPACE "\n"
+INT_NUMBER "0"
+DOT "."
+IDENT "foo"
+L_PAREN "("
+R_PAREN ")"
+WHITESPACE "\n"
+FLOAT_NUMBER "0e+1"
+WHITESPACE "\n"
+INT_NUMBER "0"
+DOT "."
+IDENT "e"
+PLUS "+"
+INT_NUMBER "1"
+WHITESPACE "\n"
+FLOAT_NUMBER "0.0E-2"
+WHITESPACE "\n"
+FLOAT_NUMBER "0___0.10000____0000e+111__"
+WHITESPACE "\n"
+INT_NUMBER "1i64"
+WHITESPACE " "
+FLOAT_NUMBER "92.0f32"
+WHITESPACE " "
+INT_NUMBER "11__s"
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/ok/raw_ident.rast b/crates/parser/test_data/lexer/ok/raw_ident.rast
new file mode 100644
index 0000000000..fddad99821
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/raw_ident.rast
@@ -0,0 +1,2 @@
+IDENT "r#raw_ident"
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/ok/raw_strings.rast b/crates/parser/test_data/lexer/ok/raw_strings.rast
new file mode 100644
index 0000000000..13cf733b7d
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/raw_strings.rast
@@ -0,0 +1,2 @@
+STRING "r###\"this is a r##\"raw\"## string\"###"
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/ok/single_line_comments.rast b/crates/parser/test_data/lexer/ok/single_line_comments.rast
new file mode 100644
index 0000000000..a7681e9f50
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/single_line_comments.rast
@@ -0,0 +1,22 @@
+SHEBANG "#!/usr/bin/env bash"
+WHITESPACE "\n"
+COMMENT "// hello"
+WHITESPACE "\n"
+COMMENT "//! World"
+WHITESPACE "\n"
+COMMENT "//!! Inner line doc"
+WHITESPACE "\n"
+COMMENT "/// Outer line doc"
+WHITESPACE "\n"
+COMMENT "//// Just a comment"
+WHITESPACE "\n\n"
+COMMENT "//"
+WHITESPACE "\n"
+COMMENT "//!"
+WHITESPACE "\n"
+COMMENT "//!!"
+WHITESPACE "\n"
+COMMENT "///"
+WHITESPACE "\n"
+COMMENT "////"
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/ok/strings.rast b/crates/parser/test_data/lexer/ok/strings.rast
new file mode 100644
index 0000000000..ec222591bd
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/strings.rast
@@ -0,0 +1,8 @@
+STRING "\"hello\""
+WHITESPACE " "
+STRING "r\"world\""
+WHITESPACE " "
+STRING "\"\\n\\\"\\\\no escape\""
+WHITESPACE " "
+STRING "\"multi\nline\""
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/ok/symbols.rast b/crates/parser/test_data/lexer/ok/symbols.rast
new file mode 100644
index 0000000000..533ccff9a8
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/symbols.rast
@@ -0,0 +1,77 @@
+SEMICOLON ";"
+WHITESPACE " "
+COMMA ","
+WHITESPACE " "
+L_PAREN "("
+WHITESPACE " "
+R_PAREN ")"
+WHITESPACE " "
+L_CURLY "{"
+WHITESPACE " "
+R_CURLY "}"
+WHITESPACE " "
+L_BRACK "["
+WHITESPACE " "
+R_BRACK "]"
+WHITESPACE " "
+L_ANGLE "<"
+WHITESPACE " "
+R_ANGLE ">"
+WHITESPACE " "
+AT "@"
+WHITESPACE " "
+POUND "#"
+WHITESPACE " "
+TILDE "~"
+WHITESPACE " "
+QUESTION "?"
+WHITESPACE " "
+DOLLAR "$"
+WHITESPACE " "
+AMP "&"
+WHITESPACE " "
+PIPE "|"
+WHITESPACE " "
+PLUS "+"
+WHITESPACE " "
+STAR "*"
+WHITESPACE " "
+SLASH "/"
+WHITESPACE " "
+CARET "^"
+WHITESPACE " "
+PERCENT "%"
+WHITESPACE "\n"
+DOT "."
+WHITESPACE " "
+DOT "."
+DOT "."
+WHITESPACE " "
+DOT "."
+DOT "."
+DOT "."
+WHITESPACE " "
+DOT "."
+DOT "."
+EQ "="
+WHITESPACE "\n"
+COLON ":"
+WHITESPACE " "
+COLON ":"
+COLON ":"
+WHITESPACE "\n"
+EQ "="
+WHITESPACE " "
+EQ "="
+R_ANGLE ">"
+WHITESPACE "\n"
+BANG "!"
+WHITESPACE " "
+BANG "!"
+EQ "="
+WHITESPACE "\n"
+MINUS "-"
+WHITESPACE " "
+MINUS "-"
+R_ANGLE ">"
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/lexer/ok/whitespace.rast b/crates/parser/test_data/lexer/ok/whitespace.rast
new file mode 100644
index 0000000000..8ccb79e4ec
--- /dev/null
+++ b/crates/parser/test_data/lexer/ok/whitespace.rast
@@ -0,0 +1,12 @@
+IDENT "a"
+WHITESPACE " "
+IDENT "b"
+WHITESPACE " "
+IDENT "c"
+WHITESPACE "\n"
+IDENT "d"
+WHITESPACE "\n\n"
+IDENT "e"
+WHITESPACE "\t"
+IDENT "f"
+WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/err/0000_struct_field_missing_comma.rast b/crates/parser/test_data/parser/err/0000_struct_field_missing_comma.rast
index bbbf496c82..b30328c827 100644
--- a/crates/parser/test_data/parser/err/0000_struct_field_missing_comma.rast
+++ b/crates/parser/test_data/parser/err/0000_struct_field_missing_comma.rast
@@ -1,34 +1,34 @@
-error 21..21: expected COMMA
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RECORD_FIELD
+ NAME
+ IDENT "a"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ WHITESPACE "\n "
+ RECORD_FIELD
+ NAME
+ IDENT "b"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ WHITESPACE "\n"
+ R_CURLY "}"
+error 21: expected COMMA
diff --git a/crates/parser/test_data/parser/err/0000_struct_field_missing_comma.txt b/crates/parser/test_data/parser/err/0000_struct_field_missing_comma.txt
deleted file mode 100644
index b30328c827..0000000000
--- a/crates/parser/test_data/parser/err/0000_struct_field_missing_comma.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RECORD_FIELD
- NAME
- IDENT "a"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- WHITESPACE "\n "
- RECORD_FIELD
- NAME
- IDENT "b"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- WHITESPACE "\n"
- R_CURLY "}"
-error 21: expected COMMA
diff --git a/crates/parser/test_data/parser/err/0001_item_recovery_in_file.rast b/crates/parser/test_data/parser/err/0001_item_recovery_in_file.rast
index 6dc73bfdba..959b87ebbc 100644
--- a/crates/parser/test_data/parser/err/0001_item_recovery_in_file.rast
+++ b/crates/parser/test_data/parser/err/0001_item_recovery_in_file.rast
@@ -1,18 +1,18 @@
-error 0..0: expected an item
-error 3..3: expected an item
+SOURCE_FILE
+ ERROR
+ IF_KW "if"
+ WHITESPACE " "
+ ERROR
+ MATCH_KW "match"
+ WHITESPACE "\n\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+error 0: expected an item
+error 3: expected an item
diff --git a/crates/parser/test_data/parser/err/0001_item_recovery_in_file.txt b/crates/parser/test_data/parser/err/0001_item_recovery_in_file.txt
deleted file mode 100644
index 959b87ebbc..0000000000
--- a/crates/parser/test_data/parser/err/0001_item_recovery_in_file.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-SOURCE_FILE
- ERROR
- IF_KW "if"
- WHITESPACE " "
- ERROR
- MATCH_KW "match"
- WHITESPACE "\n\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- R_CURLY "}"
-error 0: expected an item
-error 3: expected an item
diff --git a/crates/parser/test_data/parser/err/0002_duplicate_shebang.rast b/crates/parser/test_data/parser/err/0002_duplicate_shebang.rast
index 9ad5b12b8b..ec6c315100 100644
--- a/crates/parser/test_data/parser/err/0002_duplicate_shebang.rast
+++ b/crates/parser/test_data/parser/err/0002_duplicate_shebang.rast
@@ -1,45 +1,45 @@
- [email protected] "#!/use/bin/env rusti"
-error 23..23: expected `[`
-error 23..23: expected an item
-error 27..27: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
-error 28..28: expected SEMICOLON
-error 31..31: expected BANG
-error 31..31: expected `{`, `[`, `(`
-error 31..31: expected SEMICOLON
-error 31..31: expected an item
-error 35..35: expected BANG
-error 35..35: expected `{`, `[`, `(`
-error 35..35: expected SEMICOLON
-error 41..41: expected BANG
-error 41..41: expected `{`, `[`, `(`
-error 41..41: expected SEMICOLON
+SOURCE_FILE
+ SHEBANG "#!/use/bin/env rusti"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ ERROR
+ SLASH "/"
+ USE
+ USE_KW "use"
+ ERROR
+ SLASH "/"
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bin"
+ ERROR
+ SLASH "/"
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "env"
+ WHITESPACE " "
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "rusti"
+ WHITESPACE "\n"
+error 23: expected `[`
+error 23: expected an item
+error 27: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
+error 28: expected SEMICOLON
+error 31: expected BANG
+error 31: expected `{`, `[`, `(`
+error 31: expected SEMICOLON
+error 31: expected an item
+error 35: expected BANG
+error 35: expected `{`, `[`, `(`
+error 35: expected SEMICOLON
+error 41: expected BANG
+error 41: expected `{`, `[`, `(`
+error 41: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0002_duplicate_shebang.txt b/crates/parser/test_data/parser/err/0002_duplicate_shebang.txt
deleted file mode 100644
index ec6c315100..0000000000
--- a/crates/parser/test_data/parser/err/0002_duplicate_shebang.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-SOURCE_FILE
- SHEBANG "#!/use/bin/env rusti"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- ERROR
- SLASH "/"
- USE
- USE_KW "use"
- ERROR
- SLASH "/"
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bin"
- ERROR
- SLASH "/"
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "env"
- WHITESPACE " "
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "rusti"
- WHITESPACE "\n"
-error 23: expected `[`
-error 23: expected an item
-error 27: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
-error 28: expected SEMICOLON
-error 31: expected BANG
-error 31: expected `{`, `[`, `(`
-error 31: expected SEMICOLON
-error 31: expected an item
-error 35: expected BANG
-error 35: expected `{`, `[`, `(`
-error 35: expected SEMICOLON
-error 41: expected BANG
-error 41: expected `{`, `[`, `(`
-error 41: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0003_C++_semicolon.rast b/crates/parser/test_data/parser/err/0003_C++_semicolon.rast
index 7763fad840..00131bea51 100644
--- a/crates/parser/test_data/parser/err/0003_C++_semicolon.rast
+++ b/crates/parser/test_data/parser/err/0003_C++_semicolon.rast
@@ -1,39 +1,39 @@
-error 39..39: expected item, found `;`
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RECORD_FIELD
+ NAME
+ IDENT "a"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ WHITESPACE "\n "
+ RECORD_FIELD
+ NAME
+ IDENT "b"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "String"
+ COMMA ","
+ WHITESPACE "\n"
+ R_CURLY "}"
+ ERROR
+ SEMICOLON ";"
+error 39: expected item, found `;`
consider removing this semicolon
diff --git a/crates/parser/test_data/parser/err/0003_C++_semicolon.txt b/crates/parser/test_data/parser/err/0003_C++_semicolon.txt
deleted file mode 100644
index 00131bea51..0000000000
--- a/crates/parser/test_data/parser/err/0003_C++_semicolon.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RECORD_FIELD
- NAME
- IDENT "a"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- WHITESPACE "\n "
- RECORD_FIELD
- NAME
- IDENT "b"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "String"
- COMMA ","
- WHITESPACE "\n"
- R_CURLY "}"
- ERROR
- SEMICOLON ";"
-error 39: expected item, found `;`
-consider removing this semicolon
diff --git a/crates/parser/test_data/parser/err/0004_use_path_bad_segment.rast b/crates/parser/test_data/parser/err/0004_use_path_bad_segment.rast
index 9a0f4665ef..44e192a5fc 100644
--- a/crates/parser/test_data/parser/err/0004_use_path_bad_segment.rast
+++ b/crates/parser/test_data/parser/err/0004_use_path_bad_segment.rast
@@ -1,15 +1,15 @@
-error 9..9: expected identifier
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ COLON2 "::"
+ ERROR
+ INT_NUMBER "92"
+ SEMICOLON ";"
+error 9: expected identifier
diff --git a/crates/parser/test_data/parser/err/0004_use_path_bad_segment.txt b/crates/parser/test_data/parser/err/0004_use_path_bad_segment.txt
deleted file mode 100644
index 44e192a5fc..0000000000
--- a/crates/parser/test_data/parser/err/0004_use_path_bad_segment.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- COLON2 "::"
- ERROR
- INT_NUMBER "92"
- SEMICOLON ";"
-error 9: expected identifier
diff --git a/crates/parser/test_data/parser/err/0005_attribute_recover.rast b/crates/parser/test_data/parser/err/0005_attribute_recover.rast
index 44dcc58a92..6ff072e207 100644
--- a/crates/parser/test_data/parser/err/0005_attribute_recover.rast
+++ b/crates/parser/test_data/parser/err/0005_attribute_recover.rast
@@ -1,62 +1,62 @@
-error 53..53: expected R_PAREN
-error 53..53: expected `]`
-error 53..53: expected an item
+SOURCE_FILE
+ FN
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "foo"
+ COMMA ","
+ WHITESPACE " "
+ PLUS "+"
+ COMMA ","
+ WHITESPACE " "
+ INT_NUMBER "92"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n\n"
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ TOKEN_TREE
+ L_PAREN "("
+ WHITESPACE "\n"
+ FN_KW "fn"
+ WHITESPACE " "
+ IDENT "foo"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 53: expected R_PAREN
+error 53: expected `]`
+error 53: expected an item
diff --git a/crates/parser/test_data/parser/err/0005_attribute_recover.txt b/crates/parser/test_data/parser/err/0005_attribute_recover.txt
deleted file mode 100644
index 6ff072e207..0000000000
--- a/crates/parser/test_data/parser/err/0005_attribute_recover.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-SOURCE_FILE
- FN
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- TOKEN_TREE
- L_PAREN "("
- IDENT "foo"
- COMMA ","
- WHITESPACE " "
- PLUS "+"
- COMMA ","
- WHITESPACE " "
- INT_NUMBER "92"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n\n"
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- TOKEN_TREE
- L_PAREN "("
- WHITESPACE "\n"
- FN_KW "fn"
- WHITESPACE " "
- IDENT "foo"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 53: expected R_PAREN
-error 53: expected `]`
-error 53: expected an item
diff --git a/crates/parser/test_data/parser/err/0006_named_field_recovery.rast b/crates/parser/test_data/parser/err/0006_named_field_recovery.rast
index 5f85c3943a..7a4aa93b24 100644
--- a/crates/parser/test_data/parser/err/0006_named_field_recovery.rast
+++ b/crates/parser/test_data/parser/err/0006_named_field_recovery.rast
@@ -1,74 +1,74 @@
-error 31..31: expected field declaration
-error 33..33: expected COMMA
-error 38..38: expected field declaration
-error 39..39: expected COMMA
-error 40..40: expected field declaration
-error 41..41: expected COMMA
-error 42..42: expected field declaration
-error 43..43: expected COMMA
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RECORD_FIELD
+ NAME
+ IDENT "f"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ COMMA ","
+ WHITESPACE "\n "
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ ERROR
+ INT_NUMBER "92"
+ WHITESPACE "\n "
+ ERROR
+ PLUS "+"
+ WHITESPACE " "
+ ERROR
+ MINUS "-"
+ WHITESPACE " "
+ ERROR
+ STAR "*"
+ WHITESPACE "\n "
+ RECORD_FIELD
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ COMMA ","
+ WHITESPACE "\n "
+ RECORD_FIELD
+ NAME
+ IDENT "z"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f64"
+ COMMA ","
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 31: expected field declaration
+error 33: expected COMMA
+error 38: expected field declaration
+error 39: expected COMMA
+error 40: expected field declaration
+error 41: expected COMMA
+error 42: expected field declaration
+error 43: expected COMMA
diff --git a/crates/parser/test_data/parser/err/0006_named_field_recovery.txt b/crates/parser/test_data/parser/err/0006_named_field_recovery.txt
deleted file mode 100644
index 7a4aa93b24..0000000000
--- a/crates/parser/test_data/parser/err/0006_named_field_recovery.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RECORD_FIELD
- NAME
- IDENT "f"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- COMMA ","
- WHITESPACE "\n "
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- ERROR
- INT_NUMBER "92"
- WHITESPACE "\n "
- ERROR
- PLUS "+"
- WHITESPACE " "
- ERROR
- MINUS "-"
- WHITESPACE " "
- ERROR
- STAR "*"
- WHITESPACE "\n "
- RECORD_FIELD
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- COMMA ","
- WHITESPACE "\n "
- RECORD_FIELD
- NAME
- IDENT "z"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f64"
- COMMA ","
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 31: expected field declaration
-error 33: expected COMMA
-error 38: expected field declaration
-error 39: expected COMMA
-error 40: expected field declaration
-error 41: expected COMMA
-error 42: expected field declaration
-error 43: expected COMMA
diff --git a/crates/parser/test_data/parser/err/0007_stray_curly_in_file.rast b/crates/parser/test_data/parser/err/0007_stray_curly_in_file.rast
index c57ea77364..5d87ff866b 100644
--- a/crates/parser/test_data/parser/err/0007_stray_curly_in_file.rast
+++ b/crates/parser/test_data/parser/err/0007_stray_curly_in_file.rast
@@ -1,33 +1,33 @@
-error 0..0: unmatched `}`
-error 14..14: unmatched `}`
-error 29..29: unmatched `}`
+SOURCE_FILE
+ ERROR
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ SEMICOLON ";"
+ WHITESPACE "\n\n"
+ ERROR
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ ERROR
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 0: unmatched `}`
+error 14: unmatched `}`
+error 29: unmatched `}`
diff --git a/crates/parser/test_data/parser/err/0007_stray_curly_in_file.txt b/crates/parser/test_data/parser/err/0007_stray_curly_in_file.txt
deleted file mode 100644
index 5d87ff866b..0000000000
--- a/crates/parser/test_data/parser/err/0007_stray_curly_in_file.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-SOURCE_FILE
- ERROR
- R_CURLY "}"
- WHITESPACE "\n\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- SEMICOLON ";"
- WHITESPACE "\n\n"
- ERROR
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- ERROR
- R_CURLY "}"
- WHITESPACE "\n"
-error 0: unmatched `}`
-error 14: unmatched `}`
-error 29: unmatched `}`
diff --git a/crates/parser/test_data/parser/err/0008_item_block_recovery.rast b/crates/parser/test_data/parser/err/0008_item_block_recovery.rast
index 99ec2faed0..60b2fe9875 100644
--- a/crates/parser/test_data/parser/err/0008_item_block_recovery.rast
+++ b/crates/parser/test_data/parser/err/0008_item_block_recovery.rast
@@ -1,81 +1,80 @@
-error 17..17: expected BANG
-error 19..19: expected SEMICOLON
-error 20..20: expected an item
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ ERROR
+ L_CURLY "{"
+ WHITESPACE "\n "
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE " "
+ ELSE_KW "else"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "3"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "baz"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 17: expected BANG
+error 19: expected SEMICOLON
+error 20: expected an item
diff --git a/crates/parser/test_data/parser/err/0008_item_block_recovery.txt b/crates/parser/test_data/parser/err/0008_item_block_recovery.txt
deleted file mode 100644
index 60b2fe9875..0000000000
--- a/crates/parser/test_data/parser/err/0008_item_block_recovery.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- ERROR
- L_CURLY "{"
- WHITESPACE "\n "
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LITERAL
- INT_NUMBER "1"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE " "
- ELSE_KW "else"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- BIN_EXPR
- LITERAL
- INT_NUMBER "2"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "3"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "baz"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 17: expected BANG
-error 19: expected SEMICOLON
-error 20: expected an item
diff --git a/crates/parser/test_data/parser/err/0009_broken_struct_type_parameter.rast b/crates/parser/test_data/parser/err/0009_broken_struct_type_parameter.rast
index 2d4c689c7c..a015432171 100644
--- a/crates/parser/test_data/parser/err/0009_broken_struct_type_parameter.rast
+++ b/crates/parser/test_data/parser/err/0009_broken_struct_type_parameter.rast
@@ -1,56 +1,56 @@
-error 9..9: expected type parameter
-error 11..11: expected COMMA
-error 11..11: expected R_ANGLE
-error 11..11: expected `;`, `{`, or `(`
-error 12..12: expected an item
-error 14..14: expected an item
-error 15..15: expected an item
-error 17..17: expected an item
-error 24..24: expected SEMICOLON
-error 24..24: expected expression
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ ERROR
+ INT_NUMBER "90"
+ WHITESPACE " "
+ ERROR
+ PLUS "+"
+ WHITESPACE " "
+ ERROR
+ INT_NUMBER "2"
+ ERROR
+ R_ANGLE ">"
+ WHITESPACE " "
+ ERROR
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f"
+ ERROR
+ COLON ":"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+error 9: expected type parameter
+error 11: expected COMMA
+error 11: expected R_ANGLE
+error 11: expected `;`, `{`, or `(`
+error 12: expected an item
+error 14: expected an item
+error 15: expected an item
+error 17: expected an item
+error 24: expected SEMICOLON
+error 24: expected expression
diff --git a/crates/parser/test_data/parser/err/0009_broken_struct_type_parameter.txt b/crates/parser/test_data/parser/err/0009_broken_struct_type_parameter.txt
deleted file mode 100644
index a015432171..0000000000
--- a/crates/parser/test_data/parser/err/0009_broken_struct_type_parameter.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- ERROR
- INT_NUMBER "90"
- WHITESPACE " "
- ERROR
- PLUS "+"
- WHITESPACE " "
- ERROR
- INT_NUMBER "2"
- ERROR
- R_ANGLE ">"
- WHITESPACE " "
- ERROR
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f"
- ERROR
- COLON ":"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "T"
- SEMICOLON ";"
- WHITESPACE "\n"
-error 9: expected type parameter
-error 11: expected COMMA
-error 11: expected R_ANGLE
-error 11: expected `;`, `{`, or `(`
-error 12: expected an item
-error 14: expected an item
-error 15: expected an item
-error 17: expected an item
-error 24: expected SEMICOLON
-error 24: expected expression
diff --git a/crates/parser/test_data/parser/err/0010_unsafe_lambda_block.rast b/crates/parser/test_data/parser/err/0010_unsafe_lambda_block.rast
index 586acc7329..9427ee5c0e 100644
--- a/crates/parser/test_data/parser/err/0010_unsafe_lambda_block.rast
+++ b/crates/parser/test_data/parser/err/0010_unsafe_lambda_block.rast
@@ -1,45 +1,45 @@
-error 24..24: expected a block
-error 24..24: expected SEMICOLON
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CLOSURE_EXPR
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ EXPR_STMT
+ BLOCK_EXPR
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 24: expected a block
+error 24: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0010_unsafe_lambda_block.txt b/crates/parser/test_data/parser/err/0010_unsafe_lambda_block.txt
deleted file mode 100644
index 9427ee5c0e..0000000000
--- a/crates/parser/test_data/parser/err/0010_unsafe_lambda_block.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- CLOSURE_EXPR
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- EXPR_STMT
- BLOCK_EXPR
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 24: expected a block
-error 24: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0011_extern_struct.rast b/crates/parser/test_data/parser/err/0011_extern_struct.rast
index b02d390af9..bd5ec4b7c2 100644
--- a/crates/parser/test_data/parser/err/0011_extern_struct.rast
+++ b/crates/parser/test_data/parser/err/0011_extern_struct.rast
@@ -1,13 +1,13 @@
-error 6..6: expected existential, fn, trait or impl
+SOURCE_FILE
+ ERROR
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "Foo"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+error 6: expected existential, fn, trait or impl
diff --git a/crates/parser/test_data/parser/err/0011_extern_struct.txt b/crates/parser/test_data/parser/err/0011_extern_struct.txt
deleted file mode 100644
index bd5ec4b7c2..0000000000
--- a/crates/parser/test_data/parser/err/0011_extern_struct.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-SOURCE_FILE
- ERROR
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "Foo"
- SEMICOLON ";"
- WHITESPACE "\n"
-error 6: expected existential, fn, trait or impl
diff --git a/crates/parser/test_data/parser/err/0013_invalid_type.rast b/crates/parser/test_data/parser/err/0013_invalid_type.rast
index f48ab6e712..eec84a0c67 100644
--- a/crates/parser/test_data/parser/err/0013_invalid_type.rast
+++ b/crates/parser/test_data/parser/err/0013_invalid_type.rast
@@ -1,89 +1,89 @@
- [email protected] "RefCell"
- [email protected] "HashMap"
-error 67..67: expected type
-error 68..68: expected COMMA
-error 68..68: expected R_ANGLE
-error 68..68: expected COMMA
-error 68..68: expected R_ANGLE
-error 68..68: expected COMMA
-error 68..68: expected R_ANGLE
-error 68..68: expected COMMA
-error 72..72: expected COMMA
-error 72..72: expected a type
-error 72..72: expected R_PAREN
-error 72..72: expected SEMICOLON
-error 72..72: expected an item
-error 73..73: expected an item
-error 79..79: expected an item
-error 80..80: expected an item
-error 82..82: expected an item
-error 83..83: expected an item
+SOURCE_FILE
+ STRUCT
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "Cache"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ WHITESPACE "\n "
+ TUPLE_FIELD
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "RefCell"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "HashMap"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ WHITESPACE "\n "
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "TypeId"
+ COMMA ","
+ WHITESPACE "\n "
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Box"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ ERROR
+ AT "@"
+ WHITESPACE " "
+ TUPLE_FIELD
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Any"
+ ERROR
+ ERROR
+ R_ANGLE ">"
+ ERROR
+ COMMA ","
+ WHITESPACE "\n "
+ ERROR
+ R_ANGLE ">"
+ ERROR
+ R_ANGLE ">"
+ WHITESPACE "\n"
+ ERROR
+ R_PAREN ")"
+ ERROR
+ SEMICOLON ";"
+ WHITESPACE "\n\n"
+error 67: expected type
+error 68: expected COMMA
+error 68: expected R_ANGLE
+error 68: expected COMMA
+error 68: expected R_ANGLE
+error 68: expected COMMA
+error 68: expected R_ANGLE
+error 68: expected COMMA
+error 72: expected COMMA
+error 72: expected a type
+error 72: expected R_PAREN
+error 72: expected SEMICOLON
+error 72: expected an item
+error 73: expected an item
+error 79: expected an item
+error 80: expected an item
+error 82: expected an item
+error 83: expected an item
diff --git a/crates/parser/test_data/parser/err/0013_invalid_type.txt b/crates/parser/test_data/parser/err/0013_invalid_type.txt
deleted file mode 100644
index eec84a0c67..0000000000
--- a/crates/parser/test_data/parser/err/0013_invalid_type.txt
+++ /dev/null
@@ -1,89 +0,0 @@
-SOURCE_FILE
- STRUCT
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "Cache"
- TUPLE_FIELD_LIST
- L_PAREN "("
- WHITESPACE "\n "
- TUPLE_FIELD
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "RefCell"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "HashMap"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- WHITESPACE "\n "
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "TypeId"
- COMMA ","
- WHITESPACE "\n "
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Box"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- ERROR
- AT "@"
- WHITESPACE " "
- TUPLE_FIELD
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Any"
- ERROR
- ERROR
- R_ANGLE ">"
- ERROR
- COMMA ","
- WHITESPACE "\n "
- ERROR
- R_ANGLE ">"
- ERROR
- R_ANGLE ">"
- WHITESPACE "\n"
- ERROR
- R_PAREN ")"
- ERROR
- SEMICOLON ";"
- WHITESPACE "\n\n"
-error 67: expected type
-error 68: expected COMMA
-error 68: expected R_ANGLE
-error 68: expected COMMA
-error 68: expected R_ANGLE
-error 68: expected COMMA
-error 68: expected R_ANGLE
-error 68: expected COMMA
-error 72: expected COMMA
-error 72: expected a type
-error 72: expected R_PAREN
-error 72: expected SEMICOLON
-error 72: expected an item
-error 73: expected an item
-error 79: expected an item
-error 80: expected an item
-error 82: expected an item
-error 83: expected an item
diff --git a/crates/parser/test_data/parser/err/0014_where_no_bounds.rast b/crates/parser/test_data/parser/err/0014_where_no_bounds.rast
index 9178cf3b7f..fd2f9ada33 100644
--- a/crates/parser/test_data/parser/err/0014_where_no_bounds.rast
+++ b/crates/parser/test_data/parser/err/0014_where_no_bounds.rast
@@ -1,32 +1,32 @@
-error 19..19: expected colon
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE " "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 19: expected colon
diff --git a/crates/parser/test_data/parser/err/0014_where_no_bounds.txt b/crates/parser/test_data/parser/err/0014_where_no_bounds.txt
deleted file mode 100644
index fd2f9ada33..0000000000
--- a/crates/parser/test_data/parser/err/0014_where_no_bounds.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE " "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
-error 19: expected colon
diff --git a/crates/parser/test_data/parser/err/0015_curly_in_params.rast b/crates/parser/test_data/parser/err/0015_curly_in_params.rast
index a3c25b450a..8e169320d9 100644
--- a/crates/parser/test_data/parser/err/0015_curly_in_params.rast
+++ b/crates/parser/test_data/parser/err/0015_curly_in_params.rast
@@ -1,24 +1,24 @@
-error 7..7: expected value parameter
-error 7..7: expected R_PAREN
-error 7..7: expected a block
-error 7..7: unmatched `}`
-error 8..8: expected an item
-error 10..10: expected an item
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ ERROR
+ R_CURLY "}"
+ ERROR
+ R_PAREN ")"
+ WHITESPACE " "
+ ERROR
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 7: expected value parameter
+error 7: expected R_PAREN
+error 7: expected a block
+error 7: unmatched `}`
+error 8: expected an item
+error 10: expected an item
diff --git a/crates/parser/test_data/parser/err/0015_curly_in_params.txt b/crates/parser/test_data/parser/err/0015_curly_in_params.txt
deleted file mode 100644
index 8e169320d9..0000000000
--- a/crates/parser/test_data/parser/err/0015_curly_in_params.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- ERROR
- R_CURLY "}"
- ERROR
- R_PAREN ")"
- WHITESPACE " "
- ERROR
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 7: expected value parameter
-error 7: expected R_PAREN
-error 7: expected a block
-error 7: unmatched `}`
-error 8: expected an item
-error 10: expected an item
diff --git a/crates/parser/test_data/parser/err/0016_missing_semi.rast b/crates/parser/test_data/parser/err/0016_missing_semi.rast
index 30e76de834..c48c35bf82 100644
--- a/crates/parser/test_data/parser/err/0016_missing_semi.rast
+++ b/crates/parser/test_data/parser/err/0016_missing_semi.rast
@@ -1,44 +1,44 @@
-error 38..38: expected SEMICOLON
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ ARG_LIST
+ L_PAREN "("
+ WHITESPACE "\n "
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE "\n "
+ R_PAREN ")"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RETURN_EXPR
+ RETURN_KW "return"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 38: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0016_missing_semi.txt b/crates/parser/test_data/parser/err/0016_missing_semi.txt
deleted file mode 100644
index c48c35bf82..0000000000
--- a/crates/parser/test_data/parser/err/0016_missing_semi.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- ARG_LIST
- L_PAREN "("
- WHITESPACE "\n "
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- WHITESPACE "\n "
- R_PAREN ")"
- WHITESPACE "\n "
- EXPR_STMT
- RETURN_EXPR
- RETURN_KW "return"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 38: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0017_incomplete_binexpr.rast b/crates/parser/test_data/parser/err/0017_incomplete_binexpr.rast
index 9d2c7c6948..8073564629 100644
--- a/crates/parser/test_data/parser/err/0017_incomplete_binexpr.rast
+++ b/crates/parser/test_data/parser/err/0017_incomplete_binexpr.rast
@@ -1,47 +1,47 @@
-error 44..44: expected expression
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "foo"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "bar"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 44: expected expression
diff --git a/crates/parser/test_data/parser/err/0017_incomplete_binexpr.txt b/crates/parser/test_data/parser/err/0017_incomplete_binexpr.txt
deleted file mode 100644
index 8073564629..0000000000
--- a/crates/parser/test_data/parser/err/0017_incomplete_binexpr.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "foo"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "bar"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE "\n "
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 44: expected expression
diff --git a/crates/parser/test_data/parser/err/0018_incomplete_fn.rast b/crates/parser/test_data/parser/err/0018_incomplete_fn.rast
index 55ac5bc62a..799720b557 100644
--- a/crates/parser/test_data/parser/err/0018_incomplete_fn.rast
+++ b/crates/parser/test_data/parser/err/0018_incomplete_fn.rast
@@ -1,133 +1,133 @@
- [email protected] "FnScopes"
- [email protected] "new_scope"
- [email protected] "ScopeId"
- [email protected] "ScopeData"
- [email protected] "entries"
- [email protected] "set_parent"
-error 34..34: expected pattern
-error 34..34: missing type for function parameter
-error 180..180: expected function arguments
-error 180..180: expected a block
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "FnScopes"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "new_scope"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ REF_PAT
+ AMP "&"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "ScopeId"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "res"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ METHOD_CALL_EXPR
+ FIELD_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_KW "self"
+ DOT "."
+ NAME_REF
+ IDENT "scopes"
+ DOT "."
+ NAME_REF
+ IDENT "len"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ METHOD_CALL_EXPR
+ FIELD_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_KW "self"
+ DOT "."
+ NAME_REF
+ IDENT "scopes"
+ DOT "."
+ NAME_REF
+ IDENT "push"
+ ARG_LIST
+ L_PAREN "("
+ RECORD_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "ScopeData"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD
+ NAME_REF
+ IDENT "parent"
+ COLON ":"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "None"
+ COMMA ","
+ WHITESPACE " "
+ RECORD_EXPR_FIELD
+ NAME_REF
+ IDENT "entries"
+ COLON ":"
+ WHITESPACE " "
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "vec"
+ BANG "!"
+ TOKEN_TREE
+ L_BRACK "["
+ R_BRACK "]"
+ WHITESPACE " "
+ R_CURLY "}"
+ R_PAREN ")"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "set_parent"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 34: expected pattern
+error 34: missing type for function parameter
+error 180: expected function arguments
+error 180: expected a block
diff --git a/crates/parser/test_data/parser/err/0018_incomplete_fn.txt b/crates/parser/test_data/parser/err/0018_incomplete_fn.txt
deleted file mode 100644
index 799720b557..0000000000
--- a/crates/parser/test_data/parser/err/0018_incomplete_fn.txt
+++ /dev/null
@@ -1,133 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "FnScopes"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "new_scope"
- PARAM_LIST
- L_PAREN "("
- PARAM
- REF_PAT
- AMP "&"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "ScopeId"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "res"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- METHOD_CALL_EXPR
- FIELD_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_KW "self"
- DOT "."
- NAME_REF
- IDENT "scopes"
- DOT "."
- NAME_REF
- IDENT "len"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- METHOD_CALL_EXPR
- FIELD_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_KW "self"
- DOT "."
- NAME_REF
- IDENT "scopes"
- DOT "."
- NAME_REF
- IDENT "push"
- ARG_LIST
- L_PAREN "("
- RECORD_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "ScopeData"
- WHITESPACE " "
- RECORD_EXPR_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_EXPR_FIELD
- NAME_REF
- IDENT "parent"
- COLON ":"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "None"
- COMMA ","
- WHITESPACE " "
- RECORD_EXPR_FIELD
- NAME_REF
- IDENT "entries"
- COLON ":"
- WHITESPACE " "
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "vec"
- BANG "!"
- TOKEN_TREE
- L_BRACK "["
- R_BRACK "]"
- WHITESPACE " "
- R_CURLY "}"
- R_PAREN ")"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "set_parent"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 34: expected pattern
-error 34: missing type for function parameter
-error 180: expected function arguments
-error 180: expected a block
diff --git a/crates/parser/test_data/parser/err/0019_let_recover.rast b/crates/parser/test_data/parser/err/0019_let_recover.rast
index 919ce545b7..7d62e0cc14 100644
--- a/crates/parser/test_data/parser/err/0019_let_recover.rast
+++ b/crates/parser/test_data/parser/err/0019_let_recover.rast
@@ -1,107 +1,107 @@
-error 24..24: expected expression
-error 24..24: expected SEMICOLON
-error 49..49: expected pattern
-error 49..49: expected SEMICOLON
-error 75..75: expected pattern
-error 75..75: expected SEMICOLON
-error 98..98: expected pattern
-error 98..98: expected SEMICOLON
-error 124..124: expected pattern
-error 124..124: expected SEMICOLON
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "foo"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "11"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "bar"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "baz"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE "\n "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE "\n "
+ EXPR_STMT
+ WHILE_EXPR
+ WHILE_KW "while"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE "\n "
+ LOOP_EXPR
+ LOOP_KW "loop"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 27: expected SEMICOLON
+error 52: expected pattern
+error 52: expected SEMICOLON
+error 78: expected pattern
+error 78: expected SEMICOLON
+error 101: expected pattern
+error 101: expected SEMICOLON
+error 127: expected pattern
+error 127: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0019_let_recover.txt b/crates/parser/test_data/parser/err/0019_let_recover.txt
deleted file mode 100644
index 7d62e0cc14..0000000000
--- a/crates/parser/test_data/parser/err/0019_let_recover.txt
+++ /dev/null
@@ -1,107 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "foo"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "11"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "bar"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "baz"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE "\n "
- EXPR_STMT
- WHILE_EXPR
- WHILE_KW "while"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE "\n "
- LOOP_EXPR
- LOOP_KW "loop"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 27: expected SEMICOLON
-error 52: expected pattern
-error 52: expected SEMICOLON
-error 78: expected pattern
-error 78: expected SEMICOLON
-error 101: expected pattern
-error 101: expected SEMICOLON
-error 127: expected pattern
-error 127: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0020_fn_recover.rast b/crates/parser/test_data/parser/err/0020_fn_recover.rast
index 9ed2b14745..56d124cb95 100644
--- a/crates/parser/test_data/parser/err/0020_fn_recover.rast
+++ b/crates/parser/test_data/parser/err/0020_fn_recover.rast
@@ -1,21 +1,21 @@
-error 2..2: expected a name
-error 2..2: expected function arguments
-error 2..2: expected a block
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 2: expected a name
+error 2: expected function arguments
+error 2: expected a block
diff --git a/crates/parser/test_data/parser/err/0020_fn_recover.txt b/crates/parser/test_data/parser/err/0020_fn_recover.txt
deleted file mode 100644
index 56d124cb95..0000000000
--- a/crates/parser/test_data/parser/err/0020_fn_recover.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
-error 2: expected a name
-error 2: expected function arguments
-error 2: expected a block
diff --git a/crates/parser/test_data/parser/err/0021_incomplete_param.rast b/crates/parser/test_data/parser/err/0021_incomplete_param.rast
index e2b6a3fd7e..762840aa2a 100644
--- a/crates/parser/test_data/parser/err/0021_incomplete_param.rast
+++ b/crates/parser/test_data/parser/err/0021_incomplete_param.rast
@@ -1,34 +1,34 @@
-error 16..16: missing type for function parameter
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "y"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 16: missing type for function parameter
diff --git a/crates/parser/test_data/parser/err/0021_incomplete_param.txt b/crates/parser/test_data/parser/err/0021_incomplete_param.txt
deleted file mode 100644
index 762840aa2a..0000000000
--- a/crates/parser/test_data/parser/err/0021_incomplete_param.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "y"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 16: missing type for function parameter
diff --git a/crates/parser/test_data/parser/err/0022_bad_exprs.rast b/crates/parser/test_data/parser/err/0022_bad_exprs.rast
index d4341371a7..900394bd96 100644
--- a/crates/parser/test_data/parser/err/0022_bad_exprs.rast
+++ b/crates/parser/test_data/parser/err/0022_bad_exprs.rast
@@ -1,171 +1,171 @@
-error 16..16: expected expression
-error 17..17: expected R_BRACK
-error 17..17: expected SEMICOLON
-error 17..17: expected expression
-error 25..25: expected a name
-error 26..26: expected `;`, `{`, or `(`
-error 30..30: expected pattern
-error 31..31: expected SEMICOLON
-error 53..53: expected expression
-error 54..54: expected SEMICOLON
-error 54..54: expected expression
-error 60..60: expected type
-error 60..60: expected `{`
-error 60..60: expected expression
-error 65..65: expected pattern
-error 65..65: expected SEMICOLON
-error 65..65: expected expression
-error 92..92: expected expression
-error 93..93: expected SEMICOLON
-error 93..93: expected expression
-error 95..95: expected expression
-error 96..96: expected expression
-error 103..103: expected a name
-error 104..104: expected `{`
-error 108..108: expected pattern
-error 108..108: expected SEMICOLON
-error 108..108: expected expression
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "a"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ ARRAY_EXPR
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ COMMA ","
+ WHITESPACE " "
+ ERROR
+ AT "@"
+ ERROR
+ COMMA ","
+ WHITESPACE " "
+ STRUCT
+ STRUCT_KW "struct"
+ ERROR
+ COMMA ","
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ ERROR
+ R_BRACK "]"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ COMMA ","
+ WHITESPACE " "
+ ERROR
+ AT "@"
+ ERROR
+ COMMA ","
+ WHITESPACE " "
+ IMPL
+ IMPL_KW "impl"
+ ERROR
+ COMMA ","
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ ERROR
+ R_PAREN ")"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "c"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ METHOD_CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ DOT "."
+ NAME_REF
+ IDENT "bar"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ COMMA ","
+ WHITESPACE " "
+ ERROR
+ AT "@"
+ ERROR
+ COMMA ","
+ WHITESPACE " "
+ ERROR
+ R_BRACK "]"
+ ERROR
+ COMMA ","
+ WHITESPACE " "
+ TRAIT
+ TRAIT_KW "trait"
+ ERROR
+ COMMA ","
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ ERROR
+ R_PAREN ")"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 16: expected expression
+error 17: expected R_BRACK
+error 17: expected SEMICOLON
+error 17: expected expression
+error 25: expected a name
+error 26: expected `;`, `{`, or `(`
+error 30: expected pattern
+error 31: expected SEMICOLON
+error 53: expected expression
+error 54: expected SEMICOLON
+error 54: expected expression
+error 60: expected type
+error 60: expected `{`
+error 60: expected expression
+error 65: expected pattern
+error 65: expected SEMICOLON
+error 65: expected expression
+error 92: expected expression
+error 93: expected SEMICOLON
+error 93: expected expression
+error 95: expected expression
+error 96: expected expression
+error 103: expected a name
+error 104: expected `{`
+error 108: expected pattern
+error 108: expected SEMICOLON
+error 108: expected expression
diff --git a/crates/parser/test_data/parser/err/0022_bad_exprs.txt b/crates/parser/test_data/parser/err/0022_bad_exprs.txt
deleted file mode 100644
index 900394bd96..0000000000
--- a/crates/parser/test_data/parser/err/0022_bad_exprs.txt
+++ /dev/null
@@ -1,171 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "a"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- ARRAY_EXPR
- L_BRACK "["
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- COMMA ","
- WHITESPACE " "
- ERROR
- AT "@"
- ERROR
- COMMA ","
- WHITESPACE " "
- STRUCT
- STRUCT_KW "struct"
- ERROR
- COMMA ","
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- ERROR
- R_BRACK "]"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "b"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- ARG_LIST
- L_PAREN "("
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- COMMA ","
- WHITESPACE " "
- ERROR
- AT "@"
- ERROR
- COMMA ","
- WHITESPACE " "
- IMPL
- IMPL_KW "impl"
- ERROR
- COMMA ","
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- ERROR
- R_PAREN ")"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "c"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- METHOD_CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- DOT "."
- NAME_REF
- IDENT "bar"
- ARG_LIST
- L_PAREN "("
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- COMMA ","
- WHITESPACE " "
- ERROR
- AT "@"
- ERROR
- COMMA ","
- WHITESPACE " "
- ERROR
- R_BRACK "]"
- ERROR
- COMMA ","
- WHITESPACE " "
- TRAIT
- TRAIT_KW "trait"
- ERROR
- COMMA ","
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- ERROR
- R_PAREN ")"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
-error 16: expected expression
-error 17: expected R_BRACK
-error 17: expected SEMICOLON
-error 17: expected expression
-error 25: expected a name
-error 26: expected `;`, `{`, or `(`
-error 30: expected pattern
-error 31: expected SEMICOLON
-error 53: expected expression
-error 54: expected SEMICOLON
-error 54: expected expression
-error 60: expected type
-error 60: expected `{`
-error 60: expected expression
-error 65: expected pattern
-error 65: expected SEMICOLON
-error 65: expected expression
-error 92: expected expression
-error 93: expected SEMICOLON
-error 93: expected expression
-error 95: expected expression
-error 96: expected expression
-error 103: expected a name
-error 104: expected `{`
-error 108: expected pattern
-error 108: expected SEMICOLON
-error 108: expected expression
diff --git a/crates/parser/test_data/parser/err/0023_mismatched_paren.rast b/crates/parser/test_data/parser/err/0023_mismatched_paren.rast
index 671566e383..1176400634 100644
--- a/crates/parser/test_data/parser/err/0023_mismatched_paren.rast
+++ b/crates/parser/test_data/parser/err/0023_mismatched_paren.rast
@@ -1,44 +1,44 @@
- [email protected] "\"baz\""
- [email protected] "//~ ERROR incorrect c ..."
-error 49..49: unmatched `}`
-error 92..92: unmatched `}`
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ BANG "!"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_PAREN "("
+ WHITESPACE "\n "
+ IDENT "bar"
+ COMMA ","
+ WHITESPACE " "
+ STRING "\"baz\""
+ COMMA ","
+ WHITESPACE " "
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ FLOAT_NUMBER "2.0"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE " "
+ COMMENT "//~ ERROR incorrect close delimiter"
+ WHITESPACE "\n"
+ ERROR
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 49: unmatched `}`
+error 92: unmatched `}`
diff --git a/crates/parser/test_data/parser/err/0023_mismatched_paren.txt b/crates/parser/test_data/parser/err/0023_mismatched_paren.txt
deleted file mode 100644
index 1176400634..0000000000
--- a/crates/parser/test_data/parser/err/0023_mismatched_paren.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- BANG "!"
- WHITESPACE " "
- TOKEN_TREE
- L_PAREN "("
- WHITESPACE "\n "
- IDENT "bar"
- COMMA ","
- WHITESPACE " "
- STRING "\"baz\""
- COMMA ","
- WHITESPACE " "
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- FLOAT_NUMBER "2.0"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE " "
- COMMENT "//~ ERROR incorrect close delimiter"
- WHITESPACE "\n"
- ERROR
- R_CURLY "}"
- WHITESPACE "\n"
-error 49: unmatched `}`
-error 92: unmatched `}`
diff --git a/crates/parser/test_data/parser/err/0024_many_type_parens.rast b/crates/parser/test_data/parser/err/0024_many_type_parens.rast
index 39a317137f..82e6a11249 100644
--- a/crates/parser/test_data/parser/err/0024_many_type_parens.rast
+++ b/crates/parser/test_data/parser/err/0024_many_type_parens.rast
@@ -1,321 +1,331 @@
-error 88..88: expected COMMA
-error 88..88: expected R_ANGLE
-error 121..121: expected SEMICOLON
-error 121..121: expected expression
-error 140..140: expected type
-error 141..141: expected R_PAREN
-error 141..141: expected COMMA
-error 141..141: expected R_ANGLE
-error 141..141: expected SEMICOLON
-error 146..146: expected SEMICOLON
-error 146..146: expected expression
-error 148..148: expected expression
-error 155..155: expected type
-error 158..158: expected IN_KW
-error 165..165: expected expression
-error 168..168: expected expression
-error 179..179: expected expression
-error 180..180: expected a block
-error 180..180: expected COMMA
-error 180..180: expected expression
-error 180..180: expected R_PAREN
-error 180..180: expected SEMICOLON
-error 215..215: expected COMMA
-error 215..215: expected R_ANGLE
-error 235..235: expected SEMICOLON
-error 235..235: expected expression
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ R_PAREN ")"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ L_PAREN "("
+ QUESTION "?"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Sized"
+ R_PAREN ")"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ L_PAREN "("
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Trait"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ R_PAREN ")"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ DYN_TRAIT_TYPE
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Box"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PAREN_TYPE
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ R_PAREN ")"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ L_PAREN "("
+ QUESTION "?"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Sized"
+ R_PAREN ")"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ L_PAREN "("
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Trait"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ R_PAREN ")"
+ ERROR
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Box"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PAREN_TYPE
+ L_PAREN "("
+ ERROR
+ QUESTION "?"
+ EXPR_STMT
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Sized"
+ ERROR
+ R_PAREN ")"
+ WHITESPACE " "
+ ERROR
+ PLUS "+"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ FOR_EXPR
+ FOR_KW "for"
+ PATH_PAT
+ PATH
+ PATH_SEGMENT
+ L_ANGLE "<"
+ ERROR
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ BIN_EXPR
+ BIN_EXPR
+ BIN_EXPR
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Trait"
+ L_ANGLE "<"
+ ERROR
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ ERROR
+ R_PAREN ")"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ R_PAREN ")"
+ R_ANGLE ">"
+ ERROR
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_EXPR
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ ERROR
+ COLON ":"
+ WHITESPACE " "
+ BIN_EXPR
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Box"
+ L_ANGLE "<"
+ TUPLE_EXPR
+ L_PAREN "("
+ FOR_EXPR
+ FOR_KW "for"
+ PATH_PAT
+ PATH
+ PATH_SEGMENT
+ L_ANGLE "<"
+ ERROR
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ BIN_EXPR
+ BIN_EXPR
+ BIN_EXPR
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Trait"
+ L_ANGLE "<"
+ ERROR
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ ERROR
+ R_PAREN ")"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ R_PAREN ")"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ ERROR
+ QUESTION "?"
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Sized"
+ R_PAREN ")"
+ R_ANGLE ">"
+ ERROR
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 88: expected COMMA
+error 88: expected R_ANGLE
+error 121: expected SEMICOLON
+error 121: expected expression
+error 140: expected type
+error 141: expected R_PAREN
+error 141: expected COMMA
+error 141: expected R_ANGLE
+error 141: expected SEMICOLON
+error 146: expected SEMICOLON
+error 146: expected expression
+error 148: expected expression
+error 155: expected type
+error 158: expected IN_KW
+error 165: expected expression
+error 168: expected expression
+error 179: expected expression
+error 180: expected a block
+error 180: expected COMMA
+error 190: expected EQ
+error 190: expected expression
+error 191: expected COMMA
+error 201: expected type
+error 204: expected IN_KW
+error 211: expected expression
+error 214: expected expression
+error 228: expected expression
+error 229: expected R_PAREN
+error 229: expected a block
+error 229: expected COMMA
+error 236: expected expression
+error 237: expected COMMA
+error 237: expected expression
+error 237: expected R_PAREN
diff --git a/crates/parser/test_data/parser/err/0024_many_type_parens.txt b/crates/parser/test_data/parser/err/0024_many_type_parens.txt
deleted file mode 100644
index 82e6a11249..0000000000
--- a/crates/parser/test_data/parser/err/0024_many_type_parens.txt
+++ /dev/null
@@ -1,331 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- R_PAREN ")"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- L_PAREN "("
- QUESTION "?"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Sized"
- R_PAREN ")"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- L_PAREN "("
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Trait"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- R_PAREN ")"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- DYN_TRAIT_TYPE
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Box"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PAREN_TYPE
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- R_PAREN ")"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- L_PAREN "("
- QUESTION "?"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Sized"
- R_PAREN ")"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- L_PAREN "("
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Trait"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- R_PAREN ")"
- ERROR
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Box"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PAREN_TYPE
- L_PAREN "("
- ERROR
- QUESTION "?"
- EXPR_STMT
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Sized"
- ERROR
- R_PAREN ")"
- WHITESPACE " "
- ERROR
- PLUS "+"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- FOR_EXPR
- FOR_KW "for"
- PATH_PAT
- PATH
- PATH_SEGMENT
- L_ANGLE "<"
- ERROR
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- BIN_EXPR
- BIN_EXPR
- BIN_EXPR
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Trait"
- L_ANGLE "<"
- ERROR
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- ERROR
- R_PAREN ")"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- R_PAREN ")"
- R_ANGLE ">"
- ERROR
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_EXPR
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- ERROR
- COLON ":"
- WHITESPACE " "
- BIN_EXPR
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Box"
- L_ANGLE "<"
- TUPLE_EXPR
- L_PAREN "("
- FOR_EXPR
- FOR_KW "for"
- PATH_PAT
- PATH
- PATH_SEGMENT
- L_ANGLE "<"
- ERROR
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- BIN_EXPR
- BIN_EXPR
- BIN_EXPR
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Trait"
- L_ANGLE "<"
- ERROR
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- ERROR
- R_PAREN ")"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- R_PAREN ")"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- ERROR
- QUESTION "?"
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Sized"
- R_PAREN ")"
- R_ANGLE ">"
- ERROR
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 88: expected COMMA
-error 88: expected R_ANGLE
-error 121: expected SEMICOLON
-error 121: expected expression
-error 140: expected type
-error 141: expected R_PAREN
-error 141: expected COMMA
-error 141: expected R_ANGLE
-error 141: expected SEMICOLON
-error 146: expected SEMICOLON
-error 146: expected expression
-error 148: expected expression
-error 155: expected type
-error 158: expected IN_KW
-error 165: expected expression
-error 168: expected expression
-error 179: expected expression
-error 180: expected a block
-error 180: expected COMMA
-error 190: expected EQ
-error 190: expected expression
-error 191: expected COMMA
-error 201: expected type
-error 204: expected IN_KW
-error 211: expected expression
-error 214: expected expression
-error 228: expected expression
-error 229: expected R_PAREN
-error 229: expected a block
-error 229: expected COMMA
-error 236: expected expression
-error 237: expected COMMA
-error 237: expected expression
-error 237: expected R_PAREN
diff --git a/crates/parser/test_data/parser/err/0025_nope.txt b/crates/parser/test_data/parser/err/0025_nope.rast
index 6b49724ec9..6b49724ec9 100644
--- a/crates/parser/test_data/parser/err/0025_nope.txt
+++ b/crates/parser/test_data/parser/err/0025_nope.rast
diff --git a/crates/parser/test_data/parser/err/0026_imp_recovery.rast b/crates/parser/test_data/parser/err/0026_imp_recovery.rast
index 1b08c834eb..1068418e0d 100644
--- a/crates/parser/test_data/parser/err/0026_imp_recovery.rast
+++ b/crates/parser/test_data/parser/err/0026_imp_recovery.rast
@@ -1,49 +1,49 @@
- [email protected] "OnceCell"
-error 14..14: expected trait or type
-error 14..14: expected `{`
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Clone"
+ R_ANGLE ">"
+ WHITESPACE "\n"
+ IMPL
+ IMPL_KW "impl"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "OnceCell"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ R_ANGLE ">"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 14: expected trait or type
+error 14: expected `{`
diff --git a/crates/parser/test_data/parser/err/0026_imp_recovery.txt b/crates/parser/test_data/parser/err/0026_imp_recovery.txt
deleted file mode 100644
index 1068418e0d..0000000000
--- a/crates/parser/test_data/parser/err/0026_imp_recovery.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Clone"
- R_ANGLE ">"
- WHITESPACE "\n"
- IMPL
- IMPL_KW "impl"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "OnceCell"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- R_ANGLE ">"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
-error 14: expected trait or type
-error 14: expected `{`
diff --git a/crates/parser/test_data/parser/err/0027_incomplere_where_for.rast b/crates/parser/test_data/parser/err/0027_incomplere_where_for.rast
index ec585a4235..674c8d536c 100644
--- a/crates/parser/test_data/parser/err/0027_incomplere_where_for.rast
+++ b/crates/parser/test_data/parser/err/0027_incomplere_where_for.rast
@@ -1,29 +1,29 @@
-error 26..26: expected type
-error 26..26: expected colon
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n "
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE " "
+ WHERE_PRED
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE "\n"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 26: expected type
+error 26: expected colon
diff --git a/crates/parser/test_data/parser/err/0027_incomplere_where_for.txt b/crates/parser/test_data/parser/err/0027_incomplere_where_for.txt
deleted file mode 100644
index 674c8d536c..0000000000
--- a/crates/parser/test_data/parser/err/0027_incomplere_where_for.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n "
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE " "
- WHERE_PRED
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE "\n"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
-error 26: expected type
-error 26: expected colon
diff --git a/crates/parser/test_data/parser/err/0029_field_completion.rast b/crates/parser/test_data/parser/err/0029_field_completion.rast
index 183cf32030..fb037112fa 100644
--- a/crates/parser/test_data/parser/err/0029_field_completion.rast
+++ b/crates/parser/test_data/parser/err/0029_field_completion.rast
@@ -1,36 +1,36 @@
-error 21..21: expected field name or number
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "A"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FIELD_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ DOT "."
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 21: expected field name or number
diff --git a/crates/parser/test_data/parser/err/0029_field_completion.txt b/crates/parser/test_data/parser/err/0029_field_completion.txt
deleted file mode 100644
index fb037112fa..0000000000
--- a/crates/parser/test_data/parser/err/0029_field_completion.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "a"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "A"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FIELD_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- DOT "."
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 21: expected field name or number
diff --git a/crates/parser/test_data/parser/err/0032_match_arms_inner_attrs.rast b/crates/parser/test_data/parser/err/0032_match_arms_inner_attrs.rast
index 2438b104bf..327bf94a49 100644
--- a/crates/parser/test_data/parser/err/0032_match_arms_inner_attrs.rast
+++ b/crates/parser/test_data/parser/err/0032_match_arms_inner_attrs.rast
@@ -1,205 +1,205 @@
- [email protected] "\"Not allowed here\""
- [email protected] "\"Nor here\""
- [email protected] "\"Nor here\""
-error 52..52: expected `[`
-error 52..52: expected pattern
-error 53..53: expected FAT_ARROW
-error 78..78: expected `,`
-error 161..161: expected `[`
-error 161..161: expected pattern
-error 162..162: expected FAT_ARROW
-error 232..232: expected `[`
-error 232..232: expected pattern
-error 233..233: expected FAT_ARROW
-error 250..250: expected `,`
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ ATTR
+ POUND "#"
+ ERROR
+ BANG "!"
+ ARRAY_EXPR
+ L_BRACK "["
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "doc"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ STRING "\"Not allowed here\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ ATTR
+ POUND "#"
+ ERROR
+ BANG "!"
+ ARRAY_EXPR
+ L_BRACK "["
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "doc"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ STRING "\"Nor here\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n\n "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "test"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ ERROR
+ BANG "!"
+ ARRAY_EXPR
+ L_BRACK "["
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "doc"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ STRING "\"Nor here\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 52: expected `[`
+error 52: expected pattern
+error 53: expected FAT_ARROW
+error 78: expected `,`
+error 161: expected `[`
+error 161: expected pattern
+error 162: expected FAT_ARROW
+error 232: expected `[`
+error 232: expected pattern
+error 233: expected FAT_ARROW
+error 250: expected `,`
diff --git a/crates/parser/test_data/parser/err/0032_match_arms_inner_attrs.txt b/crates/parser/test_data/parser/err/0032_match_arms_inner_attrs.txt
deleted file mode 100644
index 327bf94a49..0000000000
--- a/crates/parser/test_data/parser/err/0032_match_arms_inner_attrs.txt
+++ /dev/null
@@ -1,205 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- ATTR
- POUND "#"
- ERROR
- BANG "!"
- ARRAY_EXPR
- L_BRACK "["
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "doc"
- ARG_LIST
- L_PAREN "("
- LITERAL
- STRING "\"Not allowed here\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- ATTR
- POUND "#"
- ERROR
- BANG "!"
- ARRAY_EXPR
- L_BRACK "["
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "doc"
- ARG_LIST
- L_PAREN "("
- LITERAL
- STRING "\"Nor here\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n\n "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "test"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- ERROR
- BANG "!"
- ARRAY_EXPR
- L_BRACK "["
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "doc"
- ARG_LIST
- L_PAREN "("
- LITERAL
- STRING "\"Nor here\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 52: expected `[`
-error 52: expected pattern
-error 53: expected FAT_ARROW
-error 78: expected `,`
-error 161: expected `[`
-error 161: expected pattern
-error 162: expected FAT_ARROW
-error 232: expected `[`
-error 232: expected pattern
-error 233: expected FAT_ARROW
-error 250: expected `,`
diff --git a/crates/parser/test_data/parser/err/0033_match_arms_outer_attrs.rast b/crates/parser/test_data/parser/err/0033_match_arms_outer_attrs.rast
index 66fc2ccbd2..b5bc3d84df 100644
--- a/crates/parser/test_data/parser/err/0033_match_arms_outer_attrs.rast
+++ b/crates/parser/test_data/parser/err/0033_match_arms_outer_attrs.rast
@@ -1,68 +1,68 @@
-error 80..80: expected pattern
-error 80..80: expected FAT_ARROW
-error 80..80: expected expression
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "test"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 80: expected pattern
+error 80: expected FAT_ARROW
+error 80: expected expression
diff --git a/crates/parser/test_data/parser/err/0033_match_arms_outer_attrs.txt b/crates/parser/test_data/parser/err/0033_match_arms_outer_attrs.txt
deleted file mode 100644
index b5bc3d84df..0000000000
--- a/crates/parser/test_data/parser/err/0033_match_arms_outer_attrs.txt
+++ /dev/null
@@ -1,68 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "test"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 80: expected pattern
-error 80: expected FAT_ARROW
-error 80: expected expression
diff --git a/crates/parser/test_data/parser/err/0034_bad_box_pattern.rast b/crates/parser/test_data/parser/err/0034_bad_box_pattern.rast
index 583e62c77a..7a2ae9103f 100644
--- a/crates/parser/test_data/parser/err/0034_bad_box_pattern.rast
+++ b/crates/parser/test_data/parser/err/0034_bad_box_pattern.rast
@@ -1,96 +1,96 @@
-error 24..24: expected a name
-error 27..27: expected SEMICOLON
-error 48..48: expected a name
-error 51..51: expected SEMICOLON
-error 76..76: expected a name
-error 79..79: expected SEMICOLON
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ REF_KW "ref"
+ WHITESPACE " "
+ ERROR
+ BOX_KW "box"
+ WHITESPACE " "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ MUT_KW "mut"
+ WHITESPACE " "
+ ERROR
+ BOX_KW "box"
+ WHITESPACE " "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ REF_KW "ref"
+ WHITESPACE " "
+ MUT_KW "mut"
+ WHITESPACE " "
+ ERROR
+ BOX_KW "box"
+ WHITESPACE " "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+error 24: expected a name
+error 27: expected SEMICOLON
+error 48: expected a name
+error 51: expected SEMICOLON
+error 76: expected a name
+error 79: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0034_bad_box_pattern.txt b/crates/parser/test_data/parser/err/0034_bad_box_pattern.txt
deleted file mode 100644
index 7a2ae9103f..0000000000
--- a/crates/parser/test_data/parser/err/0034_bad_box_pattern.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- REF_KW "ref"
- WHITESPACE " "
- ERROR
- BOX_KW "box"
- WHITESPACE " "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- MUT_KW "mut"
- WHITESPACE " "
- ERROR
- BOX_KW "box"
- WHITESPACE " "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- REF_KW "ref"
- WHITESPACE " "
- MUT_KW "mut"
- WHITESPACE " "
- ERROR
- BOX_KW "box"
- WHITESPACE " "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
-error 24: expected a name
-error 27: expected SEMICOLON
-error 48: expected a name
-error 51: expected SEMICOLON
-error 76: expected a name
-error 79: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0035_use_recover.rast b/crates/parser/test_data/parser/err/0035_use_recover.rast
index 14eaf9e9b0..f9287d42e2 100644
--- a/crates/parser/test_data/parser/err/0035_use_recover.rast
+++ b/crates/parser/test_data/parser/err/0035_use_recover.rast
@@ -1,55 +1,55 @@
-error 17..17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
-error 17..17: expected SEMICOLON
-error 37..37: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
-error 37..37: expected SEMICOLON
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ CRATE_KW "crate"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "baz"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
+error 17: expected SEMICOLON
+error 37: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
+error 37: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0035_use_recover.txt b/crates/parser/test_data/parser/err/0035_use_recover.txt
deleted file mode 100644
index f9287d42e2..0000000000
--- a/crates/parser/test_data/parser/err/0035_use_recover.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- CRATE_KW "crate"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "baz"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
-error 17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
-error 17: expected SEMICOLON
-error 37: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
-error 37: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0036_partial_use.rast b/crates/parser/test_data/parser/err/0036_partial_use.rast
index ef6172f8a1..13e76e6830 100644
--- a/crates/parser/test_data/parser/err/0036_partial_use.rast
+++ b/crates/parser/test_data/parser/err/0036_partial_use.rast
@@ -1,51 +1,51 @@
-error 22..22: expected COMMA
-error 22..22: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
-error 23..23: expected COMMA
-error 24..24: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
-error 27..27: expected COMMA
-error 35..35: expected COMMA
-error 35..35: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
-error 36..36: expected COMMA
-error 36..36: expected R_CURLY
-error 36..36: expected SEMICOLON
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ USE_TREE_LIST
+ L_CURLY "{"
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "error"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Error"
+ ERROR
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ ERROR
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "io"
+ ERROR
+ SEMICOLON ";"
+ WHITESPACE "\n"
+error 22: expected COMMA
+error 22: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
+error 23: expected COMMA
+error 24: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
+error 27: expected COMMA
+error 35: expected COMMA
+error 35: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
+error 36: expected COMMA
+error 36: expected R_CURLY
+error 36: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0036_partial_use.txt b/crates/parser/test_data/parser/err/0036_partial_use.txt
deleted file mode 100644
index 13e76e6830..0000000000
--- a/crates/parser/test_data/parser/err/0036_partial_use.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- USE_TREE_LIST
- L_CURLY "{"
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "error"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Error"
- ERROR
- SEMICOLON ";"
- WHITESPACE "\n"
- ERROR
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "io"
- ERROR
- SEMICOLON ";"
- WHITESPACE "\n"
-error 22: expected COMMA
-error 22: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
-error 23: expected COMMA
-error 24: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
-error 27: expected COMMA
-error 35: expected COMMA
-error 35: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
-error 36: expected COMMA
-error 36: expected R_CURLY
-error 36: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0039_lambda_recovery.rast b/crates/parser/test_data/parser/err/0039_lambda_recovery.rast
index b9b9f2e4b1..8ca1606015 100644
--- a/crates/parser/test_data/parser/err/0039_lambda_recovery.rast
+++ b/crates/parser/test_data/parser/err/0039_lambda_recovery.rast
@@ -1,83 +1,83 @@
-error 56..56: expected expression
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ METHOD_CALL_EXPR
+ METHOD_CALL_EXPR
+ METHOD_CALL_EXPR
+ ARRAY_EXPR
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "3"
+ R_BRACK "]"
+ DOT "."
+ NAME_REF
+ IDENT "iter"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n "
+ DOT "."
+ NAME_REF
+ IDENT "map"
+ ARG_LIST
+ L_PAREN "("
+ CLOSURE_EXPR
+ PARAM_LIST
+ PIPE "|"
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "it"
+ PIPE "|"
+ R_PAREN ")"
+ WHITESPACE "\n "
+ DOT "."
+ NAME_REF
+ IDENT "max"
+ GENERIC_ARG_LIST
+ COLON2 "::"
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_ANGLE ">"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 56: expected expression
diff --git a/crates/parser/test_data/parser/err/0039_lambda_recovery.txt b/crates/parser/test_data/parser/err/0039_lambda_recovery.txt
deleted file mode 100644
index 8ca1606015..0000000000
--- a/crates/parser/test_data/parser/err/0039_lambda_recovery.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- METHOD_CALL_EXPR
- METHOD_CALL_EXPR
- METHOD_CALL_EXPR
- ARRAY_EXPR
- L_BRACK "["
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- COMMA ","
- WHITESPACE " "
- LITERAL
- INT_NUMBER "3"
- R_BRACK "]"
- DOT "."
- NAME_REF
- IDENT "iter"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n "
- DOT "."
- NAME_REF
- IDENT "map"
- ARG_LIST
- L_PAREN "("
- CLOSURE_EXPR
- PARAM_LIST
- PIPE "|"
- PARAM
- IDENT_PAT
- NAME
- IDENT "it"
- PIPE "|"
- R_PAREN ")"
- WHITESPACE "\n "
- DOT "."
- NAME_REF
- IDENT "max"
- GENERIC_ARG_LIST
- COLON2 "::"
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_ANGLE ">"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 56: expected expression
diff --git a/crates/parser/test_data/parser/err/0042_weird_blocks.rast b/crates/parser/test_data/parser/err/0042_weird_blocks.rast
index 25910cb405..9cea337ce9 100644
--- a/crates/parser/test_data/parser/err/0042_weird_blocks.rast
+++ b/crates/parser/test_data/parser/err/0042_weird_blocks.rast
@@ -1,75 +1,75 @@
-error 24..24: expected existential, fn, trait or impl
-error 41..41: expected existential, fn, trait or impl
-error 56..56: expected a block
-error 75..75: expected a loop
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ ERROR
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ ERROR
+ ASYNC_KW "async"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ BLOCK_EXPR
+ TRY_KW "try"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ ERROR
+ LABEL
+ LIFETIME
+ LIFETIME_IDENT "'label"
+ COLON ":"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 24: expected existential, fn, trait or impl
+error 41: expected existential, fn, trait or impl
+error 56: expected a block
+error 75: expected a loop
diff --git a/crates/parser/test_data/parser/err/0042_weird_blocks.txt b/crates/parser/test_data/parser/err/0042_weird_blocks.txt
deleted file mode 100644
index 9cea337ce9..0000000000
--- a/crates/parser/test_data/parser/err/0042_weird_blocks.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- ERROR
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- ERROR
- ASYNC_KW "async"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- BLOCK_EXPR
- TRY_KW "try"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- ERROR
- LABEL
- LIFETIME
- LIFETIME_IDENT "'label"
- COLON ":"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 24: expected existential, fn, trait or impl
-error 41: expected existential, fn, trait or impl
-error 56: expected a block
-error 75: expected a loop
diff --git a/crates/parser/test_data/parser/err/0043_unexpected_for_type.rast b/crates/parser/test_data/parser/err/0043_unexpected_for_type.rast
index d4e4bf102e..cb4fb1642d 100644
--- a/crates/parser/test_data/parser/err/0043_unexpected_for_type.rast
+++ b/crates/parser/test_data/parser/err/0043_unexpected_for_type.rast
@@ -1,256 +1,256 @@
- [email protected] "ForSlice"
- [email protected] "ForForFn"
- [email protected] "for_for_for"
-error 21..21: expected a function pointer or path
-error 52..52: expected a function pointer or path
-error 88..88: expected a function pointer or path
-error 119..119: expected a function pointer or path
-error 195..195: expected a function pointer or path
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "ForRef"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "ForTup"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ COMMA ","
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "ForSlice"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ SLICE_TYPE
+ L_BRACK "["
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "ForForFn"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ R_ANGLE ">"
+ WHITESPACE " "
+ FN_PTR_TYPE
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "for_for_for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n"
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE "\n "
+ WHERE_PRED
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ R_ANGLE ">"
+ WHITESPACE " "
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'c"
+ R_ANGLE ">"
+ WHITESPACE " "
+ FN_PTR_TYPE
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'c"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ R_PAREN ")"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ COMMA ","
+ WHITESPACE "\n"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 21: expected a function pointer or path
+error 52: expected a function pointer or path
+error 88: expected a function pointer or path
+error 119: expected a function pointer or path
+error 195: expected a function pointer or path
diff --git a/crates/parser/test_data/parser/err/0043_unexpected_for_type.txt b/crates/parser/test_data/parser/err/0043_unexpected_for_type.txt
deleted file mode 100644
index cb4fb1642d..0000000000
--- a/crates/parser/test_data/parser/err/0043_unexpected_for_type.txt
+++ /dev/null
@@ -1,256 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "ForRef"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "ForTup"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- COMMA ","
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "ForSlice"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- SLICE_TYPE
- L_BRACK "["
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "ForForFn"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'b"
- R_ANGLE ">"
- WHITESPACE " "
- FN_PTR_TYPE
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- PARAM
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- WHITESPACE " "
- PARAM
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'b"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "for_for_for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n"
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE "\n "
- WHERE_PRED
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'b"
- R_ANGLE ">"
- WHITESPACE " "
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'c"
- R_ANGLE ">"
- WHITESPACE " "
- FN_PTR_TYPE
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- PARAM
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- COMMA ","
- WHITESPACE " "
- PARAM
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'b"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- COMMA ","
- WHITESPACE " "
- PARAM
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'c"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- R_PAREN ")"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- COMMA ","
- WHITESPACE "\n"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 21: expected a function pointer or path
-error 52: expected a function pointer or path
-error 88: expected a function pointer or path
-error 119: expected a function pointer or path
-error 195: expected a function pointer or path
diff --git a/crates/parser/test_data/parser/err/0044_item_modifiers.rast b/crates/parser/test_data/parser/err/0044_item_modifiers.rast
index b4ff1a14a7..96e471a69a 100644
--- a/crates/parser/test_data/parser/err/0044_item_modifiers.rast
+++ b/crates/parser/test_data/parser/err/0044_item_modifiers.rast
@@ -1,48 +1,48 @@
-error 6..6: expected existential, fn, trait or impl
-error 38..38: expected a name
-error 40..40: missing type for `const` or `static`
-error 40..40: expected SEMICOLON
-error 44..44: expected BANG
-error 46..46: expected SEMICOLON
-error 47..47: expected an item
+SOURCE_FILE
+ ERROR
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ FN
+ ASYNC_KW "async"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ CONST
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ CONST_KW "const"
+ WHITESPACE " "
+ ERROR
+ FN_KW "fn"
+ WHITESPACE " "
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ ERROR
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 6: expected existential, fn, trait or impl
+error 38: expected a name
+error 40: missing type for `const` or `static`
+error 40: expected SEMICOLON
+error 44: expected BANG
+error 46: expected SEMICOLON
+error 47: expected an item
diff --git a/crates/parser/test_data/parser/err/0044_item_modifiers.txt b/crates/parser/test_data/parser/err/0044_item_modifiers.txt
deleted file mode 100644
index 96e471a69a..0000000000
--- a/crates/parser/test_data/parser/err/0044_item_modifiers.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-SOURCE_FILE
- ERROR
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- FN
- ASYNC_KW "async"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- CONST
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- CONST_KW "const"
- WHITESPACE " "
- ERROR
- FN_KW "fn"
- WHITESPACE " "
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- ERROR
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
-error 6: expected existential, fn, trait or impl
-error 38: expected a name
-error 40: missing type for `const` or `static`
-error 40: expected SEMICOLON
-error 44: expected BANG
-error 46: expected SEMICOLON
-error 47: expected an item
diff --git a/crates/parser/test_data/parser/err/0047_repated_extern_modifier.rast b/crates/parser/test_data/parser/err/0047_repated_extern_modifier.rast
index 85e10ca36d..4b2a740362 100644
--- a/crates/parser/test_data/parser/err/0047_repated_extern_modifier.rast
+++ b/crates/parser/test_data/parser/err/0047_repated_extern_modifier.rast
@@ -1,15 +1,15 @@
-error 10..10: expected existential, fn, trait or impl
-error 21..21: expected existential, fn, trait or impl
+SOURCE_FILE
+ ERROR
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C\""
+ WHITESPACE " "
+ ERROR
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C\""
+ WHITESPACE "\n"
+error 10: expected existential, fn, trait or impl
+error 21: expected existential, fn, trait or impl
diff --git a/crates/parser/test_data/parser/err/0047_repated_extern_modifier.txt b/crates/parser/test_data/parser/err/0047_repated_extern_modifier.txt
deleted file mode 100644
index 4b2a740362..0000000000
--- a/crates/parser/test_data/parser/err/0047_repated_extern_modifier.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-SOURCE_FILE
- ERROR
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C\""
- WHITESPACE " "
- ERROR
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C\""
- WHITESPACE "\n"
-error 10: expected existential, fn, trait or impl
-error 21: expected existential, fn, trait or impl
diff --git a/crates/parser/test_data/parser/err/0048_double_fish.rast b/crates/parser/test_data/parser/err/0048_double_fish.rast
index ca52166fbc..3a05bfee1e 100644
--- a/crates/parser/test_data/parser/err/0048_double_fish.rast
+++ b/crates/parser/test_data/parser/err/0048_double_fish.rast
@@ -1,123 +1,123 @@
-error 30..30: expected identifier
-error 31..31: expected COMMA
-error 31..31: expected R_ANGLE
-error 31..31: expected SEMICOLON
-error 37..37: expected expression
-error 75..75: expected identifier
-error 76..76: expected SEMICOLON
-error 82..82: expected expression
-error 83..83: expected SEMICOLON
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ GENERIC_ARG_LIST
+ COLON2 "::"
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Item"
+ GENERIC_ARG_LIST
+ COLON2 "::"
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "lol"
+ R_ANGLE ">"
+ COLON2 "::"
+ ERROR
+ L_ANGLE "<"
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "nope"
+ SHR ">>"
+ ERROR
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "g"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Item"
+ GENERIC_ARG_LIST
+ COLON2 "::"
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "lol"
+ R_ANGLE ">"
+ COLON2 "::"
+ ERROR
+ L_ANGLE "<"
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "nope"
+ R_ANGLE ">"
+ WHITESPACE " "
+ ERROR
+ EQ "="
+ WHITESPACE " "
+ EXPR_STMT
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 30: expected identifier
+error 31: expected COMMA
+error 31: expected R_ANGLE
+error 31: expected SEMICOLON
+error 37: expected expression
+error 75: expected identifier
+error 76: expected SEMICOLON
+error 82: expected expression
+error 83: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/err/0048_double_fish.txt b/crates/parser/test_data/parser/err/0048_double_fish.txt
deleted file mode 100644
index 3a05bfee1e..0000000000
--- a/crates/parser/test_data/parser/err/0048_double_fish.txt
+++ /dev/null
@@ -1,123 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- GENERIC_ARG_LIST
- COLON2 "::"
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Item"
- GENERIC_ARG_LIST
- COLON2 "::"
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "lol"
- R_ANGLE ">"
- COLON2 "::"
- ERROR
- L_ANGLE "<"
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "nope"
- SHR ">>"
- ERROR
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "g"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Item"
- GENERIC_ARG_LIST
- COLON2 "::"
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "lol"
- R_ANGLE ">"
- COLON2 "::"
- ERROR
- L_ANGLE "<"
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "nope"
- R_ANGLE ">"
- WHITESPACE " "
- ERROR
- EQ "="
- WHITESPACE " "
- EXPR_STMT
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 30: expected identifier
-error 31: expected COMMA
-error 31: expected R_ANGLE
-error 31: expected SEMICOLON
-error 37: expected expression
-error 75: expected identifier
-error 76: expected SEMICOLON
-error 82: expected expression
-error 83: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/inline/err/0001_array_type_missing_semi.rast b/crates/parser/test_data/parser/inline/err/0001_array_type_missing_semi.rast
index 0b9bbec077..ed739a7e39 100644
--- a/crates/parser/test_data/parser/inline/err/0001_array_type_missing_semi.rast
+++ b/crates/parser/test_data/parser/inline/err/0001_array_type_missing_semi.rast
@@ -1,27 +1,27 @@
-error 12..12: expected `;` or `]`
-error 12..12: expected SEMICOLON
-error 13..13: expected an item
-error 15..15: expected an item
-error 16..16: expected an item
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ SLICE_TYPE
+ L_BRACK "["
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ ERROR
+ INT_NUMBER "92"
+ ERROR
+ R_BRACK "]"
+ ERROR
+ SEMICOLON ";"
+ WHITESPACE "\n"
+error 12: expected `;` or `]`
+error 12: expected SEMICOLON
+error 13: expected an item
+error 15: expected an item
+error 16: expected an item
diff --git a/crates/parser/test_data/parser/inline/err/0001_array_type_missing_semi.txt b/crates/parser/test_data/parser/inline/err/0001_array_type_missing_semi.txt
deleted file mode 100644
index ed739a7e39..0000000000
--- a/crates/parser/test_data/parser/inline/err/0001_array_type_missing_semi.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- SLICE_TYPE
- L_BRACK "["
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- ERROR
- INT_NUMBER "92"
- ERROR
- R_BRACK "]"
- ERROR
- SEMICOLON ";"
- WHITESPACE "\n"
-error 12: expected `;` or `]`
-error 12: expected SEMICOLON
-error 13: expected an item
-error 15: expected an item
-error 16: expected an item
diff --git a/crates/parser/test_data/parser/inline/err/0002_misplaced_label_err.rast b/crates/parser/test_data/parser/inline/err/0002_misplaced_label_err.rast
index 06abd807f1..56cea4b156 100644
--- a/crates/parser/test_data/parser/inline/err/0002_misplaced_label_err.rast
+++ b/crates/parser/test_data/parser/inline/err/0002_misplaced_label_err.rast
@@ -1,28 +1,28 @@
-error 22..22: expected a loop
-error 27..27: expected type
-error 27..27: expected `{`
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ ERROR
+ LABEL
+ LIFETIME
+ LIFETIME_IDENT "'loop"
+ COLON ":"
+ WHITESPACE " "
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 22: expected a loop
+error 27: expected type
+error 27: expected `{`
diff --git a/crates/parser/test_data/parser/inline/err/0002_misplaced_label_err.txt b/crates/parser/test_data/parser/inline/err/0002_misplaced_label_err.txt
deleted file mode 100644
index 56cea4b156..0000000000
--- a/crates/parser/test_data/parser/inline/err/0002_misplaced_label_err.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- ERROR
- LABEL
- LIFETIME
- LIFETIME_IDENT "'loop"
- COLON ":"
- WHITESPACE " "
- IMPL
- IMPL_KW "impl"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 22: expected a loop
-error 27: expected type
-error 27: expected `{`
diff --git a/crates/parser/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast b/crates/parser/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast
index 0d8bf6dd6b..354c4135a4 100644
--- a/crates/parser/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast
+++ b/crates/parser/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast
@@ -1,17 +1,17 @@
-error 10..10: expected mut or const in raw pointer type (use `*mut T` or `*const T` as appropriate)
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+error 10: expected mut or const in raw pointer type (use `*mut T` or `*const T` as appropriate)
diff --git a/crates/parser/test_data/parser/inline/err/0003_pointer_type_no_mutability.txt b/crates/parser/test_data/parser/inline/err/0003_pointer_type_no_mutability.txt
deleted file mode 100644
index 354c4135a4..0000000000
--- a/crates/parser/test_data/parser/inline/err/0003_pointer_type_no_mutability.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
-error 10: expected mut or const in raw pointer type (use `*mut T` or `*const T` as appropriate)
diff --git a/crates/parser/test_data/parser/inline/err/0004_impl_type.rast b/crates/parser/test_data/parser/inline/err/0004_impl_type.rast
index 29d6b39740..dbeb878a2e 100644
--- a/crates/parser/test_data/parser/inline/err/0004_impl_type.rast
+++ b/crates/parser/test_data/parser/inline/err/0004_impl_type.rast
@@ -1,79 +1,79 @@
- [email protected] "NotType"
- [email protected] "NotType"
-error 38..38: expected trait or type
-error 38..38: expected `{`
-error 70..70: expected trait or type
-error 70..70: expected `{`
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Type"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Trait1"
+ WHITESPACE " "
+ FOR_KW "for"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "NotType"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Trait2"
+ WHITESPACE " "
+ FOR_KW "for"
+ WHITESPACE " "
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "NotType"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 38: expected trait or type
+error 38: expected `{`
+error 70: expected trait or type
+error 70: expected `{`
diff --git a/crates/parser/test_data/parser/inline/err/0004_impl_type.txt b/crates/parser/test_data/parser/inline/err/0004_impl_type.txt
deleted file mode 100644
index dbeb878a2e..0000000000
--- a/crates/parser/test_data/parser/inline/err/0004_impl_type.txt
+++ /dev/null
@@ -1,79 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Type"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Trait1"
- WHITESPACE " "
- FOR_KW "for"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "NotType"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Trait2"
- WHITESPACE " "
- FOR_KW "for"
- WHITESPACE " "
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "NotType"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
-error 38: expected trait or type
-error 38: expected `{`
-error 70: expected trait or type
-error 70: expected `{`
diff --git a/crates/parser/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast b/crates/parser/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast
index 776022fd93..eb05952939 100644
--- a/crates/parser/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast
+++ b/crates/parser/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast
@@ -1,23 +1,23 @@
-error 15..15: expected `fn`
-error 15..15: expected SEMICOLON
-error 16..16: expected an item
-error 17..17: expected an item
-error 18..18: expected an item
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "F"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ ERROR
+ L_PAREN "("
+ ERROR
+ R_PAREN ")"
+ ERROR
+ SEMICOLON ";"
+ WHITESPACE "\n"
+error 15: expected `fn`
+error 15: expected SEMICOLON
+error 16: expected an item
+error 17: expected an item
+error 18: expected an item
diff --git a/crates/parser/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.txt b/crates/parser/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.txt
deleted file mode 100644
index eb05952939..0000000000
--- a/crates/parser/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "F"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- ERROR
- L_PAREN "("
- ERROR
- R_PAREN ")"
- ERROR
- SEMICOLON ";"
- WHITESPACE "\n"
-error 15: expected `fn`
-error 15: expected SEMICOLON
-error 16: expected an item
-error 17: expected an item
-error 18: expected an item
diff --git a/crates/parser/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast b/crates/parser/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast
index 04bac98211..77c2b56adf 100644
--- a/crates/parser/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast
+++ b/crates/parser/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast
@@ -1,37 +1,37 @@
-error 11..11: expected an item
-error 18..18: expected an item
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE " "
+ ERROR
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ ERROR
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "bar"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 11: expected an item
+error 18: expected an item
diff --git a/crates/parser/test_data/parser/inline/err/0006_unsafe_block_in_mod.txt b/crates/parser/test_data/parser/inline/err/0006_unsafe_block_in_mod.txt
deleted file mode 100644
index 77c2b56adf..0000000000
--- a/crates/parser/test_data/parser/inline/err/0006_unsafe_block_in_mod.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE " "
- ERROR
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- ERROR
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "bar"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
-error 11: expected an item
-error 18: expected an item
diff --git a/crates/parser/test_data/parser/inline/err/0007_async_without_semicolon.rast b/crates/parser/test_data/parser/inline/err/0007_async_without_semicolon.rast
index c9a84a0ce4..bf20d5fa4f 100644
--- a/crates/parser/test_data/parser/inline/err/0007_async_without_semicolon.rast
+++ b/crates/parser/test_data/parser/inline/err/0007_async_without_semicolon.rast
@@ -1,32 +1,32 @@
-error 27..27: expected SEMICOLON
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BLOCK_EXPR
+ ASYNC_KW "async"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 27: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/inline/err/0007_async_without_semicolon.txt b/crates/parser/test_data/parser/inline/err/0007_async_without_semicolon.txt
deleted file mode 100644
index bf20d5fa4f..0000000000
--- a/crates/parser/test_data/parser/inline/err/0007_async_without_semicolon.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BLOCK_EXPR
- ASYNC_KW "async"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
-error 27: expected SEMICOLON
diff --git a/crates/parser/test_data/parser/inline/err/0008_pub_expr.rast b/crates/parser/test_data/parser/inline/err/0008_pub_expr.rast
index 57c1d2051b..0ae9f64e7e 100644
--- a/crates/parser/test_data/parser/inline/err/0008_pub_expr.rast
+++ b/crates/parser/test_data/parser/inline/err/0008_pub_expr.rast
@@ -1,26 +1,26 @@
-error 14..14: expected an item
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ ERROR
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ EXPR_STMT
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 14: expected an item
diff --git a/crates/parser/test_data/parser/inline/err/0008_pub_expr.txt b/crates/parser/test_data/parser/inline/err/0008_pub_expr.txt
deleted file mode 100644
index 0ae9f64e7e..0000000000
--- a/crates/parser/test_data/parser/inline/err/0008_pub_expr.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- ERROR
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- EXPR_STMT
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
-error 14: expected an item
diff --git a/crates/parser/test_data/parser/inline/err/0013_anonymous_static.rast b/crates/parser/test_data/parser/inline/err/0013_anonymous_static.rast
index 8d761b9074..823db94f58 100644
--- a/crates/parser/test_data/parser/inline/err/0013_anonymous_static.rast
+++ b/crates/parser/test_data/parser/inline/err/0013_anonymous_static.rast
@@ -1,21 +1,21 @@
-error 7..7: expected a name
+SOURCE_FILE
+ STATIC
+ STATIC_KW "static"
+ WHITESPACE " "
+ ERROR
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "5"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+error 7: expected a name
diff --git a/crates/parser/test_data/parser/inline/err/0013_anonymous_static.txt b/crates/parser/test_data/parser/inline/err/0013_anonymous_static.txt
deleted file mode 100644
index 823db94f58..0000000000
--- a/crates/parser/test_data/parser/inline/err/0013_anonymous_static.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-SOURCE_FILE
- STATIC
- STATIC_KW "static"
- WHITESPACE " "
- ERROR
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "5"
- SEMICOLON ";"
- WHITESPACE "\n"
-error 7: expected a name
diff --git a/crates/parser/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast b/crates/parser/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast
index f8cdddb6e8..f511960040 100644
--- a/crates/parser/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast
+++ b/crates/parser/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast
@@ -1,49 +1,49 @@
- [email protected] "default"
-error 25..25: expected COLON
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RECORD_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD
+ NAME_REF
+ IDENT "field"
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "default"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 25: expected COLON
diff --git a/crates/parser/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.txt b/crates/parser/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.txt
deleted file mode 100644
index f511960040..0000000000
--- a/crates/parser/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RECORD_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_EXPR_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_EXPR_FIELD
- NAME_REF
- IDENT "field"
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "default"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
-error 25: expected COLON
diff --git a/crates/parser/test_data/parser/inline/err/0014_struct_field_recover.rast b/crates/parser/test_data/parser/inline/err/0014_struct_field_recover.rast
index ba8e50993d..458d7f4e2f 100644
--- a/crates/parser/test_data/parser/inline/err/0014_struct_field_recover.rast
+++ b/crates/parser/test_data/parser/inline/err/0014_struct_field_recover.rast
@@ -1,31 +1,31 @@
-error 12..12: expected COLON
-error 12..12: expected type
-error 12..12: expected COMMA
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_FIELD
+ NAME
+ IDENT "f"
+ WHITESPACE " "
+ RECORD_FIELD
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ NAME
+ IDENT "g"
+ COLON ":"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 12: expected COLON
+error 12: expected type
+error 12: expected COMMA
diff --git a/crates/parser/test_data/parser/inline/err/0014_struct_field_recover.txt b/crates/parser/test_data/parser/inline/err/0014_struct_field_recover.txt
deleted file mode 100644
index 458d7f4e2f..0000000000
--- a/crates/parser/test_data/parser/inline/err/0014_struct_field_recover.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_FIELD
- NAME
- IDENT "f"
- WHITESPACE " "
- RECORD_FIELD
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- NAME
- IDENT "g"
- COLON ":"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
-error 12: expected COLON
-error 12: expected type
-error 12: expected COMMA
diff --git a/crates/parser/test_data/parser/inline/err/0015_empty_segment.rast b/crates/parser/test_data/parser/inline/err/0015_empty_segment.rast
index d3c5dde586..b03f5ad9f7 100644
--- a/crates/parser/test_data/parser/inline/err/0015_empty_segment.rast
+++ b/crates/parser/test_data/parser/inline/err/0015_empty_segment.rast
@@ -1,14 +1,14 @@
-error 11..11: expected identifier
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ CRATE_KW "crate"
+ COLON2 "::"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+error 11: expected identifier
diff --git a/crates/parser/test_data/parser/inline/err/0015_empty_segment.txt b/crates/parser/test_data/parser/inline/err/0015_empty_segment.txt
deleted file mode 100644
index b03f5ad9f7..0000000000
--- a/crates/parser/test_data/parser/inline/err/0015_empty_segment.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- CRATE_KW "crate"
- COLON2 "::"
- SEMICOLON ";"
- WHITESPACE "\n"
-error 11: expected identifier
diff --git a/crates/parser/test_data/parser/inline/err/0015_missing_fn_param_type.rast b/crates/parser/test_data/parser/inline/err/0015_missing_fn_param_type.rast
index 6c634b4f74..e72df374d1 100644
--- a/crates/parser/test_data/parser/inline/err/0015_missing_fn_param_type.rast
+++ b/crates/parser/test_data/parser/inline/err/0015_missing_fn_param_type.rast
@@ -1,53 +1,53 @@
-error 6..6: missing type for function parameter
-error 6..6: expected COMMA
-error 16..16: missing type for function parameter
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "y"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "z"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "t"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+error 6: missing type for function parameter
+error 6: expected COMMA
+error 16: missing type for function parameter
diff --git a/crates/parser/test_data/parser/inline/err/0015_missing_fn_param_type.txt b/crates/parser/test_data/parser/inline/err/0015_missing_fn_param_type.txt
deleted file mode 100644
index e72df374d1..0000000000
--- a/crates/parser/test_data/parser/inline/err/0015_missing_fn_param_type.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "x"
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "y"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "z"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "t"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
-error 6: missing type for function parameter
-error 6: expected COMMA
-error 16: missing type for function parameter
diff --git a/crates/parser/test_data/parser/inline/ok/0002_use_tree_list.rast b/crates/parser/test_data/parser/inline/ok/0002_use_tree_list.rast
index 9bee074b7b..f3b1129f27 100644
--- a/crates/parser/test_data/parser/inline/ok/0002_use_tree_list.rast
+++ b/crates/parser/test_data/parser/inline/ok/0002_use_tree_list.rast
@@ -1,29 +1,29 @@
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ USE_TREE_LIST
+ L_CURLY "{"
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "b"
+ COMMA ","
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "c"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0002_use_tree_list.txt b/crates/parser/test_data/parser/inline/ok/0002_use_tree_list.txt
deleted file mode 100644
index f3b1129f27..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0002_use_tree_list.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- USE_TREE_LIST
- L_CURLY "{"
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "b"
- COMMA ","
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "c"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0003_where_pred_for.rast b/crates/parser/test_data/parser/inline/ok/0003_where_pred_for.rast
index 174733a867..8407e99f61 100644
--- a/crates/parser/test_data/parser/inline/ok/0003_where_pred_for.rast
+++ b/crates/parser/test_data/parser/inline/ok/0003_where_pred_for.rast
@@ -1,63 +1,63 @@
- [email protected] "for_trait"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "for_trait"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "F"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n"
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE "\n "
+ WHERE_PRED
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "F"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Fn"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "str"
+ R_PAREN ")"
+ WHITESPACE "\n"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0003_where_pred_for.txt b/crates/parser/test_data/parser/inline/ok/0003_where_pred_for.txt
deleted file mode 100644
index 8407e99f61..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0003_where_pred_for.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "for_trait"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "F"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n"
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE "\n "
- WHERE_PRED
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "F"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Fn"
- PARAM_LIST
- L_PAREN "("
- PARAM
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "str"
- R_PAREN ")"
- WHITESPACE "\n"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast b/crates/parser/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast
index b650735ba1..902b06484c 100644
--- a/crates/parser/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast
+++ b/crates/parser/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast
@@ -1,60 +1,60 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "F"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Box"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Fn"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ REF_TYPE
+ AMP "&"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ REF_TYPE
+ AMP "&"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0004_value_parameters_no_patterns.txt b/crates/parser/test_data/parser/inline/ok/0004_value_parameters_no_patterns.txt
deleted file mode 100644
index 902b06484c..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0004_value_parameters_no_patterns.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "F"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Box"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Fn"
- PARAM_LIST
- L_PAREN "("
- PARAM
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- WHITESPACE " "
- PARAM
- REF_TYPE
- AMP "&"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- WHITESPACE " "
- PARAM
- REF_TYPE
- AMP "&"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- WHITESPACE " "
- PARAM
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0005_function_type_params.rast b/crates/parser/test_data/parser/inline/ok/0005_function_type_params.rast
index 5308dce6a2..3858e3eed5 100644
--- a/crates/parser/test_data/parser/inline/ok/0005_function_type_params.rast
+++ b/crates/parser/test_data/parser/inline/ok/0005_function_type_params.rast
@@ -1,38 +1,38 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Clone"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0005_function_type_params.txt b/crates/parser/test_data/parser/inline/ok/0005_function_type_params.txt
deleted file mode 100644
index 3858e3eed5..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0005_function_type_params.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Clone"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0006_self_param.rast b/crates/parser/test_data/parser/inline/ok/0006_self_param.rast
index 90667cb7c2..67e2823639 100644
--- a/crates/parser/test_data/parser/inline/ok/0006_self_param.rast
+++ b/crates/parser/test_data/parser/inline/ok/0006_self_param.rast
@@ -1,128 +1,128 @@
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "a"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ NAME
+ SELF_KW "self"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ AMP "&"
+ NAME
+ SELF_KW "self"
+ COMMA ","
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "c"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ NAME
+ SELF_KW "self"
+ COMMA ","
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "d"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ SELF_KW "self"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "e"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ SELF_KW "self"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0006_self_param.txt b/crates/parser/test_data/parser/inline/ok/0006_self_param.txt
deleted file mode 100644
index 67e2823639..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0006_self_param.txt
+++ /dev/null
@@ -1,128 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "a"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- NAME
- SELF_KW "self"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "b"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- AMP "&"
- NAME
- SELF_KW "self"
- COMMA ","
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "c"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- NAME
- SELF_KW "self"
- COMMA ","
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "d"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- SELF_KW "self"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "e"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- SELF_KW "self"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0007_type_param_bounds.rast b/crates/parser/test_data/parser/inline/ok/0007_type_param_bounds.rast
index 4cd03485f4..dee860c241 100644
--- a/crates/parser/test_data/parser/inline/ok/0007_type_param_bounds.rast
+++ b/crates/parser/test_data/parser/inline/ok/0007_type_param_bounds.rast
@@ -1,53 +1,53 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ QUESTION "?"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Sized"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ R_PAREN ")"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ TILDE "~"
+ CONST_KW "const"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Drop"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0007_type_param_bounds.txt b/crates/parser/test_data/parser/inline/ok/0007_type_param_bounds.txt
deleted file mode 100644
index dee860c241..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0007_type_param_bounds.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- QUESTION "?"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Sized"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- R_PAREN ")"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- TILDE "~"
- CONST_KW "const"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Drop"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0008_path_part.rast b/crates/parser/test_data/parser/inline/ok/0008_path_part.rast
index c20e41ffae..4ccda19a8d 100644
--- a/crates/parser/test_data/parser/inline/ok/0008_path_part.rast
+++ b/crates/parser/test_data/parser/inline/ok/0008_path_part.rast
@@ -1,98 +1,98 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ PATH_PAT
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Bar"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ PATH_PAT
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "Bar"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ RECORD_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Bar"
+ WHITESPACE " "
+ RECORD_PAT_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Bar"
+ L_PAREN "("
+ REST_PAT
+ DOT2 ".."
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0008_path_part.txt b/crates/parser/test_data/parser/inline/ok/0008_path_part.txt
deleted file mode 100644
index 4ccda19a8d..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0008_path_part.txt
+++ /dev/null
@@ -1,98 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- PATH_PAT
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Bar"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- PATH_PAT
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "Bar"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- RECORD_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Bar"
- WHITESPACE " "
- RECORD_PAT_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Bar"
- L_PAREN "("
- REST_PAT
- DOT2 ".."
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0009_loop_expr.rast b/crates/parser/test_data/parser/inline/ok/0009_loop_expr.rast
index 0e2ddb9f2f..ab3b49b0d6 100644
--- a/crates/parser/test_data/parser/inline/ok/0009_loop_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0009_loop_expr.rast
@@ -1,26 +1,26 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ LOOP_EXPR
+ LOOP_KW "loop"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0009_loop_expr.txt b/crates/parser/test_data/parser/inline/ok/0009_loop_expr.txt
deleted file mode 100644
index ab3b49b0d6..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0009_loop_expr.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- LOOP_EXPR
- LOOP_KW "loop"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0010_extern_block.rast b/crates/parser/test_data/parser/inline/ok/0010_extern_block.rast
index beac566e59..7a3cd6a0df 100644
--- a/crates/parser/test_data/parser/inline/ok/0010_extern_block.rast
+++ b/crates/parser/test_data/parser/inline/ok/0010_extern_block.rast
@@ -1,21 +1,21 @@
+SOURCE_FILE
+ EXTERN_BLOCK
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C\""
+ WHITESPACE " "
+ EXTERN_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ EXTERN_BLOCK
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ EXTERN_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0010_extern_block.txt b/crates/parser/test_data/parser/inline/ok/0010_extern_block.txt
deleted file mode 100644
index 7a3cd6a0df..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0010_extern_block.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-SOURCE_FILE
- EXTERN_BLOCK
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C\""
- WHITESPACE " "
- EXTERN_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- EXTERN_BLOCK
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- EXTERN_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0011_field_expr.rast b/crates/parser/test_data/parser/inline/ok/0011_field_expr.rast
index 9475e3e217..8498724b9e 100644
--- a/crates/parser/test_data/parser/inline/ok/0011_field_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0011_field_expr.rast
@@ -1,60 +1,60 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ FIELD_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ DOT "."
+ NAME_REF
+ IDENT "foo"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ FIELD_EXPR
+ FIELD_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ DOT "."
+ NAME_REF
+ INT_NUMBER "0"
+ DOT "."
+ NAME_REF
+ IDENT "bar"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ FIELD_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ DOT "."
+ NAME_REF
+ INT_NUMBER "0"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0011_field_expr.txt b/crates/parser/test_data/parser/inline/ok/0011_field_expr.txt
deleted file mode 100644
index 8498724b9e..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0011_field_expr.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- FIELD_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- DOT "."
- NAME_REF
- IDENT "foo"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- FIELD_EXPR
- FIELD_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- DOT "."
- NAME_REF
- INT_NUMBER "0"
- DOT "."
- NAME_REF
- IDENT "bar"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- FIELD_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- DOT "."
- NAME_REF
- INT_NUMBER "0"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0012_type_item_where_clause.rast b/crates/parser/test_data/parser/inline/ok/0012_type_item_where_clause.rast
index 28c94bfd64..7210b73895 100644
--- a/crates/parser/test_data/parser/inline/ok/0012_type_item_where_clause.rast
+++ b/crates/parser/test_data/parser/inline/ok/0012_type_item_where_clause.rast
@@ -1,33 +1,33 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Foo"
+ WHITESPACE " "
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE " "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0012_type_item_where_clause.txt b/crates/parser/test_data/parser/inline/ok/0012_type_item_where_clause.txt
deleted file mode 100644
index 7210b73895..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0012_type_item_where_clause.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Foo"
- WHITESPACE " "
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE " "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0013_pointer_type_mut.rast b/crates/parser/test_data/parser/inline/ok/0013_pointer_type_mut.rast
index d33215b507..bfe7ed5b40 100644
--- a/crates/parser/test_data/parser/inline/ok/0013_pointer_type_mut.rast
+++ b/crates/parser/test_data/parser/inline/ok/0013_pointer_type_mut.rast
@@ -1,35 +1,35 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "M"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "C"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0013_pointer_type_mut.txt b/crates/parser/test_data/parser/inline/ok/0013_pointer_type_mut.txt
deleted file mode 100644
index bfe7ed5b40..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0013_pointer_type_mut.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "M"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "C"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0014_never_type.rast b/crates/parser/test_data/parser/inline/ok/0014_never_type.rast
index b1d5106ce9..53dbf3999b 100644
--- a/crates/parser/test_data/parser/inline/ok/0014_never_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0014_never_type.rast
@@ -1,13 +1,13 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Never"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ NEVER_TYPE
+ BANG "!"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0014_never_type.txt b/crates/parser/test_data/parser/inline/ok/0014_never_type.txt
deleted file mode 100644
index 53dbf3999b..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0014_never_type.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Never"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- NEVER_TYPE
- BANG "!"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0015_continue_expr.rast b/crates/parser/test_data/parser/inline/ok/0015_continue_expr.rast
index 81c916fe1e..5d80a57a2e 100644
--- a/crates/parser/test_data/parser/inline/ok/0015_continue_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0015_continue_expr.rast
@@ -1,38 +1,38 @@
- [email protected] "continue"
- [email protected] "continue"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LOOP_EXPR
+ LOOP_KW "loop"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CONTINUE_EXPR
+ CONTINUE_KW "continue"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CONTINUE_EXPR
+ CONTINUE_KW "continue"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'l"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0015_continue_expr.txt b/crates/parser/test_data/parser/inline/ok/0015_continue_expr.txt
deleted file mode 100644
index 5d80a57a2e..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0015_continue_expr.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LOOP_EXPR
- LOOP_KW "loop"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- CONTINUE_EXPR
- CONTINUE_KW "continue"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CONTINUE_EXPR
- CONTINUE_KW "continue"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'l"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0017_array_type.rast b/crates/parser/test_data/parser/inline/ok/0017_array_type.rast
index c131df1c95..2a5c644d46 100644
--- a/crates/parser/test_data/parser/inline/ok/0017_array_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0017_array_type.rast
@@ -1,21 +1,21 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ ARRAY_TYPE
+ L_BRACK "["
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0017_array_type.txt b/crates/parser/test_data/parser/inline/ok/0017_array_type.txt
deleted file mode 100644
index 2a5c644d46..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0017_array_type.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- ARRAY_TYPE
- L_BRACK "["
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0018_arb_self_types.rast b/crates/parser/test_data/parser/inline/ok/0018_arb_self_types.rast
index 48b11844cd..a0b5626296 100644
--- a/crates/parser/test_data/parser/inline/ok/0018_arb_self_types.rast
+++ b/crates/parser/test_data/parser/inline/ok/0018_arb_self_types.rast
@@ -1,76 +1,76 @@
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "a"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ NAME
+ SELF_KW "self"
+ COLON ":"
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_TYPE_KW "Self"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ SELF_KW "self"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Box"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_TYPE_KW "Self"
+ R_ANGLE ">"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0018_arb_self_types.txt b/crates/parser/test_data/parser/inline/ok/0018_arb_self_types.txt
deleted file mode 100644
index a0b5626296..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0018_arb_self_types.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "a"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- NAME
- SELF_KW "self"
- COLON ":"
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_TYPE_KW "Self"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "b"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- SELF_KW "self"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Box"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_TYPE_KW "Self"
- R_ANGLE ">"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0019_unary_expr.rast b/crates/parser/test_data/parser/inline/ok/0019_unary_expr.rast
index 8a67c60e79..525b267458 100644
--- a/crates/parser/test_data/parser/inline/ok/0019_unary_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0019_unary_expr.rast
@@ -1,45 +1,45 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ PREFIX_EXPR
+ STAR "*"
+ PREFIX_EXPR
+ STAR "*"
+ REF_EXPR
+ AMP "&"
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ PREFIX_EXPR
+ BANG "!"
+ PREFIX_EXPR
+ BANG "!"
+ LITERAL
+ TRUE_KW "true"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ PREFIX_EXPR
+ MINUS "-"
+ PREFIX_EXPR
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0019_unary_expr.txt b/crates/parser/test_data/parser/inline/ok/0019_unary_expr.txt
deleted file mode 100644
index 525b267458..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0019_unary_expr.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- PREFIX_EXPR
- STAR "*"
- PREFIX_EXPR
- STAR "*"
- REF_EXPR
- AMP "&"
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- PREFIX_EXPR
- BANG "!"
- PREFIX_EXPR
- BANG "!"
- LITERAL
- TRUE_KW "true"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- PREFIX_EXPR
- MINUS "-"
- PREFIX_EXPR
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0021_assoc_item_list.rast b/crates/parser/test_data/parser/inline/ok/0021_assoc_item_list.rast
index d57e315a34..def7373c9d 100644
--- a/crates/parser/test_data/parser/inline/ok/0021_assoc_item_list.rast
+++ b/crates/parser/test_data/parser/inline/ok/0021_assoc_item_list.rast
@@ -1,81 +1,81 @@
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "F"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ CONST
+ CONST_KW "const"
+ WHITESPACE " "
+ NAME
+ IDENT "B"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "bar"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ AMP "&"
+ NAME
+ SELF_KW "self"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0021_assoc_item_list.txt b/crates/parser/test_data/parser/inline/ok/0021_assoc_item_list.txt
deleted file mode 100644
index def7373c9d..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0021_assoc_item_list.txt
+++ /dev/null
@@ -1,81 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "F"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "A"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- SEMICOLON ";"
- WHITESPACE "\n "
- CONST
- CONST_KW "const"
- WHITESPACE " "
- NAME
- IDENT "B"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "bar"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- AMP "&"
- NAME
- SELF_KW "self"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0022_crate_visibility.rast b/crates/parser/test_data/parser/inline/ok/0022_crate_visibility.rast
index f2ead8a624..8738292a9f 100644
--- a/crates/parser/test_data/parser/inline/ok/0022_crate_visibility.rast
+++ b/crates/parser/test_data/parser/inline/ok/0022_crate_visibility.rast
@@ -1,49 +1,49 @@
+SOURCE_FILE
+ STRUCT
+ VISIBILITY
+ PUB_KW "pub"
+ L_PAREN "("
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ CRATE_KW "crate"
+ R_PAREN ")"
+ WHITESPACE " "
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ VISIBILITY
+ PUB_KW "pub"
+ L_PAREN "("
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_KW "self"
+ R_PAREN ")"
+ WHITESPACE " "
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ VISIBILITY
+ PUB_KW "pub"
+ L_PAREN "("
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SUPER_KW "super"
+ R_PAREN ")"
+ WHITESPACE " "
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0022_crate_visibility.txt b/crates/parser/test_data/parser/inline/ok/0022_crate_visibility.txt
deleted file mode 100644
index 8738292a9f..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0022_crate_visibility.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-SOURCE_FILE
- STRUCT
- VISIBILITY
- PUB_KW "pub"
- L_PAREN "("
- PATH
- PATH_SEGMENT
- NAME_REF
- CRATE_KW "crate"
- R_PAREN ")"
- WHITESPACE " "
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- VISIBILITY
- PUB_KW "pub"
- L_PAREN "("
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_KW "self"
- R_PAREN ")"
- WHITESPACE " "
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- VISIBILITY
- PUB_KW "pub"
- L_PAREN "("
- PATH
- PATH_SEGMENT
- NAME_REF
- SUPER_KW "super"
- R_PAREN ")"
- WHITESPACE " "
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0023_placeholder_type.rast b/crates/parser/test_data/parser/inline/ok/0023_placeholder_type.rast
index e4fe2b948b..d9db1c34bf 100644
--- a/crates/parser/test_data/parser/inline/ok/0023_placeholder_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0023_placeholder_type.rast
@@ -1,13 +1,13 @@
- [email protected] "Placeholder"
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Placeholder"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ INFER_TYPE
+ UNDERSCORE "_"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0023_placeholder_type.txt b/crates/parser/test_data/parser/inline/ok/0023_placeholder_type.txt
deleted file mode 100644
index d9db1c34bf..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0023_placeholder_type.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Placeholder"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- INFER_TYPE
- UNDERSCORE "_"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0024_slice_pat.rast b/crates/parser/test_data/parser/inline/ok/0024_slice_pat.rast
index 970260df81..235a9d7f40 100644
--- a/crates/parser/test_data/parser/inline/ok/0024_slice_pat.rast
+++ b/crates/parser/test_data/parser/inline/ok/0024_slice_pat.rast
@@ -1,42 +1,42 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ SLICE_PAT
+ L_BRACK "["
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "b"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ R_BRACK "]"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ ARRAY_EXPR
+ L_BRACK "["
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0024_slice_pat.txt b/crates/parser/test_data/parser/inline/ok/0024_slice_pat.txt
deleted file mode 100644
index 235a9d7f40..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0024_slice_pat.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- SLICE_PAT
- L_BRACK "["
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "b"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- R_BRACK "]"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- ARRAY_EXPR
- L_BRACK "["
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0025_slice_type.rast b/crates/parser/test_data/parser/inline/ok/0025_slice_type.rast
index fd819ea370..0bcb315248 100644
--- a/crates/parser/test_data/parser/inline/ok/0025_slice_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0025_slice_type.rast
@@ -1,17 +1,17 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ SLICE_TYPE
+ L_BRACK "["
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0025_slice_type.txt b/crates/parser/test_data/parser/inline/ok/0025_slice_type.txt
deleted file mode 100644
index 0bcb315248..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0025_slice_type.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- SLICE_TYPE
- L_BRACK "["
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0026_tuple_pat_fields.rast b/crates/parser/test_data/parser/inline/ok/0026_tuple_pat_fields.rast
index d1be7e6e0a..3cdaf32b57 100644
--- a/crates/parser/test_data/parser/inline/ok/0026_tuple_pat_fields.rast
+++ b/crates/parser/test_data/parser/inline/ok/0026_tuple_pat_fields.rast
@@ -1,105 +1,105 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ L_PAREN "("
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ L_PAREN "("
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COMMA ","
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ L_PAREN "("
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ WHITESPACE " "
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0026_tuple_pat_fields.txt b/crates/parser/test_data/parser/inline/ok/0026_tuple_pat_fields.txt
deleted file mode 100644
index 3cdaf32b57..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0026_tuple_pat_fields.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- L_PAREN "("
- WILDCARD_PAT
- UNDERSCORE "_"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- L_PAREN "("
- WILDCARD_PAT
- UNDERSCORE "_"
- COMMA ","
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- L_PAREN "("
- WILDCARD_PAT
- UNDERSCORE "_"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- WHITESPACE " "
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0027_ref_pat.rast b/crates/parser/test_data/parser/inline/ok/0027_ref_pat.rast
index ed47dc21dd..4516fd0113 100644
--- a/crates/parser/test_data/parser/inline/ok/0027_ref_pat.rast
+++ b/crates/parser/test_data/parser/inline/ok/0027_ref_pat.rast
@@ -1,50 +1,50 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ REF_PAT
+ AMP "&"
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ REF_PAT
+ AMP "&"
+ MUT_KW "mut"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "b"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0027_ref_pat.txt b/crates/parser/test_data/parser/inline/ok/0027_ref_pat.txt
deleted file mode 100644
index 4516fd0113..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0027_ref_pat.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- REF_PAT
- AMP "&"
- IDENT_PAT
- NAME
- IDENT "a"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- REF_PAT
- AMP "&"
- MUT_KW "mut"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "b"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0028_impl_trait_type.rast b/crates/parser/test_data/parser/inline/ok/0028_impl_trait_type.rast
index b44f46f053..c7478da942 100644
--- a/crates/parser/test_data/parser/inline/ok/0028_impl_trait_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0028_impl_trait_type.rast
@@ -1,45 +1,45 @@
- [email protected] "Iterator"
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ IMPL_TRAIT_TYPE
+ IMPL_KW "impl"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Iterator"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ ASSOC_TYPE_ARG
+ NAME_REF
+ IDENT "Item"
+ EQ "="
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0028_impl_trait_type.txt b/crates/parser/test_data/parser/inline/ok/0028_impl_trait_type.txt
deleted file mode 100644
index c7478da942..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0028_impl_trait_type.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "A"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- IMPL_TRAIT_TYPE
- IMPL_KW "impl"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Iterator"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- ASSOC_TYPE_ARG
- NAME_REF
- IDENT "Item"
- EQ "="
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- R_ANGLE ">"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'a"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0029_cast_expr.rast b/crates/parser/test_data/parser/inline/ok/0029_cast_expr.rast
index 5afd7bd8fe..d53dde5381 100644
--- a/crates/parser/test_data/parser/inline/ok/0029_cast_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0029_cast_expr.rast
@@ -1,90 +1,90 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CAST_EXPR
+ LITERAL
+ INT_NUMBER "82"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ CAST_EXPR
+ LITERAL
+ INT_NUMBER "81"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i8"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ CAST_EXPR
+ LITERAL
+ INT_NUMBER "79"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i16"
+ WHITESPACE " "
+ MINUS "-"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ CAST_EXPR
+ LITERAL
+ INT_NUMBER "0x36"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ WHITESPACE " "
+ LTEQ "<="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0x37"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0029_cast_expr.txt b/crates/parser/test_data/parser/inline/ok/0029_cast_expr.txt
deleted file mode 100644
index d53dde5381..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0029_cast_expr.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- CAST_EXPR
- LITERAL
- INT_NUMBER "82"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- CAST_EXPR
- LITERAL
- INT_NUMBER "81"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i8"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- CAST_EXPR
- LITERAL
- INT_NUMBER "79"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i16"
- WHITESPACE " "
- MINUS "-"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- CAST_EXPR
- LITERAL
- INT_NUMBER "0x36"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- WHITESPACE " "
- LTEQ "<="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0x37"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0030_let_expr.txt b/crates/parser/test_data/parser/inline/ok/0030_let_expr.txt
deleted file mode 100644
index dcffcb1ce2..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0030_let_expr.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- BIN_EXPR
- LET_EXPR
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- L_PAREN "("
- WILDCARD_PAT
- UNDERSCORE "_"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "None"
- WHITESPACE " "
- AMP2 "&&"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- WHILE_EXPR
- WHILE_KW "while"
- WHITESPACE " "
- BIN_EXPR
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- EQ2 "=="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "5"
- WHITESPACE " "
- AMP2 "&&"
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- LET_EXPR
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "None"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "None"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0031_while_expr.rast b/crates/parser/test_data/parser/inline/ok/0031_while_expr.rast
index d2d22e58ea..16c522414a 100644
--- a/crates/parser/test_data/parser/inline/ok/0031_while_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0031_while_expr.rast
@@ -1,89 +1,87 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ WHILE_EXPR
+ WHILE_KW "while"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ WHILE_EXPR
+ WHILE_KW "while"
+ WHITESPACE " "
+ LET_EXPR
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ METHOD_CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "it"
+ DOT "."
+ NAME_REF
+ IDENT "next"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ WHILE_EXPR
+ WHILE_KW "while"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0031_while_expr.txt b/crates/parser/test_data/parser/inline/ok/0031_while_expr.txt
deleted file mode 100644
index 16c522414a..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0031_while_expr.txt
+++ /dev/null
@@ -1,87 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- WHILE_EXPR
- WHILE_KW "while"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- WHILE_EXPR
- WHILE_KW "while"
- WHITESPACE " "
- LET_EXPR
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "x"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- METHOD_CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "it"
- DOT "."
- NAME_REF
- IDENT "next"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- WHILE_EXPR
- WHILE_KW "while"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0032_fn_pointer_type.rast b/crates/parser/test_data/parser/inline/ok/0032_fn_pointer_type.rast
index dda6577eda..608b0be160 100644
--- a/crates/parser/test_data/parser/inline/ok/0032_fn_pointer_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0032_fn_pointer_type.rast
@@ -1,98 +1,98 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FN_PTR_TYPE
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "B"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FN_PTR_TYPE
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "C"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FN_PTR_TYPE
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C\""
+ WHITESPACE " "
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "D"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FN_PTR_TYPE
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C\""
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ PARAM_LIST
+ L_PAREN "("
+ WHITESPACE " "
+ PARAM
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ WHITESPACE " "
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ DOT3 "..."
+ WHITESPACE " "
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0032_fn_pointer_type.txt b/crates/parser/test_data/parser/inline/ok/0032_fn_pointer_type.txt
deleted file mode 100644
index 608b0be160..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0032_fn_pointer_type.txt
+++ /dev/null
@@ -1,98 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "A"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FN_PTR_TYPE
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "B"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FN_PTR_TYPE
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "C"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FN_PTR_TYPE
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C\""
- WHITESPACE " "
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "D"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FN_PTR_TYPE
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C\""
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- PARAM_LIST
- L_PAREN "("
- WHITESPACE " "
- PARAM
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- WHITESPACE " "
- COMMA ","
- WHITESPACE " "
- PARAM
- DOT3 "..."
- WHITESPACE " "
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0033_reference_type;.rast b/crates/parser/test_data/parser/inline/ok/0033_reference_type;.rast
index 7cb288bf07..b5c9d7a8df 100644
--- a/crates/parser/test_data/parser/inline/ok/0033_reference_type;.rast
+++ b/crates/parser/test_data/parser/inline/ok/0033_reference_type;.rast
@@ -1,51 +1,51 @@
- [email protected] "'static"
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "B"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'static"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "C"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ MUT_KW "mut"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0033_reference_type;.txt b/crates/parser/test_data/parser/inline/ok/0033_reference_type;.txt
deleted file mode 100644
index b5c9d7a8df..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0033_reference_type;.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "A"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "B"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'static"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "C"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- MUT_KW "mut"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0034_break_expr.rast b/crates/parser/test_data/parser/inline/ok/0034_break_expr.rast
index a52c1c3893..06c053d0f8 100644
--- a/crates/parser/test_data/parser/inline/ok/0034_break_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0034_break_expr.rast
@@ -1,57 +1,57 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LOOP_EXPR
+ LOOP_KW "loop"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'l"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'l"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0034_break_expr.txt b/crates/parser/test_data/parser/inline/ok/0034_break_expr.txt
deleted file mode 100644
index 06c053d0f8..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0034_break_expr.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LOOP_EXPR
- LOOP_KW "loop"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'l"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'l"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0037_qual_paths.rast b/crates/parser/test_data/parser/inline/ok/0037_qual_paths.rast
index ab22f3189d..8c66cfe599 100644
--- a/crates/parser/test_data/parser/inline/ok/0037_qual_paths.rast
+++ b/crates/parser/test_data/parser/inline/ok/0037_qual_paths.rast
@@ -1,79 +1,79 @@
- [email protected] "Default"
- [email protected] "default"
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "X"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ L_ANGLE "<"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "A"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "B"
+ R_ANGLE ">"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Output"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH
+ PATH_SEGMENT
+ L_ANGLE "<"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "usize"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Default"
+ R_ANGLE ">"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "default"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0037_qual_paths.txt b/crates/parser/test_data/parser/inline/ok/0037_qual_paths.txt
deleted file mode 100644
index 8c66cfe599..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0037_qual_paths.txt
+++ /dev/null
@@ -1,79 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "X"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- L_ANGLE "<"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "A"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "B"
- R_ANGLE ">"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Output"
- SEMICOLON ";"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH
- PATH_SEGMENT
- L_ANGLE "<"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "usize"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Default"
- R_ANGLE ">"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "default"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0038_full_range_expr.rast b/crates/parser/test_data/parser/inline/ok/0038_full_range_expr.rast
index 9bb358f8a0..9ffc076304 100644
--- a/crates/parser/test_data/parser/inline/ok/0038_full_range_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0038_full_range_expr.rast
@@ -1,29 +1,29 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ INDEX_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "xs"
+ L_BRACK "["
+ RANGE_EXPR
+ DOT2 ".."
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0038_full_range_expr.txt b/crates/parser/test_data/parser/inline/ok/0038_full_range_expr.txt
deleted file mode 100644
index 9ffc076304..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0038_full_range_expr.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- INDEX_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "xs"
- L_BRACK "["
- RANGE_EXPR
- DOT2 ".."
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0040_crate_keyword_vis.rast b/crates/parser/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
index 3122528286..07b0210e44 100644
--- a/crates/parser/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
+++ b/crates/parser/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
@@ -1,63 +1,63 @@
+SOURCE_FILE
+ FN
+ VISIBILITY
+ CRATE_KW "crate"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_FIELD
+ VISIBILITY
+ CRATE_KW "crate"
+ WHITESPACE " "
+ NAME
+ IDENT "field"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ TUPLE_FIELD
+ VISIBILITY
+ CRATE_KW "crate"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0040_crate_keyword_vis.txt b/crates/parser/test_data/parser/inline/ok/0040_crate_keyword_vis.txt
deleted file mode 100644
index 07b0210e44..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0040_crate_keyword_vis.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-SOURCE_FILE
- FN
- VISIBILITY
- CRATE_KW "crate"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_FIELD
- VISIBILITY
- CRATE_KW "crate"
- WHITESPACE " "
- NAME
- IDENT "field"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "T"
- TUPLE_FIELD_LIST
- L_PAREN "("
- TUPLE_FIELD
- VISIBILITY
- CRATE_KW "crate"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0041_trait_item.rast b/crates/parser/test_data/parser/inline/ok/0041_trait_item.rast
index f7814abaa4..dd7f76eb93 100644
--- a/crates/parser/test_data/parser/inline/ok/0041_trait_item.rast
+++ b/crates/parser/test_data/parser/inline/ok/0041_trait_item.rast
@@ -1,31 +1,31 @@
+SOURCE_FILE
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "new"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_TYPE_KW "Self"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0041_trait_item.txt b/crates/parser/test_data/parser/inline/ok/0041_trait_item.txt
deleted file mode 100644
index dd7f76eb93..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0041_trait_item.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-SOURCE_FILE
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE " "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "new"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_TYPE_KW "Self"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0042_call_expr.rast b/crates/parser/test_data/parser/inline/ok/0042_call_expr.rast
index 55619dd016..19cc8d5ac7 100644
--- a/crates/parser/test_data/parser/inline/ok/0042_call_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0042_call_expr.rast
@@ -1,148 +1,148 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ CALL_EXPR
+ CALL_EXPR
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ INT_NUMBER "1"
+ R_PAREN ")"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ COMMA ","
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f"
+ ARG_LIST
+ L_PAREN "("
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH
+ PATH_SEGMENT
+ L_ANGLE "<"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ R_ANGLE ">"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "func"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f"
+ ARG_LIST
+ L_PAREN "("
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH
+ PATH_SEGMENT
+ L_ANGLE "<"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Trait"
+ R_ANGLE ">"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "func"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0042_call_expr.txt b/crates/parser/test_data/parser/inline/ok/0042_call_expr.txt
deleted file mode 100644
index 19cc8d5ac7..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0042_call_expr.txt
+++ /dev/null
@@ -1,148 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- CALL_EXPR
- CALL_EXPR
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- ARG_LIST
- L_PAREN "("
- LITERAL
- INT_NUMBER "1"
- R_PAREN ")"
- ARG_LIST
- L_PAREN "("
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- COMMA ","
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f"
- ARG_LIST
- L_PAREN "("
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH
- PATH_SEGMENT
- L_ANGLE "<"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- R_ANGLE ">"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "func"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f"
- ARG_LIST
- L_PAREN "("
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH
- PATH_SEGMENT
- L_ANGLE "<"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Trait"
- R_ANGLE ">"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "func"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0044_block_items.rast b/crates/parser/test_data/parser/inline/ok/0044_block_items.rast
index d5c755d343..2e4b515cab 100644
--- a/crates/parser/test_data/parser/inline/ok/0044_block_items.rast
+++ b/crates/parser/test_data/parser/inline/ok/0044_block_items.rast
@@ -1,30 +1,30 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "a"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0044_block_items.txt b/crates/parser/test_data/parser/inline/ok/0044_block_items.txt
deleted file mode 100644
index 2e4b515cab..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0044_block_items.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "a"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "b"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast b/crates/parser/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
index 8f187f2ae6..e9d93a0d0a 100644
--- a/crates/parser/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
+++ b/crates/parser/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
@@ -1,48 +1,48 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "F"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "FnMut"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ REF_TYPE
+ AMP "&"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ R_PAREN ")"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt b/crates/parser/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt
deleted file mode 100644
index e9d93a0d0a..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "F"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "FnMut"
- PARAM_LIST
- L_PAREN "("
- PARAM
- REF_TYPE
- AMP "&"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- R_PAREN ")"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0046_singleton_tuple_type.rast b/crates/parser/test_data/parser/inline/ok/0046_singleton_tuple_type.rast
index e89284c140..0129955d13 100644
--- a/crates/parser/test_data/parser/inline/ok/0046_singleton_tuple_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0046_singleton_tuple_type.rast
@@ -1,20 +1,20 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0046_singleton_tuple_type.txt b/crates/parser/test_data/parser/inline/ok/0046_singleton_tuple_type.txt
deleted file mode 100644
index 0129955d13..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0046_singleton_tuple_type.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0048_path_type_with_bounds.rast b/crates/parser/test_data/parser/inline/ok/0048_path_type_with_bounds.rast
index c65ad4231e..a059e124ae 100644
--- a/crates/parser/test_data/parser/inline/ok/0048_path_type_with_bounds.rast
+++ b/crates/parser/test_data/parser/inline/ok/0048_path_type_with_bounds.rast
@@ -1,85 +1,85 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Box"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ DYN_TRAIT_TYPE
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'f"
+ R_ANGLE ">"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Box"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ DYN_TRAIT_TYPE
+ DYN_KW "dyn"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'f"
+ R_ANGLE ">"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0048_path_type_with_bounds.txt b/crates/parser/test_data/parser/inline/ok/0048_path_type_with_bounds.txt
deleted file mode 100644
index a059e124ae..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0048_path_type_with_bounds.txt
+++ /dev/null
@@ -1,85 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Box"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- DYN_TRAIT_TYPE
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'f"
- R_ANGLE ">"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Box"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- DYN_TRAIT_TYPE
- DYN_KW "dyn"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'f"
- R_ANGLE ">"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0050_fn_decl.rast b/crates/parser/test_data/parser/inline/ok/0050_fn_decl.rast
index a5bf55131d..f7fac807f4 100644
--- a/crates/parser/test_data/parser/inline/ok/0050_fn_decl.rast
+++ b/crates/parser/test_data/parser/inline/ok/0050_fn_decl.rast
@@ -1,22 +1,22 @@
+SOURCE_FILE
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0050_fn_decl.txt b/crates/parser/test_data/parser/inline/ok/0050_fn_decl.txt
deleted file mode 100644
index f7fac807f4..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0050_fn_decl.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-SOURCE_FILE
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE " "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0051_unit_type.rast b/crates/parser/test_data/parser/inline/ok/0051_unit_type.rast
index 6330dbf9e6..b3df315354 100644
--- a/crates/parser/test_data/parser/inline/ok/0051_unit_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0051_unit_type.rast
@@ -1,14 +1,14 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0051_unit_type.txt b/crates/parser/test_data/parser/inline/ok/0051_unit_type.txt
deleted file mode 100644
index b3df315354..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0051_unit_type.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0052_path_type.rast b/crates/parser/test_data/parser/inline/ok/0052_path_type.rast
index 46a103d5ba..d498d37218 100644
--- a/crates/parser/test_data/parser/inline/ok/0052_path_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0052_path_type.rast
@@ -1,72 +1,72 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "B"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "Foo"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "C"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_KW "self"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "D"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SUPER_KW "super"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0052_path_type.txt b/crates/parser/test_data/parser/inline/ok/0052_path_type.txt
deleted file mode 100644
index d498d37218..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0052_path_type.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "A"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "B"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "Foo"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "C"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_KW "self"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "D"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- SUPER_KW "super"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0053_path_expr.rast b/crates/parser/test_data/parser/inline/ok/0053_path_expr.rast
index 7894f66d4c..abd8accf41 100644
--- a/crates/parser/test_data/parser/inline/ok/0053_path_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0053_path_expr.rast
@@ -1,96 +1,96 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "b"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "a"
+ GENERIC_ARG_LIST
+ COLON2 "::"
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "b"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "format"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0053_path_expr.txt b/crates/parser/test_data/parser/inline/ok/0053_path_expr.txt
deleted file mode 100644
index abd8accf41..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0053_path_expr.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "b"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "a"
- GENERIC_ARG_LIST
- COLON2 "::"
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "b"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "format"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0054_record_field_attrs.rast b/crates/parser/test_data/parser/inline/ok/0054_record_field_attrs.rast
index 453bef3158..639ee0eb77 100644
--- a/crates/parser/test_data/parser/inline/ok/0054_record_field_attrs.rast
+++ b/crates/parser/test_data/parser/inline/ok/0054_record_field_attrs.rast
@@ -1,33 +1,33 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_FIELD
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f32"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0054_record_field_attrs.txt b/crates/parser/test_data/parser/inline/ok/0054_record_field_attrs.txt
deleted file mode 100644
index 639ee0eb77..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0054_record_field_attrs.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_FIELD
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- NAME
- IDENT "f"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f32"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0055_literal_pattern.rast b/crates/parser/test_data/parser/inline/ok/0055_literal_pattern.rast
index 97e2d31d1c..c83ea7ade7 100644
--- a/crates/parser/test_data/parser/inline/ok/0055_literal_pattern.rast
+++ b/crates/parser/test_data/parser/inline/ok/0055_literal_pattern.rast
@@ -1,77 +1,77 @@
- [email protected] "\"hello\""
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ LITERAL_PAT
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "92"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ LITERAL_PAT
+ LITERAL
+ CHAR "'c'"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ LITERAL_PAT
+ LITERAL
+ STRING "\"hello\""
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0055_literal_pattern.txt b/crates/parser/test_data/parser/inline/ok/0055_literal_pattern.txt
deleted file mode 100644
index c83ea7ade7..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0055_literal_pattern.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- LITERAL_PAT
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- LITERAL_PAT
- LITERAL
- INT_NUMBER "92"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- LITERAL_PAT
- LITERAL
- CHAR "'c'"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- LITERAL_PAT
- LITERAL
- STRING "\"hello\""
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0056_where_clause.rast b/crates/parser/test_data/parser/inline/ok/0056_where_clause.rast
index 20fd2c3f43..a3cbe457e1 100644
--- a/crates/parser/test_data/parser/inline/ok/0056_where_clause.rast
+++ b/crates/parser/test_data/parser/inline/ok/0056_where_clause.rast
@@ -1,117 +1,117 @@
- [email protected] "'static"
- [email protected] "Iterator"
- [email protected] "Iterator"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n"
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE "\n "
+ WHERE_PRED
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'c"
+ COMMA ","
+ WHITESPACE "\n "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Clone"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'static"
+ COMMA ","
+ WHITESPACE "\n "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Iterator"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Item"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COMMA ","
+ WHITESPACE "\n "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ L_ANGLE "<"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Iterator"
+ R_ANGLE ">"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Item"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE "\n"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0056_where_clause.txt b/crates/parser/test_data/parser/inline/ok/0056_where_clause.txt
deleted file mode 100644
index a3cbe457e1..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0056_where_clause.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n"
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE "\n "
- WHERE_PRED
- LIFETIME
- LIFETIME_IDENT "'a"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'b"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'c"
- COMMA ","
- WHITESPACE "\n "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Clone"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'static"
- COMMA ","
- WHITESPACE "\n "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Iterator"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Item"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'a"
- COMMA ","
- WHITESPACE "\n "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- L_ANGLE "<"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Iterator"
- R_ANGLE ">"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Item"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE "\n"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0058_range_pat.rast b/crates/parser/test_data/parser/inline/ok/0058_range_pat.rast
index 0eb5af54b8..44c967e8dc 100644
--- a/crates/parser/test_data/parser/inline/ok/0058_range_pat.rast
+++ b/crates/parser/test_data/parser/inline/ok/0058_range_pat.rast
@@ -1,251 +1,251 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ RANGE_PAT
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "0"
+ WHITESPACE " "
+ DOT3 "..."
+ WHITESPACE " "
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "100"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ RANGE_PAT
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "101"
+ WHITESPACE " "
+ DOT2EQ "..="
+ WHITESPACE " "
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "200"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ RANGE_PAT
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "200"
+ WHITESPACE " "
+ DOT2 ".."
+ WHITESPACE " "
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "301"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ RANGE_PAT
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "302"
+ WHITESPACE " "
+ DOT2 ".."
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ ARG_LIST
+ L_PAREN "("
+ CAST_EXPR
+ LITERAL
+ INT_NUMBER "10"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ OR_PAT
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ L_PAREN "("
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "0"
+ R_PAREN ")"
+ WHITESPACE " "
+ PIPE "|"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "None"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ L_PAREN "("
+ RANGE_PAT
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "1"
+ DOT2 ".."
+ R_PAREN ")"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n\n "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ CAST_EXPR
+ LITERAL
+ INT_NUMBER "10"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ COMMA ","
+ WHITESPACE " "
+ CAST_EXPR
+ LITERAL
+ INT_NUMBER "5"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ TUPLE_PAT
+ L_PAREN "("
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "0"
+ COMMA ","
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ R_PAREN ")"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ TUPLE_PAT
+ L_PAREN "("
+ RANGE_PAT
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "1"
+ DOT2 ".."
+ COMMA ","
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ R_PAREN ")"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0058_range_pat.txt b/crates/parser/test_data/parser/inline/ok/0058_range_pat.txt
deleted file mode 100644
index 44c967e8dc..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0058_range_pat.txt
+++ /dev/null
@@ -1,251 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- RANGE_PAT
- LITERAL_PAT
- LITERAL
- INT_NUMBER "0"
- WHITESPACE " "
- DOT3 "..."
- WHITESPACE " "
- LITERAL_PAT
- LITERAL
- INT_NUMBER "100"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- RANGE_PAT
- LITERAL_PAT
- LITERAL
- INT_NUMBER "101"
- WHITESPACE " "
- DOT2EQ "..="
- WHITESPACE " "
- LITERAL_PAT
- LITERAL
- INT_NUMBER "200"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- RANGE_PAT
- LITERAL_PAT
- LITERAL
- INT_NUMBER "200"
- WHITESPACE " "
- DOT2 ".."
- WHITESPACE " "
- LITERAL_PAT
- LITERAL
- INT_NUMBER "301"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- RANGE_PAT
- LITERAL_PAT
- LITERAL
- INT_NUMBER "302"
- WHITESPACE " "
- DOT2 ".."
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- ARG_LIST
- L_PAREN "("
- CAST_EXPR
- LITERAL
- INT_NUMBER "10"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- OR_PAT
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- L_PAREN "("
- LITERAL_PAT
- LITERAL
- INT_NUMBER "0"
- R_PAREN ")"
- WHITESPACE " "
- PIPE "|"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "None"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- L_PAREN "("
- RANGE_PAT
- LITERAL_PAT
- LITERAL
- INT_NUMBER "1"
- DOT2 ".."
- R_PAREN ")"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n\n "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- CAST_EXPR
- LITERAL
- INT_NUMBER "10"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- COMMA ","
- WHITESPACE " "
- CAST_EXPR
- LITERAL
- INT_NUMBER "5"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- TUPLE_PAT
- L_PAREN "("
- LITERAL_PAT
- LITERAL
- INT_NUMBER "0"
- COMMA ","
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- R_PAREN ")"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- TUPLE_PAT
- L_PAREN "("
- RANGE_PAT
- LITERAL_PAT
- LITERAL
- INT_NUMBER "1"
- DOT2 ".."
- COMMA ","
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- R_PAREN ")"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0059_match_arms_commas.rast b/crates/parser/test_data/parser/inline/ok/0059_match_arms_commas.rast
index 075d49bcc8..94897c2d20 100644
--- a/crates/parser/test_data/parser/inline/ok/0059_match_arms_commas.rast
+++ b/crates/parser/test_data/parser/inline/ok/0059_match_arms_commas.rast
@@ -1,60 +1,60 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0059_match_arms_commas.txt b/crates/parser/test_data/parser/inline/ok/0059_match_arms_commas.txt
deleted file mode 100644
index 94897c2d20..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0059_match_arms_commas.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0060_extern_crate.rast b/crates/parser/test_data/parser/inline/ok/0060_extern_crate.rast
index 25e1777d1a..0a660957d1 100644
--- a/crates/parser/test_data/parser/inline/ok/0060_extern_crate.rast
+++ b/crates/parser/test_data/parser/inline/ok/0060_extern_crate.rast
@@ -1,10 +1,10 @@
+SOURCE_FILE
+ EXTERN_CRATE
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ CRATE_KW "crate"
+ WHITESPACE " "
+ NAME_REF
+ IDENT "foo"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0060_extern_crate.txt b/crates/parser/test_data/parser/inline/ok/0060_extern_crate.txt
deleted file mode 100644
index 0a660957d1..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0060_extern_crate.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-SOURCE_FILE
- EXTERN_CRATE
- EXTERN_KW "extern"
- WHITESPACE " "
- CRATE_KW "crate"
- WHITESPACE " "
- NAME_REF
- IDENT "foo"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0061_record_lit.rast b/crates/parser/test_data/parser/inline/ok/0061_record_lit.rast
index baa12c92d5..9997d0ae34 100644
--- a/crates/parser/test_data/parser/inline/ok/0061_record_lit.rast
+++ b/crates/parser/test_data/parser/inline/ok/0061_record_lit.rast
@@ -1,125 +1,125 @@
- [email protected] "Default"
- [email protected] "default"
- [email protected] "TupleStruct"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RECORD_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RECORD_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ COMMA ","
+ WHITESPACE " "
+ RECORD_EXPR_FIELD
+ NAME_REF
+ IDENT "y"
+ COLON ":"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "32"
+ COMMA ","
+ WHITESPACE " "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RECORD_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ COMMA ","
+ WHITESPACE " "
+ RECORD_EXPR_FIELD
+ NAME_REF
+ IDENT "y"
+ COLON ":"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "32"
+ COMMA ","
+ WHITESPACE " "
+ DOT2 ".."
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Default"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "default"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RECORD_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "TupleStruct"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD
+ NAME_REF
+ INT_NUMBER "0"
+ COLON ":"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0061_record_lit.txt b/crates/parser/test_data/parser/inline/ok/0061_record_lit.txt
deleted file mode 100644
index 9997d0ae34..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0061_record_lit.txt
+++ /dev/null
@@ -1,125 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- RECORD_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_EXPR_FIELD_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- RECORD_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_EXPR_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_EXPR_FIELD
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- COMMA ","
- WHITESPACE " "
- RECORD_EXPR_FIELD
- NAME_REF
- IDENT "y"
- COLON ":"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "32"
- COMMA ","
- WHITESPACE " "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- RECORD_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_EXPR_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_EXPR_FIELD
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- COMMA ","
- WHITESPACE " "
- RECORD_EXPR_FIELD
- NAME_REF
- IDENT "y"
- COLON ":"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "32"
- COMMA ","
- WHITESPACE " "
- DOT2 ".."
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Default"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "default"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- RECORD_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "TupleStruct"
- WHITESPACE " "
- RECORD_EXPR_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_EXPR_FIELD
- NAME_REF
- INT_NUMBER "0"
- COLON ":"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0062_mod_contents.rast b/crates/parser/test_data/parser/inline/ok/0062_mod_contents.rast
index 2deaf07030..5f60e03d44 100644
--- a/crates/parser/test_data/parser/inline/ok/0062_mod_contents.rast
+++ b/crates/parser/test_data/parser/inline/ok/0062_mod_contents.rast
@@ -1,65 +1,65 @@
- [email protected] "macro_rules"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ MACRO_RULES
+ MACRO_RULES_KW "macro_rules"
+ BANG "!"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ MACRO_CALL
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ MACRO_CALL
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SUPER_KW "super"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "baz"
+ BANG "!"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0062_mod_contents.txt b/crates/parser/test_data/parser/inline/ok/0062_mod_contents.txt
deleted file mode 100644
index 5f60e03d44..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0062_mod_contents.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- MACRO_RULES
- MACRO_RULES_KW "macro_rules"
- BANG "!"
- WHITESPACE " "
- NAME
- IDENT "foo"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- MACRO_CALL
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- MACRO_CALL
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- SUPER_KW "super"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "baz"
- BANG "!"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0063_impl_item_neg.rast b/crates/parser/test_data/parser/inline/ok/0063_impl_item_neg.rast
index 4ab352223b..805052fbca 100644
--- a/crates/parser/test_data/parser/inline/ok/0063_impl_item_neg.rast
+++ b/crates/parser/test_data/parser/inline/ok/0063_impl_item_neg.rast
@@ -1,23 +1,23 @@
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ BANG "!"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Send"
+ WHITESPACE " "
+ FOR_KW "for"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0063_impl_item_neg.txt b/crates/parser/test_data/parser/inline/ok/0063_impl_item_neg.txt
deleted file mode 100644
index 805052fbca..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0063_impl_item_neg.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- BANG "!"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Send"
- WHITESPACE " "
- FOR_KW "for"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0064_if_expr.rast b/crates/parser/test_data/parser/inline/ok/0064_if_expr.rast
index 5d8a8620cf..e2e964e44d 100644
--- a/crates/parser/test_data/parser/inline/ok/0064_if_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0064_if_expr.rast
@@ -1,132 +1,126 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE " "
+ ELSE_KW "else"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE " "
+ ELSE_KW "else"
+ WHITESPACE " "
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ LITERAL
+ FALSE_KW "false"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE " "
+ ELSE_KW "else"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ ELSE_KW "else"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0064_if_expr.txt b/crates/parser/test_data/parser/inline/ok/0064_if_expr.txt
deleted file mode 100644
index e2e964e44d..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0064_if_expr.txt
+++ /dev/null
@@ -1,126 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE " "
- ELSE_KW "else"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE " "
- ELSE_KW "else"
- WHITESPACE " "
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- LITERAL
- FALSE_KW "false"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE " "
- ELSE_KW "else"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- ELSE_KW "else"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0065_dyn_trait_type.rast b/crates/parser/test_data/parser/inline/ok/0065_dyn_trait_type.rast
index 8f76177d1d..e37d43aac6 100644
--- a/crates/parser/test_data/parser/inline/ok/0065_dyn_trait_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0065_dyn_trait_type.rast
@@ -1,45 +1,45 @@
- [email protected] "Iterator"
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ DYN_TRAIT_TYPE
+ DYN_KW "dyn"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Iterator"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ ASSOC_TYPE_ARG
+ NAME_REF
+ IDENT "Item"
+ EQ "="
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0065_dyn_trait_type.txt b/crates/parser/test_data/parser/inline/ok/0065_dyn_trait_type.txt
deleted file mode 100644
index e37d43aac6..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0065_dyn_trait_type.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "A"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- DYN_TRAIT_TYPE
- DYN_KW "dyn"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Iterator"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- ASSOC_TYPE_ARG
- NAME_REF
- IDENT "Item"
- EQ "="
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- R_ANGLE ">"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'a"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0066_match_arm.rast b/crates/parser/test_data/parser/inline/ok/0066_match_arm.rast
index 7d8ce82d97..8189cf0a8e 100644
--- a/crates/parser/test_data/parser/inline/ok/0066_match_arm.rast
+++ b/crates/parser/test_data/parser/inline/ok/0066_match_arm.rast
@@ -1,152 +1,152 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ MATCH_GUARD
+ IF_KW "if"
+ WHITESPACE " "
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Test"
+ WHITESPACE " "
+ R_ANGLE ">"
+ WHITESPACE " "
+ RECORD_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Test"
+ RECORD_EXPR_FIELD_LIST
+ L_CURLY "{"
+ RECORD_EXPR_FIELD
+ NAME_REF
+ IDENT "field"
+ COLON ":"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ R_CURLY "}"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ OR_PAT
+ IDENT_PAT
+ NAME
+ IDENT "X"
+ WHITESPACE " "
+ PIPE "|"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "Y"
+ WHITESPACE " "
+ MATCH_GUARD
+ IF_KW "if"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Z"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ PIPE "|"
+ WHITESPACE " "
+ OR_PAT
+ IDENT_PAT
+ NAME
+ IDENT "X"
+ WHITESPACE " "
+ PIPE "|"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "Y"
+ WHITESPACE " "
+ MATCH_GUARD
+ IF_KW "if"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Z"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ PIPE "|"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "X"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0066_match_arm.txt b/crates/parser/test_data/parser/inline/ok/0066_match_arm.txt
deleted file mode 100644
index 8189cf0a8e..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0066_match_arm.txt
+++ /dev/null
@@ -1,152 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- MATCH_GUARD
- IF_KW "if"
- WHITESPACE " "
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Test"
- WHITESPACE " "
- R_ANGLE ">"
- WHITESPACE " "
- RECORD_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Test"
- RECORD_EXPR_FIELD_LIST
- L_CURLY "{"
- RECORD_EXPR_FIELD
- NAME_REF
- IDENT "field"
- COLON ":"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- R_CURLY "}"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- OR_PAT
- IDENT_PAT
- NAME
- IDENT "X"
- WHITESPACE " "
- PIPE "|"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "Y"
- WHITESPACE " "
- MATCH_GUARD
- IF_KW "if"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Z"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- PIPE "|"
- WHITESPACE " "
- OR_PAT
- IDENT_PAT
- NAME
- IDENT "X"
- WHITESPACE " "
- PIPE "|"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "Y"
- WHITESPACE " "
- MATCH_GUARD
- IF_KW "if"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Z"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- PIPE "|"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "X"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0067_crate_path.rast b/crates/parser/test_data/parser/inline/ok/0067_crate_path.rast
index 87c0c48dc8..f71367ae1e 100644
--- a/crates/parser/test_data/parser/inline/ok/0067_crate_path.rast
+++ b/crates/parser/test_data/parser/inline/ok/0067_crate_path.rast
@@ -1,16 +1,16 @@
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ CRATE_KW "crate"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0067_crate_path.txt b/crates/parser/test_data/parser/inline/ok/0067_crate_path.txt
deleted file mode 100644
index f71367ae1e..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0067_crate_path.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- CRATE_KW "crate"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast b/crates/parser/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
index 1a7dcd1bc2..e387e14d14 100644
--- a/crates/parser/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
+++ b/crates/parser/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
@@ -1,53 +1,53 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BIN_EXPR
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ LITERAL
+ INT_NUMBER "1"
+ R_CURLY "}"
+ WHITESPACE " "
+ AMP "&"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ LITERAL
+ INT_NUMBER "1"
+ R_CURLY "}"
+ WHITESPACE " "
+ EXPR_STMT
+ REF_EXPR
+ AMP "&"
+ LITERAL
+ INT_NUMBER "2"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.txt b/crates/parser/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.txt
deleted file mode 100644
index e387e14d14..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BIN_EXPR
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- LITERAL
- INT_NUMBER "1"
- R_CURLY "}"
- WHITESPACE " "
- AMP "&"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- LITERAL
- INT_NUMBER "1"
- R_CURLY "}"
- WHITESPACE " "
- EXPR_STMT
- REF_EXPR
- AMP "&"
- LITERAL
- INT_NUMBER "2"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0071_match_expr.rast b/crates/parser/test_data/parser/inline/ok/0071_match_expr.rast
index 2897bedfb7..0d6cd390ea 100644
--- a/crates/parser/test_data/parser/inline/ok/0071_match_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0071_match_expr.rast
@@ -1,96 +1,96 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0071_match_expr.txt b/crates/parser/test_data/parser/inline/ok/0071_match_expr.txt
deleted file mode 100644
index 0d6cd390ea..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0071_match_expr.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE " "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_EXPR_FIELD_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0072_return_expr.rast b/crates/parser/test_data/parser/inline/ok/0072_return_expr.rast
index be96f8f43f..62cff12202 100644
--- a/crates/parser/test_data/parser/inline/ok/0072_return_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0072_return_expr.rast
@@ -1,29 +1,29 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RETURN_EXPR
+ RETURN_KW "return"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RETURN_EXPR
+ RETURN_KW "return"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0072_return_expr.txt b/crates/parser/test_data/parser/inline/ok/0072_return_expr.txt
deleted file mode 100644
index 62cff12202..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0072_return_expr.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- RETURN_EXPR
- RETURN_KW "return"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- RETURN_EXPR
- RETURN_KW "return"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0073_type_item_type_params.rast b/crates/parser/test_data/parser/inline/ok/0073_type_item_type_params.rast
index 00cce69e6c..60ac3b3c4a 100644
--- a/crates/parser/test_data/parser/inline/ok/0073_type_item_type_params.rast
+++ b/crates/parser/test_data/parser/inline/ok/0073_type_item_type_params.rast
@@ -1,20 +1,20 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Result"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0073_type_item_type_params.txt b/crates/parser/test_data/parser/inline/ok/0073_type_item_type_params.txt
deleted file mode 100644
index 60ac3b3c4a..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0073_type_item_type_params.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Result"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast b/crates/parser/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
index 43e85c53a9..950421feb7 100644
--- a/crates/parser/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
+++ b/crates/parser/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
@@ -1,63 +1,63 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ MATCH_ARM
+ TUPLE_PAT
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ MATCH_ARM
+ SLICE_PAT
+ L_BRACK "["
+ R_BRACK "]"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.txt b/crates/parser/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.txt
deleted file mode 100644
index 950421feb7..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- MATCH_ARM
- TUPLE_PAT
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- MATCH_ARM
- SLICE_PAT
- L_BRACK "["
- R_BRACK "]"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0075_block.rast b/crates/parser/test_data/parser/inline/ok/0075_block.rast
index 7a05874313..a23364d152 100644
--- a/crates/parser/test_data/parser/inline/ok/0075_block.rast
+++ b/crates/parser/test_data/parser/inline/ok/0075_block.rast
@@ -1,90 +1,90 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "a"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "c"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE " "
+ EXPR_STMT
+ LITERAL
+ INT_NUMBER "2"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "d"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0075_block.txt b/crates/parser/test_data/parser/inline/ok/0075_block.txt
deleted file mode 100644
index a23364d152..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0075_block.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "a"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "b"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "c"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE " "
- EXPR_STMT
- LITERAL
- INT_NUMBER "2"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "d"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0076_function_where_clause.rast b/crates/parser/test_data/parser/inline/ok/0076_function_where_clause.rast
index 24e41f7928..a000d7e592 100644
--- a/crates/parser/test_data/parser/inline/ok/0076_function_where_clause.rast
+++ b/crates/parser/test_data/parser/inline/ok/0076_function_where_clause.rast
@@ -1,40 +1,40 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE " "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0076_function_where_clause.txt b/crates/parser/test_data/parser/inline/ok/0076_function_where_clause.txt
deleted file mode 100644
index a000d7e592..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0076_function_where_clause.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE " "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0077_try_expr.rast b/crates/parser/test_data/parser/inline/ok/0077_try_expr.rast
index 89fcbadbe5..c3aa8c15de 100644
--- a/crates/parser/test_data/parser/inline/ok/0077_try_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0077_try_expr.rast
@@ -1,26 +1,26 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ TRY_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ QUESTION "?"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0077_try_expr.txt b/crates/parser/test_data/parser/inline/ok/0077_try_expr.txt
deleted file mode 100644
index c3aa8c15de..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0077_try_expr.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- TRY_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- QUESTION "?"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0078_type_alias.rast b/crates/parser/test_data/parser/inline/ok/0078_type_alias.rast
index 2befc8388e..c5da799741 100644
--- a/crates/parser/test_data/parser/inline/ok/0078_type_alias.rast
+++ b/crates/parser/test_data/parser/inline/ok/0078_type_alias.rast
@@ -1,16 +1,16 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Foo"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Bar"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0078_type_alias.txt b/crates/parser/test_data/parser/inline/ok/0078_type_alias.txt
deleted file mode 100644
index c5da799741..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0078_type_alias.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Foo"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Bar"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0079_impl_item.rast b/crates/parser/test_data/parser/inline/ok/0079_impl_item.rast
index 6516a78f83..879676309a 100644
--- a/crates/parser/test_data/parser/inline/ok/0079_impl_item.rast
+++ b/crates/parser/test_data/parser/inline/ok/0079_impl_item.rast
@@ -1,14 +1,14 @@
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0079_impl_item.txt b/crates/parser/test_data/parser/inline/ok/0079_impl_item.txt
deleted file mode 100644
index 879676309a..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0079_impl_item.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0080_postfix_range.rast b/crates/parser/test_data/parser/inline/ok/0080_postfix_range.rast
index b431028a45..3a59cf7b83 100644
--- a/crates/parser/test_data/parser/inline/ok/0080_postfix_range.rast
+++ b/crates/parser/test_data/parser/inline/ok/0080_postfix_range.rast
@@ -1,96 +1,96 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ RANGE_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ DOT2 ".."
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ RANGE_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ DOT2 ".."
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ RANGE_EXPR
+ METHOD_CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ DOT "."
+ NAME_REF
+ IDENT "b"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ DOT2 ".."
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0080_postfix_range.txt b/crates/parser/test_data/parser/inline/ok/0080_postfix_range.txt
deleted file mode 100644
index 3a59cf7b83..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0080_postfix_range.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- RANGE_EXPR
- LITERAL
- INT_NUMBER "1"
- DOT2 ".."
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- RANGE_EXPR
- LITERAL
- INT_NUMBER "1"
- DOT2 ".."
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE " "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- RANGE_EXPR
- METHOD_CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- DOT "."
- NAME_REF
- IDENT "b"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- DOT2 ".."
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE " "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0081_for_type.rast b/crates/parser/test_data/parser/inline/ok/0081_for_type.rast
index 7958e32e50..7600457a9b 100644
--- a/crates/parser/test_data/parser/inline/ok/0081_for_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0081_for_type.rast
@@ -1,117 +1,117 @@
- [email protected] "PartialEq"
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ FN_PTR_TYPE
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "B"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ FN_PTR_TYPE
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C\""
+ WHITESPACE " "
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Obj"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "PartialEq"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0081_for_type.txt b/crates/parser/test_data/parser/inline/ok/0081_for_type.txt
deleted file mode 100644
index 7600457a9b..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0081_for_type.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "A"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- FN_PTR_TYPE
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "B"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- FN_PTR_TYPE
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C\""
- WHITESPACE " "
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- PARAM
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Obj"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "PartialEq"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0082_ref_expr.rast b/crates/parser/test_data/parser/inline/ok/0082_ref_expr.rast
index 9fda28a271..108b0802c3 100644
--- a/crates/parser/test_data/parser/inline/ok/0082_ref_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0082_ref_expr.rast
@@ -1,139 +1,139 @@
- [email protected] "// reference operator"
- [email protected] "// raw reference oper ..."
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ COMMENT "// reference operator"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_EXPR
+ AMP "&"
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_EXPR
+ AMP "&"
+ MUT_KW "mut"
+ WHITESPACE " "
+ REF_EXPR
+ AMP "&"
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_EXPR
+ AMP "&"
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "raw"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_EXPR
+ AMP "&"
+ FIELD_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "raw"
+ DOT "."
+ NAME_REF
+ INT_NUMBER "0"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ COMMENT "// raw reference operator"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_EXPR
+ AMP "&"
+ RAW_KW "raw"
+ WHITESPACE " "
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_EXPR
+ AMP "&"
+ RAW_KW "raw"
+ WHITESPACE " "
+ CONST_KW "const"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0082_ref_expr.txt b/crates/parser/test_data/parser/inline/ok/0082_ref_expr.txt
deleted file mode 100644
index 108b0802c3..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0082_ref_expr.txt
+++ /dev/null
@@ -1,139 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- COMMENT "// reference operator"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_EXPR
- AMP "&"
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_EXPR
- AMP "&"
- MUT_KW "mut"
- WHITESPACE " "
- REF_EXPR
- AMP "&"
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_EXPR
- AMP "&"
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "raw"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_EXPR
- AMP "&"
- FIELD_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "raw"
- DOT "."
- NAME_REF
- INT_NUMBER "0"
- SEMICOLON ";"
- WHITESPACE "\n "
- COMMENT "// raw reference operator"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_EXPR
- AMP "&"
- RAW_KW "raw"
- WHITESPACE " "
- MUT_KW "mut"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_EXPR
- AMP "&"
- RAW_KW "raw"
- WHITESPACE " "
- CONST_KW "const"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0084_paren_type.rast b/crates/parser/test_data/parser/inline/ok/0084_paren_type.rast
index ee88949668..29995bb752 100644
--- a/crates/parser/test_data/parser/inline/ok/0084_paren_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0084_paren_type.rast
@@ -1,19 +1,19 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PAREN_TYPE
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0084_paren_type.txt b/crates/parser/test_data/parser/inline/ok/0084_paren_type.txt
deleted file mode 100644
index 29995bb752..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0084_paren_type.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PAREN_TYPE
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0085_expr_literals.rast b/crates/parser/test_data/parser/inline/ok/0085_expr_literals.rast
index ca68b4b109..403c265ea3 100644
--- a/crates/parser/test_data/parser/inline/ok/0085_expr_literals.rast
+++ b/crates/parser/test_data/parser/inline/ok/0085_expr_literals.rast
@@ -1,136 +1,136 @@
- [email protected] "br\"f\""
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ FALSE_KW "false"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ FLOAT_NUMBER "2.0"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ BYTE "b'a'"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ CHAR "'b'"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ STRING "\"c\""
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ STRING "r\"d\""
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ BYTE_STRING "b\"e\""
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ BYTE_STRING "br\"f\""
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0085_expr_literals.txt b/crates/parser/test_data/parser/inline/ok/0085_expr_literals.txt
deleted file mode 100644
index 403c265ea3..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0085_expr_literals.txt
+++ /dev/null
@@ -1,136 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- FALSE_KW "false"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- FLOAT_NUMBER "2.0"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- BYTE "b'a'"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- CHAR "'b'"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- STRING "\"c\""
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- STRING "r\"d\""
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- BYTE_STRING "b\"e\""
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- BYTE_STRING "br\"f\""
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0086_function_ret_type.rast b/crates/parser/test_data/parser/inline/ok/0086_function_ret_type.rast
index 71d5d127ca..6687c843fb 100644
--- a/crates/parser/test_data/parser/inline/ok/0086_function_ret_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0086_function_ret_type.rast
@@ -1,36 +1,36 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "bar"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0086_function_ret_type.txt b/crates/parser/test_data/parser/inline/ok/0086_function_ret_type.txt
deleted file mode 100644
index 6687c843fb..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0086_function_ret_type.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "bar"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0088_break_ambiguity.rast b/crates/parser/test_data/parser/inline/ok/0088_break_ambiguity.rast
index 698b4c40ff..cbf5e84e8c 100644
--- a/crates/parser/test_data/parser/inline/ok/0088_break_ambiguity.rast
+++ b/crates/parser/test_data/parser/inline/ok/0088_break_ambiguity.rast
@@ -1,69 +1,67 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ BREAK_EXPR
+ BREAK_KW "break"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ WHILE_EXPR
+ WHILE_KW "while"
+ WHITESPACE " "
+ BREAK_EXPR
+ BREAK_KW "break"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ FOR_EXPR
+ FOR_KW "for"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "i"
+ WHITESPACE " "
+ IN_KW "in"
+ WHITESPACE " "
+ BREAK_EXPR
+ BREAK_KW "break"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ BREAK_EXPR
+ BREAK_KW "break"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0088_break_ambiguity.txt b/crates/parser/test_data/parser/inline/ok/0088_break_ambiguity.txt
deleted file mode 100644
index cbf5e84e8c..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0088_break_ambiguity.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- BREAK_EXPR
- BREAK_KW "break"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- WHILE_EXPR
- WHILE_KW "while"
- WHITESPACE " "
- BREAK_EXPR
- BREAK_KW "break"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- FOR_EXPR
- FOR_KW "for"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "i"
- WHITESPACE " "
- IN_KW "in"
- WHITESPACE " "
- BREAK_EXPR
- BREAK_KW "break"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- BREAK_EXPR
- BREAK_KW "break"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0090_type_param_default.rast b/crates/parser/test_data/parser/inline/ok/0090_type_param_default.rast
index 2ef026e370..cf7236f62e 100644
--- a/crates/parser/test_data/parser/inline/ok/0090_type_param_default.rast
+++ b/crates/parser/test_data/parser/inline/ok/0090_type_param_default.rast
@@ -1,22 +1,22 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0090_type_param_default.txt b/crates/parser/test_data/parser/inline/ok/0090_type_param_default.txt
deleted file mode 100644
index cf7236f62e..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0090_type_param_default.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast b/crates/parser/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast
index f80326465f..372c867ae6 100644
--- a/crates/parser/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast
+++ b/crates/parser/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast
@@ -1,23 +1,23 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "F"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FN_PTR_TYPE
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.txt b/crates/parser/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.txt
deleted file mode 100644
index 372c867ae6..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "F"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FN_PTR_TYPE
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0093_index_expr.rast b/crates/parser/test_data/parser/inline/ok/0093_index_expr.rast
index ef3ef692a0..6969259fc0 100644
--- a/crates/parser/test_data/parser/inline/ok/0093_index_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0093_index_expr.rast
@@ -1,34 +1,34 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ INDEX_EXPR
+ INDEX_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "1"
+ R_BRACK "]"
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "2"
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0093_index_expr.txt b/crates/parser/test_data/parser/inline/ok/0093_index_expr.txt
deleted file mode 100644
index 6969259fc0..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0093_index_expr.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- INDEX_EXPR
- INDEX_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- L_BRACK "["
- LITERAL
- INT_NUMBER "1"
- R_BRACK "]"
- L_BRACK "["
- LITERAL
- INT_NUMBER "2"
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0095_placeholder_pat.rast b/crates/parser/test_data/parser/inline/ok/0095_placeholder_pat.rast
index 2450b66d79..d39c3df2b7 100644
--- a/crates/parser/test_data/parser/inline/ok/0095_placeholder_pat.rast
+++ b/crates/parser/test_data/parser/inline/ok/0095_placeholder_pat.rast
@@ -1,29 +1,29 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0095_placeholder_pat.txt b/crates/parser/test_data/parser/inline/ok/0095_placeholder_pat.txt
deleted file mode 100644
index d39c3df2b7..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0095_placeholder_pat.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0096_no_semi_after_block.rast b/crates/parser/test_data/parser/inline/ok/0096_no_semi_after_block.rast
index 0a6ea549c4..e4e215593e 100644
--- a/crates/parser/test_data/parser/inline/ok/0096_no_semi_after_block.rast
+++ b/crates/parser/test_data/parser/inline/ok/0096_no_semi_after_block.rast
@@ -1,126 +1,124 @@
- [email protected] "macro_rules"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ LOOP_EXPR
+ LOOP_KW "loop"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ WHILE_EXPR
+ WHILE_KW "while"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ FOR_EXPR
+ FOR_KW "for"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ IN_KW "in"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ MACRO_RULES
+ MACRO_RULES_KW "macro_rules"
+ BANG "!"
+ WHITESPACE " "
+ NAME
+ IDENT "test"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ WHITESPACE "\n "
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ R_ANGLE ">"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "test"
+ BANG "!"
+ TOKEN_TREE
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0096_no_semi_after_block.txt b/crates/parser/test_data/parser/inline/ok/0096_no_semi_after_block.txt
deleted file mode 100644
index e4e215593e..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0096_no_semi_after_block.txt
+++ /dev/null
@@ -1,124 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- LOOP_EXPR
- LOOP_KW "loop"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- WHILE_EXPR
- WHILE_KW "while"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- FOR_EXPR
- FOR_KW "for"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- IN_KW "in"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- MACRO_RULES
- MACRO_RULES_KW "macro_rules"
- BANG "!"
- WHITESPACE " "
- NAME
- IDENT "test"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- WHITESPACE "\n "
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- R_ANGLE ">"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "test"
- BANG "!"
- TOKEN_TREE
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0099_param_list.rast b/crates/parser/test_data/parser/inline/ok/0099_param_list.rast
index 2f2f2b6889..d240a52f6f 100644
--- a/crates/parser/test_data/parser/inline/ok/0099_param_list.rast
+++ b/crates/parser/test_data/parser/inline/ok/0099_param_list.rast
@@ -1,103 +1,103 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "a"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "c"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ WHITESPACE " "
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "d"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "y"
+ COLON ":"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0099_param_list.txt b/crates/parser/test_data/parser/inline/ok/0099_param_list.txt
deleted file mode 100644
index d240a52f6f..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0099_param_list.txt
+++ /dev/null
@@ -1,103 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "a"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "b"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "c"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- WHITESPACE " "
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "d"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "y"
- COLON ":"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0100_for_expr.rast b/crates/parser/test_data/parser/inline/ok/0100_for_expr.rast
index f195f2369c..6bc3c0fb05 100644
--- a/crates/parser/test_data/parser/inline/ok/0100_for_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0100_for_expr.rast
@@ -1,36 +1,36 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ FOR_EXPR
+ FOR_KW "for"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ WHITESPACE " "
+ IN_KW "in"
+ WHITESPACE " "
+ ARRAY_EXPR
+ L_BRACK "["
+ R_BRACK "]"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0100_for_expr.txt b/crates/parser/test_data/parser/inline/ok/0100_for_expr.txt
deleted file mode 100644
index 6bc3c0fb05..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0100_for_expr.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- FOR_EXPR
- FOR_KW "for"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- WHITESPACE " "
- IN_KW "in"
- WHITESPACE " "
- ARRAY_EXPR
- L_BRACK "["
- R_BRACK "]"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0102_record_pat_field_list.rast b/crates/parser/test_data/parser/inline/ok/0102_record_pat_field_list.rast
index 761438d2ec..f69ae1d644 100644
--- a/crates/parser/test_data/parser/inline/ok/0102_record_pat_field_list.rast
+++ b/crates/parser/test_data/parser/inline/ok/0102_record_pat_field_list.rast
@@ -1,175 +1,175 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ RECORD_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_PAT_FIELD_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ RECORD_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_PAT_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ IDENT_PAT
+ NAME
+ IDENT "f"
+ COMMA ","
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ IDENT_PAT
+ REF_KW "ref"
+ WHITESPACE " "
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "g"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ RECORD_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_PAT_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ NAME_REF
+ IDENT "h"
+ COLON ":"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ R_CURLY "}"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ RECORD_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_PAT_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ NAME_REF
+ IDENT "h"
+ COLON ":"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COMMA ","
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ RECORD_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_PAT_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ REST_PAT
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "any"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE " "
+ DOT2 ".."
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0102_record_pat_field_list.txt b/crates/parser/test_data/parser/inline/ok/0102_record_pat_field_list.txt
deleted file mode 100644
index f69ae1d644..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0102_record_pat_field_list.txt
+++ /dev/null
@@ -1,175 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- RECORD_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_PAT_FIELD_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- RECORD_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_PAT_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_PAT_FIELD
- IDENT_PAT
- NAME
- IDENT "f"
- COMMA ","
- WHITESPACE " "
- RECORD_PAT_FIELD
- IDENT_PAT
- REF_KW "ref"
- WHITESPACE " "
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "g"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- RECORD_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_PAT_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_PAT_FIELD
- NAME_REF
- IDENT "h"
- COLON ":"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- R_CURLY "}"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- RECORD_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_PAT_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_PAT_FIELD
- NAME_REF
- IDENT "h"
- COLON ":"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- COMMA ","
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- RECORD_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_PAT_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- REST_PAT
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "any"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE " "
- DOT2 ".."
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0103_array_expr.rast b/crates/parser/test_data/parser/inline/ok/0103_array_expr.rast
index 1e0d2fa07a..60395948c1 100644
--- a/crates/parser/test_data/parser/inline/ok/0103_array_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0103_array_expr.rast
@@ -1,55 +1,55 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ ARRAY_EXPR
+ L_BRACK "["
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ ARRAY_EXPR
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "1"
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ ARRAY_EXPR
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ COMMA ","
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ ARRAY_EXPR
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0103_array_expr.txt b/crates/parser/test_data/parser/inline/ok/0103_array_expr.txt
deleted file mode 100644
index 60395948c1..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0103_array_expr.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- ARRAY_EXPR
- L_BRACK "["
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- ARRAY_EXPR
- L_BRACK "["
- LITERAL
- INT_NUMBER "1"
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- ARRAY_EXPR
- L_BRACK "["
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- COMMA ","
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- ARRAY_EXPR
- L_BRACK "["
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0104_path_fn_trait_args.rast b/crates/parser/test_data/parser/inline/ok/0104_path_fn_trait_args.rast
index 1244a50313..fd83daf841 100644
--- a/crates/parser/test_data/parser/inline/ok/0104_path_fn_trait_args.rast
+++ b/crates/parser/test_data/parser/inline/ok/0104_path_fn_trait_args.rast
@@ -1,41 +1,41 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "F"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Box"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Fn"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0104_path_fn_trait_args.txt b/crates/parser/test_data/parser/inline/ok/0104_path_fn_trait_args.txt
deleted file mode 100644
index fd83daf841..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0104_path_fn_trait_args.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "F"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Box"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Fn"
- PARAM_LIST
- L_PAREN "("
- PARAM
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0106_lambda_expr.rast b/crates/parser/test_data/parser/inline/ok/0106_lambda_expr.rast
index 3497de01c5..bc54b01869 100644
--- a/crates/parser/test_data/parser/inline/ok/0106_lambda_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0106_lambda_expr.rast
@@ -1,140 +1,204 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CLOSURE_EXPR
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CLOSURE_EXPR
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ WHITESPACE " "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CLOSURE_EXPR
+ PARAM_LIST
+ PIPE "|"
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ PIPE "|"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CLOSURE_EXPR
+ MOVE_KW "move"
+ WHITESPACE " "
+ PARAM_LIST
+ PIPE "|"
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ PIPE "|"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CLOSURE_EXPR
+ ASYNC_KW "async"
+ WHITESPACE " "
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CLOSURE_EXPR
+ MOVE_KW "move"
+ WHITESPACE " "
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CLOSURE_EXPR
+ ASYNC_KW "async"
+ WHITESPACE " "
+ MOVE_KW "move"
+ WHITESPACE " "
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CLOSURE_EXPR
+ STATIC_KW "static"
+ WHITESPACE " "
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CLOSURE_EXPR
+ STATIC_KW "static"
+ WHITESPACE " "
+ MOVE_KW "move"
+ WHITESPACE " "
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CLOSURE_EXPR
+ STATIC_KW "static"
+ WHITESPACE " "
+ ASYNC_KW "async"
+ WHITESPACE " "
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CLOSURE_EXPR
+ STATIC_KW "static"
+ WHITESPACE " "
+ ASYNC_KW "async"
+ WHITESPACE " "
+ MOVE_KW "move"
+ WHITESPACE " "
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0106_lambda_expr.txt b/crates/parser/test_data/parser/inline/ok/0106_lambda_expr.txt
deleted file mode 100644
index bc54b01869..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0106_lambda_expr.txt
+++ /dev/null
@@ -1,204 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- CLOSURE_EXPR
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CLOSURE_EXPR
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- WHITESPACE " "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CLOSURE_EXPR
- PARAM_LIST
- PIPE "|"
- PARAM
- IDENT_PAT
- NAME
- IDENT "x"
- PIPE "|"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CLOSURE_EXPR
- MOVE_KW "move"
- WHITESPACE " "
- PARAM_LIST
- PIPE "|"
- PARAM
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- PIPE "|"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CLOSURE_EXPR
- ASYNC_KW "async"
- WHITESPACE " "
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CLOSURE_EXPR
- MOVE_KW "move"
- WHITESPACE " "
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CLOSURE_EXPR
- ASYNC_KW "async"
- WHITESPACE " "
- MOVE_KW "move"
- WHITESPACE " "
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CLOSURE_EXPR
- STATIC_KW "static"
- WHITESPACE " "
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CLOSURE_EXPR
- STATIC_KW "static"
- WHITESPACE " "
- MOVE_KW "move"
- WHITESPACE " "
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CLOSURE_EXPR
- STATIC_KW "static"
- WHITESPACE " "
- ASYNC_KW "async"
- WHITESPACE " "
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CLOSURE_EXPR
- STATIC_KW "static"
- WHITESPACE " "
- ASYNC_KW "async"
- WHITESPACE " "
- MOVE_KW "move"
- WHITESPACE " "
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0107_method_call_expr.rast b/crates/parser/test_data/parser/inline/ok/0107_method_call_expr.rast
index 9cddb373ff..dcbcfe1231 100644
--- a/crates/parser/test_data/parser/inline/ok/0107_method_call_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0107_method_call_expr.rast
@@ -1,63 +1,63 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ METHOD_CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ DOT "."
+ NAME_REF
+ IDENT "foo"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ METHOD_CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "y"
+ DOT "."
+ NAME_REF
+ IDENT "bar"
+ GENERIC_ARG_LIST
+ COLON2 "::"
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ R_ANGLE ">"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ COMMA ","
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0107_method_call_expr.txt b/crates/parser/test_data/parser/inline/ok/0107_method_call_expr.txt
deleted file mode 100644
index dcbcfe1231..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0107_method_call_expr.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- METHOD_CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- DOT "."
- NAME_REF
- IDENT "foo"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- METHOD_CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "y"
- DOT "."
- NAME_REF
- IDENT "bar"
- GENERIC_ARG_LIST
- COLON2 "::"
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- R_ANGLE ">"
- ARG_LIST
- L_PAREN "("
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- COMMA ","
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0108_tuple_expr.rast b/crates/parser/test_data/parser/inline/ok/0108_tuple_expr.rast
index a6b247c0ac..ac5a717031 100644
--- a/crates/parser/test_data/parser/inline/ok/0108_tuple_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0108_tuple_expr.rast
@@ -1,39 +1,39 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ PAREN_EXPR
+ L_PAREN "("
+ LITERAL
+ INT_NUMBER "1"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ TUPLE_EXPR
+ L_PAREN "("
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0108_tuple_expr.txt b/crates/parser/test_data/parser/inline/ok/0108_tuple_expr.txt
deleted file mode 100644
index ac5a717031..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0108_tuple_expr.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- PAREN_EXPR
- L_PAREN "("
- LITERAL
- INT_NUMBER "1"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- TUPLE_EXPR
- L_PAREN "("
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0109_label.rast b/crates/parser/test_data/parser/inline/ok/0109_label.rast
index 688e9dca4f..48d0bde845 100644
--- a/crates/parser/test_data/parser/inline/ok/0109_label.rast
+++ b/crates/parser/test_data/parser/inline/ok/0109_label.rast
@@ -1,71 +1,70 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ LOOP_EXPR
+ LABEL
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COLON ":"
+ WHITESPACE " "
+ LOOP_KW "loop"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ WHILE_EXPR
+ LABEL
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ COLON ":"
+ WHITESPACE " "
+ WHILE_KW "while"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FOR_EXPR
+ LABEL
+ LIFETIME
+ LIFETIME_IDENT "'c"
+ COLON ":"
+ WHITESPACE " "
+ FOR_KW "for"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ WHITESPACE " "
+ IN_KW "in"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0109_label.txt b/crates/parser/test_data/parser/inline/ok/0109_label.txt
deleted file mode 100644
index 48d0bde845..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0109_label.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- LOOP_EXPR
- LABEL
- LIFETIME
- LIFETIME_IDENT "'a"
- COLON ":"
- WHITESPACE " "
- LOOP_KW "loop"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- WHILE_EXPR
- LABEL
- LIFETIME
- LIFETIME_IDENT "'b"
- COLON ":"
- WHITESPACE " "
- WHILE_KW "while"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FOR_EXPR
- LABEL
- LIFETIME
- LIFETIME_IDENT "'c"
- COLON ":"
- WHITESPACE " "
- FOR_KW "for"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- WHITESPACE " "
- IN_KW "in"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0111_tuple_pat.rast b/crates/parser/test_data/parser/inline/ok/0111_tuple_pat.rast
index 994c345c9d..cebe98c43a 100644
--- a/crates/parser/test_data/parser/inline/ok/0111_tuple_pat.rast
+++ b/crates/parser/test_data/parser/inline/ok/0111_tuple_pat.rast
@@ -1,90 +1,90 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_PAT
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "b"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_PAT
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_PAT
+ L_PAREN "("
+ REST_PAT
+ DOT2 ".."
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_PAT
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0111_tuple_pat.txt b/crates/parser/test_data/parser/inline/ok/0111_tuple_pat.txt
deleted file mode 100644
index cebe98c43a..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0111_tuple_pat.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_PAT
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "b"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_PAT
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_PAT
- L_PAREN "("
- REST_PAT
- DOT2 ".."
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_PAT
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0112_bind_pat.rast b/crates/parser/test_data/parser/inline/ok/0112_bind_pat.rast
index 70f764944e..eb1c32474a 100644
--- a/crates/parser/test_data/parser/inline/ok/0112_bind_pat.rast
+++ b/crates/parser/test_data/parser/inline/ok/0112_bind_pat.rast
@@ -1,128 +1,128 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ REF_KW "ref"
+ WHITESPACE " "
+ NAME
+ IDENT "c"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ REF_KW "ref"
+ WHITESPACE " "
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "d"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "e"
+ WHITESPACE " "
+ AT "@"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ REF_KW "ref"
+ WHITESPACE " "
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ WHITESPACE " "
+ AT "@"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "g"
+ WHITESPACE " "
+ AT "@"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0112_bind_pat.txt b/crates/parser/test_data/parser/inline/ok/0112_bind_pat.txt
deleted file mode 100644
index eb1c32474a..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0112_bind_pat.txt
+++ /dev/null
@@ -1,128 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "a"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "b"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- REF_KW "ref"
- WHITESPACE " "
- NAME
- IDENT "c"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- REF_KW "ref"
- WHITESPACE " "
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "d"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "e"
- WHITESPACE " "
- AT "@"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- REF_KW "ref"
- WHITESPACE " "
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "f"
- WHITESPACE " "
- AT "@"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "g"
- WHITESPACE " "
- AT "@"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0113_nocontentexpr.rast b/crates/parser/test_data/parser/inline/ok/0113_nocontentexpr.rast
index 538b3577ac..8bd90a7f67 100644
--- a/crates/parser/test_data/parser/inline/ok/0113_nocontentexpr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0113_nocontentexpr.rast
@@ -1,57 +1,57 @@
- [email protected] "some_expr"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "some_expr"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ EXPR_STMT
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ R_CURLY "}"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Ok"
+ ARG_LIST
+ L_PAREN "("
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0113_nocontentexpr.txt b/crates/parser/test_data/parser/inline/ok/0113_nocontentexpr.txt
deleted file mode 100644
index 8bd90a7f67..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0113_nocontentexpr.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "some_expr"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- EXPR_STMT
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- R_CURLY "}"
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Ok"
- ARG_LIST
- L_PAREN "("
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0114_tuple_struct_where.rast b/crates/parser/test_data/parser/inline/ok/0114_tuple_struct_where.rast
index 3196111363..aab7741657 100644
--- a/crates/parser/test_data/parser/inline/ok/0114_tuple_struct_where.rast
+++ b/crates/parser/test_data/parser/inline/ok/0114_tuple_struct_where.rast
@@ -1,42 +1,42 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ TUPLE_FIELD
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ R_PAREN ")"
+ WHITESPACE " "
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE " "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Clone"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0114_tuple_struct_where.txt b/crates/parser/test_data/parser/inline/ok/0114_tuple_struct_where.txt
deleted file mode 100644
index aab7741657..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0114_tuple_struct_where.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- TUPLE_FIELD_LIST
- L_PAREN "("
- TUPLE_FIELD
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- R_PAREN ")"
- WHITESPACE " "
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE " "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Clone"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0115_tuple_field_attrs.rast b/crates/parser/test_data/parser/inline/ok/0115_tuple_field_attrs.rast
index 9a0bcdc18e..1699602f4f 100644
--- a/crates/parser/test_data/parser/inline/ok/0115_tuple_field_attrs.rast
+++ b/crates/parser/test_data/parser/inline/ok/0115_tuple_field_attrs.rast
@@ -1,28 +1,28 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ TUPLE_FIELD
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f32"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0115_tuple_field_attrs.txt b/crates/parser/test_data/parser/inline/ok/0115_tuple_field_attrs.txt
deleted file mode 100644
index 1699602f4f..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0115_tuple_field_attrs.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- TUPLE_FIELD_LIST
- L_PAREN "("
- TUPLE_FIELD
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f32"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0117_macro_call_type.rast b/crates/parser/test_data/parser/inline/ok/0117_macro_call_type.rast
index 1ff3f7656a..8165cb7d9b 100644
--- a/crates/parser/test_data/parser/inline/ok/0117_macro_call_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0117_macro_call_type.rast
@@ -1,46 +1,46 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ MACRO_TYPE
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "B"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ MACRO_TYPE
+ MACRO_CALL
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ CRATE_KW "crate"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0117_macro_call_type.txt b/crates/parser/test_data/parser/inline/ok/0117_macro_call_type.txt
deleted file mode 100644
index 8165cb7d9b..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0117_macro_call_type.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "A"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- MACRO_TYPE
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "B"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- MACRO_TYPE
- MACRO_CALL
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- CRATE_KW "crate"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0118_match_guard.rast b/crates/parser/test_data/parser/inline/ok/0118_match_guard.rast
index 8d5fe502fe..96318b5219 100644
--- a/crates/parser/test_data/parser/inline/ok/0118_match_guard.rast
+++ b/crates/parser/test_data/parser/inline/ok/0118_match_guard.rast
@@ -1,76 +1,77 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ MATCH_GUARD
+ IF_KW "if"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ MATCH_GUARD
+ IF_KW "if"
+ WHITESPACE " "
+ LET_EXPR
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "foo"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0118_match_guard.txt b/crates/parser/test_data/parser/inline/ok/0118_match_guard.txt
deleted file mode 100644
index 96318b5219..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0118_match_guard.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- MATCH_GUARD
- IF_KW "if"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- MATCH_GUARD
- IF_KW "if"
- WHITESPACE " "
- LET_EXPR
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "foo"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast b/crates/parser/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
index 517b221d4e..6fd9f42467 100644
--- a/crates/parser/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
+++ b/crates/parser/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
@@ -1,84 +1,84 @@
- [email protected] "\"Inner attribute\""
- [email protected] "\"Can be\""
- [email protected] "\"Stacked\""
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "doc"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"Inner attribute\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "doc"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"Can be\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "doc"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"Stacked\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0120_match_arms_inner_attribute.txt b/crates/parser/test_data/parser/inline/ok/0120_match_arms_inner_attribute.txt
deleted file mode 100644
index 6fd9f42467..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0120_match_arms_inner_attribute.txt
+++ /dev/null
@@ -1,84 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "doc"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"Inner attribute\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "doc"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"Can be\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "doc"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"Stacked\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast b/crates/parser/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
index 54cf1d0892..0f7580c1a3 100644
--- a/crates/parser/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
+++ b/crates/parser/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
@@ -1,151 +1,151 @@
- [email protected] "feature"
- [email protected] "\"some\""
- [email protected] "feature"
- [email protected] "\"other\""
- [email protected] "feature"
- [email protected] "\"many\""
- [email protected] "feature"
- [email protected] "\"attributes\""
- [email protected] "feature"
- [email protected] "\"before\""
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "feature"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ STRING "\"some\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "feature"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ STRING "\"other\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "feature"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ STRING "\"many\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "feature"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ STRING "\"attributes\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "feature"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ STRING "\"before\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0121_match_arms_outer_attributes.txt b/crates/parser/test_data/parser/inline/ok/0121_match_arms_outer_attributes.txt
deleted file mode 100644
index 0f7580c1a3..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0121_match_arms_outer_attributes.txt
+++ /dev/null
@@ -1,151 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "feature"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- STRING "\"some\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "feature"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- STRING "\"other\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "feature"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- STRING "\"many\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "feature"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- STRING "\"attributes\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "feature"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- STRING "\"before\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0123_param_list_vararg.rast b/crates/parser/test_data/parser/inline/ok/0123_param_list_vararg.rast
index 7cdec66347..c86cf18bbe 100644
--- a/crates/parser/test_data/parser/inline/ok/0123_param_list_vararg.rast
+++ b/crates/parser/test_data/parser/inline/ok/0123_param_list_vararg.rast
@@ -1,50 +1,50 @@
+SOURCE_FILE
+ EXTERN_BLOCK
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C\""
+ WHITESPACE " "
+ EXTERN_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "printf"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "format"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ CONST_KW "const"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i8"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ DOT3 "..."
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0123_param_list_vararg.txt b/crates/parser/test_data/parser/inline/ok/0123_param_list_vararg.txt
deleted file mode 100644
index c86cf18bbe..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0123_param_list_vararg.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-SOURCE_FILE
- EXTERN_BLOCK
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C\""
- WHITESPACE " "
- EXTERN_ITEM_LIST
- L_CURLY "{"
- WHITESPACE " "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "printf"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "format"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- CONST_KW "const"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i8"
- COMMA ","
- WHITESPACE " "
- PARAM
- DOT3 "..."
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0125_crate_keyword_path.rast b/crates/parser/test_data/parser/inline/ok/0125_crate_keyword_path.rast
index 69633b8e50..8d9b61630a 100644
--- a/crates/parser/test_data/parser/inline/ok/0125_crate_keyword_path.rast
+++ b/crates/parser/test_data/parser/inline/ok/0125_crate_keyword_path.rast
@@ -1,33 +1,33 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ CRATE_KW "crate"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0125_crate_keyword_path.txt b/crates/parser/test_data/parser/inline/ok/0125_crate_keyword_path.txt
deleted file mode 100644
index 8d9b61630a..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0125_crate_keyword_path.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- CRATE_KW "crate"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast b/crates/parser/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
index 1755a53b51..a1df70841e 100644
--- a/crates/parser/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
@@ -1,49 +1,49 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RECORD_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "test"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE " "
+ NAME_REF
+ IDENT "field"
+ COLON ":"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0125_record_literal_field_with_attr.txt b/crates/parser/test_data/parser/inline/ok/0125_record_literal_field_with_attr.txt
deleted file mode 100644
index a1df70841e..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0125_record_literal_field_with_attr.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RECORD_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_EXPR_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_EXPR_FIELD
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "test"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE " "
- NAME_REF
- IDENT "field"
- COLON ":"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast b/crates/parser/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
index b69276ceeb..cafd059f24 100644
--- a/crates/parser/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
+++ b/crates/parser/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
@@ -1,104 +1,104 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "A"
+ R_BRACK "]"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MACRO_CALL
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "B"
+ R_BRACK "]"
+ WHITESPACE " "
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ BANG "!"
+ TOKEN_TREE
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "C"
+ R_BRACK "]"
+ WHITESPACE " "
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "D"
+ R_BRACK "]"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RETURN_EXPR
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "D"
+ R_BRACK "]"
+ WHITESPACE " "
+ RETURN_KW "return"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0126_attr_on_expr_stmt.txt b/crates/parser/test_data/parser/inline/ok/0126_attr_on_expr_stmt.txt
deleted file mode 100644
index cafd059f24..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0126_attr_on_expr_stmt.txt
+++ /dev/null
@@ -1,104 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "A"
- R_BRACK "]"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- MACRO_CALL
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "B"
- R_BRACK "]"
- WHITESPACE " "
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- BANG "!"
- TOKEN_TREE
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- BLOCK_EXPR
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "C"
- R_BRACK "]"
- WHITESPACE " "
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "D"
- R_BRACK "]"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- RETURN_EXPR
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "D"
- R_BRACK "]"
- WHITESPACE " "
- RETURN_KW "return"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0129_marco_pat.rast b/crates/parser/test_data/parser/inline/ok/0129_marco_pat.rast
index 0e26273564..cedaa90453 100644
--- a/crates/parser/test_data/parser/inline/ok/0129_marco_pat.rast
+++ b/crates/parser/test_data/parser/inline/ok/0129_marco_pat.rast
@@ -1,37 +1,37 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ MACRO_PAT
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "m"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "x"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0129_marco_pat.txt b/crates/parser/test_data/parser/inline/ok/0129_marco_pat.txt
deleted file mode 100644
index cedaa90453..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0129_marco_pat.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- MACRO_PAT
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "m"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- IDENT "x"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0130_let_stmt.rast b/crates/parser/test_data/parser/inline/ok/0130_let_stmt.rast
index c3141e1545..de9d0fc19e 100644
--- a/crates/parser/test_data/parser/inline/ok/0130_let_stmt.rast
+++ b/crates/parser/test_data/parser/inline/ok/0130_let_stmt.rast
@@ -1,36 +1,36 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0130_let_stmt.txt b/crates/parser/test_data/parser/inline/ok/0130_let_stmt.txt
deleted file mode 100644
index de9d0fc19e..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0130_let_stmt.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0130_try_block_expr.rast b/crates/parser/test_data/parser/inline/ok/0130_try_block_expr.rast
index bd3652280b..aec8fbf477 100644
--- a/crates/parser/test_data/parser/inline/ok/0130_try_block_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0130_try_block_expr.rast
@@ -1,32 +1,32 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BLOCK_EXPR
+ TRY_KW "try"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0130_try_block_expr.txt b/crates/parser/test_data/parser/inline/ok/0130_try_block_expr.txt
deleted file mode 100644
index aec8fbf477..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0130_try_block_expr.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BLOCK_EXPR
- TRY_KW "try"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0131_existential_type.rast b/crates/parser/test_data/parser/inline/ok/0131_existential_type.rast
index d47071a911..b73780261b 100644
--- a/crates/parser/test_data/parser/inline/ok/0131_existential_type.rast
+++ b/crates/parser/test_data/parser/inline/ok/0131_existential_type.rast
@@ -1,31 +1,31 @@
- [email protected] "existential"
+SOURCE_FILE
+ TYPE_ALIAS
+ EXISTENTIAL_KW "existential"
+ WHITESPACE " "
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Foo"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Fn"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "usize"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0131_existential_type.txt b/crates/parser/test_data/parser/inline/ok/0131_existential_type.txt
deleted file mode 100644
index b73780261b..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0131_existential_type.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- EXISTENTIAL_KW "existential"
- WHITESPACE " "
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Foo"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Fn"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "usize"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0132_box_expr.rast b/crates/parser/test_data/parser/inline/ok/0132_box_expr.rast
index 29f97a3a77..b21f37cd85 100644
--- a/crates/parser/test_data/parser/inline/ok/0132_box_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0132_box_expr.rast
@@ -1,90 +1,90 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BOX_EXPR
+ BOX_KW "box"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1i32"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "y"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ BOX_EXPR
+ BOX_KW "box"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1i32"
+ COMMA ","
+ WHITESPACE " "
+ BOX_EXPR
+ BOX_KW "box"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2i32"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "z"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ ARG_LIST
+ L_PAREN "("
+ BOX_EXPR
+ BOX_KW "box"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1i32"
+ COMMA ","
+ WHITESPACE " "
+ BOX_EXPR
+ BOX_KW "box"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2i32"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0132_box_expr.txt b/crates/parser/test_data/parser/inline/ok/0132_box_expr.txt
deleted file mode 100644
index b21f37cd85..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0132_box_expr.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BOX_EXPR
- BOX_KW "box"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1i32"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "y"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- BOX_EXPR
- BOX_KW "box"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1i32"
- COMMA ","
- WHITESPACE " "
- BOX_EXPR
- BOX_KW "box"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2i32"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "z"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- ARG_LIST
- L_PAREN "("
- BOX_EXPR
- BOX_KW "box"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1i32"
- COMMA ","
- WHITESPACE " "
- BOX_EXPR
- BOX_KW "box"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2i32"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast b/crates/parser/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast
index f0b45b4a16..f5ee12fe96 100644
--- a/crates/parser/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast
+++ b/crates/parser/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast
@@ -1,64 +1,64 @@
- [email protected] "simple_function"
- [email protected] "LocalEnum"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "simple_function"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ ENUM
+ ENUM_KW "enum"
+ WHITESPACE " "
+ NAME
+ IDENT "LocalEnum"
+ WHITESPACE " "
+ VARIANT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ VARIANT
+ NAME
+ IDENT "One"
+ COMMA ","
+ WHITESPACE "\n "
+ VARIANT
+ NAME
+ IDENT "Two"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0134_nocontentexpr_after_item.txt b/crates/parser/test_data/parser/inline/ok/0134_nocontentexpr_after_item.txt
deleted file mode 100644
index f5ee12fe96..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0134_nocontentexpr_after_item.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "simple_function"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- ENUM
- ENUM_KW "enum"
- WHITESPACE " "
- NAME
- IDENT "LocalEnum"
- WHITESPACE " "
- VARIANT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- VARIANT
- NAME
- IDENT "One"
- COMMA ","
- WHITESPACE "\n "
- VARIANT
- NAME
- IDENT "Two"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0137_await_expr.rast b/crates/parser/test_data/parser/inline/ok/0137_await_expr.rast
index cacd3fa816..9d37ada0da 100644
--- a/crates/parser/test_data/parser/inline/ok/0137_await_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0137_await_expr.rast
@@ -1,70 +1,70 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ AWAIT_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ DOT "."
+ AWAIT_KW "await"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ AWAIT_EXPR
+ FIELD_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ DOT "."
+ NAME_REF
+ INT_NUMBER "0"
+ DOT "."
+ AWAIT_KW "await"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ METHOD_CALL_EXPR
+ TRY_EXPR
+ AWAIT_EXPR
+ CALL_EXPR
+ FIELD_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ DOT "."
+ NAME_REF
+ INT_NUMBER "0"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ DOT "."
+ AWAIT_KW "await"
+ QUESTION "?"
+ DOT "."
+ NAME_REF
+ IDENT "hello"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0137_await_expr.txt b/crates/parser/test_data/parser/inline/ok/0137_await_expr.txt
deleted file mode 100644
index 9d37ada0da..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0137_await_expr.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- AWAIT_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- DOT "."
- AWAIT_KW "await"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- AWAIT_EXPR
- FIELD_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- DOT "."
- NAME_REF
- INT_NUMBER "0"
- DOT "."
- AWAIT_KW "await"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- METHOD_CALL_EXPR
- TRY_EXPR
- AWAIT_EXPR
- CALL_EXPR
- FIELD_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- DOT "."
- NAME_REF
- INT_NUMBER "0"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- DOT "."
- AWAIT_KW "await"
- QUESTION "?"
- DOT "."
- NAME_REF
- IDENT "hello"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0138_associated_type_bounds.rast b/crates/parser/test_data/parser/inline/ok/0138_associated_type_bounds.rast
index c3f03c49b7..8cbc98c51c 100644
--- a/crates/parser/test_data/parser/inline/ok/0138_associated_type_bounds.rast
+++ b/crates/parser/test_data/parser/inline/ok/0138_associated_type_bounds.rast
@@ -1,111 +1,111 @@
- [email protected] "print_all"
- [email protected] "Iterator"
- [email protected] "Display"
- [email protected] "printables"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "print_all"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Iterator"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Item"
+ COMMA ","
+ WHITESPACE " "
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Item"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Item"
+ COMMA ","
+ WHITESPACE " "
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Item"
+ GENERIC_ARG_LIST
+ COLON2 "::"
+ L_ANGLE "<"
+ CONST_ARG
+ LITERAL
+ TRUE_KW "true"
+ R_ANGLE ">"
+ COMMA ","
+ WHITESPACE " "
+ ASSOC_TYPE_ARG
+ NAME_REF
+ IDENT "Item"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Display"
+ COMMA ","
+ WHITESPACE " "
+ ASSOC_TYPE_ARG
+ NAME_REF
+ IDENT "Item"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Item"
+ R_ANGLE ">"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "printables"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0138_associated_type_bounds.txt b/crates/parser/test_data/parser/inline/ok/0138_associated_type_bounds.txt
deleted file mode 100644
index 8cbc98c51c..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0138_associated_type_bounds.txt
+++ /dev/null
@@ -1,111 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "print_all"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Iterator"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Item"
- COMMA ","
- WHITESPACE " "
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Item"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Item"
- COMMA ","
- WHITESPACE " "
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Item"
- GENERIC_ARG_LIST
- COLON2 "::"
- L_ANGLE "<"
- CONST_ARG
- LITERAL
- TRUE_KW "true"
- R_ANGLE ">"
- COMMA ","
- WHITESPACE " "
- ASSOC_TYPE_ARG
- NAME_REF
- IDENT "Item"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Display"
- COMMA ","
- WHITESPACE " "
- ASSOC_TYPE_ARG
- NAME_REF
- IDENT "Item"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Item"
- R_ANGLE ">"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "printables"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0138_expression_after_block.rast b/crates/parser/test_data/parser/inline/ok/0138_expression_after_block.rast
index 134438715a..553ac356d7 100644
--- a/crates/parser/test_data/parser/inline/ok/0138_expression_after_block.rast
+++ b/crates/parser/test_data/parser/inline/ok/0138_expression_after_block.rast
@@ -1,66 +1,66 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "p"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ RECORD_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "F"
+ RECORD_EXPR_FIELD_LIST
+ L_CURLY "{"
+ RECORD_EXPR_FIELD
+ NAME_REF
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "5"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ FIELD_EXPR
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "p"
+ R_CURLY "}"
+ DOT "."
+ NAME_REF
+ IDENT "x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "10"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0138_expression_after_block.txt b/crates/parser/test_data/parser/inline/ok/0138_expression_after_block.txt
deleted file mode 100644
index 553ac356d7..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0138_expression_after_block.txt
+++ /dev/null
@@ -1,66 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "p"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- RECORD_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "F"
- RECORD_EXPR_FIELD_LIST
- L_CURLY "{"
- RECORD_EXPR_FIELD
- NAME_REF
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "5"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- FIELD_EXPR
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "p"
- R_CURLY "}"
- DOT "."
- NAME_REF
- IDENT "x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "10"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0138_self_param_outer_attr.rast b/crates/parser/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
index 6a80b72e45..db583f7d52 100644
--- a/crates/parser/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
@@ -1,28 +1,28 @@
- [email protected] "must_use"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "must_use"
+ R_BRACK "]"
+ WHITESPACE " "
+ NAME
+ SELF_KW "self"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0138_self_param_outer_attr.txt b/crates/parser/test_data/parser/inline/ok/0138_self_param_outer_attr.txt
deleted file mode 100644
index db583f7d52..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0138_self_param_outer_attr.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "must_use"
- R_BRACK "]"
- WHITESPACE " "
- NAME
- SELF_KW "self"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0139_param_outer_arg.rast b/crates/parser/test_data/parser/inline/ok/0139_param_outer_arg.rast
index 7cdd38917d..c63ea020a3 100644
--- a/crates/parser/test_data/parser/inline/ok/0139_param_outer_arg.rast
+++ b/crates/parser/test_data/parser/inline/ok/0139_param_outer_arg.rast
@@ -1,36 +1,36 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr1"
+ R_BRACK "]"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "pat"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Type"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0139_param_outer_arg.txt b/crates/parser/test_data/parser/inline/ok/0139_param_outer_arg.txt
deleted file mode 100644
index c63ea020a3..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0139_param_outer_arg.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr1"
- R_BRACK "]"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "pat"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Type"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0142_for_range_from.rast b/crates/parser/test_data/parser/inline/ok/0142_for_range_from.rast
index 4f859c30e5..90cf3101c1 100644
--- a/crates/parser/test_data/parser/inline/ok/0142_for_range_from.rast
+++ b/crates/parser/test_data/parser/inline/ok/0142_for_range_from.rast
@@ -1,42 +1,42 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FOR_EXPR
+ FOR_KW "for"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ WHITESPACE " "
+ IN_KW "in"
+ WHITESPACE " "
+ RANGE_EXPR
+ LITERAL
+ INT_NUMBER "0"
+ WHITESPACE " "
+ DOT2 ".."
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0142_for_range_from.txt b/crates/parser/test_data/parser/inline/ok/0142_for_range_from.txt
deleted file mode 100644
index 90cf3101c1..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0142_for_range_from.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FOR_EXPR
- FOR_KW "for"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- WHITESPACE " "
- IN_KW "in"
- WHITESPACE " "
- RANGE_EXPR
- LITERAL
- INT_NUMBER "0"
- WHITESPACE " "
- DOT2 ".."
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0143_box_pat.rast b/crates/parser/test_data/parser/inline/ok/0143_box_pat.rast
index a5f990cff9..df22decde1 100644
--- a/crates/parser/test_data/parser/inline/ok/0143_box_pat.rast
+++ b/crates/parser/test_data/parser/inline/ok/0143_box_pat.rast
@@ -1,111 +1,111 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ BOX_PAT
+ BOX_KW "box"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "i"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ BOX_PAT
+ BOX_KW "box"
+ WHITESPACE " "
+ RECORD_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Outer"
+ WHITESPACE " "
+ RECORD_PAT_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ BOX_PAT
+ BOX_KW "box"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "i"
+ COMMA ","
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ NAME_REF
+ IDENT "j"
+ COLON ":"
+ WHITESPACE " "
+ BOX_PAT
+ BOX_KW "box"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Inner"
+ L_PAREN "("
+ BOX_PAT
+ BOX_KW "box"
+ WHITESPACE " "
+ REF_PAT
+ AMP "&"
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ R_PAREN ")"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ BOX_PAT
+ BOX_KW "box"
+ WHITESPACE " "
+ IDENT_PAT
+ REF_KW "ref"
+ WHITESPACE " "
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "i"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0143_box_pat.txt b/crates/parser/test_data/parser/inline/ok/0143_box_pat.txt
deleted file mode 100644
index df22decde1..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0143_box_pat.txt
+++ /dev/null
@@ -1,111 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- BOX_PAT
- BOX_KW "box"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "i"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- BOX_PAT
- BOX_KW "box"
- WHITESPACE " "
- RECORD_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Outer"
- WHITESPACE " "
- RECORD_PAT_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_PAT_FIELD
- BOX_PAT
- BOX_KW "box"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "i"
- COMMA ","
- WHITESPACE " "
- RECORD_PAT_FIELD
- NAME_REF
- IDENT "j"
- COLON ":"
- WHITESPACE " "
- BOX_PAT
- BOX_KW "box"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Inner"
- L_PAREN "("
- BOX_PAT
- BOX_KW "box"
- WHITESPACE " "
- REF_PAT
- AMP "&"
- IDENT_PAT
- NAME
- IDENT "x"
- R_PAREN ")"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- BOX_PAT
- BOX_KW "box"
- WHITESPACE " "
- IDENT_PAT
- REF_KW "ref"
- WHITESPACE " "
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "i"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0144_dot_dot_pat.rast b/crates/parser/test_data/parser/inline/ok/0144_dot_dot_pat.rast
index 6a423ff14c..4d4011e6b4 100644
--- a/crates/parser/test_data/parser/inline/ok/0144_dot_dot_pat.rast
+++ b/crates/parser/test_data/parser/inline/ok/0144_dot_dot_pat.rast
@@ -1,456 +1,456 @@
- [email protected] "// Tuples"
- [email protected] "// Slices"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ COMMENT "//"
+ WHITESPACE "\n "
+ COMMENT "// Tuples"
+ WHITESPACE "\n "
+ COMMENT "//"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_PAT
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_PAT
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Tuple"
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Tuple"
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_PAT
+ L_PAREN "("
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Tuple"
+ L_PAREN "("
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_PAT
+ L_PAREN "("
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Tuple"
+ L_PAREN "("
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ COMMENT "//"
+ WHITESPACE "\n "
+ COMMENT "// Slices"
+ WHITESPACE "\n "
+ COMMENT "//"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ SLICE_PAT
+ L_BRACK "["
+ REST_PAT
+ DOT2 ".."
+ R_BRACK "]"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ SLICE_PAT
+ L_BRACK "["
+ IDENT_PAT
+ NAME
+ IDENT "head"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ R_BRACK "]"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ SLICE_PAT
+ L_BRACK "["
+ IDENT_PAT
+ NAME
+ IDENT "head"
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "tail"
+ WHITESPACE " "
+ AT "@"
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ R_BRACK "]"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ SLICE_PAT
+ L_BRACK "["
+ IDENT_PAT
+ NAME
+ IDENT "head"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "cons"
+ R_BRACK "]"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ SLICE_PAT
+ L_BRACK "["
+ IDENT_PAT
+ NAME
+ IDENT "head"
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "mid"
+ WHITESPACE " "
+ AT "@"
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "cons"
+ R_BRACK "]"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ SLICE_PAT
+ L_BRACK "["
+ IDENT_PAT
+ NAME
+ IDENT "head"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "cons"
+ R_BRACK "]"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ SLICE_PAT
+ L_BRACK "["
+ IDENT_PAT
+ NAME
+ IDENT "head"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "mid"
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "tail"
+ WHITESPACE " "
+ AT "@"
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ R_BRACK "]"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ SLICE_PAT
+ L_BRACK "["
+ IDENT_PAT
+ NAME
+ IDENT "head"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "mid"
+ COMMA ","
+ WHITESPACE " "
+ REST_PAT
+ DOT2 ".."
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "cons"
+ R_BRACK "]"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0144_dot_dot_pat.txt b/crates/parser/test_data/parser/inline/ok/0144_dot_dot_pat.txt
deleted file mode 100644
index 4d4011e6b4..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0144_dot_dot_pat.txt
+++ /dev/null
@@ -1,456 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- COMMENT "//"
- WHITESPACE "\n "
- COMMENT "// Tuples"
- WHITESPACE "\n "
- COMMENT "//"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_PAT
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_PAT
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- COMMA ","
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Tuple"
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Tuple"
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- COMMA ","
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_PAT
- L_PAREN "("
- REST_PAT
- DOT2 ".."
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Tuple"
- L_PAREN "("
- REST_PAT
- DOT2 ".."
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_PAT
- L_PAREN "("
- REST_PAT
- DOT2 ".."
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Tuple"
- L_PAREN "("
- REST_PAT
- DOT2 ".."
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- COMMENT "//"
- WHITESPACE "\n "
- COMMENT "// Slices"
- WHITESPACE "\n "
- COMMENT "//"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- SLICE_PAT
- L_BRACK "["
- REST_PAT
- DOT2 ".."
- R_BRACK "]"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- SLICE_PAT
- L_BRACK "["
- IDENT_PAT
- NAME
- IDENT "head"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- R_BRACK "]"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- SLICE_PAT
- L_BRACK "["
- IDENT_PAT
- NAME
- IDENT "head"
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "tail"
- WHITESPACE " "
- AT "@"
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- R_BRACK "]"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- SLICE_PAT
- L_BRACK "["
- IDENT_PAT
- NAME
- IDENT "head"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "cons"
- R_BRACK "]"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- SLICE_PAT
- L_BRACK "["
- IDENT_PAT
- NAME
- IDENT "head"
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "mid"
- WHITESPACE " "
- AT "@"
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "cons"
- R_BRACK "]"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- SLICE_PAT
- L_BRACK "["
- IDENT_PAT
- NAME
- IDENT "head"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "cons"
- R_BRACK "]"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- SLICE_PAT
- L_BRACK "["
- IDENT_PAT
- NAME
- IDENT "head"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "mid"
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "tail"
- WHITESPACE " "
- AT "@"
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- R_BRACK "]"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- SLICE_PAT
- L_BRACK "["
- IDENT_PAT
- NAME
- IDENT "head"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "mid"
- COMMA ","
- WHITESPACE " "
- REST_PAT
- DOT2 ".."
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "cons"
- R_BRACK "]"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0145_record_pat_field.rast b/crates/parser/test_data/parser/inline/ok/0145_record_pat_field.rast
index b79690b9ed..f3d2fde466 100644
--- a/crates/parser/test_data/parser/inline/ok/0145_record_pat_field.rast
+++ b/crates/parser/test_data/parser/inline/ok/0145_record_pat_field.rast
@@ -1,123 +1,123 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ RECORD_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_PAT_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ NAME_REF
+ INT_NUMBER "0"
+ COLON ":"
+ WHITESPACE " "
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ RECORD_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_PAT_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ NAME_REF
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ RECORD_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_PAT_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "any"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE " "
+ NAME_REF
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0145_record_pat_field.txt b/crates/parser/test_data/parser/inline/ok/0145_record_pat_field.txt
deleted file mode 100644
index f3d2fde466..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0145_record_pat_field.txt
+++ /dev/null
@@ -1,123 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- RECORD_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_PAT_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_PAT_FIELD
- NAME_REF
- INT_NUMBER "0"
- COLON ":"
- WHITESPACE " "
- LITERAL_PAT
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- RECORD_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_PAT_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_PAT_FIELD
- NAME_REF
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- LITERAL_PAT
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- RECORD_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_PAT_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_PAT_FIELD
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "any"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE " "
- NAME_REF
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- LITERAL_PAT
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0146_as_precedence.rast b/crates/parser/test_data/parser/inline/ok/0146_as_precedence.rast
index 5a51b3bbea..4079d2a991 100644
--- a/crates/parser/test_data/parser/inline/ok/0146_as_precedence.rast
+++ b/crates/parser/test_data/parser/inline/ok/0146_as_precedence.rast
@@ -1,43 +1,43 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ CAST_EXPR
+ REF_EXPR
+ AMP "&"
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ CONST_KW "const"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0146_as_precedence.txt b/crates/parser/test_data/parser/inline/ok/0146_as_precedence.txt
deleted file mode 100644
index 4079d2a991..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0146_as_precedence.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- CAST_EXPR
- REF_EXPR
- AMP "&"
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- CONST_KW "const"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0147_const_param.rast b/crates/parser/test_data/parser/inline/ok/0147_const_param.rast
index 9312eab65e..24595a1a18 100644
--- a/crates/parser/test_data/parser/inline/ok/0147_const_param.rast
+++ b/crates/parser/test_data/parser/inline/ok/0147_const_param.rast
@@ -1,23 +1,23 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ CONST_PARAM
+ CONST_KW "const"
+ WHITESPACE " "
+ NAME
+ IDENT "N"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0147_const_param.txt b/crates/parser/test_data/parser/inline/ok/0147_const_param.txt
deleted file mode 100644
index 24595a1a18..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0147_const_param.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- CONST_PARAM
- CONST_KW "const"
- WHITESPACE " "
- NAME
- IDENT "N"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0147_macro_def.rast b/crates/parser/test_data/parser/inline/ok/0147_macro_def.rast
index 4d7b78d5ca..01de13a907 100644
--- a/crates/parser/test_data/parser/inline/ok/0147_macro_def.rast
+++ b/crates/parser/test_data/parser/inline/ok/0147_macro_def.rast
@@ -1,19 +1,19 @@
+SOURCE_FILE
+ MACRO_DEF
+ MACRO_KW "macro"
+ WHITESPACE " "
+ NAME
+ IDENT "m"
+ TOKEN_TREE
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ IDENT "i"
+ COLON ":"
+ IDENT "ident"
+ R_PAREN ")"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0147_macro_def.txt b/crates/parser/test_data/parser/inline/ok/0147_macro_def.txt
deleted file mode 100644
index 01de13a907..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0147_macro_def.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-SOURCE_FILE
- MACRO_DEF
- MACRO_KW "macro"
- WHITESPACE " "
- NAME
- IDENT "m"
- TOKEN_TREE
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- IDENT "i"
- COLON ":"
- IDENT "ident"
- R_PAREN ")"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0150_array_attrs.rast b/crates/parser/test_data/parser/inline/ok/0150_array_attrs.rast
index 26cdc2945a..6eb8af3311 100644
--- a/crates/parser/test_data/parser/inline/ok/0150_array_attrs.rast
+++ b/crates/parser/test_data/parser/inline/ok/0150_array_attrs.rast
@@ -1,48 +1,48 @@
+SOURCE_FILE
+ CONST
+ CONST_KW "const"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ COLON ":"
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ SLICE_TYPE
+ L_BRACK "["
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i64"
+ R_BRACK "]"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_EXPR
+ AMP "&"
+ ARRAY_EXPR
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "test"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE " "
+ INT_NUMBER "2"
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0150_array_attrs.txt b/crates/parser/test_data/parser/inline/ok/0150_array_attrs.txt
deleted file mode 100644
index 6eb8af3311..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0150_array_attrs.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-SOURCE_FILE
- CONST
- CONST_KW "const"
- WHITESPACE " "
- NAME
- IDENT "A"
- COLON ":"
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- SLICE_TYPE
- L_BRACK "["
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i64"
- R_BRACK "]"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_EXPR
- AMP "&"
- ARRAY_EXPR
- L_BRACK "["
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- LITERAL
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "test"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE " "
- INT_NUMBER "2"
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0150_impl_type_params.rast b/crates/parser/test_data/parser/inline/ok/0150_impl_type_params.rast
index 12194abdaf..24977a22a5 100644
--- a/crates/parser/test_data/parser/inline/ok/0150_impl_type_params.rast
+++ b/crates/parser/test_data/parser/inline/ok/0150_impl_type_params.rast
@@ -1,38 +1,38 @@
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ CONST_PARAM
+ CONST_KW "const"
+ WHITESPACE " "
+ NAME
+ IDENT "N"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Bar"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "N"
+ R_ANGLE ">"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0150_impl_type_params.txt b/crates/parser/test_data/parser/inline/ok/0150_impl_type_params.txt
deleted file mode 100644
index 24977a22a5..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0150_impl_type_params.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- CONST_PARAM
- CONST_KW "const"
- WHITESPACE " "
- NAME
- IDENT "N"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- R_ANGLE ">"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Bar"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "N"
- R_ANGLE ">"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0151_fn.rast b/crates/parser/test_data/parser/inline/ok/0151_fn.rast
index ec93d4a1c7..a88b3393f2 100644
--- a/crates/parser/test_data/parser/inline/ok/0151_fn.rast
+++ b/crates/parser/test_data/parser/inline/ok/0151_fn.rast
@@ -1,15 +1,15 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0151_fn.txt b/crates/parser/test_data/parser/inline/ok/0151_fn.txt
deleted file mode 100644
index a88b3393f2..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0151_fn.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0151_trait_alias.rast b/crates/parser/test_data/parser/inline/ok/0151_trait_alias.rast
index 6bcbd0f1c6..2ef66484ae 100644
--- a/crates/parser/test_data/parser/inline/ok/0151_trait_alias.rast
+++ b/crates/parser/test_data/parser/inline/ok/0151_trait_alias.rast
@@ -1,33 +1,33 @@
+SOURCE_FILE
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "Z"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "U"
+ R_ANGLE ">"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "U"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0151_trait_alias.txt b/crates/parser/test_data/parser/inline/ok/0151_trait_alias.txt
deleted file mode 100644
index 2ef66484ae..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0151_trait_alias.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-SOURCE_FILE
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "Z"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "U"
- R_ANGLE ">"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "U"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0152_arg_with_attr.rast b/crates/parser/test_data/parser/inline/ok/0152_arg_with_attr.rast
index 7a6d2daa38..ae1074c368 100644
--- a/crates/parser/test_data/parser/inline/ok/0152_arg_with_attr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0152_arg_with_attr.rast
@@ -1,38 +1,38 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ INT_NUMBER "92"
+ R_PAREN ")"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0152_arg_with_attr.txt b/crates/parser/test_data/parser/inline/ok/0152_arg_with_attr.txt
deleted file mode 100644
index ae1074c368..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0152_arg_with_attr.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- ARG_LIST
- L_PAREN "("
- LITERAL
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- INT_NUMBER "92"
- R_PAREN ")"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0153_pub_parens_typepath.rast b/crates/parser/test_data/parser/inline/ok/0153_pub_parens_typepath.rast
index a5ee07499e..2dede83598 100644
--- a/crates/parser/test_data/parser/inline/ok/0153_pub_parens_typepath.rast
+++ b/crates/parser/test_data/parser/inline/ok/0153_pub_parens_typepath.rast
@@ -1,56 +1,56 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "B"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ TUPLE_FIELD
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ PAREN_TYPE
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SUPER_KW "super"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "A"
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "B"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ TUPLE_FIELD
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ CRATE_KW "crate"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "A"
+ COMMA ","
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0153_pub_parens_typepath.txt b/crates/parser/test_data/parser/inline/ok/0153_pub_parens_typepath.txt
deleted file mode 100644
index 2dede83598..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0153_pub_parens_typepath.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "B"
- TUPLE_FIELD_LIST
- L_PAREN "("
- TUPLE_FIELD
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- PAREN_TYPE
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- SUPER_KW "super"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "A"
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "B"
- TUPLE_FIELD_LIST
- L_PAREN "("
- TUPLE_FIELD
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- CRATE_KW "crate"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "A"
- COMMA ","
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast b/crates/parser/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast
index e6aff7b373..ee8465e6ca 100644
--- a/crates/parser/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast
+++ b/crates/parser/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast
@@ -1,58 +1,58 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Foo"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FN_PTR_TYPE
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Bar"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Baz"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Qux"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FN_PTR_TYPE
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "baz"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Bar"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Baz"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.txt b/crates/parser/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.txt
deleted file mode 100644
index ee8465e6ca..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Foo"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FN_PTR_TYPE
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- PARAM
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Bar"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Baz"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Qux"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FN_PTR_TYPE
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "baz"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Bar"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Baz"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0154_no_dyn_trait_leading_for.rast b/crates/parser/test_data/parser/inline/ok/0154_no_dyn_trait_leading_for.rast
index 860684b29a..30a2842e53 100644
--- a/crates/parser/test_data/parser/inline/ok/0154_no_dyn_trait_leading_for.rast
+++ b/crates/parser/test_data/parser/inline/ok/0154_no_dyn_trait_leading_for.rast
@@ -1,43 +1,43 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ DYN_TRAIT_TYPE
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Test"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Send"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0154_no_dyn_trait_leading_for.txt b/crates/parser/test_data/parser/inline/ok/0154_no_dyn_trait_leading_for.txt
deleted file mode 100644
index 30a2842e53..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0154_no_dyn_trait_leading_for.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "A"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- DYN_TRAIT_TYPE
- TYPE_BOUND_LIST
- TYPE_BOUND
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Test"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Send"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0154_tuple_attrs.rast b/crates/parser/test_data/parser/inline/ok/0154_tuple_attrs.rast
index 3b6612677f..39857b23c6 100644
--- a/crates/parser/test_data/parser/inline/ok/0154_tuple_attrs.rast
+++ b/crates/parser/test_data/parser/inline/ok/0154_tuple_attrs.rast
@@ -1,51 +1,51 @@
+SOURCE_FILE
+ CONST
+ CONST_KW "const"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ COLON ":"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i64"
+ COMMA ","
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i64"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "test"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE " "
+ INT_NUMBER "2"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0154_tuple_attrs.txt b/crates/parser/test_data/parser/inline/ok/0154_tuple_attrs.txt
deleted file mode 100644
index 39857b23c6..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0154_tuple_attrs.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-SOURCE_FILE
- CONST
- CONST_KW "const"
- WHITESPACE " "
- NAME
- IDENT "A"
- COLON ":"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i64"
- COMMA ","
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i64"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- LITERAL
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "test"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE " "
- INT_NUMBER "2"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0155_closure_params.rast b/crates/parser/test_data/parser/inline/ok/0155_closure_params.rast
index ca5fb62a85..318eb89dea 100644
--- a/crates/parser/test_data/parser/inline/ok/0155_closure_params.rast
+++ b/crates/parser/test_data/parser/inline/ok/0155_closure_params.rast
@@ -1,70 +1,70 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "foo"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ CLOSURE_EXPR
+ PARAM_LIST
+ PIPE "|"
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "bar"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "baz"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Baz"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "qux"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Qux"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Quux"
+ PIPE "|"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0155_closure_params.txt b/crates/parser/test_data/parser/inline/ok/0155_closure_params.txt
deleted file mode 100644
index 318eb89dea..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0155_closure_params.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "foo"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- CLOSURE_EXPR
- PARAM_LIST
- PIPE "|"
- PARAM
- IDENT_PAT
- NAME
- IDENT "bar"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "baz"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Baz"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "qux"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Qux"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Quux"
- PIPE "|"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0156_const_block_pat.rast b/crates/parser/test_data/parser/inline/ok/0156_const_block_pat.rast
index 1144d5684d..59de2b9f16 100644
--- a/crates/parser/test_data/parser/inline/ok/0156_const_block_pat.rast
+++ b/crates/parser/test_data/parser/inline/ok/0156_const_block_pat.rast
@@ -1,79 +1,79 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ CONST_BLOCK_PAT
+ CONST_KW "const"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "15"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ CONST_BLOCK_PAT
+ CONST_KW "const"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0156_const_block_pat.txt b/crates/parser/test_data/parser/inline/ok/0156_const_block_pat.txt
deleted file mode 100644
index 59de2b9f16..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0156_const_block_pat.txt
+++ /dev/null
@@ -1,79 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- CONST_BLOCK_PAT
- CONST_KW "const"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "15"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- CONST_BLOCK_PAT
- CONST_KW "const"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0156_fn_def_param.rast b/crates/parser/test_data/parser/inline/ok/0156_fn_def_param.rast
index 241ae090a7..7511877aa8 100644
--- a/crates/parser/test_data/parser/inline/ok/0156_fn_def_param.rast
+++ b/crates/parser/test_data/parser/inline/ok/0156_fn_def_param.rast
@@ -1,44 +1,44 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ TUPLE_PAT
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "y"
+ R_PAREN ")"
+ COLON ":"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0156_fn_def_param.txt b/crates/parser/test_data/parser/inline/ok/0156_fn_def_param.txt
deleted file mode 100644
index 7511877aa8..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0156_fn_def_param.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- PARAM
- TUPLE_PAT
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "x"
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "y"
- R_PAREN ")"
- COLON ":"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0156_or_pattern.rast b/crates/parser/test_data/parser/inline/ok/0156_or_pattern.rast
index e41bf54110..6a2046d9e9 100644
--- a/crates/parser/test_data/parser/inline/ok/0156_or_pattern.rast
+++ b/crates/parser/test_data/parser/inline/ok/0156_or_pattern.rast
@@ -1,112 +1,112 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ PAREN_PAT
+ L_PAREN "("
+ OR_PAT
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ PIPE "|"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ R_PAREN ")"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ REF_PAT
+ AMP "&"
+ PAREN_PAT
+ L_PAREN "("
+ OR_PAT
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ PIPE "|"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ R_PAREN ")"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ TUPLE_PAT
+ L_PAREN "("
+ OR_PAT
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ PIPE "|"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COMMA ","
+ R_PAREN ")"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ SLICE_PAT
+ L_BRACK "["
+ OR_PAT
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ PIPE "|"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COMMA ","
+ R_BRACK "]"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0156_or_pattern.txt b/crates/parser/test_data/parser/inline/ok/0156_or_pattern.txt
deleted file mode 100644
index 6a2046d9e9..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0156_or_pattern.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- PAREN_PAT
- L_PAREN "("
- OR_PAT
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- PIPE "|"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- R_PAREN ")"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- REF_PAT
- AMP "&"
- PAREN_PAT
- L_PAREN "("
- OR_PAT
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- PIPE "|"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- R_PAREN ")"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- TUPLE_PAT
- L_PAREN "("
- OR_PAT
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- PIPE "|"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- COMMA ","
- R_PAREN ")"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- SLICE_PAT
- L_BRACK "["
- OR_PAT
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- PIPE "|"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- COMMA ","
- R_BRACK "]"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0157_const_block.rast b/crates/parser/test_data/parser/inline/ok/0157_const_block.rast
index 82e06d3b30..d2025b895d 100644
--- a/crates/parser/test_data/parser/inline/ok/0157_const_block.rast
+++ b/crates/parser/test_data/parser/inline/ok/0157_const_block.rast
@@ -1,24 +1,24 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ BLOCK_EXPR
+ CONST_KW "const"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0157_const_block.txt b/crates/parser/test_data/parser/inline/ok/0157_const_block.txt
deleted file mode 100644
index d2025b895d..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0157_const_block.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- BLOCK_EXPR
- CONST_KW "const"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast b/crates/parser/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast
index 6abb4fe5ac..8a525c6e05 100644
--- a/crates/parser/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast
+++ b/crates/parser/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast
@@ -1,26 +1,26 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Foo"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FN_PTR_TYPE
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.txt b/crates/parser/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.txt
deleted file mode 100644
index 8a525c6e05..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Foo"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FN_PTR_TYPE
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- PARAM
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0157_variant_discriminant.rast b/crates/parser/test_data/parser/inline/ok/0157_variant_discriminant.rast
index a2e05eb2e2..9f0c5a7610 100644
--- a/crates/parser/test_data/parser/inline/ok/0157_variant_discriminant.rast
+++ b/crates/parser/test_data/parser/inline/ok/0157_variant_discriminant.rast
@@ -1,30 +1,30 @@
+SOURCE_FILE
+ ENUM
+ ENUM_KW "enum"
+ WHITESPACE " "
+ NAME
+ IDENT "E"
+ WHITESPACE " "
+ VARIANT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ VARIANT
+ NAME
+ IDENT "X"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ TUPLE_FIELD
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "10"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0157_variant_discriminant.txt b/crates/parser/test_data/parser/inline/ok/0157_variant_discriminant.txt
deleted file mode 100644
index 9f0c5a7610..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0157_variant_discriminant.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-SOURCE_FILE
- ENUM
- ENUM_KW "enum"
- WHITESPACE " "
- NAME
- IDENT "E"
- WHITESPACE " "
- VARIANT_LIST
- L_CURLY "{"
- WHITESPACE " "
- VARIANT
- NAME
- IDENT "X"
- TUPLE_FIELD_LIST
- L_PAREN "("
- TUPLE_FIELD
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "10"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0158_binop_resets_statementness.rast b/crates/parser/test_data/parser/inline/ok/0158_binop_resets_statementness.rast
index da705ad9c1..f667c1972d 100644
--- a/crates/parser/test_data/parser/inline/ok/0158_binop_resets_statementness.rast
+++ b/crates/parser/test_data/parser/inline/ok/0158_binop_resets_statementness.rast
@@ -1,38 +1,38 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "v"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BIN_EXPR
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ LITERAL
+ INT_NUMBER "1"
+ R_CURLY "}"
+ AMP "&"
+ LITERAL
+ INT_NUMBER "2"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0158_binop_resets_statementness.txt b/crates/parser/test_data/parser/inline/ok/0158_binop_resets_statementness.txt
deleted file mode 100644
index f667c1972d..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0158_binop_resets_statementness.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "v"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BIN_EXPR
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- LITERAL
- INT_NUMBER "1"
- R_CURLY "}"
- AMP "&"
- LITERAL
- INT_NUMBER "2"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0158_lambda_ret_block.rast b/crates/parser/test_data/parser/inline/ok/0158_lambda_ret_block.rast
index 3272b0b9da..93238bd8f1 100644
--- a/crates/parser/test_data/parser/inline/ok/0158_lambda_ret_block.rast
+++ b/crates/parser/test_data/parser/inline/ok/0158_lambda_ret_block.rast
@@ -1,45 +1,45 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ CALL_EXPR
+ CLOSURE_EXPR
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ WHITESPACE " "
+ R_CURLY "}"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0158_lambda_ret_block.txt b/crates/parser/test_data/parser/inline/ok/0158_lambda_ret_block.txt
deleted file mode 100644
index 93238bd8f1..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0158_lambda_ret_block.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- CALL_EXPR
- CLOSURE_EXPR
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- WHITESPACE " "
- R_CURLY "}"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0158_macro_rules_non_brace.rast b/crates/parser/test_data/parser/inline/ok/0158_macro_rules_non_brace.rast
index 4a1f712aa7..45cd4d2aa1 100644
--- a/crates/parser/test_data/parser/inline/ok/0158_macro_rules_non_brace.rast
+++ b/crates/parser/test_data/parser/inline/ok/0158_macro_rules_non_brace.rast
@@ -1,57 +1,57 @@
- [email protected] "macro_rules"
- [email protected] "macro_rules"
+SOURCE_FILE
+ MACRO_RULES
+ MACRO_RULES_KW "macro_rules"
+ BANG "!"
+ WHITESPACE " "
+ NAME
+ IDENT "m"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_PAREN "("
+ WHITESPACE " "
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ IDENT "i"
+ COLON ":"
+ IDENT "ident"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ R_ANGLE ">"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE " "
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ MACRO_RULES
+ MACRO_RULES_KW "macro_rules"
+ BANG "!"
+ WHITESPACE " "
+ NAME
+ IDENT "m"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_BRACK "["
+ WHITESPACE " "
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ IDENT "i"
+ COLON ":"
+ IDENT "ident"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ R_ANGLE ">"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE " "
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0158_macro_rules_non_brace.txt b/crates/parser/test_data/parser/inline/ok/0158_macro_rules_non_brace.txt
deleted file mode 100644
index 45cd4d2aa1..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0158_macro_rules_non_brace.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-SOURCE_FILE
- MACRO_RULES
- MACRO_RULES_KW "macro_rules"
- BANG "!"
- WHITESPACE " "
- NAME
- IDENT "m"
- WHITESPACE " "
- TOKEN_TREE
- L_PAREN "("
- WHITESPACE " "
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- IDENT "i"
- COLON ":"
- IDENT "ident"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- R_ANGLE ">"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE " "
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- MACRO_RULES
- MACRO_RULES_KW "macro_rules"
- BANG "!"
- WHITESPACE " "
- NAME
- IDENT "m"
- WHITESPACE " "
- TOKEN_TREE
- L_BRACK "["
- WHITESPACE " "
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- IDENT "i"
- COLON ":"
- IDENT "ident"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- R_ANGLE ">"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE " "
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0159_try_macro_fallback.rast b/crates/parser/test_data/parser/inline/ok/0159_try_macro_fallback.rast
index 25665dfd8d..d11ac22efa 100644
--- a/crates/parser/test_data/parser/inline/ok/0159_try_macro_fallback.rast
+++ b/crates/parser/test_data/parser/inline/ok/0159_try_macro_fallback.rast
@@ -1,35 +1,35 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "try"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "Ok"
+ TOKEN_TREE
+ L_PAREN "("
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0159_try_macro_fallback.txt b/crates/parser/test_data/parser/inline/ok/0159_try_macro_fallback.txt
deleted file mode 100644
index d11ac22efa..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0159_try_macro_fallback.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "try"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- IDENT "Ok"
- TOKEN_TREE
- L_PAREN "("
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0159_yield_expr.rast b/crates/parser/test_data/parser/inline/ok/0159_yield_expr.rast
index bdc880972b..31aa58de29 100644
--- a/crates/parser/test_data/parser/inline/ok/0159_yield_expr.rast
+++ b/crates/parser/test_data/parser/inline/ok/0159_yield_expr.rast
@@ -1,29 +1,29 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ YIELD_EXPR
+ YIELD_KW "yield"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ YIELD_EXPR
+ YIELD_KW "yield"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0159_yield_expr.txt b/crates/parser/test_data/parser/inline/ok/0159_yield_expr.txt
deleted file mode 100644
index 31aa58de29..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0159_yield_expr.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- YIELD_EXPR
- YIELD_KW "yield"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- YIELD_EXPR
- YIELD_KW "yield"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0160_crate_visibility_in.rast b/crates/parser/test_data/parser/inline/ok/0160_crate_visibility_in.rast
index 3d855fc6b1..ac45c56956 100644
--- a/crates/parser/test_data/parser/inline/ok/0160_crate_visibility_in.rast
+++ b/crates/parser/test_data/parser/inline/ok/0160_crate_visibility_in.rast
@@ -1,42 +1,42 @@
+SOURCE_FILE
+ STRUCT
+ VISIBILITY
+ PUB_KW "pub"
+ L_PAREN "("
+ IN_KW "in"
+ WHITESPACE " "
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SUPER_KW "super"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "A"
+ R_PAREN ")"
+ WHITESPACE " "
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ VISIBILITY
+ PUB_KW "pub"
+ L_PAREN "("
+ IN_KW "in"
+ WHITESPACE " "
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ CRATE_KW "crate"
+ R_PAREN ")"
+ WHITESPACE " "
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0160_crate_visibility_in.txt b/crates/parser/test_data/parser/inline/ok/0160_crate_visibility_in.txt
deleted file mode 100644
index ac45c56956..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0160_crate_visibility_in.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-SOURCE_FILE
- STRUCT
- VISIBILITY
- PUB_KW "pub"
- L_PAREN "("
- IN_KW "in"
- WHITESPACE " "
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- SUPER_KW "super"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "A"
- R_PAREN ")"
- WHITESPACE " "
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- VISIBILITY
- PUB_KW "pub"
- L_PAREN "("
- IN_KW "in"
- WHITESPACE " "
- PATH
- PATH_SEGMENT
- NAME_REF
- CRATE_KW "crate"
- R_PAREN ")"
- WHITESPACE " "
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0160_try_macro_rules.rast b/crates/parser/test_data/parser/inline/ok/0160_try_macro_rules.rast
index d1c22947b5..e6916ae976 100644
--- a/crates/parser/test_data/parser/inline/ok/0160_try_macro_rules.rast
+++ b/crates/parser/test_data/parser/inline/ok/0160_try_macro_rules.rast
@@ -1,24 +1,24 @@
- [email protected] "macro_rules"
+SOURCE_FILE
+ MACRO_RULES
+ MACRO_RULES_KW "macro_rules"
+ BANG "!"
+ WHITESPACE " "
+ NAME
+ IDENT "try"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ R_ANGLE ">"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0160_try_macro_rules.txt b/crates/parser/test_data/parser/inline/ok/0160_try_macro_rules.txt
deleted file mode 100644
index e6916ae976..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0160_try_macro_rules.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-SOURCE_FILE
- MACRO_RULES
- MACRO_RULES_KW "macro_rules"
- BANG "!"
- WHITESPACE " "
- NAME
- IDENT "try"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- WHITESPACE " "
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- R_ANGLE ">"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0161_impl_item_const.rast b/crates/parser/test_data/parser/inline/ok/0161_impl_item_const.rast
index 925dfa2f11..f7c7aaabc7 100644
--- a/crates/parser/test_data/parser/inline/ok/0161_impl_item_const.rast
+++ b/crates/parser/test_data/parser/inline/ok/0161_impl_item_const.rast
@@ -1,24 +1,24 @@
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ CONST_KW "const"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Send"
+ WHITESPACE " "
+ FOR_KW "for"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0161_impl_item_const.txt b/crates/parser/test_data/parser/inline/ok/0161_impl_item_const.txt
deleted file mode 100644
index f7c7aaabc7..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0161_impl_item_const.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- CONST_KW "const"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Send"
- WHITESPACE " "
- FOR_KW "for"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0161_labeled_block.rast b/crates/parser/test_data/parser/inline/ok/0161_labeled_block.rast
index b5f9d22951..181251d4f4 100644
--- a/crates/parser/test_data/parser/inline/ok/0161_labeled_block.rast
+++ b/crates/parser/test_data/parser/inline/ok/0161_labeled_block.rast
@@ -1,28 +1,28 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ BLOCK_EXPR
+ LABEL
+ LIFETIME
+ LIFETIME_IDENT "'label"
+ COLON ":"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0161_labeled_block.txt b/crates/parser/test_data/parser/inline/ok/0161_labeled_block.txt
deleted file mode 100644
index 181251d4f4..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0161_labeled_block.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- BLOCK_EXPR
- LABEL
- LIFETIME
- LIFETIME_IDENT "'label"
- COLON ":"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0162_default_async_unsafe_fn.rast b/crates/parser/test_data/parser/inline/ok/0162_default_async_unsafe_fn.rast
index e3f655b9b0..7c2f7b34c7 100644
--- a/crates/parser/test_data/parser/inline/ok/0162_default_async_unsafe_fn.rast
+++ b/crates/parser/test_data/parser/inline/ok/0162_default_async_unsafe_fn.rast
@@ -1,43 +1,43 @@
- [email protected] "default"
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ FOR_KW "for"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ ASYNC_KW "async"
+ WHITESPACE " "
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0162_default_async_unsafe_fn.txt b/crates/parser/test_data/parser/inline/ok/0162_default_async_unsafe_fn.txt
deleted file mode 100644
index 7c2f7b34c7..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0162_default_async_unsafe_fn.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- FOR_KW "for"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- DEFAULT_KW "default"
- WHITESPACE " "
- ASYNC_KW "async"
- WHITESPACE " "
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0162_unsafe_block.rast b/crates/parser/test_data/parser/inline/ok/0162_unsafe_block.rast
index 6274f78fe8..2149676ded 100644
--- a/crates/parser/test_data/parser/inline/ok/0162_unsafe_block.rast
+++ b/crates/parser/test_data/parser/inline/ok/0162_unsafe_block.rast
@@ -1,24 +1,24 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ BLOCK_EXPR
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0162_unsafe_block.txt b/crates/parser/test_data/parser/inline/ok/0162_unsafe_block.txt
deleted file mode 100644
index 2149676ded..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0162_unsafe_block.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- BLOCK_EXPR
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0163_default_async_fn.rast b/crates/parser/test_data/parser/inline/ok/0163_default_async_fn.rast
index 9af407cdd6..06b37e2393 100644
--- a/crates/parser/test_data/parser/inline/ok/0163_default_async_fn.rast
+++ b/crates/parser/test_data/parser/inline/ok/0163_default_async_fn.rast
@@ -1,41 +1,41 @@
- [email protected] "default"
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ FOR_KW "for"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ ASYNC_KW "async"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0163_default_async_fn.txt b/crates/parser/test_data/parser/inline/ok/0163_default_async_fn.txt
deleted file mode 100644
index 06b37e2393..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0163_default_async_fn.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- FOR_KW "for"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- DEFAULT_KW "default"
- WHITESPACE " "
- ASYNC_KW "async"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0163_default_unsafe_item.rast b/crates/parser/test_data/parser/inline/ok/0163_default_unsafe_item.rast
index ee05ab0fe9..b180d0b72c 100644
--- a/crates/parser/test_data/parser/inline/ok/0163_default_unsafe_item.rast
+++ b/crates/parser/test_data/parser/inline/ok/0163_default_unsafe_item.rast
@@ -1,45 +1,45 @@
- [email protected] "default"
- [email protected] "default"
+SOURCE_FILE
+ IMPL
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ FOR_KW "for"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0163_default_unsafe_item.txt b/crates/parser/test_data/parser/inline/ok/0163_default_unsafe_item.txt
deleted file mode 100644
index b180d0b72c..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0163_default_unsafe_item.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-SOURCE_FILE
- IMPL
- DEFAULT_KW "default"
- WHITESPACE " "
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- FOR_KW "for"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- DEFAULT_KW "default"
- WHITESPACE " "
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0164_default_item.rast b/crates/parser/test_data/parser/inline/ok/0164_default_item.rast
index 9282772f34..7a8e8cf1dd 100644
--- a/crates/parser/test_data/parser/inline/ok/0164_default_item.rast
+++ b/crates/parser/test_data/parser/inline/ok/0164_default_item.rast
@@ -1,24 +1,24 @@
- [email protected] "default"
+SOURCE_FILE
+ IMPL
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ FOR_KW "for"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0164_default_item.txt b/crates/parser/test_data/parser/inline/ok/0164_default_item.txt
deleted file mode 100644
index 7a8e8cf1dd..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0164_default_item.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-SOURCE_FILE
- IMPL
- DEFAULT_KW "default"
- WHITESPACE " "
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- FOR_KW "for"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0164_type_path_in_pattern.rast b/crates/parser/test_data/parser/inline/ok/0164_type_path_in_pattern.rast
index 8eb64ccb17..297f7575ca 100644
--- a/crates/parser/test_data/parser/inline/ok/0164_type_path_in_pattern.rast
+++ b/crates/parser/test_data/parser/inline/ok/0164_type_path_in_pattern.rast
@@ -1,39 +1,39 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ PATH_PAT
+ PATH
+ PATH
+ PATH_SEGMENT
+ L_ANGLE "<"
+ INFER_TYPE
+ UNDERSCORE "_"
+ R_ANGLE ">"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0164_type_path_in_pattern.txt b/crates/parser/test_data/parser/inline/ok/0164_type_path_in_pattern.txt
deleted file mode 100644
index 297f7575ca..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0164_type_path_in_pattern.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- PATH_PAT
- PATH
- PATH
- PATH_SEGMENT
- L_ANGLE "<"
- INFER_TYPE
- UNDERSCORE "_"
- R_ANGLE ">"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0165_const_param_defaults.rast b/crates/parser/test_data/parser/inline/ok/0165_const_param_defaults.rast
index 8677f8ae2c..6de10353bf 100644
--- a/crates/parser/test_data/parser/inline/ok/0165_const_param_defaults.rast
+++ b/crates/parser/test_data/parser/inline/ok/0165_const_param_defaults.rast
@@ -1,31 +1,31 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ CONST_PARAM
+ CONST_KW "const"
+ WHITESPACE " "
+ NAME
+ IDENT "N"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ CONST_ARG
+ PREFIX_EXPR
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0165_const_param_defaults.txt b/crates/parser/test_data/parser/inline/ok/0165_const_param_defaults.txt
deleted file mode 100644
index 6de10353bf..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0165_const_param_defaults.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "A"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- CONST_PARAM
- CONST_KW "const"
- WHITESPACE " "
- NAME
- IDENT "N"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- CONST_ARG
- PREFIX_EXPR
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0166_half_open_range_pat.rast b/crates/parser/test_data/parser/inline/ok/0166_half_open_range_pat.rast
index f0cc6b3441..3d3587a706 100644
--- a/crates/parser/test_data/parser/inline/ok/0166_half_open_range_pat.rast
+++ b/crates/parser/test_data/parser/inline/ok/0166_half_open_range_pat.rast
@@ -1,32 +1,32 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ RANGE_PAT
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "0"
+ WHITESPACE " "
+ DOT2 ".."
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1u32"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0166_half_open_range_pat.txt b/crates/parser/test_data/parser/inline/ok/0166_half_open_range_pat.txt
deleted file mode 100644
index 3d3587a706..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0166_half_open_range_pat.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- RANGE_PAT
- LITERAL_PAT
- LITERAL
- INT_NUMBER "0"
- WHITESPACE " "
- DOT2 ".."
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1u32"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0168_extern_crate_rename.rast b/crates/parser/test_data/parser/inline/ok/0168_extern_crate_rename.rast
index 87516e9fc4..5a5aca96f9 100644
--- a/crates/parser/test_data/parser/inline/ok/0168_extern_crate_rename.rast
+++ b/crates/parser/test_data/parser/inline/ok/0168_extern_crate_rename.rast
@@ -1,16 +1,16 @@
+SOURCE_FILE
+ EXTERN_CRATE
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ CRATE_KW "crate"
+ WHITESPACE " "
+ NAME_REF
+ IDENT "foo"
+ WHITESPACE " "
+ RENAME
+ AS_KW "as"
+ WHITESPACE " "
+ NAME
+ IDENT "bar"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0168_extern_crate_rename.txt b/crates/parser/test_data/parser/inline/ok/0168_extern_crate_rename.txt
deleted file mode 100644
index 5a5aca96f9..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0168_extern_crate_rename.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-SOURCE_FILE
- EXTERN_CRATE
- EXTERN_KW "extern"
- WHITESPACE " "
- CRATE_KW "crate"
- WHITESPACE " "
- NAME_REF
- IDENT "foo"
- WHITESPACE " "
- RENAME
- AS_KW "as"
- WHITESPACE " "
- NAME
- IDENT "bar"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0168_extern_crate_self.rast b/crates/parser/test_data/parser/inline/ok/0168_extern_crate_self.rast
index 26b4c0f195..edea4245f2 100644
--- a/crates/parser/test_data/parser/inline/ok/0168_extern_crate_self.rast
+++ b/crates/parser/test_data/parser/inline/ok/0168_extern_crate_self.rast
@@ -1,10 +1,10 @@
+SOURCE_FILE
+ EXTERN_CRATE
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ CRATE_KW "crate"
+ WHITESPACE " "
+ NAME_REF
+ SELF_KW "self"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0168_extern_crate_self.txt b/crates/parser/test_data/parser/inline/ok/0168_extern_crate_self.txt
deleted file mode 100644
index edea4245f2..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0168_extern_crate_self.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-SOURCE_FILE
- EXTERN_CRATE
- EXTERN_KW "extern"
- WHITESPACE " "
- CRATE_KW "crate"
- WHITESPACE " "
- NAME_REF
- SELF_KW "self"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0169_mod_item.rast b/crates/parser/test_data/parser/inline/ok/0169_mod_item.rast
index 423eacf92e..4d505916cf 100644
--- a/crates/parser/test_data/parser/inline/ok/0169_mod_item.rast
+++ b/crates/parser/test_data/parser/inline/ok/0169_mod_item.rast
@@ -1,8 +1,8 @@
+SOURCE_FILE
+ MODULE
+ MOD_KW "mod"
+ WHITESPACE " "
+ NAME
+ IDENT "a"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0169_mod_item.txt b/crates/parser/test_data/parser/inline/ok/0169_mod_item.txt
deleted file mode 100644
index 4d505916cf..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0169_mod_item.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-SOURCE_FILE
- MODULE
- MOD_KW "mod"
- WHITESPACE " "
- NAME
- IDENT "a"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0170_mod_item_curly.rast b/crates/parser/test_data/parser/inline/ok/0170_mod_item_curly.rast
index 33ad9c44f5..d5e3f3493c 100644
--- a/crates/parser/test_data/parser/inline/ok/0170_mod_item_curly.rast
+++ b/crates/parser/test_data/parser/inline/ok/0170_mod_item_curly.rast
@@ -1,12 +1,12 @@
+SOURCE_FILE
+ MODULE
+ MOD_KW "mod"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ WHITESPACE " "
+ ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0170_mod_item_curly.txt b/crates/parser/test_data/parser/inline/ok/0170_mod_item_curly.txt
deleted file mode 100644
index d5e3f3493c..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0170_mod_item_curly.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-SOURCE_FILE
- MODULE
- MOD_KW "mod"
- WHITESPACE " "
- NAME
- IDENT "b"
- WHITESPACE " "
- ITEM_LIST
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0170_tuple_struct.rast b/crates/parser/test_data/parser/inline/ok/0170_tuple_struct.rast
index 935fd6e07b..6e5f6c2d2b 100644
--- a/crates/parser/test_data/parser/inline/ok/0170_tuple_struct.rast
+++ b/crates/parser/test_data/parser/inline/ok/0170_tuple_struct.rast
@@ -1,25 +1,25 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ TUPLE_FIELD
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "String"
+ COMMA ","
+ WHITESPACE " "
+ TUPLE_FIELD
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "usize"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0170_tuple_struct.txt b/crates/parser/test_data/parser/inline/ok/0170_tuple_struct.txt
deleted file mode 100644
index 6e5f6c2d2b..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0170_tuple_struct.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- TUPLE_FIELD_LIST
- L_PAREN "("
- TUPLE_FIELD
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "String"
- COMMA ","
- WHITESPACE " "
- TUPLE_FIELD
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "usize"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0171_struct_item.rast b/crates/parser/test_data/parser/inline/ok/0171_struct_item.rast
index 3134482f0d..78f9682072 100644
--- a/crates/parser/test_data/parser/inline/ok/0171_struct_item.rast
+++ b/crates/parser/test_data/parser/inline/ok/0171_struct_item.rast
@@ -1,11 +1,11 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0171_struct_item.txt b/crates/parser/test_data/parser/inline/ok/0171_struct_item.txt
deleted file mode 100644
index 78f9682072..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0171_struct_item.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0172_const_item.rast b/crates/parser/test_data/parser/inline/ok/0172_const_item.rast
index 8a61d5e566..909983c9a2 100644
--- a/crates/parser/test_data/parser/inline/ok/0172_const_item.rast
+++ b/crates/parser/test_data/parser/inline/ok/0172_const_item.rast
@@ -1,20 +1,20 @@
+SOURCE_FILE
+ CONST
+ CONST_KW "const"
+ WHITESPACE " "
+ NAME
+ IDENT "C"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0172_const_item.txt b/crates/parser/test_data/parser/inline/ok/0172_const_item.txt
deleted file mode 100644
index 909983c9a2..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0172_const_item.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-SOURCE_FILE
- CONST
- CONST_KW "const"
- WHITESPACE " "
- NAME
- IDENT "C"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0172_record_field_list.rast b/crates/parser/test_data/parser/inline/ok/0172_record_field_list.rast
index ce1135c597..065d7e7e81 100644
--- a/crates/parser/test_data/parser/inline/ok/0172_record_field_list.rast
+++ b/crates/parser/test_data/parser/inline/ok/0172_record_field_list.rast
@@ -1,35 +1,35 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_FIELD
+ NAME
+ IDENT "a"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ WHITESPACE " "
+ RECORD_FIELD
+ NAME
+ IDENT "b"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f32"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0172_record_field_list.txt b/crates/parser/test_data/parser/inline/ok/0172_record_field_list.txt
deleted file mode 100644
index 065d7e7e81..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0172_record_field_list.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_FIELD
- NAME
- IDENT "a"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- WHITESPACE " "
- RECORD_FIELD
- NAME
- IDENT "b"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f32"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0173_anonymous_const.rast b/crates/parser/test_data/parser/inline/ok/0173_anonymous_const.rast
index 68ce503c39..d81b4ff267 100644
--- a/crates/parser/test_data/parser/inline/ok/0173_anonymous_const.rast
+++ b/crates/parser/test_data/parser/inline/ok/0173_anonymous_const.rast
@@ -1,19 +1,19 @@
+SOURCE_FILE
+ CONST
+ CONST_KW "const"
+ WHITESPACE " "
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0173_anonymous_const.txt b/crates/parser/test_data/parser/inline/ok/0173_anonymous_const.txt
deleted file mode 100644
index d81b4ff267..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0173_anonymous_const.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-SOURCE_FILE
- CONST
- CONST_KW "const"
- WHITESPACE " "
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0173_macro_def_curly.rast b/crates/parser/test_data/parser/inline/ok/0173_macro_def_curly.rast
index 3ec00bf55a..5cf305d265 100644
--- a/crates/parser/test_data/parser/inline/ok/0173_macro_def_curly.rast
+++ b/crates/parser/test_data/parser/inline/ok/0173_macro_def_curly.rast
@@ -1,27 +1,27 @@
+SOURCE_FILE
+ MACRO_DEF
+ MACRO_KW "macro"
+ WHITESPACE " "
+ NAME
+ IDENT "m"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ IDENT "i"
+ COLON ":"
+ IDENT "ident"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ R_ANGLE ">"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0173_macro_def_curly.txt b/crates/parser/test_data/parser/inline/ok/0173_macro_def_curly.txt
deleted file mode 100644
index 5cf305d265..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0173_macro_def_curly.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-SOURCE_FILE
- MACRO_DEF
- MACRO_KW "macro"
- WHITESPACE " "
- NAME
- IDENT "m"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- WHITESPACE " "
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- IDENT "i"
- COLON ":"
- IDENT "ident"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- R_ANGLE ">"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0173_union_item.rast b/crates/parser/test_data/parser/inline/ok/0173_union_item.rast
index 5d5c0d69bc..af608fc4ac 100644
--- a/crates/parser/test_data/parser/inline/ok/0173_union_item.rast
+++ b/crates/parser/test_data/parser/inline/ok/0173_union_item.rast
@@ -1,35 +1,35 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "U"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_FIELD
+ NAME
+ IDENT "i"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ COMMA ","
+ WHITESPACE " "
+ RECORD_FIELD
+ NAME
+ IDENT "f"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f32"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0173_union_item.txt b/crates/parser/test_data/parser/inline/ok/0173_union_item.txt
deleted file mode 100644
index af608fc4ac..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0173_union_item.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "U"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_FIELD
- NAME
- IDENT "i"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- COMMA ","
- WHITESPACE " "
- RECORD_FIELD
- NAME
- IDENT "f"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f32"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0174_trait_item_generic_params.rast b/crates/parser/test_data/parser/inline/ok/0174_trait_item_generic_params.rast
index f7af2e30e8..01f212e718 100644
--- a/crates/parser/test_data/parser/inline/ok/0174_trait_item_generic_params.rast
+++ b/crates/parser/test_data/parser/inline/ok/0174_trait_item_generic_params.rast
@@ -1,35 +1,35 @@
- [email protected] "Display"
+SOURCE_FILE
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "X"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "U"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Debug"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Display"
+ R_ANGLE ">"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0174_trait_item_generic_params.txt b/crates/parser/test_data/parser/inline/ok/0174_trait_item_generic_params.txt
deleted file mode 100644
index 01f212e718..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0174_trait_item_generic_params.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-SOURCE_FILE
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "X"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "U"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Debug"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Display"
- R_ANGLE ">"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0174_unit_struct.rast b/crates/parser/test_data/parser/inline/ok/0174_unit_struct.rast
index b20235889f..438dea6f40 100644
--- a/crates/parser/test_data/parser/inline/ok/0174_unit_struct.rast
+++ b/crates/parser/test_data/parser/inline/ok/0174_unit_struct.rast
@@ -1,8 +1,8 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0174_unit_struct.txt b/crates/parser/test_data/parser/inline/ok/0174_unit_struct.txt
deleted file mode 100644
index 438dea6f40..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0174_unit_struct.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0174_use_tree_star.rast b/crates/parser/test_data/parser/inline/ok/0174_use_tree_star.rast
index b9c6a3bed8..8662423f5d 100644
--- a/crates/parser/test_data/parser/inline/ok/0174_use_tree_star.rast
+++ b/crates/parser/test_data/parser/inline/ok/0174_use_tree_star.rast
@@ -1,24 +1,24 @@
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ STAR "*"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ USE_TREE_LIST
+ L_CURLY "{"
+ USE_TREE
+ STAR "*"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0174_use_tree_star.txt b/crates/parser/test_data/parser/inline/ok/0174_use_tree_star.txt
deleted file mode 100644
index 8662423f5d..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0174_use_tree_star.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- STAR "*"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- USE_TREE_LIST
- L_CURLY "{"
- USE_TREE
- STAR "*"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0175_trait_item_bounds.rast b/crates/parser/test_data/parser/inline/ok/0175_trait_item_bounds.rast
index f025e32520..bab8314562 100644
--- a/crates/parser/test_data/parser/inline/ok/0175_trait_item_bounds.rast
+++ b/crates/parser/test_data/parser/inline/ok/0175_trait_item_bounds.rast
@@ -1,29 +1,29 @@
+SOURCE_FILE
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Hash"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Clone"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0175_trait_item_bounds.txt b/crates/parser/test_data/parser/inline/ok/0175_trait_item_bounds.txt
deleted file mode 100644
index bab8314562..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0175_trait_item_bounds.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-SOURCE_FILE
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Hash"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Clone"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0176_trait_item_where_clause.rast b/crates/parser/test_data/parser/inline/ok/0176_trait_item_where_clause.rast
index 85105b4043..46cd8ee665 100644
--- a/crates/parser/test_data/parser/inline/ok/0176_trait_item_where_clause.rast
+++ b/crates/parser/test_data/parser/inline/ok/0176_trait_item_where_clause.rast
@@ -1,30 +1,30 @@
+SOURCE_FILE
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE " "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_TYPE_KW "Self"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0176_trait_item_where_clause.txt b/crates/parser/test_data/parser/inline/ok/0176_trait_item_where_clause.txt
deleted file mode 100644
index 46cd8ee665..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0176_trait_item_where_clause.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-SOURCE_FILE
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE " "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_TYPE_KW "Self"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0176_use_tree_alias.rast b/crates/parser/test_data/parser/inline/ok/0176_use_tree_alias.rast
index 210ff1f981..ef0dd6ba11 100644
--- a/crates/parser/test_data/parser/inline/ok/0176_use_tree_alias.rast
+++ b/crates/parser/test_data/parser/inline/ok/0176_use_tree_alias.rast
@@ -1,32 +1,32 @@
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ WHITESPACE " "
+ RENAME
+ AS_KW "as"
+ WHITESPACE " "
+ NAME
+ IDENT "stdlib"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Trait"
+ WHITESPACE " "
+ RENAME
+ AS_KW "as"
+ WHITESPACE " "
+ UNDERSCORE "_"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0176_use_tree_alias.txt b/crates/parser/test_data/parser/inline/ok/0176_use_tree_alias.txt
deleted file mode 100644
index ef0dd6ba11..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0176_use_tree_alias.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- WHITESPACE " "
- RENAME
- AS_KW "as"
- WHITESPACE " "
- NAME
- IDENT "stdlib"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Trait"
- WHITESPACE " "
- RENAME
- AS_KW "as"
- WHITESPACE " "
- UNDERSCORE "_"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0177_assoc_item_list_inner_attrs.rast b/crates/parser/test_data/parser/inline/ok/0177_assoc_item_list_inner_attrs.rast
index 65b4743d14..9cb3c8a5c3 100644
--- a/crates/parser/test_data/parser/inline/ok/0177_assoc_item_list_inner_attrs.rast
+++ b/crates/parser/test_data/parser/inline/ok/0177_assoc_item_list_inner_attrs.rast
@@ -1,26 +1,26 @@
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0177_assoc_item_list_inner_attrs.txt b/crates/parser/test_data/parser/inline/ok/0177_assoc_item_list_inner_attrs.txt
deleted file mode 100644
index 9cb3c8a5c3..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0177_assoc_item_list_inner_attrs.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE " "
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0177_trait_alias_where_clause.rast b/crates/parser/test_data/parser/inline/ok/0177_trait_alias_where_clause.rast
index 929182f8ee..4443d9d142 100644
--- a/crates/parser/test_data/parser/inline/ok/0177_trait_alias_where_clause.rast
+++ b/crates/parser/test_data/parser/inline/ok/0177_trait_alias_where_clause.rast
@@ -1,96 +1,96 @@
+SOURCE_FILE
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "Z"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "U"
+ R_ANGLE ">"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "U"
+ R_ANGLE ">"
+ WHITESPACE " "
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE " "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "U"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "Z"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "U"
+ R_ANGLE ">"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE " "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_TYPE_KW "Self"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "U"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0177_trait_alias_where_clause.txt b/crates/parser/test_data/parser/inline/ok/0177_trait_alias_where_clause.txt
deleted file mode 100644
index 4443d9d142..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0177_trait_alias_where_clause.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-SOURCE_FILE
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "Z"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "U"
- R_ANGLE ">"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "U"
- R_ANGLE ">"
- WHITESPACE " "
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE " "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "U"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- SEMICOLON ";"
- WHITESPACE "\n"
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "Z"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "U"
- R_ANGLE ">"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TYPE_BOUND_LIST
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE " "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_TYPE_KW "Self"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "U"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0177_use_tree.rast b/crates/parser/test_data/parser/inline/ok/0177_use_tree.rast
index 978d2963e8..98231cdc21 100644
--- a/crates/parser/test_data/parser/inline/ok/0177_use_tree.rast
+++ b/crates/parser/test_data/parser/inline/ok/0177_use_tree.rast
@@ -1,30 +1,30 @@
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "outer"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "tree"
+ COLON2 "::"
+ USE_TREE_LIST
+ L_CURLY "{"
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "inner"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "tree"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0177_use_tree.txt b/crates/parser/test_data/parser/inline/ok/0177_use_tree.txt
deleted file mode 100644
index 98231cdc21..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0177_use_tree.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "outer"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "tree"
- COLON2 "::"
- USE_TREE_LIST
- L_CURLY "{"
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "inner"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "tree"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0177_use_tree_path.rast b/crates/parser/test_data/parser/inline/ok/0177_use_tree_path.rast
index 24086b5a1d..ede22dbaf5 100644
--- a/crates/parser/test_data/parser/inline/ok/0177_use_tree_path.rast
+++ b/crates/parser/test_data/parser/inline/ok/0177_use_tree_path.rast
@@ -1,72 +1,72 @@
- [email protected] "collections"
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "std"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "collections"
+ SEMICOLON ";"
+ WHITESPACE "\n\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_KW "self"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "m"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SUPER_KW "super"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "m"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ CRATE_KW "crate"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "m"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0177_use_tree_path.txt b/crates/parser/test_data/parser/inline/ok/0177_use_tree_path.txt
deleted file mode 100644
index ede22dbaf5..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0177_use_tree_path.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "std"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "collections"
- SEMICOLON ";"
- WHITESPACE "\n\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_KW "self"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "m"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- SUPER_KW "super"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "m"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- CRATE_KW "crate"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "m"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0178_use_tree_path_use_tree.rast b/crates/parser/test_data/parser/inline/ok/0178_use_tree_path_use_tree.rast
index 620a792306..ed3cafae13 100644
--- a/crates/parser/test_data/parser/inline/ok/0178_use_tree_path_use_tree.rast
+++ b/crates/parser/test_data/parser/inline/ok/0178_use_tree_path_use_tree.rast
@@ -1,20 +1,20 @@
- [email protected] "collections"
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ USE_TREE_LIST
+ L_CURLY "{"
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "collections"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0178_use_tree_path_use_tree.txt b/crates/parser/test_data/parser/inline/ok/0178_use_tree_path_use_tree.txt
deleted file mode 100644
index ed3cafae13..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0178_use_tree_path_use_tree.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- USE_TREE_LIST
- L_CURLY "{"
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "collections"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0179_use_tree_abs_star.rast b/crates/parser/test_data/parser/inline/ok/0179_use_tree_abs_star.rast
index 4b132f2ded..b4dc1f25d9 100644
--- a/crates/parser/test_data/parser/inline/ok/0179_use_tree_abs_star.rast
+++ b/crates/parser/test_data/parser/inline/ok/0179_use_tree_abs_star.rast
@@ -1,26 +1,26 @@
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ COLON2 "::"
+ STAR "*"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ USE_TREE_LIST
+ L_CURLY "{"
+ USE_TREE
+ COLON2 "::"
+ STAR "*"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0179_use_tree_abs_star.txt b/crates/parser/test_data/parser/inline/ok/0179_use_tree_abs_star.txt
deleted file mode 100644
index b4dc1f25d9..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0179_use_tree_abs_star.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- COLON2 "::"
- STAR "*"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- USE_TREE_LIST
- L_CURLY "{"
- USE_TREE
- COLON2 "::"
- STAR "*"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0180_use_tree_path_star.rast b/crates/parser/test_data/parser/inline/ok/0180_use_tree_path_star.rast
index 93384d6ed7..d255adb5a4 100644
--- a/crates/parser/test_data/parser/inline/ok/0180_use_tree_path_star.rast
+++ b/crates/parser/test_data/parser/inline/ok/0180_use_tree_path_star.rast
@@ -1,13 +1,13 @@
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ STAR "*"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0180_use_tree_path_star.txt b/crates/parser/test_data/parser/inline/ok/0180_use_tree_path_star.txt
deleted file mode 100644
index d255adb5a4..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0180_use_tree_path_star.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- STAR "*"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0181_generic_param_attribute.rast b/crates/parser/test_data/parser/inline/ok/0181_generic_param_attribute.rast
index 4564f43e0f..28a216e873 100644
--- a/crates/parser/test_data/parser/inline/ok/0181_generic_param_attribute.rast
+++ b/crates/parser/test_data/parser/inline/ok/0181_generic_param_attribute.rast
@@ -1,46 +1,46 @@
- [email protected] "lt_attr"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "lt_attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COMMA ","
+ WHITESPACE " "
+ TYPE_PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "t_attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0181_generic_param_attribute.txt b/crates/parser/test_data/parser/inline/ok/0181_generic_param_attribute.txt
deleted file mode 100644
index 28a216e873..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0181_generic_param_attribute.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "lt_attr"
- R_BRACK "]"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'a"
- COMMA ","
- WHITESPACE " "
- TYPE_PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "t_attr"
- R_BRACK "]"
- WHITESPACE " "
- NAME
- IDENT "T"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0181_use_item.rast b/crates/parser/test_data/parser/inline/ok/0181_use_item.rast
index 3952fcf09e..25761ed8c7 100644
--- a/crates/parser/test_data/parser/inline/ok/0181_use_item.rast
+++ b/crates/parser/test_data/parser/inline/ok/0181_use_item.rast
@@ -1,16 +1,16 @@
- [email protected] "collections"
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "collections"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0181_use_item.txt b/crates/parser/test_data/parser/inline/ok/0181_use_item.txt
deleted file mode 100644
index 25761ed8c7..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0181_use_item.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "collections"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0182_lifetime_param.rast b/crates/parser/test_data/parser/inline/ok/0182_lifetime_param.rast
index 704c991fe1..c595031f35 100644
--- a/crates/parser/test_data/parser/inline/ok/0182_lifetime_param.rast
+++ b/crates/parser/test_data/parser/inline/ok/0182_lifetime_param.rast
@@ -1,25 +1,25 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COLON ":"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0182_lifetime_param.txt b/crates/parser/test_data/parser/inline/ok/0182_lifetime_param.txt
deleted file mode 100644
index c595031f35..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0182_lifetime_param.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- COLON ":"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'b"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0183_const_arg_block.rast b/crates/parser/test_data/parser/inline/ok/0183_const_arg_block.rast
index 6bbb6c40dd..ea8866da27 100644
--- a/crates/parser/test_data/parser/inline/ok/0183_const_arg_block.rast
+++ b/crates/parser/test_data/parser/inline/ok/0183_const_arg_block.rast
@@ -1,32 +1,32 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ CONST_ARG
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "90"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ R_CURLY "}"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0183_const_arg_block.txt b/crates/parser/test_data/parser/inline/ok/0183_const_arg_block.txt
deleted file mode 100644
index ea8866da27..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0183_const_arg_block.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- CONST_ARG
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- BIN_EXPR
- LITERAL
- INT_NUMBER "90"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- R_CURLY "}"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0183_type_param.rast b/crates/parser/test_data/parser/inline/ok/0183_type_param.rast
index 450bccff33..becb77e042 100644
--- a/crates/parser/test_data/parser/inline/ok/0183_type_param.rast
+++ b/crates/parser/test_data/parser/inline/ok/0183_type_param.rast
@@ -1,30 +1,30 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Clone"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0183_type_param.txt b/crates/parser/test_data/parser/inline/ok/0183_type_param.txt
deleted file mode 100644
index becb77e042..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0183_type_param.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Clone"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0184_const_arg.rast b/crates/parser/test_data/parser/inline/ok/0184_const_arg.rast
index 15bfcb26ef..1e03007172 100644
--- a/crates/parser/test_data/parser/inline/ok/0184_const_arg.rast
+++ b/crates/parser/test_data/parser/inline/ok/0184_const_arg.rast
@@ -1,22 +1,22 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ CONST_ARG
+ LITERAL
+ INT_NUMBER "92"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0184_const_arg.txt b/crates/parser/test_data/parser/inline/ok/0184_const_arg.txt
deleted file mode 100644
index 1e03007172..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0184_const_arg.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- CONST_ARG
- LITERAL
- INT_NUMBER "92"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0184_generic_param_list.rast b/crates/parser/test_data/parser/inline/ok/0184_generic_param_list.rast
index 450bccff33..becb77e042 100644
--- a/crates/parser/test_data/parser/inline/ok/0184_generic_param_list.rast
+++ b/crates/parser/test_data/parser/inline/ok/0184_generic_param_list.rast
@@ -1,30 +1,30 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Clone"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0184_generic_param_list.txt b/crates/parser/test_data/parser/inline/ok/0184_generic_param_list.txt
deleted file mode 100644
index becb77e042..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0184_generic_param_list.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Clone"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0185_assoc_type_bound.rast b/crates/parser/test_data/parser/inline/ok/0185_assoc_type_bound.rast
index 24519dc841..f2e4e01069 100644
--- a/crates/parser/test_data/parser/inline/ok/0185_assoc_type_bound.rast
+++ b/crates/parser/test_data/parser/inline/ok/0185_assoc_type_bound.rast
@@ -1,37 +1,37 @@
- [email protected] "StreamingIterator"
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "StreamingIterator"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ ASSOC_TYPE_ARG
+ NAME_REF
+ IDENT "Item"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Clone"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0185_assoc_type_bound.txt b/crates/parser/test_data/parser/inline/ok/0185_assoc_type_bound.txt
deleted file mode 100644
index f2e4e01069..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0185_assoc_type_bound.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "StreamingIterator"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- ASSOC_TYPE_ARG
- NAME_REF
- IDENT "Item"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Clone"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0186_lifetime_arg.rast b/crates/parser/test_data/parser/inline/ok/0186_lifetime_arg.rast
index 812d222211..dbd7ff3061 100644
--- a/crates/parser/test_data/parser/inline/ok/0186_lifetime_arg.rast
+++ b/crates/parser/test_data/parser/inline/ok/0186_lifetime_arg.rast
@@ -1,22 +1,22 @@
- [email protected] "'static"
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'static"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0186_lifetime_arg.txt b/crates/parser/test_data/parser/inline/ok/0186_lifetime_arg.txt
deleted file mode 100644
index dbd7ff3061..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0186_lifetime_arg.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'static"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0187_assoc_type_eq.rast b/crates/parser/test_data/parser/inline/ok/0187_assoc_type_eq.rast
index 308cea77f5..9704318403 100644
--- a/crates/parser/test_data/parser/inline/ok/0187_assoc_type_eq.rast
+++ b/crates/parser/test_data/parser/inline/ok/0187_assoc_type_eq.rast
@@ -1,41 +1,41 @@
- [email protected] "StreamingIterator"
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "StreamingIterator"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ ASSOC_TYPE_ARG
+ NAME_REF
+ IDENT "Item"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0187_assoc_type_eq.txt b/crates/parser/test_data/parser/inline/ok/0187_assoc_type_eq.txt
deleted file mode 100644
index 9704318403..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0187_assoc_type_eq.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "StreamingIterator"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- ASSOC_TYPE_ARG
- NAME_REF
- IDENT "Item"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0188_const_arg_path.rast b/crates/parser/test_data/parser/inline/ok/0188_const_arg_path.rast
index 8da0121001..440dfb06a3 100644
--- a/crates/parser/test_data/parser/inline/ok/0188_const_arg_path.rast
+++ b/crates/parser/test_data/parser/inline/ok/0188_const_arg_path.rast
@@ -1,37 +1,37 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ CONST_PARAM
+ CONST_KW "const"
+ WHITESPACE " "
+ NAME
+ IDENT "N"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ CONST_ARG
+ PATH_EXPR
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "MAX"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0188_const_arg_path.txt b/crates/parser/test_data/parser/inline/ok/0188_const_arg_path.txt
deleted file mode 100644
index 440dfb06a3..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0188_const_arg_path.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- CONST_PARAM
- CONST_KW "const"
- WHITESPACE " "
- NAME
- IDENT "N"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- CONST_ARG
- PATH_EXPR
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "MAX"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0189_const_arg_literal.rast b/crates/parser/test_data/parser/inline/ok/0189_const_arg_literal.rast
index a94cd256aa..03d414e336 100644
--- a/crates/parser/test_data/parser/inline/ok/0189_const_arg_literal.rast
+++ b/crates/parser/test_data/parser/inline/ok/0189_const_arg_literal.rast
@@ -1,27 +1,27 @@
- [email protected] "\"hello\""
- [email protected] "0xdeadbeef"
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ CONST_ARG
+ LITERAL
+ STRING "\"hello\""
+ COMMA ","
+ WHITESPACE " "
+ CONST_ARG
+ LITERAL
+ INT_NUMBER "0xdeadbeef"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0189_const_arg_literal.txt b/crates/parser/test_data/parser/inline/ok/0189_const_arg_literal.txt
deleted file mode 100644
index 03d414e336..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0189_const_arg_literal.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- CONST_ARG
- LITERAL
- STRING "\"hello\""
- COMMA ","
- WHITESPACE " "
- CONST_ARG
- LITERAL
- INT_NUMBER "0xdeadbeef"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0190_generic_arg.rast b/crates/parser/test_data/parser/inline/ok/0190_generic_arg.rast
index c41d29071b..5a01f154ba 100644
--- a/crates/parser/test_data/parser/inline/ok/0190_generic_arg.rast
+++ b/crates/parser/test_data/parser/inline/ok/0190_generic_arg.rast
@@ -1,25 +1,25 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0190_generic_arg.txt b/crates/parser/test_data/parser/inline/ok/0190_generic_arg.txt
deleted file mode 100644
index 5a01f154ba..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0190_generic_arg.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0191_const_arg_negative_number.rast b/crates/parser/test_data/parser/inline/ok/0191_const_arg_negative_number.rast
index 87ff6cb7bf..e504badbd3 100644
--- a/crates/parser/test_data/parser/inline/ok/0191_const_arg_negative_number.rast
+++ b/crates/parser/test_data/parser/inline/ok/0191_const_arg_negative_number.rast
@@ -1,24 +1,24 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ CONST_ARG
+ PREFIX_EXPR
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "92"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0191_const_arg_negative_number.txt b/crates/parser/test_data/parser/inline/ok/0191_const_arg_negative_number.txt
deleted file mode 100644
index e504badbd3..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0191_const_arg_negative_number.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- CONST_ARG
- PREFIX_EXPR
- MINUS "-"
- LITERAL
- INT_NUMBER "92"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0192_const_arg_bool_literal.rast b/crates/parser/test_data/parser/inline/ok/0192_const_arg_bool_literal.rast
index 7c44c6b82d..aea23e463d 100644
--- a/crates/parser/test_data/parser/inline/ok/0192_const_arg_bool_literal.rast
+++ b/crates/parser/test_data/parser/inline/ok/0192_const_arg_bool_literal.rast
@@ -1,22 +1,22 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ CONST_ARG
+ LITERAL
+ TRUE_KW "true"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0192_const_arg_bool_literal.txt b/crates/parser/test_data/parser/inline/ok/0192_const_arg_bool_literal.txt
deleted file mode 100644
index aea23e463d..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0192_const_arg_bool_literal.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- CONST_ARG
- LITERAL
- TRUE_KW "true"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0193_let_stmt_init.rast b/crates/parser/test_data/parser/inline/ok/0193_let_stmt_init.rast
index dcb7b1c459..1b63991587 100644
--- a/crates/parser/test_data/parser/inline/ok/0193_let_stmt_init.rast
+++ b/crates/parser/test_data/parser/inline/ok/0193_let_stmt_init.rast
@@ -1,29 +1,29 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0193_let_stmt_init.txt b/crates/parser/test_data/parser/inline/ok/0193_let_stmt_init.txt
deleted file mode 100644
index 1b63991587..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0193_let_stmt_init.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0194_let_else.rast b/crates/parser/test_data/parser/inline/ok/0194_let_else.rast
index ed0613a38f..ce7f1a35e8 100644
--- a/crates/parser/test_data/parser/inline/ok/0194_let_else.rast
+++ b/crates/parser/test_data/parser/inline/ok/0194_let_else.rast
@@ -1,51 +1,51 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "opt"
+ WHITESPACE " "
+ LET_ELSE
+ ELSE_KW "else"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RETURN_EXPR
+ RETURN_KW "return"
+ WHITESPACE " "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0194_let_else.txt b/crates/parser/test_data/parser/inline/ok/0194_let_else.txt
deleted file mode 100644
index ce7f1a35e8..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0194_let_else.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "x"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "opt"
- WHITESPACE " "
- LET_ELSE
- ELSE_KW "else"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- RETURN_EXPR
- RETURN_KW "return"
- WHITESPACE " "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0194_let_stmt_ascription.rast b/crates/parser/test_data/parser/inline/ok/0194_let_stmt_ascription.rast
index 679b0c4ce9..ac8e1d93cb 100644
--- a/crates/parser/test_data/parser/inline/ok/0194_let_stmt_ascription.rast
+++ b/crates/parser/test_data/parser/inline/ok/0194_let_stmt_ascription.rast
@@ -1,31 +1,31 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0194_let_stmt_ascription.txt b/crates/parser/test_data/parser/inline/ok/0194_let_stmt_ascription.txt
deleted file mode 100644
index ac8e1d93cb..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0194_let_stmt_ascription.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0194_macro_inside_generic_arg.rast b/crates/parser/test_data/parser/inline/ok/0194_macro_inside_generic_arg.rast
index 37306ba6ac..88f8a73450 100644
--- a/crates/parser/test_data/parser/inline/ok/0194_macro_inside_generic_arg.rast
+++ b/crates/parser/test_data/parser/inline/ok/0194_macro_inside_generic_arg.rast
@@ -1,36 +1,36 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ MACRO_TYPE
+ MACRO_CALL
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "syn"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Token"
+ BANG "!"
+ TOKEN_TREE
+ L_BRACK "["
+ UNDERSCORE "_"
+ R_BRACK "]"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0194_macro_inside_generic_arg.txt b/crates/parser/test_data/parser/inline/ok/0194_macro_inside_generic_arg.txt
deleted file mode 100644
index 88f8a73450..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0194_macro_inside_generic_arg.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "A"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- MACRO_TYPE
- MACRO_CALL
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "syn"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Token"
- BANG "!"
- TOKEN_TREE
- L_BRACK "["
- UNDERSCORE "_"
- R_BRACK "]"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0196_pub_tuple_field.rast b/crates/parser/test_data/parser/inline/ok/0196_pub_tuple_field.rast
index 8a1f5903d2..a23ddf69f2 100644
--- a/crates/parser/test_data/parser/inline/ok/0196_pub_tuple_field.rast
+++ b/crates/parser/test_data/parser/inline/ok/0196_pub_tuple_field.rast
@@ -1,30 +1,30 @@
- [email protected] "MyStruct"
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "MyStruct"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ TUPLE_FIELD
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ COMMA ","
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0196_pub_tuple_field.txt b/crates/parser/test_data/parser/inline/ok/0196_pub_tuple_field.txt
deleted file mode 100644
index a23ddf69f2..0000000000
--- a/crates/parser/test_data/parser/inline/ok/0196_pub_tuple_field.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "MyStruct"
- TUPLE_FIELD_LIST
- L_PAREN "("
- TUPLE_FIELD
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- COMMA ","
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/inline/ok/0197_destructuring_assignment_struct_rest_pattern.txt b/crates/parser/test_data/parser/inline/ok/0197_destructuring_assignment_struct_rest_pattern.rast
index fb8aa5accb..fb8aa5accb 100644
--- a/crates/parser/test_data/parser/inline/ok/0197_destructuring_assignment_struct_rest_pattern.txt
+++ b/crates/parser/test_data/parser/inline/ok/0197_destructuring_assignment_struct_rest_pattern.rast
diff --git a/crates/parser/test_data/parser/inline/ok/0198_destructuring_assignment_wildcard_pat.txt b/crates/parser/test_data/parser/inline/ok/0198_destructuring_assignment_wildcard_pat.rast
index 5f53d34510..5f53d34510 100644
--- a/crates/parser/test_data/parser/inline/ok/0198_destructuring_assignment_wildcard_pat.txt
+++ b/crates/parser/test_data/parser/inline/ok/0198_destructuring_assignment_wildcard_pat.rast
diff --git a/crates/parser/test_data/parser/ok/0000_empty.rast b/crates/parser/test_data/parser/ok/0000_empty.rast
index 6b234b0b24..40b9ef804c 100644
--- a/crates/parser/test_data/parser/ok/0000_empty.rast
+++ b/crates/parser/test_data/parser/ok/0000_empty.rast
@@ -1 +1 @@
+SOURCE_FILE
diff --git a/crates/parser/test_data/parser/ok/0000_empty.txt b/crates/parser/test_data/parser/ok/0000_empty.txt
deleted file mode 100644
index 40b9ef804c..0000000000
--- a/crates/parser/test_data/parser/ok/0000_empty.txt
+++ /dev/null
@@ -1 +0,0 @@
-SOURCE_FILE
diff --git a/crates/parser/test_data/parser/ok/0001_struct_item.rast b/crates/parser/test_data/parser/ok/0001_struct_item.rast
index a171fe7a86..0e9639f23d 100644
--- a/crates/parser/test_data/parser/ok/0001_struct_item.rast
+++ b/crates/parser/test_data/parser/ok/0001_struct_item.rast
@@ -1,39 +1,39 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ R_ANGLE ">"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RECORD_FIELD
+ NAME
+ IDENT "f"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ COMMA ","
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0001_struct_item.txt b/crates/parser/test_data/parser/ok/0001_struct_item.txt
deleted file mode 100644
index 0e9639f23d..0000000000
--- a/crates/parser/test_data/parser/ok/0001_struct_item.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- R_ANGLE ">"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RECORD_FIELD
- NAME
- IDENT "f"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- COMMA ","
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0002_struct_item_field.rast b/crates/parser/test_data/parser/ok/0002_struct_item_field.rast
index 362892b91f..dd52e5850e 100644
--- a/crates/parser/test_data/parser/ok/0002_struct_item_field.rast
+++ b/crates/parser/test_data/parser/ok/0002_struct_item_field.rast
@@ -1,22 +1,22 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RECORD_FIELD
+ NAME
+ IDENT "foo"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ WHITESPACE "\n"
+ R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0002_struct_item_field.txt b/crates/parser/test_data/parser/ok/0002_struct_item_field.txt
deleted file mode 100644
index dd52e5850e..0000000000
--- a/crates/parser/test_data/parser/ok/0002_struct_item_field.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RECORD_FIELD
- NAME
- IDENT "foo"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- WHITESPACE "\n"
- R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0004_file_shebang.rast b/crates/parser/test_data/parser/ok/0004_file_shebang.rast
index 67e21df13a..698957189f 100644
--- a/crates/parser/test_data/parser/ok/0004_file_shebang.rast
+++ b/crates/parser/test_data/parser/ok/0004_file_shebang.rast
@@ -1,2 +1,2 @@
- [email protected] "#!/use/bin/env rusti"
+SOURCE_FILE
+ SHEBANG "#!/use/bin/env rusti"
diff --git a/crates/parser/test_data/parser/ok/0004_file_shebang.txt b/crates/parser/test_data/parser/ok/0004_file_shebang.txt
deleted file mode 100644
index 698957189f..0000000000
--- a/crates/parser/test_data/parser/ok/0004_file_shebang.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-SOURCE_FILE
- SHEBANG "#!/use/bin/env rusti"
diff --git a/crates/parser/test_data/parser/ok/0005_fn_item.rast b/crates/parser/test_data/parser/ok/0005_fn_item.rast
index 845f9a6f35..756d20e4d6 100644
--- a/crates/parser/test_data/parser/ok/0005_fn_item.rast
+++ b/crates/parser/test_data/parser/ok/0005_fn_item.rast
@@ -1,16 +1,16 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0005_fn_item.txt b/crates/parser/test_data/parser/ok/0005_fn_item.txt
deleted file mode 100644
index 756d20e4d6..0000000000
--- a/crates/parser/test_data/parser/ok/0005_fn_item.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0006_inner_attributes.rast b/crates/parser/test_data/parser/ok/0006_inner_attributes.rast
index be2d1dc123..cb63ba80e7 100644
--- a/crates/parser/test_data/parser/ok/0006_inner_attributes.rast
+++ b/crates/parser/test_data/parser/ok/0006_inner_attributes.rast
@@ -1,194 +1,194 @@
- [email protected] "\"true\""
- [email protected] "\"hello\""
- [email protected] "enabled"
- [email protected] "enabled"
- [email protected] "\"hello\""
+SOURCE_FILE
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ TOKEN_TREE
+ L_PAREN "("
+ TRUE_KW "true"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "ident"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "ident"
+ COMMA ","
+ WHITESPACE " "
+ INT_NUMBER "100"
+ COMMA ","
+ WHITESPACE " "
+ TRUE_KW "true"
+ COMMA ","
+ WHITESPACE " "
+ STRING "\"true\""
+ COMMA ","
+ WHITESPACE " "
+ IDENT "ident"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ INT_NUMBER "100"
+ COMMA ","
+ WHITESPACE " "
+ IDENT "ident"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ STRING "\"hello\""
+ COMMA ","
+ WHITESPACE " "
+ IDENT "ident"
+ TOKEN_TREE
+ L_PAREN "("
+ INT_NUMBER "100"
+ R_PAREN ")"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ TOKEN_TREE
+ L_PAREN "("
+ INT_NUMBER "100"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "enabled"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TRUE_KW "true"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "enabled"
+ TOKEN_TREE
+ L_PAREN "("
+ TRUE_KW "true"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"hello\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "repr"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "C"
+ COMMA ","
+ WHITESPACE " "
+ IDENT "align"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ INT_NUMBER "4"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "repr"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "C"
+ COMMA ","
+ WHITESPACE " "
+ IDENT "align"
+ TOKEN_TREE
+ L_PAREN "("
+ INT_NUMBER "4"
+ R_PAREN ")"
+ R_PAREN ")"
+ R_BRACK "]"
diff --git a/crates/parser/test_data/parser/ok/0006_inner_attributes.txt b/crates/parser/test_data/parser/ok/0006_inner_attributes.txt
deleted file mode 100644
index cb63ba80e7..0000000000
--- a/crates/parser/test_data/parser/ok/0006_inner_attributes.txt
+++ /dev/null
@@ -1,194 +0,0 @@
-SOURCE_FILE
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- TOKEN_TREE
- L_PAREN "("
- TRUE_KW "true"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- TOKEN_TREE
- L_PAREN "("
- IDENT "ident"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- TOKEN_TREE
- L_PAREN "("
- IDENT "ident"
- COMMA ","
- WHITESPACE " "
- INT_NUMBER "100"
- COMMA ","
- WHITESPACE " "
- TRUE_KW "true"
- COMMA ","
- WHITESPACE " "
- STRING "\"true\""
- COMMA ","
- WHITESPACE " "
- IDENT "ident"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- INT_NUMBER "100"
- COMMA ","
- WHITESPACE " "
- IDENT "ident"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- STRING "\"hello\""
- COMMA ","
- WHITESPACE " "
- IDENT "ident"
- TOKEN_TREE
- L_PAREN "("
- INT_NUMBER "100"
- R_PAREN ")"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- TOKEN_TREE
- L_PAREN "("
- INT_NUMBER "100"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- TOKEN_TREE
- L_PAREN "("
- IDENT "enabled"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TRUE_KW "true"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "enabled"
- TOKEN_TREE
- L_PAREN "("
- TRUE_KW "true"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"hello\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "repr"
- TOKEN_TREE
- L_PAREN "("
- IDENT "C"
- COMMA ","
- WHITESPACE " "
- IDENT "align"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- INT_NUMBER "4"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "repr"
- TOKEN_TREE
- L_PAREN "("
- IDENT "C"
- COMMA ","
- WHITESPACE " "
- IDENT "align"
- TOKEN_TREE
- L_PAREN "("
- INT_NUMBER "4"
- R_PAREN ")"
- R_PAREN ")"
- R_BRACK "]"
diff --git a/crates/parser/test_data/parser/ok/0007_extern_crate.rast b/crates/parser/test_data/parser/ok/0007_extern_crate.rast
index 4babdba927..8b9259fd6b 100644
--- a/crates/parser/test_data/parser/ok/0007_extern_crate.rast
+++ b/crates/parser/test_data/parser/ok/0007_extern_crate.rast
@@ -1,40 +1,40 @@
+SOURCE_FILE
+ EXTERN_CRATE
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ CRATE_KW "crate"
+ WHITESPACE " "
+ NAME_REF
+ IDENT "foo"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ EXTERN_CRATE
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ CRATE_KW "crate"
+ WHITESPACE " "
+ NAME_REF
+ IDENT "foo"
+ WHITESPACE " "
+ RENAME
+ AS_KW "as"
+ WHITESPACE " "
+ NAME
+ IDENT "bar"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ EXTERN_CRATE
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ CRATE_KW "crate"
+ WHITESPACE " "
+ NAME_REF
+ SELF_KW "self"
+ WHITESPACE " "
+ RENAME
+ AS_KW "as"
+ WHITESPACE " "
+ NAME
+ IDENT "baz"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0007_extern_crate.txt b/crates/parser/test_data/parser/ok/0007_extern_crate.txt
deleted file mode 100644
index 8b9259fd6b..0000000000
--- a/crates/parser/test_data/parser/ok/0007_extern_crate.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-SOURCE_FILE
- EXTERN_CRATE
- EXTERN_KW "extern"
- WHITESPACE " "
- CRATE_KW "crate"
- WHITESPACE " "
- NAME_REF
- IDENT "foo"
- SEMICOLON ";"
- WHITESPACE "\n"
- EXTERN_CRATE
- EXTERN_KW "extern"
- WHITESPACE " "
- CRATE_KW "crate"
- WHITESPACE " "
- NAME_REF
- IDENT "foo"
- WHITESPACE " "
- RENAME
- AS_KW "as"
- WHITESPACE " "
- NAME
- IDENT "bar"
- SEMICOLON ";"
- WHITESPACE "\n"
- EXTERN_CRATE
- EXTERN_KW "extern"
- WHITESPACE " "
- CRATE_KW "crate"
- WHITESPACE " "
- NAME_REF
- SELF_KW "self"
- WHITESPACE " "
- RENAME
- AS_KW "as"
- WHITESPACE " "
- NAME
- IDENT "baz"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0008_mod_item.rast b/crates/parser/test_data/parser/ok/0008_mod_item.rast
index e864641834..adee67181b 100644
--- a/crates/parser/test_data/parser/ok/0008_mod_item.rast
+++ b/crates/parser/test_data/parser/ok/0008_mod_item.rast
@@ -1,77 +1,77 @@
+SOURCE_FILE
+ MODULE
+ MOD_KW "mod"
+ WHITESPACE " "
+ NAME
+ IDENT "c"
+ WHITESPACE " "
+ ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ MODULE
+ MOD_KW "mod"
+ WHITESPACE " "
+ NAME
+ IDENT "d"
+ WHITESPACE " "
+ ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ MODULE
+ MOD_KW "mod"
+ WHITESPACE " "
+ NAME
+ IDENT "e"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ MODULE
+ MOD_KW "mod"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ WHITESPACE " "
+ ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0008_mod_item.txt b/crates/parser/test_data/parser/ok/0008_mod_item.txt
deleted file mode 100644
index adee67181b..0000000000
--- a/crates/parser/test_data/parser/ok/0008_mod_item.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-SOURCE_FILE
- MODULE
- MOD_KW "mod"
- WHITESPACE " "
- NAME
- IDENT "c"
- WHITESPACE " "
- ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- MODULE
- MOD_KW "mod"
- WHITESPACE " "
- NAME
- IDENT "d"
- WHITESPACE " "
- ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE "\n "
- MODULE
- MOD_KW "mod"
- WHITESPACE " "
- NAME
- IDENT "e"
- SEMICOLON ";"
- WHITESPACE "\n "
- MODULE
- MOD_KW "mod"
- WHITESPACE " "
- NAME
- IDENT "f"
- WHITESPACE " "
- ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0009_use_item.rast b/crates/parser/test_data/parser/ok/0009_use_item.rast
index 6be1cf9fc8..04a44ef7e4 100644
--- a/crates/parser/test_data/parser/ok/0009_use_item.rast
+++ b/crates/parser/test_data/parser/ok/0009_use_item.rast
@@ -1,21 +1,21 @@
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "bar"
+ SEMICOLON ";"
diff --git a/crates/parser/test_data/parser/ok/0009_use_item.txt b/crates/parser/test_data/parser/ok/0009_use_item.txt
deleted file mode 100644
index 04a44ef7e4..0000000000
--- a/crates/parser/test_data/parser/ok/0009_use_item.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "bar"
- SEMICOLON ";"
diff --git a/crates/parser/test_data/parser/ok/0010_use_path_segments.rast b/crates/parser/test_data/parser/ok/0010_use_path_segments.rast
index 4d49e79337..ddadec817b 100644
--- a/crates/parser/test_data/parser/ok/0010_use_path_segments.rast
+++ b/crates/parser/test_data/parser/ok/0010_use_path_segments.rast
@@ -1,42 +1,42 @@
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "foo"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "baz"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "baz"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0010_use_path_segments.txt b/crates/parser/test_data/parser/ok/0010_use_path_segments.txt
deleted file mode 100644
index ddadec817b..0000000000
--- a/crates/parser/test_data/parser/ok/0010_use_path_segments.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "foo"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "baz"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "baz"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0011_outer_attribute.rast b/crates/parser/test_data/parser/ok/0011_outer_attribute.rast
index bb35b40f4e..dbb9bc54da 100644
--- a/crates/parser/test_data/parser/ok/0011_outer_attribute.rast
+++ b/crates/parser/test_data/parser/ok/0011_outer_attribute.rast
@@ -1,61 +1,61 @@
- [email protected] "\"a.rs\""
+SOURCE_FILE
+ FN
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "test"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Ignore"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ MODULE
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "path"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ STRING "\"a.rs\""
+ R_BRACK "]"
+ WHITESPACE "\n"
+ MOD_KW "mod"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0011_outer_attribute.txt b/crates/parser/test_data/parser/ok/0011_outer_attribute.txt
deleted file mode 100644
index dbb9bc54da..0000000000
--- a/crates/parser/test_data/parser/ok/0011_outer_attribute.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-SOURCE_FILE
- FN
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "test"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Ignore"
- R_BRACK "]"
- WHITESPACE "\n"
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- MODULE
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "path"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- STRING "\"a.rs\""
- R_BRACK "]"
- WHITESPACE "\n"
- MOD_KW "mod"
- WHITESPACE " "
- NAME
- IDENT "b"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0012_visibility.rast b/crates/parser/test_data/parser/ok/0012_visibility.rast
index e046b0bb1c..a95bc23016 100644
--- a/crates/parser/test_data/parser/ok/0012_visibility.rast
+++ b/crates/parser/test_data/parser/ok/0012_visibility.rast
@@ -1,133 +1,133 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "a"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ MACRO_DEF
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ MACRO_KW "macro"
+ WHITESPACE " "
+ NAME
+ IDENT "m"
+ TOKEN_TREE
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ COLON ":"
+ IDENT "ident"
+ R_PAREN ")"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ L_PAREN "("
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ CRATE_KW "crate"
+ R_PAREN ")"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "c"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ L_PAREN "("
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SUPER_KW "super"
+ R_PAREN ")"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "d"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ L_PAREN "("
+ IN_KW "in"
+ WHITESPACE " "
+ PATH
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "baz"
+ R_PAREN ")"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "e"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0012_visibility.txt b/crates/parser/test_data/parser/ok/0012_visibility.txt
deleted file mode 100644
index a95bc23016..0000000000
--- a/crates/parser/test_data/parser/ok/0012_visibility.txt
+++ /dev/null
@@ -1,133 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "a"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "b"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- MACRO_DEF
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- MACRO_KW "macro"
- WHITESPACE " "
- NAME
- IDENT "m"
- TOKEN_TREE
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- COLON ":"
- IDENT "ident"
- R_PAREN ")"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- VISIBILITY
- PUB_KW "pub"
- L_PAREN "("
- PATH
- PATH_SEGMENT
- NAME_REF
- CRATE_KW "crate"
- R_PAREN ")"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "c"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- VISIBILITY
- PUB_KW "pub"
- L_PAREN "("
- PATH
- PATH_SEGMENT
- NAME_REF
- SUPER_KW "super"
- R_PAREN ")"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "d"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- VISIBILITY
- PUB_KW "pub"
- L_PAREN "("
- IN_KW "in"
- WHITESPACE " "
- PATH
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "baz"
- R_PAREN ")"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "e"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0013_use_path_self_super.rast b/crates/parser/test_data/parser/ok/0013_use_path_self_super.rast
index dba74e222e..8a0149caca 100644
--- a/crates/parser/test_data/parser/ok/0013_use_path_self_super.rast
+++ b/crates/parser/test_data/parser/ok/0013_use_path_self_super.rast
@@ -1,36 +1,36 @@
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_KW "self"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SUPER_KW "super"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ SUPER_KW "super"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0013_use_path_self_super.txt b/crates/parser/test_data/parser/ok/0013_use_path_self_super.txt
deleted file mode 100644
index 8a0149caca..0000000000
--- a/crates/parser/test_data/parser/ok/0013_use_path_self_super.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_KW "self"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- SUPER_KW "super"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- SUPER_KW "super"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0014_use_tree.rast b/crates/parser/test_data/parser/ok/0014_use_tree.rast
index 4389d2d4bc..b37edc365b 100644
--- a/crates/parser/test_data/parser/ok/0014_use_tree.rast
+++ b/crates/parser/test_data/parser/ok/0014_use_tree.rast
@@ -1,95 +1,95 @@
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ STAR "*"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ COLON2 "::"
+ STAR "*"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ COLON2 "::"
+ USE_TREE_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ USE_TREE_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ COLON2 "::"
+ STAR "*"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ COLON2 "::"
+ USE_TREE_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "foo"
+ COLON2 "::"
+ USE_TREE_LIST
+ L_CURLY "{"
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "b"
+ COMMA ","
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "c"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0014_use_tree.txt b/crates/parser/test_data/parser/ok/0014_use_tree.txt
deleted file mode 100644
index b37edc365b..0000000000
--- a/crates/parser/test_data/parser/ok/0014_use_tree.txt
+++ /dev/null
@@ -1,95 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- STAR "*"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- COLON2 "::"
- STAR "*"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- COLON2 "::"
- USE_TREE_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- USE_TREE_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- COLON2 "::"
- STAR "*"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- COLON2 "::"
- USE_TREE_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "foo"
- COLON2 "::"
- USE_TREE_LIST
- L_CURLY "{"
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "b"
- COMMA ","
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "c"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0015_use_tree.rast b/crates/parser/test_data/parser/ok/0015_use_tree.rast
index d7e93f7eb7..ddf8aad6fc 100644
--- a/crates/parser/test_data/parser/ok/0015_use_tree.rast
+++ b/crates/parser/test_data/parser/ok/0015_use_tree.rast
@@ -1,65 +1,65 @@
+SOURCE_FILE
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ WHITESPACE " "
+ RENAME
+ AS_KW "as"
+ WHITESPACE " "
+ NAME
+ IDENT "bar"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ COLON2 "::"
+ USE_TREE_LIST
+ L_CURLY "{"
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ RENAME
+ AS_KW "as"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ COMMA ","
+ WHITESPACE " "
+ USE_TREE
+ STAR "*"
+ COMMA ","
+ WHITESPACE " "
+ USE_TREE
+ COLON2 "::"
+ STAR "*"
+ COMMA ","
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "foo"
+ WHITESPACE " "
+ RENAME
+ AS_KW "as"
+ WHITESPACE " "
+ NAME
+ IDENT "x"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0015_use_tree.txt b/crates/parser/test_data/parser/ok/0015_use_tree.txt
deleted file mode 100644
index ddf8aad6fc..0000000000
--- a/crates/parser/test_data/parser/ok/0015_use_tree.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-SOURCE_FILE
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- WHITESPACE " "
- RENAME
- AS_KW "as"
- WHITESPACE " "
- NAME
- IDENT "bar"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- COLON2 "::"
- USE_TREE_LIST
- L_CURLY "{"
- USE_TREE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- RENAME
- AS_KW "as"
- WHITESPACE " "
- NAME
- IDENT "b"
- COMMA ","
- WHITESPACE " "
- USE_TREE
- STAR "*"
- COMMA ","
- WHITESPACE " "
- USE_TREE
- COLON2 "::"
- STAR "*"
- COMMA ","
- WHITESPACE " "
- USE_TREE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "foo"
- WHITESPACE " "
- RENAME
- AS_KW "as"
- WHITESPACE " "
- NAME
- IDENT "x"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0016_struct_flavors.rast b/crates/parser/test_data/parser/ok/0016_struct_flavors.rast
index b15f41dd7e..eb2724e2f3 100644
--- a/crates/parser/test_data/parser/ok/0016_struct_flavors.rast
+++ b/crates/parser/test_data/parser/ok/0016_struct_flavors.rast
@@ -1,93 +1,93 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "B"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "C"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "D"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RECORD_FIELD
+ NAME
+ IDENT "a"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ COMMA ","
+ WHITESPACE "\n "
+ RECORD_FIELD
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "E"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ TUPLE_FIELD
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ COMMA ","
+ WHITESPACE " "
+ TUPLE_FIELD
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "y"
+ COMMA ","
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0016_struct_flavors.txt b/crates/parser/test_data/parser/ok/0016_struct_flavors.txt
deleted file mode 100644
index eb2724e2f3..0000000000
--- a/crates/parser/test_data/parser/ok/0016_struct_flavors.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "A"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "B"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "C"
- TUPLE_FIELD_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "D"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RECORD_FIELD
- NAME
- IDENT "a"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- COMMA ","
- WHITESPACE "\n "
- RECORD_FIELD
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- NAME
- IDENT "b"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "E"
- TUPLE_FIELD_LIST
- L_PAREN "("
- TUPLE_FIELD
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- COMMA ","
- WHITESPACE " "
- TUPLE_FIELD
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "y"
- COMMA ","
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0017_attr_trailing_comma.rast b/crates/parser/test_data/parser/ok/0017_attr_trailing_comma.rast
index 938a3f17b6..7c914e2542 100644
--- a/crates/parser/test_data/parser/ok/0017_attr_trailing_comma.rast
+++ b/crates/parser/test_data/parser/ok/0017_attr_trailing_comma.rast
@@ -1,30 +1,30 @@
+SOURCE_FILE
+ FN
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "a"
+ COMMA ","
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0017_attr_trailing_comma.txt b/crates/parser/test_data/parser/ok/0017_attr_trailing_comma.txt
deleted file mode 100644
index 7c914e2542..0000000000
--- a/crates/parser/test_data/parser/ok/0017_attr_trailing_comma.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-SOURCE_FILE
- FN
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- TOKEN_TREE
- L_PAREN "("
- IDENT "a"
- COMMA ","
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0018_struct_type_params.rast b/crates/parser/test_data/parser/ok/0018_struct_type_params.rast
index f845d5cffa..11ebc7efb9 100644
--- a/crates/parser/test_data/parser/ok/0018_struct_type_params.rast
+++ b/crates/parser/test_data/parser/ok/0018_struct_type_params.rast
@@ -1,274 +1,274 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S1"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S2"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ TUPLE_FIELD
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S3"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_FIELD
+ NAME
+ IDENT "u"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S4"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S5"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S6"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COLON ":"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S7"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COLON ":"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S8"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COLON ":"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S9"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COLON ":"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'c"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S10"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COMMA ","
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S11"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COMMA ","
+ WHITESPACE " "
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S12"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COLON ":"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ PLUS "+"
+ COMMA ","
+ WHITESPACE " "
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ COLON ":"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'c"
+ COMMA ","
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S13"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S14"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COMMA ","
+ WHITESPACE " "
+ TYPE_PARAM
+ NAME
+ IDENT "U"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S15"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COMMA ","
+ WHITESPACE " "
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COMMA ","
+ WHITESPACE " "
+ TYPE_PARAM
+ NAME
+ IDENT "U"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0018_struct_type_params.txt b/crates/parser/test_data/parser/ok/0018_struct_type_params.txt
deleted file mode 100644
index 11ebc7efb9..0000000000
--- a/crates/parser/test_data/parser/ok/0018_struct_type_params.txt
+++ /dev/null
@@ -1,274 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S1"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S2"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- TUPLE_FIELD_LIST
- L_PAREN "("
- TUPLE_FIELD
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S3"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_FIELD
- NAME
- IDENT "u"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S4"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S5"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S6"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- COLON ":"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S7"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- COLON ":"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'b"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S8"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- COLON ":"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'b"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S9"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- COLON ":"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'b"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'c"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S10"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- COMMA ","
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S11"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- COMMA ","
- WHITESPACE " "
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'b"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S12"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- COLON ":"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'b"
- PLUS "+"
- COMMA ","
- WHITESPACE " "
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'b"
- COLON ":"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'c"
- COMMA ","
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S13"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S14"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COMMA ","
- WHITESPACE " "
- TYPE_PARAM
- NAME
- IDENT "U"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S15"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- COMMA ","
- WHITESPACE " "
- TYPE_PARAM
- NAME
- IDENT "T"
- COMMA ","
- WHITESPACE " "
- TYPE_PARAM
- NAME
- IDENT "U"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0019_enums.rast b/crates/parser/test_data/parser/ok/0019_enums.rast
index c3df008146..dd47e3aa47 100644
--- a/crates/parser/test_data/parser/ok/0019_enums.rast
+++ b/crates/parser/test_data/parser/ok/0019_enums.rast
@@ -1,155 +1,155 @@
+SOURCE_FILE
+ ENUM
+ ENUM_KW "enum"
+ WHITESPACE " "
+ NAME
+ IDENT "E1"
+ WHITESPACE " "
+ VARIANT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ ENUM
+ ENUM_KW "enum"
+ WHITESPACE " "
+ NAME
+ IDENT "E2"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ WHITESPACE " "
+ VARIANT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ ENUM
+ ENUM_KW "enum"
+ WHITESPACE " "
+ NAME
+ IDENT "E3"
+ WHITESPACE " "
+ VARIANT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ VARIANT
+ NAME
+ IDENT "X"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ ENUM
+ ENUM_KW "enum"
+ WHITESPACE " "
+ NAME
+ IDENT "E4"
+ WHITESPACE " "
+ VARIANT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ VARIANT
+ NAME
+ IDENT "X"
+ COMMA ","
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ ENUM
+ ENUM_KW "enum"
+ WHITESPACE " "
+ NAME
+ IDENT "E5"
+ WHITESPACE " "
+ VARIANT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ VARIANT
+ NAME
+ IDENT "A"
+ COMMA ","
+ WHITESPACE "\n "
+ VARIANT
+ NAME
+ IDENT "B"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ COMMA ","
+ WHITESPACE "\n "
+ VARIANT
+ NAME
+ IDENT "C"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RECORD_FIELD
+ NAME
+ IDENT "a"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ COMMA ","
+ WHITESPACE "\n "
+ RECORD_FIELD
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f64"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ COMMA ","
+ WHITESPACE "\n "
+ VARIANT
+ NAME
+ IDENT "F"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ COMMA ","
+ WHITESPACE "\n "
+ VARIANT
+ NAME
+ IDENT "D"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ TUPLE_FIELD
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ COMMA ","
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ VARIANT
+ NAME
+ IDENT "E"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0019_enums.txt b/crates/parser/test_data/parser/ok/0019_enums.txt
deleted file mode 100644
index dd47e3aa47..0000000000
--- a/crates/parser/test_data/parser/ok/0019_enums.txt
+++ /dev/null
@@ -1,155 +0,0 @@
-SOURCE_FILE
- ENUM
- ENUM_KW "enum"
- WHITESPACE " "
- NAME
- IDENT "E1"
- WHITESPACE " "
- VARIANT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- ENUM
- ENUM_KW "enum"
- WHITESPACE " "
- NAME
- IDENT "E2"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- WHITESPACE " "
- VARIANT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- ENUM
- ENUM_KW "enum"
- WHITESPACE " "
- NAME
- IDENT "E3"
- WHITESPACE " "
- VARIANT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- VARIANT
- NAME
- IDENT "X"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- ENUM
- ENUM_KW "enum"
- WHITESPACE " "
- NAME
- IDENT "E4"
- WHITESPACE " "
- VARIANT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- VARIANT
- NAME
- IDENT "X"
- COMMA ","
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- ENUM
- ENUM_KW "enum"
- WHITESPACE " "
- NAME
- IDENT "E5"
- WHITESPACE " "
- VARIANT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- VARIANT
- NAME
- IDENT "A"
- COMMA ","
- WHITESPACE "\n "
- VARIANT
- NAME
- IDENT "B"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- COMMA ","
- WHITESPACE "\n "
- VARIANT
- NAME
- IDENT "C"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RECORD_FIELD
- NAME
- IDENT "a"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- COMMA ","
- WHITESPACE "\n "
- RECORD_FIELD
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- NAME
- IDENT "b"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f64"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- COMMA ","
- WHITESPACE "\n "
- VARIANT
- NAME
- IDENT "F"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- R_CURLY "}"
- COMMA ","
- WHITESPACE "\n "
- VARIANT
- NAME
- IDENT "D"
- TUPLE_FIELD_LIST
- L_PAREN "("
- TUPLE_FIELD
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- COMMA ","
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- VARIANT
- NAME
- IDENT "E"
- TUPLE_FIELD_LIST
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0020_type_param_bounds.rast b/crates/parser/test_data/parser/ok/0020_type_param_bounds.rast
index 9d4b001aed..043a966ff9 100644
--- a/crates/parser/test_data/parser/ok/0020_type_param_bounds.rast
+++ b/crates/parser/test_data/parser/ok/0020_type_param_bounds.rast
@@ -1,283 +1,283 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "B"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ TYPE_BOUND_LIST
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "C"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "D"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "E"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'d"
+ WHITESPACE " "
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "F"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'d"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Clone"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "G"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Clone"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "H"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_KW "self"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Bar"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "I"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ TYPE_BOUND_LIST
+ COMMA ","
+ WHITESPACE " "
+ TYPE_PARAM
+ NAME
+ IDENT "U"
+ COLON ":"
+ TYPE_BOUND_LIST
+ COMMA ","
+ R_ANGLE ">"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "K"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ COLON ":"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'d"
+ COMMA ","
+ WHITESPACE " "
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'d"
+ COLON ":"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ COMMA ","
+ WHITESPACE " "
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'d"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Clone"
+ R_ANGLE ">"
+ SEMICOLON ";"
diff --git a/crates/parser/test_data/parser/ok/0020_type_param_bounds.txt b/crates/parser/test_data/parser/ok/0020_type_param_bounds.txt
deleted file mode 100644
index 043a966ff9..0000000000
--- a/crates/parser/test_data/parser/ok/0020_type_param_bounds.txt
+++ /dev/null
@@ -1,283 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "A"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "B"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- TYPE_BOUND_LIST
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "C"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "D"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "E"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'d"
- WHITESPACE " "
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "F"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'d"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Clone"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "G"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Clone"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "H"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_KW "self"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Bar"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "I"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- TYPE_BOUND_LIST
- COMMA ","
- WHITESPACE " "
- TYPE_PARAM
- NAME
- IDENT "U"
- COLON ":"
- TYPE_BOUND_LIST
- COMMA ","
- R_ANGLE ">"
- SEMICOLON ";"
- WHITESPACE "\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "K"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- COLON ":"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'d"
- COMMA ","
- WHITESPACE " "
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'d"
- COLON ":"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'b"
- COMMA ","
- WHITESPACE " "
- TYPE_PARAM
- NAME
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'d"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Clone"
- R_ANGLE ">"
- SEMICOLON ";"
diff --git a/crates/parser/test_data/parser/ok/0022_empty_extern_block.rast b/crates/parser/test_data/parser/ok/0022_empty_extern_block.rast
index 26abae3b29..ef2fb66dd5 100644
--- a/crates/parser/test_data/parser/ok/0022_empty_extern_block.rast
+++ b/crates/parser/test_data/parser/ok/0022_empty_extern_block.rast
@@ -1,21 +1,21 @@
+SOURCE_FILE
+ EXTERN_BLOCK
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ EXTERN_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ EXTERN_BLOCK
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C\""
+ WHITESPACE " "
+ EXTERN_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0022_empty_extern_block.txt b/crates/parser/test_data/parser/ok/0022_empty_extern_block.txt
deleted file mode 100644
index ef2fb66dd5..0000000000
--- a/crates/parser/test_data/parser/ok/0022_empty_extern_block.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-SOURCE_FILE
- EXTERN_BLOCK
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- EXTERN_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- EXTERN_BLOCK
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C\""
- WHITESPACE " "
- EXTERN_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0023_static_items.rast b/crates/parser/test_data/parser/ok/0023_static_items.rast
index 9374cf5e96..b164e828e3 100644
--- a/crates/parser/test_data/parser/ok/0023_static_items.rast
+++ b/crates/parser/test_data/parser/ok/0023_static_items.rast
@@ -1,41 +1,41 @@
+SOURCE_FILE
+ STATIC
+ STATIC_KW "static"
+ WHITESPACE " "
+ NAME
+ IDENT "FOO"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ STATIC
+ STATIC_KW "static"
+ WHITESPACE " "
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "BAR"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0023_static_items.txt b/crates/parser/test_data/parser/ok/0023_static_items.txt
deleted file mode 100644
index b164e828e3..0000000000
--- a/crates/parser/test_data/parser/ok/0023_static_items.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-SOURCE_FILE
- STATIC
- STATIC_KW "static"
- WHITESPACE " "
- NAME
- IDENT "FOO"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n"
- STATIC
- STATIC_KW "static"
- WHITESPACE " "
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "BAR"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0024_const_item.rast b/crates/parser/test_data/parser/ok/0024_const_item.rast
index 6b234b0b24..40b9ef804c 100644
--- a/crates/parser/test_data/parser/ok/0024_const_item.rast
+++ b/crates/parser/test_data/parser/ok/0024_const_item.rast
@@ -1 +1 @@
+SOURCE_FILE
diff --git a/crates/parser/test_data/parser/ok/0024_const_item.txt b/crates/parser/test_data/parser/ok/0024_const_item.txt
deleted file mode 100644
index 40b9ef804c..0000000000
--- a/crates/parser/test_data/parser/ok/0024_const_item.txt
+++ /dev/null
@@ -1 +0,0 @@
-SOURCE_FILE
diff --git a/crates/parser/test_data/parser/ok/0025_extern_fn_in_block.rast b/crates/parser/test_data/parser/ok/0025_extern_fn_in_block.rast
index 21ed8ebfa4..9c5f5ac64e 100644
--- a/crates/parser/test_data/parser/ok/0025_extern_fn_in_block.rast
+++ b/crates/parser/test_data/parser/ok/0025_extern_fn_in_block.rast
@@ -1,33 +1,33 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0025_extern_fn_in_block.txt b/crates/parser/test_data/parser/ok/0025_extern_fn_in_block.txt
deleted file mode 100644
index 9c5f5ac64e..0000000000
--- a/crates/parser/test_data/parser/ok/0025_extern_fn_in_block.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0026_const_fn_in_block.rast b/crates/parser/test_data/parser/ok/0026_const_fn_in_block.rast
index ad4cd31cb6..ca9a3df86f 100644
--- a/crates/parser/test_data/parser/ok/0026_const_fn_in_block.rast
+++ b/crates/parser/test_data/parser/ok/0026_const_fn_in_block.rast
@@ -1,32 +1,32 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ CONST_KW "const"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0026_const_fn_in_block.txt b/crates/parser/test_data/parser/ok/0026_const_fn_in_block.txt
deleted file mode 100644
index ca9a3df86f..0000000000
--- a/crates/parser/test_data/parser/ok/0026_const_fn_in_block.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- CONST_KW "const"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0027_unsafe_fn_in_block.rast b/crates/parser/test_data/parser/ok/0027_unsafe_fn_in_block.rast
index eb1fa2819c..88ebd10952 100644
--- a/crates/parser/test_data/parser/ok/0027_unsafe_fn_in_block.rast
+++ b/crates/parser/test_data/parser/ok/0027_unsafe_fn_in_block.rast
@@ -1,43 +1,43 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ BLOCK_EXPR
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0027_unsafe_fn_in_block.txt b/crates/parser/test_data/parser/ok/0027_unsafe_fn_in_block.txt
deleted file mode 100644
index 88ebd10952..0000000000
--- a/crates/parser/test_data/parser/ok/0027_unsafe_fn_in_block.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- BLOCK_EXPR
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0028_operator_binding_power.rast b/crates/parser/test_data/parser/ok/0028_operator_binding_power.rast
index 96c75052fa..ae08c0756a 100644
--- a/crates/parser/test_data/parser/ok/0028_operator_binding_power.rast
+++ b/crates/parser/test_data/parser/ok/0028_operator_binding_power.rast
@@ -1,186 +1,186 @@
- [email protected] "binding_power"
- [email protected] "//1 || 2 && 2;"
- [email protected] "//1 .. 2 || 3;"
- [email protected] "//1 = 2 .. 3;"
- [email protected] "//---&*1 - --2 * 9;"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "binding_power"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BIN_EXPR
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ BIN_EXPR
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE " "
+ STAR "*"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "3"
+ WHITESPACE " "
+ PERCENT "%"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "4"
+ WHITESPACE " "
+ MINUS "-"
+ WHITESPACE " "
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "5"
+ WHITESPACE " "
+ SLASH "/"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "6"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE " "
+ STAR "*"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "3"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ SHL "<<"
+ WHITESPACE " "
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "3"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ AMP "&"
+ WHITESPACE " "
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE " "
+ SHR ">>"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "3"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ CARET "^"
+ WHITESPACE " "
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE " "
+ AMP "&"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "3"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ PIPE "|"
+ WHITESPACE " "
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE " "
+ CARET "^"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "3"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ EQ2 "=="
+ WHITESPACE " "
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE " "
+ PIPE "|"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "3"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ AMP2 "&&"
+ WHITESPACE " "
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE " "
+ EQ2 "=="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "3"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ COMMENT "//1 || 2 && 2;"
+ WHITESPACE "\n "
+ COMMENT "//1 .. 2 || 3;"
+ WHITESPACE "\n "
+ COMMENT "//1 = 2 .. 3;"
+ WHITESPACE "\n "
+ COMMENT "//---&*1 - --2 * 9;"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0028_operator_binding_power.txt b/crates/parser/test_data/parser/ok/0028_operator_binding_power.txt
deleted file mode 100644
index ae08c0756a..0000000000
--- a/crates/parser/test_data/parser/ok/0028_operator_binding_power.txt
+++ /dev/null
@@ -1,186 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "binding_power"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BIN_EXPR
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- BIN_EXPR
- BIN_EXPR
- LITERAL
- INT_NUMBER "2"
- WHITESPACE " "
- STAR "*"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "3"
- WHITESPACE " "
- PERCENT "%"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "4"
- WHITESPACE " "
- MINUS "-"
- WHITESPACE " "
- BIN_EXPR
- LITERAL
- INT_NUMBER "5"
- WHITESPACE " "
- SLASH "/"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "6"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- BIN_EXPR
- LITERAL
- INT_NUMBER "2"
- WHITESPACE " "
- STAR "*"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "3"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- SHL "<<"
- WHITESPACE " "
- BIN_EXPR
- LITERAL
- INT_NUMBER "2"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "3"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- AMP "&"
- WHITESPACE " "
- BIN_EXPR
- LITERAL
- INT_NUMBER "2"
- WHITESPACE " "
- SHR ">>"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "3"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- CARET "^"
- WHITESPACE " "
- BIN_EXPR
- LITERAL
- INT_NUMBER "2"
- WHITESPACE " "
- AMP "&"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "3"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- PIPE "|"
- WHITESPACE " "
- BIN_EXPR
- LITERAL
- INT_NUMBER "2"
- WHITESPACE " "
- CARET "^"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "3"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- EQ2 "=="
- WHITESPACE " "
- BIN_EXPR
- LITERAL
- INT_NUMBER "2"
- WHITESPACE " "
- PIPE "|"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "3"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- AMP2 "&&"
- WHITESPACE " "
- BIN_EXPR
- LITERAL
- INT_NUMBER "2"
- WHITESPACE " "
- EQ2 "=="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "3"
- SEMICOLON ";"
- WHITESPACE "\n "
- COMMENT "//1 || 2 && 2;"
- WHITESPACE "\n "
- COMMENT "//1 .. 2 || 3;"
- WHITESPACE "\n "
- COMMENT "//1 = 2 .. 3;"
- WHITESPACE "\n "
- COMMENT "//---&*1 - --2 * 9;"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0029_range_forms.rast b/crates/parser/test_data/parser/ok/0029_range_forms.rast
index 486bab8df1..5acc54e713 100644
--- a/crates/parser/test_data/parser/ok/0029_range_forms.rast
+++ b/crates/parser/test_data/parser/ok/0029_range_forms.rast
@@ -1,152 +1,152 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RANGE_EXPR
+ DOT2 ".."
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ RANGE_EXPR
+ DOT2 ".."
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "z"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ RANGE_EXPR
+ LITERAL
+ FALSE_KW "false"
+ DOT2 ".."
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ EQ2 "=="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ RANGE_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ DOT2 ".."
+ SEMICOLON ";"
+ WHITESPACE "\n \n "
+ EXPR_STMT
+ RANGE_EXPR
+ DOT2EQ "..="
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ RANGE_EXPR
+ DOT2EQ "..="
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "z"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ RANGE_EXPR
+ LITERAL
+ FALSE_KW "false"
+ DOT2EQ "..="
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ EQ2 "=="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ RANGE_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ DOT2 ".."
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0029_range_forms.txt b/crates/parser/test_data/parser/ok/0029_range_forms.txt
deleted file mode 100644
index 5acc54e713..0000000000
--- a/crates/parser/test_data/parser/ok/0029_range_forms.txt
+++ /dev/null
@@ -1,152 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- RANGE_EXPR
- DOT2 ".."
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- RANGE_EXPR
- DOT2 ".."
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "z"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- RANGE_EXPR
- LITERAL
- FALSE_KW "false"
- DOT2 ".."
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- EQ2 "=="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- RANGE_EXPR
- LITERAL
- INT_NUMBER "1"
- DOT2 ".."
- SEMICOLON ";"
- WHITESPACE "\n \n "
- EXPR_STMT
- RANGE_EXPR
- DOT2EQ "..="
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- RANGE_EXPR
- DOT2EQ "..="
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "z"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- RANGE_EXPR
- LITERAL
- FALSE_KW "false"
- DOT2EQ "..="
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- EQ2 "=="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- RANGE_EXPR
- LITERAL
- INT_NUMBER "1"
- DOT2 ".."
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0030_string_suffixes.rast b/crates/parser/test_data/parser/ok/0030_string_suffixes.rast
index 9f59c0ecb6..44211c7c42 100644
--- a/crates/parser/test_data/parser/ok/0030_string_suffixes.rast
+++ b/crates/parser/test_data/parser/ok/0030_string_suffixes.rast
@@ -1,64 +1,64 @@
- [email protected] "\"string\"invalid"
- [email protected] "b'b'_suff"
- [email protected] "b\"bs\"invalid"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ CHAR "'c'u32"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ STRING "\"string\"invalid"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ BYTE "b'b'_suff"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ BYTE_STRING "b\"bs\"invalid"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0030_string_suffixes.txt b/crates/parser/test_data/parser/ok/0030_string_suffixes.txt
deleted file mode 100644
index 44211c7c42..0000000000
--- a/crates/parser/test_data/parser/ok/0030_string_suffixes.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- CHAR "'c'u32"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- STRING "\"string\"invalid"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- BYTE "b'b'_suff"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- BYTE_STRING "b\"bs\"invalid"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0030_traits.rast b/crates/parser/test_data/parser/ok/0030_traits.rast
index d07c6683a3..44423581e6 100644
--- a/crates/parser/test_data/parser/ok/0030_traits.rast
+++ b/crates/parser/test_data/parser/ok/0030_traits.rast
@@ -1,61 +1,61 @@
- [email protected] "Runnable"
- [email protected] "handler"
- [email protected] "TraitWithExpr"
- [email protected] "fn_with_expr"
+SOURCE_FILE
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "Runnable"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "handler"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "TraitWithExpr"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "fn_with_expr"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ ARRAY_TYPE
+ L_BRACK "["
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ SEMICOLON ";"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ R_BRACK "]"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0030_traits.txt b/crates/parser/test_data/parser/ok/0030_traits.txt
deleted file mode 100644
index 44423581e6..0000000000
--- a/crates/parser/test_data/parser/ok/0030_traits.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-SOURCE_FILE
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "Runnable"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "handler"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "TraitWithExpr"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "fn_with_expr"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- ARRAY_TYPE
- L_BRACK "["
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- SEMICOLON ";"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- R_BRACK "]"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0031_extern.rast b/crates/parser/test_data/parser/ok/0031_extern.rast
index 8150d445f3..70b5278086 100644
--- a/crates/parser/test_data/parser/ok/0031_extern.rast
+++ b/crates/parser/test_data/parser/ok/0031_extern.rast
@@ -1,973 +1,973 @@
- [email protected] "protocol"
- [email protected] "sockaddr"
- [email protected] "socklen_t"
- [email protected] "connect"
- [email protected] "address"
- [email protected] "sockaddr"
- [email protected] "socklen_t"
- [email protected] "backlog"
- [email protected] "getsockname"
- [email protected] "address"
- [email protected] "sockaddr"
- [email protected] "address_len"
- [email protected] "socklen_t"
- [email protected] "getsockopt"
- [email protected] "optname"
- [email protected] "socklen_t"
- [email protected] "setsockopt"
- [email protected] "option_len"
- [email protected] "socklen_t"
- [email protected] "getpeername"
- [email protected] "address"
- [email protected] "sockaddr"
- [email protected] "address_len"
- [email protected] "socklen_t"
- [email protected] "sockaddr"
- [email protected] "addrlen"
- [email protected] "socklen_t"
- [email protected] "ssize_t"
- [email protected] "ssize_t"
- [email protected] "recvfrom"
- [email protected] "sockaddr"
- [email protected] "addrlen"
- [email protected] "socklen_t"
- [email protected] "ssize_t"
- [email protected] "ssize_t"
+SOURCE_FILE
+ EXTERN_BLOCK
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ EXTERN_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "socket"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "domain"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "ty"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "protocol"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "bind"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "fd"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "addr"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ CONST_KW "const"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "sockaddr"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "len"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "socklen_t"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "connect"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "socket"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "address"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ CONST_KW "const"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "sockaddr"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "len"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "socklen_t"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "listen"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "socket"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "backlog"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "getsockname"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "socket"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "address"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "sockaddr"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "address_len"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "socklen_t"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "getsockopt"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "sockfd"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "level"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "optname"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "optval"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_void"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "optlen"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "socklen_t"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "setsockopt"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "socket"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "level"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "name"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "value"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ CONST_KW "const"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_void"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "option_len"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "socklen_t"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "getpeername"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "socket"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "address"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "sockaddr"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "address_len"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "socklen_t"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "sendto"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "socket"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "buf"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ CONST_KW "const"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_void"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "len"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "size_t"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "flags"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "addr"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ CONST_KW "const"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "sockaddr"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "addrlen"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "socklen_t"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "ssize_t"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "send"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "socket"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "buf"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ CONST_KW "const"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_void"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "len"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "size_t"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "flags"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "ssize_t"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "recvfrom"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "socket"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "buf"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_void"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "len"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "size_t"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "flags"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "addr"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "sockaddr"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "addrlen"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "socklen_t"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "ssize_t"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "recv"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "socket"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "buf"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_void"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "len"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "size_t"
+ COMMA ","
+ WHITESPACE "\n "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "flags"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "c_int"
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "ssize_t"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0031_extern.txt b/crates/parser/test_data/parser/ok/0031_extern.txt
deleted file mode 100644
index 70b5278086..0000000000
--- a/crates/parser/test_data/parser/ok/0031_extern.txt
+++ /dev/null
@@ -1,973 +0,0 @@
-SOURCE_FILE
- EXTERN_BLOCK
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- EXTERN_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "socket"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "domain"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "ty"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "protocol"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "bind"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "fd"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "addr"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- CONST_KW "const"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "sockaddr"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "len"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "socklen_t"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "connect"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "socket"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "address"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- CONST_KW "const"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "sockaddr"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "len"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "socklen_t"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "listen"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "socket"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "backlog"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "getsockname"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "socket"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "address"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "sockaddr"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "address_len"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "socklen_t"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "getsockopt"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "sockfd"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "level"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "optname"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "optval"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_void"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "optlen"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "socklen_t"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "setsockopt"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "socket"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "level"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "name"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "value"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- CONST_KW "const"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_void"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "option_len"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "socklen_t"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "getpeername"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "socket"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "address"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "sockaddr"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "address_len"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "socklen_t"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "sendto"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "socket"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "buf"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- CONST_KW "const"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_void"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "len"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "size_t"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "flags"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "addr"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- CONST_KW "const"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "sockaddr"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "addrlen"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "socklen_t"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "ssize_t"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "send"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "socket"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "buf"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- CONST_KW "const"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_void"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "len"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "size_t"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "flags"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "ssize_t"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "recvfrom"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "socket"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "buf"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_void"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "len"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "size_t"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "flags"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "addr"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "sockaddr"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "addrlen"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "socklen_t"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "ssize_t"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "recv"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "socket"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "buf"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_void"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "len"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "size_t"
- COMMA ","
- WHITESPACE "\n "
- PARAM
- IDENT_PAT
- NAME
- IDENT "flags"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "c_int"
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "ssize_t"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0032_where_for.rast b/crates/parser/test_data/parser/ok/0032_where_for.rast
index ee66eab530..86f6af97c7 100644
--- a/crates/parser/test_data/parser/ok/0032_where_for.rast
+++ b/crates/parser/test_data/parser/ok/0032_where_for.rast
@@ -1,93 +1,93 @@
- [email protected] "test_serialization"
- [email protected] "Serialize"
- [email protected] "Deserialize"
- [email protected] "PartialEq"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "test_serialization"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "SER"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n"
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE "\n "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "SER"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Serialize"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'de"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Deserialize"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'de"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "PartialEq"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "fmt"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Debug"
+ COMMA ","
+ WHITESPACE "\n"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0032_where_for.txt b/crates/parser/test_data/parser/ok/0032_where_for.txt
deleted file mode 100644
index 86f6af97c7..0000000000
--- a/crates/parser/test_data/parser/ok/0032_where_for.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "test_serialization"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "SER"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n"
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE "\n "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "SER"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Serialize"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'de"
- R_ANGLE ">"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Deserialize"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'de"
- R_ANGLE ">"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "PartialEq"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "fmt"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Debug"
- COMMA ","
- WHITESPACE "\n"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0033_label_break.rast b/crates/parser/test_data/parser/ok/0033_label_break.rast
index fbda85797e..df1acd6b83 100644
--- a/crates/parser/test_data/parser/ok/0033_label_break.rast
+++ b/crates/parser/test_data/parser/ok/0033_label_break.rast
@@ -1,227 +1,223 @@
- [email protected] "// format with label ..."
- [email protected] "'empty_block"
- [email protected] "do_thing"
- [email protected] "condition_not_met"
- [email protected] "do_next_thing"
- [email protected] "condition_not_met"
- [email protected] "do_last_thing"
- [email protected] "// comment"
- [email protected] "/* comment */"
+SOURCE_FILE
+ FN
+ COMMENT "// format with label break value."
+ WHITESPACE "\n"
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ LABEL
+ LIFETIME
+ LIFETIME_IDENT "'empty_block"
+ COLON ":"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ LABEL
+ LIFETIME
+ LIFETIME_IDENT "'block"
+ COLON ":"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "do_thing"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "condition_not_met"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'block"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "do_next_thing"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "condition_not_met"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'block"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "do_last_thing"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "result"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BLOCK_EXPR
+ LABEL
+ LIFETIME
+ LIFETIME_IDENT "'block"
+ COLON ":"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ COMMENT "// comment"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'block"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ COMMENT "/* comment */"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ WHITESPACE " "
+ LIFETIME
+ LIFETIME_IDENT "'block"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ LITERAL
+ INT_NUMBER "3"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0033_label_break.txt b/crates/parser/test_data/parser/ok/0033_label_break.txt
deleted file mode 100644
index df1acd6b83..0000000000
--- a/crates/parser/test_data/parser/ok/0033_label_break.txt
+++ /dev/null
@@ -1,223 +0,0 @@
-SOURCE_FILE
- FN
- COMMENT "// format with label break value."
- WHITESPACE "\n"
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- BLOCK_EXPR
- LABEL
- LIFETIME
- LIFETIME_IDENT "'empty_block"
- COLON ":"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n "
- EXPR_STMT
- BLOCK_EXPR
- LABEL
- LIFETIME
- LIFETIME_IDENT "'block"
- COLON ":"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "do_thing"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "condition_not_met"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'block"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "do_next_thing"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "condition_not_met"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'block"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "do_last_thing"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "result"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BLOCK_EXPR
- LABEL
- LIFETIME
- LIFETIME_IDENT "'block"
- COLON ":"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- COMMENT "// comment"
- WHITESPACE "\n "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'block"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- COMMENT "/* comment */"
- WHITESPACE "\n "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- WHITESPACE " "
- LIFETIME
- LIFETIME_IDENT "'block"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- LITERAL
- INT_NUMBER "3"
- WHITESPACE "\n "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0034_crate_path_in_call.rast b/crates/parser/test_data/parser/ok/0034_crate_path_in_call.rast
index 9a6010d362..2b3b86ebf2 100644
--- a/crates/parser/test_data/parser/ok/0034_crate_path_in_call.rast
+++ b/crates/parser/test_data/parser/ok/0034_crate_path_in_call.rast
@@ -1,43 +1,43 @@
- [email protected] "make_query"
- [email protected] "module_map"
- [email protected] "module_tree"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "make_query"
+ ARG_LIST
+ L_PAREN "("
+ PATH_EXPR
+ PATH
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ CRATE_KW "crate"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "module_map"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "module_tree"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0034_crate_path_in_call.txt b/crates/parser/test_data/parser/ok/0034_crate_path_in_call.txt
deleted file mode 100644
index 2b3b86ebf2..0000000000
--- a/crates/parser/test_data/parser/ok/0034_crate_path_in_call.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "make_query"
- ARG_LIST
- L_PAREN "("
- PATH_EXPR
- PATH
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- CRATE_KW "crate"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "module_map"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "module_tree"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0035_weird_exprs.rast b/crates/parser/test_data/parser/ok/0035_weird_exprs.rast
index 672a12d087..4ec703e517 100644
--- a/crates/parser/test_data/parser/ok/0035_weird_exprs.rast
+++ b/crates/parser/test_data/parser/ok/0035_weird_exprs.rast
@@ -1,2337 +1,2328 @@
- [email protected] "//! Adapted from a `r ..."
- [email protected] "//! https://github.co ..."
- [email protected] "//! Reported to rust- ..."
- [email protected] "non_camel_case_types"
- [email protected] "dead_code"
- [email protected] "unreachable_code"
- [email protected] "unused_parens"
- [email protected] "recursion_limit"
- [email protected] "\"128\""
- [email protected] "// Just a grab bag of ..."
- [email protected] "strange"
- [email protected] "zombiejesus"
- [email protected] "notsure"
- [email protected] "canttouchthis"
- [email protected] "println"
- [email protected] "angrydome"
- [email protected] "continue"
- [email protected] "\"wat\""
- [email protected] "evil_lincoln"
- [email protected] "println"
- [email protected] "\"lincoln\""
- [email protected] "assert_eq"
- [email protected] "\".................... ..."
- [email protected] "\"{:?}\""
- [email protected] "assert_eq"
- [email protected] "macro_rules"
- [email protected] "assert_eq"
- [email protected] "\"><>\""
- [email protected] "\"><>\""
- [email protected] "collect"
- [email protected] "special_characters"
- [email protected] "\"\\\\\""
- [email protected] "'🤔'"
- [email protected] "punch_card"
- [email protected] "strange"
- [email protected] "zombiejesus"
- [email protected] "notsure"
- [email protected] "canttouchthis"
- [email protected] "angrydome"
- [email protected] "evil_lincoln"
- [email protected] "special_characters"
- [email protected] "punch_card"
+SOURCE_FILE
+ COMMENT "//! Adapted from a `rustc` test, which can be found at "
+ WHITESPACE "\n"
+ COMMENT "//! https://github.com/rust-lang/rust/blob/6d34ec18c7d7e574553f6347ecf08e1e1c45c13d/src/test/run-pass/weird-exprs.rs."
+ WHITESPACE "\n"
+ COMMENT "//! "
+ WHITESPACE "\n"
+ COMMENT "//! Reported to rust-analyzer in https://github.com/rust-analyzer/rust-analyzer/issues/290"
+ WHITESPACE "\n\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "allow"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "non_camel_case_types"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "allow"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "dead_code"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "allow"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "unreachable_code"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "allow"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "unused_parens"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n\n"
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "recursion_limit"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ STRING "\"128\""
+ R_BRACK "]"
+ WHITESPACE "\n\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cell"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Cell"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ USE
+ USE_KW "use"
+ WHITESPACE " "
+ USE_TREE
+ PATH
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "mem"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "swap"
+ SEMICOLON ";"
+ WHITESPACE "\n\n"
+ COMMENT "// Just a grab bag of stuff that you wouldn't want to actually write."
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "strange"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bool"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "_x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bool"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ RETURN_EXPR
+ RETURN_KW "return"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "funny"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "_x"
+ COLON ":"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "f"
+ ARG_LIST
+ L_PAREN "("
+ RETURN_EXPR
+ RETURN_KW "return"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "what"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "the"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Cell"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bool"
+ R_ANGLE ">"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RETURN_EXPR
+ RETURN_KW "return"
+ WHITESPACE " "
+ WHILE_EXPR
+ WHILE_KW "while"
+ WHITESPACE " "
+ PREFIX_EXPR
+ BANG "!"
+ METHOD_CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ DOT "."
+ NAME_REF
+ IDENT "get"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ METHOD_CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ DOT "."
+ NAME_REF
+ IDENT "set"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ TRUE_KW "true"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "i"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_EXPR
+ AMP "&"
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Cell"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "new"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ FALSE_KW "false"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "dont"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ CLOSURE_EXPR
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "the"
+ ARG_LIST
+ L_PAREN "("
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i"
+ R_PAREN ")"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "dont"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "assert"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "i"
+ DOT "."
+ IDENT "get"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "zombiejesus"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LOOP_EXPR
+ LOOP_KW "loop"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ WHILE_EXPR
+ WHILE_KW "while"
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ RETURN_EXPR
+ RETURN_KW "return"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ RETURN_EXPR
+ RETURN_KW "return"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ RETURN_EXPR
+ RETURN_KW "return"
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ RETURN_EXPR
+ RETURN_KW "return"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RETURN_EXPR
+ RETURN_KW "return"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE " "
+ ELSE_KW "else"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RETURN_EXPR
+ RETURN_KW "return"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RETURN_EXPR
+ RETURN_KW "return"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE " "
+ ELSE_KW "else"
+ WHITESPACE " "
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ RETURN_EXPR
+ RETURN_KW "return"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RETURN_EXPR
+ RETURN_KW "return"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ RETURN_EXPR
+ RETURN_KW "return"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "notsure"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "_x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "isize"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "_y"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BIN_EXPR
+ PAREN_EXPR
+ L_PAREN "("
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "_x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ2 "=="
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "_x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "_z"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BIN_EXPR
+ PAREN_EXPR
+ L_PAREN "("
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "_x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ R_PAREN ")"
+ WHITESPACE " "
+ L_ANGLE "<"
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "_x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "_a"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BIN_EXPR
+ PAREN_EXPR
+ L_PAREN "("
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "_x"
+ WHITESPACE " "
+ PLUSEQ "+="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ2 "=="
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "_x"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "_b"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BIN_EXPR
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "swap"
+ ARG_LIST
+ L_PAREN "("
+ REF_EXPR
+ AMP "&"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "_y"
+ COMMA ","
+ WHITESPACE " "
+ REF_EXPR
+ AMP "&"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "_z"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ2 "=="
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "swap"
+ ARG_LIST
+ L_PAREN "("
+ REF_EXPR
+ AMP "&"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "_y"
+ COMMA ","
+ WHITESPACE " "
+ REF_EXPR
+ AMP "&"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "_z"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "canttouchthis"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "usize"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "p"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bool"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "_a"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ BIN_EXPR
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "assert"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ TOKEN_TREE
+ L_PAREN "("
+ TRUE_KW "true"
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ2 "=="
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "assert"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "p"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "_c"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ BIN_EXPR
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "assert"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "p"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ2 "=="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "_b"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bool"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ BIN_EXPR
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "println"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"{}\""
+ COMMA ","
+ WHITESPACE " "
+ INT_NUMBER "0"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ2 "=="
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ RETURN_EXPR
+ RETURN_KW "return"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "angrydome"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ LOOP_EXPR
+ LOOP_KW "loop"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ BREAK_EXPR
+ BREAK_KW "break"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "i"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LOOP_EXPR
+ LOOP_KW "loop"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i"
+ WHITESPACE " "
+ PLUSEQ "+="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE " "
+ EXPR_STMT
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i"
+ WHITESPACE " "
+ EQ2 "=="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ PAREN_EXPR
+ L_PAREN "("
+ CONTINUE_EXPR
+ CONTINUE_KW "continue"
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ MATCH_ARM
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ R_CURLY "}"
+ COMMA ","
+ WHITESPACE " "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "panic"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"wat\""
+ R_PAREN ")"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "evil_lincoln"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "_evil"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "println"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"lincoln\""
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "dots"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "assert_eq"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "String"
+ COLON ":"
+ COLON ":"
+ IDENT "from"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"..................................................\""
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ IDENT "format"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"{:?}\""
+ COMMA ","
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE "\n "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ WHITESPACE " "
+ DOT "."
+ DOT "."
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "u8"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "u8"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ WHITESPACE " "
+ NEQ "!="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0u8"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "assert_eq"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ INT_NUMBER "8u8"
+ COMMA ","
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ WHITESPACE "\n "
+ IDENT "macro_rules"
+ BANG "!"
+ WHITESPACE " "
+ IDENT "u8"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ WHITESPACE "\n "
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "u8"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ R_ANGLE ">"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MOD_KW "mod"
+ WHITESPACE " "
+ IDENT "u8"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ WHITESPACE "\n "
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ IDENT "u8"
+ L_ANGLE "<"
+ LIFETIME_IDENT "'u8"
+ COLON ":"
+ WHITESPACE " "
+ LIFETIME_IDENT "'u8"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ LIFETIME_IDENT "'u8"
+ R_ANGLE ">"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "u8"
+ COLON ":"
+ WHITESPACE " "
+ AMP "&"
+ LIFETIME_IDENT "'u8"
+ WHITESPACE " "
+ IDENT "u8"
+ R_PAREN ")"
+ WHITESPACE " "
+ MINUS "-"
+ R_ANGLE ">"
+ WHITESPACE " "
+ AMP "&"
+ LIFETIME_IDENT "'u8"
+ WHITESPACE " "
+ IDENT "u8"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ WHITESPACE "\n "
+ STRING "\"u8\""
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ IDENT "u8"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n\n "
+ IDENT "u8"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "u8"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ LET_KW "let"
+ WHITESPACE " "
+ AMP "&"
+ IDENT "u8"
+ COLON ":"
+ WHITESPACE " "
+ AMP "&"
+ IDENT "u8"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ IDENT "u8"
+ COLON ":"
+ COLON ":"
+ IDENT "u8"
+ TOKEN_TREE
+ L_PAREN "("
+ AMP "&"
+ INT_NUMBER "8u8"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ CRATE_KW "crate"
+ COLON ":"
+ COLON ":"
+ IDENT "u8"
+ TOKEN_TREE
+ L_PAREN "("
+ INT_NUMBER "0u8"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ IDENT "u8"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "fishy"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "assert_eq"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "String"
+ COLON ":"
+ COLON ":"
+ IDENT "from"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"><>\""
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ IDENT "String"
+ COLON ":"
+ COLON ":"
+ L_ANGLE "<"
+ R_ANGLE ">"
+ COLON ":"
+ COLON ":"
+ IDENT "from"
+ COLON ":"
+ COLON ":"
+ L_ANGLE "<"
+ R_ANGLE ">"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"><>\""
+ R_PAREN ")"
+ DOT "."
+ IDENT "chars"
+ COLON ":"
+ COLON ":"
+ L_ANGLE "<"
+ R_ANGLE ">"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ DOT "."
+ IDENT "rev"
+ COLON ":"
+ COLON ":"
+ L_ANGLE "<"
+ R_ANGLE ">"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ DOT "."
+ IDENT "collect"
+ COLON ":"
+ COLON ":"
+ L_ANGLE "<"
+ IDENT "String"
+ R_ANGLE ">"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "union"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ UNION
+ UNION_KW "union"
+ WHITESPACE " "
+ NAME
+ IDENT "union"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'union"
+ R_ANGLE ">"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_FIELD
+ NAME
+ IDENT "union"
+ COLON ":"
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'union"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "union"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'union"
+ R_ANGLE ">"
+ COMMA ","
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "special_characters"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "val"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PREFIX_EXPR
+ BANG "!"
+ PAREN_EXPR
+ L_PAREN "("
+ BIN_EXPR
+ CALL_EXPR
+ PAREN_EXPR
+ L_PAREN "("
+ CLOSURE_EXPR
+ PARAM_LIST
+ PIPE "|"
+ PARAM
+ TUPLE_PAT
+ L_PAREN "("
+ REST_PAT
+ DOT2 ".."
+ R_PAREN ")"
+ COLON ":"
+ TUPLE_TYPE
+ L_PAREN "("
+ INFER_TYPE
+ UNDERSCORE "_"
+ COMMA ","
+ INFER_TYPE
+ UNDERSCORE "_"
+ R_PAREN ")"
+ COMMA ","
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "__"
+ AT "@"
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ PIPE "|"
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "__"
+ R_PAREN ")"
+ ARG_LIST
+ L_PAREN "("
+ TUPLE_EXPR
+ L_PAREN "("
+ REF_EXPR
+ AMP "&"
+ PREFIX_EXPR
+ STAR "*"
+ LITERAL
+ STRING "\"\\\\\""
+ COMMA ","
+ LITERAL
+ CHAR "'🤔'"
+ R_PAREN ")"
+ COMMENT "/**/"
+ COMMA ","
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ R_PAREN ")"
+ EQ2 "=="
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ EXPR_STMT
+ REF_EXPR
+ AMP "&"
+ INDEX_EXPR
+ ARRAY_EXPR
+ L_BRACK "["
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ R_BRACK "]"
+ L_BRACK "["
+ RANGE_EXPR
+ DOT2 ".."
+ R_BRACK "]"
+ SEMICOLON ";"
+ R_CURLY "}"
+ R_PAREN ")"
+ COMMENT "//"
+ WHITESPACE "\n "
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "assert"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ BANG "!"
+ IDENT "val"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "punch_card"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ IMPL_TRAIT_TYPE
+ IMPL_KW "impl"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "fmt"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Debug"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE "\n "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE "\n "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE "\n "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE "\n "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE "\n "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE "\n "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2EQ "..="
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "ktulhu"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ EXPR_STMT
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ SEMICOLON ";"
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "strange"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "funny"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "what"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "zombiejesus"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "notsure"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "canttouchthis"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "angrydome"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "evil_lincoln"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "dots"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ INT_NUMBER "8u8"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "fishy"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "union"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "special_characters"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "punch_card"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "ktulhu"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0035_weird_exprs.txt b/crates/parser/test_data/parser/ok/0035_weird_exprs.txt
deleted file mode 100644
index 4ec703e517..0000000000
--- a/crates/parser/test_data/parser/ok/0035_weird_exprs.txt
+++ /dev/null
@@ -1,2328 +0,0 @@
-SOURCE_FILE
- COMMENT "//! Adapted from a `rustc` test, which can be found at "
- WHITESPACE "\n"
- COMMENT "//! https://github.com/rust-lang/rust/blob/6d34ec18c7d7e574553f6347ecf08e1e1c45c13d/src/test/run-pass/weird-exprs.rs."
- WHITESPACE "\n"
- COMMENT "//! "
- WHITESPACE "\n"
- COMMENT "//! Reported to rust-analyzer in https://github.com/rust-analyzer/rust-analyzer/issues/290"
- WHITESPACE "\n\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "allow"
- TOKEN_TREE
- L_PAREN "("
- IDENT "non_camel_case_types"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "allow"
- TOKEN_TREE
- L_PAREN "("
- IDENT "dead_code"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "allow"
- TOKEN_TREE
- L_PAREN "("
- IDENT "unreachable_code"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "allow"
- TOKEN_TREE
- L_PAREN "("
- IDENT "unused_parens"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n\n"
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "recursion_limit"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- STRING "\"128\""
- R_BRACK "]"
- WHITESPACE "\n\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "cell"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Cell"
- SEMICOLON ";"
- WHITESPACE "\n"
- USE
- USE_KW "use"
- WHITESPACE " "
- USE_TREE
- PATH
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "mem"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "swap"
- SEMICOLON ";"
- WHITESPACE "\n\n"
- COMMENT "// Just a grab bag of stuff that you wouldn't want to actually write."
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "strange"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bool"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "_x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bool"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- RETURN_EXPR
- RETURN_KW "return"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "funny"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "_x"
- COLON ":"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "f"
- ARG_LIST
- L_PAREN "("
- RETURN_EXPR
- RETURN_KW "return"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "what"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "the"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Cell"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bool"
- R_ANGLE ">"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- RETURN_EXPR
- RETURN_KW "return"
- WHITESPACE " "
- WHILE_EXPR
- WHILE_KW "while"
- WHITESPACE " "
- PREFIX_EXPR
- BANG "!"
- METHOD_CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- DOT "."
- NAME_REF
- IDENT "get"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- METHOD_CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- DOT "."
- NAME_REF
- IDENT "set"
- ARG_LIST
- L_PAREN "("
- LITERAL
- TRUE_KW "true"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "i"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_EXPR
- AMP "&"
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Cell"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "new"
- ARG_LIST
- L_PAREN "("
- LITERAL
- FALSE_KW "false"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "dont"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- CLOSURE_EXPR
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "the"
- ARG_LIST
- L_PAREN "("
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i"
- R_PAREN ")"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "dont"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "assert"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- TOKEN_TREE
- L_PAREN "("
- IDENT "i"
- DOT "."
- IDENT "get"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "zombiejesus"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LOOP_EXPR
- LOOP_KW "loop"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- WHILE_EXPR
- WHILE_KW "while"
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- RETURN_EXPR
- RETURN_KW "return"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- RETURN_EXPR
- RETURN_KW "return"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- RETURN_EXPR
- RETURN_KW "return"
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- LITERAL_PAT
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- RETURN_EXPR
- RETURN_KW "return"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RETURN_EXPR
- RETURN_KW "return"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE " "
- ELSE_KW "else"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RETURN_EXPR
- RETURN_KW "return"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- RETURN_EXPR
- RETURN_KW "return"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE " "
- ELSE_KW "else"
- WHITESPACE " "
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- RETURN_EXPR
- RETURN_KW "return"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- RETURN_EXPR
- RETURN_KW "return"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- RETURN_EXPR
- RETURN_KW "return"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "notsure"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "_x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "isize"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "_y"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BIN_EXPR
- PAREN_EXPR
- L_PAREN "("
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "_x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- R_PAREN ")"
- WHITESPACE " "
- EQ2 "=="
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "_x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "_z"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BIN_EXPR
- PAREN_EXPR
- L_PAREN "("
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "_x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- R_PAREN ")"
- WHITESPACE " "
- L_ANGLE "<"
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "_x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "_a"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BIN_EXPR
- PAREN_EXPR
- L_PAREN "("
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "_x"
- WHITESPACE " "
- PLUSEQ "+="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- R_PAREN ")"
- WHITESPACE " "
- EQ2 "=="
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "_x"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "_b"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BIN_EXPR
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "swap"
- ARG_LIST
- L_PAREN "("
- REF_EXPR
- AMP "&"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "_y"
- COMMA ","
- WHITESPACE " "
- REF_EXPR
- AMP "&"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "_z"
- R_PAREN ")"
- WHITESPACE " "
- EQ2 "=="
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "swap"
- ARG_LIST
- L_PAREN "("
- REF_EXPR
- AMP "&"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "_y"
- COMMA ","
- WHITESPACE " "
- REF_EXPR
- AMP "&"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "_z"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "canttouchthis"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "usize"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "p"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bool"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "_a"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- BIN_EXPR
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "assert"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- TOKEN_TREE
- L_PAREN "("
- TRUE_KW "true"
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE " "
- EQ2 "=="
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "assert"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- IDENT "p"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "_c"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- BIN_EXPR
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "assert"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- TOKEN_TREE
- L_PAREN "("
- IDENT "p"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE " "
- EQ2 "=="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "_b"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bool"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- BIN_EXPR
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "println"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"{}\""
- COMMA ","
- WHITESPACE " "
- INT_NUMBER "0"
- R_PAREN ")"
- WHITESPACE " "
- EQ2 "=="
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- RETURN_EXPR
- RETURN_KW "return"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "angrydome"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- LOOP_EXPR
- LOOP_KW "loop"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- BREAK_EXPR
- BREAK_KW "break"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "i"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- SEMICOLON ";"
- WHITESPACE "\n "
- LOOP_EXPR
- LOOP_KW "loop"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i"
- WHITESPACE " "
- PLUSEQ "+="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE " "
- EXPR_STMT
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i"
- WHITESPACE " "
- EQ2 "=="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- PAREN_EXPR
- L_PAREN "("
- CONTINUE_EXPR
- CONTINUE_KW "continue"
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE " "
- MATCH_ARM
- LITERAL_PAT
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- R_CURLY "}"
- COMMA ","
- WHITESPACE " "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "panic"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"wat\""
- R_PAREN ")"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "evil_lincoln"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "_evil"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "println"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"lincoln\""
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "dots"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "assert_eq"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- IDENT "String"
- COLON ":"
- COLON ":"
- IDENT "from"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"..................................................\""
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- IDENT "format"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"{:?}\""
- COMMA ","
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE "\n "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- WHITESPACE " "
- DOT "."
- DOT "."
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "u8"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "u8"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- WHITESPACE " "
- NEQ "!="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0u8"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "assert_eq"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- INT_NUMBER "8u8"
- COMMA ","
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- WHITESPACE "\n "
- IDENT "macro_rules"
- BANG "!"
- WHITESPACE " "
- IDENT "u8"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- WHITESPACE "\n "
- TOKEN_TREE
- L_PAREN "("
- IDENT "u8"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- R_ANGLE ">"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- WHITESPACE "\n "
- MOD_KW "mod"
- WHITESPACE " "
- IDENT "u8"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- WHITESPACE "\n "
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- IDENT "u8"
- L_ANGLE "<"
- LIFETIME_IDENT "'u8"
- COLON ":"
- WHITESPACE " "
- LIFETIME_IDENT "'u8"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- LIFETIME_IDENT "'u8"
- R_ANGLE ">"
- TOKEN_TREE
- L_PAREN "("
- IDENT "u8"
- COLON ":"
- WHITESPACE " "
- AMP "&"
- LIFETIME_IDENT "'u8"
- WHITESPACE " "
- IDENT "u8"
- R_PAREN ")"
- WHITESPACE " "
- MINUS "-"
- R_ANGLE ">"
- WHITESPACE " "
- AMP "&"
- LIFETIME_IDENT "'u8"
- WHITESPACE " "
- IDENT "u8"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- WHITESPACE "\n "
- STRING "\"u8\""
- SEMICOLON ";"
- WHITESPACE "\n "
- IDENT "u8"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n\n "
- IDENT "u8"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- IDENT "u8"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- LET_KW "let"
- WHITESPACE " "
- AMP "&"
- IDENT "u8"
- COLON ":"
- WHITESPACE " "
- AMP "&"
- IDENT "u8"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- IDENT "u8"
- COLON ":"
- COLON ":"
- IDENT "u8"
- TOKEN_TREE
- L_PAREN "("
- AMP "&"
- INT_NUMBER "8u8"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- CRATE_KW "crate"
- COLON ":"
- COLON ":"
- IDENT "u8"
- TOKEN_TREE
- L_PAREN "("
- INT_NUMBER "0u8"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- IDENT "u8"
- WHITESPACE "\n "
- R_CURLY "}"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "fishy"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "assert_eq"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- IDENT "String"
- COLON ":"
- COLON ":"
- IDENT "from"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"><>\""
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- IDENT "String"
- COLON ":"
- COLON ":"
- L_ANGLE "<"
- R_ANGLE ">"
- COLON ":"
- COLON ":"
- IDENT "from"
- COLON ":"
- COLON ":"
- L_ANGLE "<"
- R_ANGLE ">"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"><>\""
- R_PAREN ")"
- DOT "."
- IDENT "chars"
- COLON ":"
- COLON ":"
- L_ANGLE "<"
- R_ANGLE ">"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- DOT "."
- IDENT "rev"
- COLON ":"
- COLON ":"
- L_ANGLE "<"
- R_ANGLE ">"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- DOT "."
- IDENT "collect"
- COLON ":"
- COLON ":"
- L_ANGLE "<"
- IDENT "String"
- R_ANGLE ">"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "union"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- UNION
- UNION_KW "union"
- WHITESPACE " "
- NAME
- IDENT "union"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'union"
- R_ANGLE ">"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_FIELD
- NAME
- IDENT "union"
- COLON ":"
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'union"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "union"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'union"
- R_ANGLE ">"
- COMMA ","
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "special_characters"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "val"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PREFIX_EXPR
- BANG "!"
- PAREN_EXPR
- L_PAREN "("
- BIN_EXPR
- CALL_EXPR
- PAREN_EXPR
- L_PAREN "("
- CLOSURE_EXPR
- PARAM_LIST
- PIPE "|"
- PARAM
- TUPLE_PAT
- L_PAREN "("
- REST_PAT
- DOT2 ".."
- R_PAREN ")"
- COLON ":"
- TUPLE_TYPE
- L_PAREN "("
- INFER_TYPE
- UNDERSCORE "_"
- COMMA ","
- INFER_TYPE
- UNDERSCORE "_"
- R_PAREN ")"
- COMMA ","
- PARAM
- IDENT_PAT
- NAME
- IDENT "__"
- AT "@"
- WILDCARD_PAT
- UNDERSCORE "_"
- PIPE "|"
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "__"
- R_PAREN ")"
- ARG_LIST
- L_PAREN "("
- TUPLE_EXPR
- L_PAREN "("
- REF_EXPR
- AMP "&"
- PREFIX_EXPR
- STAR "*"
- LITERAL
- STRING "\"\\\\\""
- COMMA ","
- LITERAL
- CHAR "'🤔'"
- R_PAREN ")"
- COMMENT "/**/"
- COMMA ","
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- R_PAREN ")"
- EQ2 "=="
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- EXPR_STMT
- REF_EXPR
- AMP "&"
- INDEX_EXPR
- ARRAY_EXPR
- L_BRACK "["
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- R_BRACK "]"
- L_BRACK "["
- RANGE_EXPR
- DOT2 ".."
- R_BRACK "]"
- SEMICOLON ";"
- R_CURLY "}"
- R_PAREN ")"
- COMMENT "//"
- WHITESPACE "\n "
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "assert"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- BANG "!"
- IDENT "val"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "punch_card"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- IMPL_TRAIT_TYPE
- IMPL_KW "impl"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "fmt"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Debug"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE "\n "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE "\n "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE "\n "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE "\n "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE "\n "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE "\n "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2EQ "..="
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "ktulhu"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- EXPR_STMT
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- SEMICOLON ";"
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "strange"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "funny"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "what"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "zombiejesus"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "notsure"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "canttouchthis"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "angrydome"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "evil_lincoln"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "dots"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- ARG_LIST
- L_PAREN "("
- LITERAL
- INT_NUMBER "8u8"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "fishy"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "union"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "special_characters"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "punch_card"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "ktulhu"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0036_fully_qualified.rast b/crates/parser/test_data/parser/ok/0036_fully_qualified.rast
index 2aa7fffd1c..6137b38aba 100644
--- a/crates/parser/test_data/parser/ok/0036_fully_qualified.rast
+++ b/crates/parser/test_data/parser/ok/0036_fully_qualified.rast
@@ -1,93 +1,93 @@
- [email protected] "// https://github.com ..."
- [email protected] "Iterator"
- [email protected] "Iterator"
- [email protected] "to_owned"
+SOURCE_FILE
+ COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/311"
+ WHITESPACE "\n\n"
+ FN
+ VISIBILITY
+ PUB_KW "pub"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "S"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Iterator"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "String"
+ WHITESPACE "\n"
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE "\n "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ L_ANGLE "<"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Iterator"
+ R_ANGLE ">"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Item"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Eq"
+ COMMA ","
+ WHITESPACE "\n"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ METHOD_CALL_EXPR
+ LITERAL
+ STRING "\"\""
+ DOT "."
+ NAME_REF
+ IDENT "to_owned"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0036_fully_qualified.txt b/crates/parser/test_data/parser/ok/0036_fully_qualified.txt
deleted file mode 100644
index 6137b38aba..0000000000
--- a/crates/parser/test_data/parser/ok/0036_fully_qualified.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-SOURCE_FILE
- COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/311"
- WHITESPACE "\n\n"
- FN
- VISIBILITY
- PUB_KW "pub"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "S"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Iterator"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "String"
- WHITESPACE "\n"
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE "\n "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- L_ANGLE "<"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Iterator"
- R_ANGLE ">"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Item"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Eq"
- COMMA ","
- WHITESPACE "\n"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- METHOD_CALL_EXPR
- LITERAL
- STRING "\"\""
- DOT "."
- NAME_REF
- IDENT "to_owned"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0037_mod.rast b/crates/parser/test_data/parser/ok/0037_mod.rast
index 35577272e5..fb6565f3a4 100644
--- a/crates/parser/test_data/parser/ok/0037_mod.rast
+++ b/crates/parser/test_data/parser/ok/0037_mod.rast
@@ -1,16 +1,16 @@
- [email protected] "// https://github.com ..."
- [email protected] "//! docs"
- [email protected] "// non-docs"
+SOURCE_FILE
+ COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/357"
+ WHITESPACE "\n\n"
+ COMMENT "//! docs"
+ WHITESPACE "\n"
+ MODULE
+ COMMENT "// non-docs"
+ WHITESPACE "\n"
+ MOD_KW "mod"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ WHITESPACE " "
+ ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0037_mod.txt b/crates/parser/test_data/parser/ok/0037_mod.txt
deleted file mode 100644
index fb6565f3a4..0000000000
--- a/crates/parser/test_data/parser/ok/0037_mod.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-SOURCE_FILE
- COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/357"
- WHITESPACE "\n\n"
- COMMENT "//! docs"
- WHITESPACE "\n"
- MODULE
- COMMENT "// non-docs"
- WHITESPACE "\n"
- MOD_KW "mod"
- WHITESPACE " "
- NAME
- IDENT "foo"
- WHITESPACE " "
- ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0038_where_pred_type.rast b/crates/parser/test_data/parser/ok/0038_where_pred_type.rast
index 09aa2e60d9..e897630420 100644
--- a/crates/parser/test_data/parser/ok/0038_where_pred_type.rast
+++ b/crates/parser/test_data/parser/ok/0038_where_pred_type.rast
@@ -1,43 +1,43 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "test"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE " "
+ WHERE_PRED
+ TUPLE_TYPE
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u64"
+ COMMA ","
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u64"
+ R_PAREN ")"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0038_where_pred_type.txt b/crates/parser/test_data/parser/ok/0038_where_pred_type.txt
deleted file mode 100644
index e897630420..0000000000
--- a/crates/parser/test_data/parser/ok/0038_where_pred_type.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "test"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE " "
- WHERE_PRED
- TUPLE_TYPE
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u64"
- COMMA ","
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u64"
- R_PAREN ")"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0039_raw_fn_item.rast b/crates/parser/test_data/parser/ok/0039_raw_fn_item.rast
index 186dea82d4..2eeed781c1 100644
--- a/crates/parser/test_data/parser/ok/0039_raw_fn_item.rast
+++ b/crates/parser/test_data/parser/ok/0039_raw_fn_item.rast
@@ -1,16 +1,16 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "r#foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0039_raw_fn_item.txt b/crates/parser/test_data/parser/ok/0039_raw_fn_item.txt
deleted file mode 100644
index 2eeed781c1..0000000000
--- a/crates/parser/test_data/parser/ok/0039_raw_fn_item.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "r#foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0040_raw_struct_item_field.rast b/crates/parser/test_data/parser/ok/0040_raw_struct_item_field.rast
index 8cfc14f491..ceb918420f 100644
--- a/crates/parser/test_data/parser/ok/0040_raw_struct_item_field.rast
+++ b/crates/parser/test_data/parser/ok/0040_raw_struct_item_field.rast
@@ -1,22 +1,22 @@
+SOURCE_FILE
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ RECORD_FIELD
+ NAME
+ IDENT "r#foo"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ WHITESPACE "\n"
+ R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0040_raw_struct_item_field.txt b/crates/parser/test_data/parser/ok/0040_raw_struct_item_field.txt
deleted file mode 100644
index ceb918420f..0000000000
--- a/crates/parser/test_data/parser/ok/0040_raw_struct_item_field.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-SOURCE_FILE
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "S"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- RECORD_FIELD
- NAME
- IDENT "r#foo"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- WHITESPACE "\n"
- R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0041_raw_keywords.rast b/crates/parser/test_data/parser/ok/0041_raw_keywords.rast
index a8971b466e..dacf0ce742 100644
--- a/crates/parser/test_data/parser/ok/0041_raw_keywords.rast
+++ b/crates/parser/test_data/parser/ok/0041_raw_keywords.rast
@@ -1,50 +1,50 @@
- [email protected] "r#struct"
- [email protected] "r#trait"
- [email protected] "r#struct"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "r#struct"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "92"
+ SEMICOLON ";"
+ WHITESPACE " "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "r#trait"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "r#struct"
+ WHITESPACE " "
+ STAR "*"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0041_raw_keywords.txt b/crates/parser/test_data/parser/ok/0041_raw_keywords.txt
deleted file mode 100644
index dacf0ce742..0000000000
--- a/crates/parser/test_data/parser/ok/0041_raw_keywords.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "r#struct"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "92"
- SEMICOLON ";"
- WHITESPACE " "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "r#trait"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "r#struct"
- WHITESPACE " "
- STAR "*"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0042_ufcs_call_list.rast b/crates/parser/test_data/parser/ok/0042_ufcs_call_list.rast
index aa7a4dc745..ff2121a58a 100644
--- a/crates/parser/test_data/parser/ok/0042_ufcs_call_list.rast
+++ b/crates/parser/test_data/parser/ok/0042_ufcs_call_list.rast
@@ -1,126 +1,126 @@
- [email protected] "// https://github.com ..."
- [email protected] "unimplemented"
+SOURCE_FILE
+ COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/596"
+ WHITESPACE "\n\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "Foo"
+ SEMICOLON ";"
+ WHITESPACE "\n\n"
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "bar"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bool"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "unimplemented"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "baz"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bool"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "baz"
+ ARG_LIST
+ L_PAREN "("
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH
+ PATH_SEGMENT
+ L_ANGLE "<"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ R_ANGLE ">"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0042_ufcs_call_list.txt b/crates/parser/test_data/parser/ok/0042_ufcs_call_list.txt
deleted file mode 100644
index ff2121a58a..0000000000
--- a/crates/parser/test_data/parser/ok/0042_ufcs_call_list.txt
+++ /dev/null
@@ -1,126 +0,0 @@
-SOURCE_FILE
- COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/596"
- WHITESPACE "\n\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "Foo"
- SEMICOLON ";"
- WHITESPACE "\n\n"
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "bar"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bool"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "unimplemented"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "baz"
- PARAM_LIST
- L_PAREN "("
- PARAM
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bool"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "baz"
- ARG_LIST
- L_PAREN "("
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH
- PATH_SEGMENT
- L_ANGLE "<"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- R_ANGLE ">"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0043_complex_assignment.rast b/crates/parser/test_data/parser/ok/0043_complex_assignment.rast
index 12d776c7bf..f9e5a51ae2 100644
--- a/crates/parser/test_data/parser/ok/0043_complex_assignment.rast
+++ b/crates/parser/test_data/parser/ok/0043_complex_assignment.rast
@@ -1,110 +1,110 @@
- [email protected] "// https://github.com ..."
+SOURCE_FILE
+ COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/674"
+ WHITESPACE "\n\n"
+ STRUCT
+ STRUCT_KW "struct"
+ WHITESPACE " "
+ NAME
+ IDENT "Repr"
+ WHITESPACE " "
+ RECORD_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_FIELD
+ NAME
+ IDENT "raw"
+ COLON ":"
+ WHITESPACE " "
+ ARRAY_TYPE
+ L_BRACK "["
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ SEMICOLON ";"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ R_BRACK "]"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "abc"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ INDEX_EXPR
+ FIELD_EXPR
+ RECORD_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Repr"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_EXPR_FIELD
+ NAME_REF
+ IDENT "raw"
+ COLON ":"
+ WHITESPACE " "
+ ARRAY_EXPR
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "0"
+ R_BRACK "]"
+ WHITESPACE " "
+ R_CURLY "}"
+ DOT "."
+ NAME_REF
+ IDENT "raw"
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "0"
+ R_BRACK "]"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ RECORD_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Repr"
+ RECORD_EXPR_FIELD_LIST
+ L_CURLY "{"
+ RECORD_EXPR_FIELD
+ NAME_REF
+ IDENT "raw"
+ COLON ":"
+ ARRAY_EXPR
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "0"
+ R_BRACK "]"
+ R_CURLY "}"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0043_complex_assignment.txt b/crates/parser/test_data/parser/ok/0043_complex_assignment.txt
deleted file mode 100644
index f9e5a51ae2..0000000000
--- a/crates/parser/test_data/parser/ok/0043_complex_assignment.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-SOURCE_FILE
- COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/674"
- WHITESPACE "\n\n"
- STRUCT
- STRUCT_KW "struct"
- WHITESPACE " "
- NAME
- IDENT "Repr"
- WHITESPACE " "
- RECORD_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_FIELD
- NAME
- IDENT "raw"
- COLON ":"
- WHITESPACE " "
- ARRAY_TYPE
- L_BRACK "["
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- SEMICOLON ";"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- R_BRACK "]"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "abc"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- INDEX_EXPR
- FIELD_EXPR
- RECORD_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Repr"
- WHITESPACE " "
- RECORD_EXPR_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_EXPR_FIELD
- NAME_REF
- IDENT "raw"
- COLON ":"
- WHITESPACE " "
- ARRAY_EXPR
- L_BRACK "["
- LITERAL
- INT_NUMBER "0"
- R_BRACK "]"
- WHITESPACE " "
- R_CURLY "}"
- DOT "."
- NAME_REF
- IDENT "raw"
- L_BRACK "["
- LITERAL
- INT_NUMBER "0"
- R_BRACK "]"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- RECORD_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Repr"
- RECORD_EXPR_FIELD_LIST
- L_CURLY "{"
- RECORD_EXPR_FIELD
- NAME_REF
- IDENT "raw"
- COLON ":"
- ARRAY_EXPR
- L_BRACK "["
- LITERAL
- INT_NUMBER "0"
- R_BRACK "]"
- R_CURLY "}"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0044_let_attrs.rast b/crates/parser/test_data/parser/ok/0044_let_attrs.rast
index 80c1d6b87a..6c637bac42 100644
--- a/crates/parser/test_data/parser/ok/0044_let_attrs.rast
+++ b/crates/parser/test_data/parser/ok/0044_let_attrs.rast
@@ -1,77 +1,77 @@
- [email protected] "// https://github.com ..."
- [email protected] "feature"
- [email protected] "\"backtrace\""
- [email protected] "exit_code"
- [email protected] "catch_unwind"
+SOURCE_FILE
+ FN
+ COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/677"
+ WHITESPACE "\n"
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "feature"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ STRING "\"backtrace\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "exit_code"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "panic"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "catch_unwind"
+ ARG_LIST
+ L_PAREN "("
+ CLOSURE_EXPR
+ MOVE_KW "move"
+ WHITESPACE " "
+ PARAM_LIST
+ PIPE "|"
+ PIPE "|"
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "main"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0044_let_attrs.txt b/crates/parser/test_data/parser/ok/0044_let_attrs.txt
deleted file mode 100644
index 6c637bac42..0000000000
--- a/crates/parser/test_data/parser/ok/0044_let_attrs.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-SOURCE_FILE
- FN
- COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/677"
- WHITESPACE "\n"
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "feature"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- STRING "\"backtrace\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "exit_code"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "panic"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "catch_unwind"
- ARG_LIST
- L_PAREN "("
- CLOSURE_EXPR
- MOVE_KW "move"
- WHITESPACE " "
- PARAM_LIST
- PIPE "|"
- PIPE "|"
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "main"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0045_block_attrs.rast b/crates/parser/test_data/parser/ok/0045_block_attrs.rast
index a45f88def1..9684bb11cd 100644
--- a/crates/parser/test_data/parser/ok/0045_block_attrs.rast
+++ b/crates/parser/test_data/parser/ok/0045_block_attrs.rast
@@ -1,230 +1,230 @@
- [email protected] "\"Inner attributes all ..."
- [email protected] "//! As are ModuleDoc ..."
- [email protected] "\"Inner attributes are ..."
- [email protected] "\"Being validated is n ..."
- [email protected] "//! As are ModuleDoc ..."
- [email protected] "\"Inner attributes are ..."
- [email protected] "//! As are ModuleDoc ..."
- [email protected] "\"Outer attributes are ..."
- [email protected] "// https://github.com ..."
- [email protected] "Whatever"
- [email protected] "salsa_event"
- [email protected] "event_fn"
- [email protected] "unused_variables"
- [email protected] "// this is `inner_at ..."
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "inner"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "doc"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"Inner attributes allowed here\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ COMMENT "//! As are ModuleDoc style comments"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "doc"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"Inner attributes are allowed in blocks used as statements\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "doc"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"Being validated is not affected by duplcates\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ COMMENT "//! As are ModuleDoc style comments"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "doc"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"Inner attributes are allowed in blocks when they are the last statement of another block\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n "
+ COMMENT "//! As are ModuleDoc style comments"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "outer"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ BLOCK_EXPR
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "doc"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"Outer attributes are always allowed\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ IMPL
+ COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/689"
+ WHITESPACE "\n"
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Whatever"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "salsa_event"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ AMP "&"
+ NAME
+ SELF_KW "self"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "event_fn"
+ COLON ":"
+ WHITESPACE " "
+ IMPL_TRAIT_TYPE
+ IMPL_KW "impl"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Fn"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Event"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_TYPE_KW "Self"
+ R_ANGLE ">"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "allow"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "unused_variables"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE " "
+ COMMENT "// this is `inner_attr` of the block"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0045_block_attrs.txt b/crates/parser/test_data/parser/ok/0045_block_attrs.txt
deleted file mode 100644
index 9684bb11cd..0000000000
--- a/crates/parser/test_data/parser/ok/0045_block_attrs.txt
+++ /dev/null
@@ -1,230 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "inner"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "doc"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"Inner attributes allowed here\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- COMMENT "//! As are ModuleDoc style comments"
- WHITESPACE "\n "
- EXPR_STMT
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "doc"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"Inner attributes are allowed in blocks used as statements\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "doc"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"Being validated is not affected by duplcates\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- COMMENT "//! As are ModuleDoc style comments"
- WHITESPACE "\n "
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "doc"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"Inner attributes are allowed in blocks when they are the last statement of another block\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n "
- COMMENT "//! As are ModuleDoc style comments"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "outer"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- BLOCK_EXPR
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "doc"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"Outer attributes are always allowed\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- IMPL
- COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/689"
- WHITESPACE "\n"
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Whatever"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "salsa_event"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- AMP "&"
- NAME
- SELF_KW "self"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- NAME
- IDENT "event_fn"
- COLON ":"
- WHITESPACE " "
- IMPL_TRAIT_TYPE
- IMPL_KW "impl"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Fn"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Event"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_TYPE_KW "Self"
- R_ANGLE ">"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "allow"
- TOKEN_TREE
- L_PAREN "("
- IDENT "unused_variables"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE " "
- COMMENT "// this is `inner_attr` of the block"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0046_extern_inner_attributes.rast b/crates/parser/test_data/parser/ok/0046_extern_inner_attributes.rast
index 854ff9d563..4eb51cfdf0 100644
--- a/crates/parser/test_data/parser/ok/0046_extern_inner_attributes.rast
+++ b/crates/parser/test_data/parser/ok/0046_extern_inner_attributes.rast
@@ -1,29 +1,29 @@
- [email protected] "//! This is a doc com ..."
- [email protected] "\"This is also a doc c ..."
+SOURCE_FILE
+ EXTERN_BLOCK
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C\""
+ WHITESPACE " "
+ EXTERN_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ COMMENT "//! This is a doc comment"
+ WHITESPACE "\n "
+ ATTR
+ POUND "#"
+ BANG "!"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "doc"
+ TOKEN_TREE
+ L_PAREN "("
+ STRING "\"This is also a doc comment\""
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0046_extern_inner_attributes.txt b/crates/parser/test_data/parser/ok/0046_extern_inner_attributes.txt
deleted file mode 100644
index 4eb51cfdf0..0000000000
--- a/crates/parser/test_data/parser/ok/0046_extern_inner_attributes.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-SOURCE_FILE
- EXTERN_BLOCK
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C\""
- WHITESPACE " "
- EXTERN_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- COMMENT "//! This is a doc comment"
- WHITESPACE "\n "
- ATTR
- POUND "#"
- BANG "!"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "doc"
- TOKEN_TREE
- L_PAREN "("
- STRING "\"This is also a doc comment\""
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0047_minus_in_inner_pattern.rast b/crates/parser/test_data/parser/ok/0047_minus_in_inner_pattern.rast
index 9b6101edb1..aecc71d482 100644
--- a/crates/parser/test_data/parser/ok/0047_minus_in_inner_pattern.rast
+++ b/crates/parser/test_data/parser/ok/0047_minus_in_inner_pattern.rast
@@ -1,323 +1,323 @@
- [email protected] "// https://github.com ..."
+SOURCE_FILE
+ COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/972"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ ARG_LIST
+ L_PAREN "("
+ PREFIX_EXPR
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ L_PAREN "("
+ LITERAL_PAT
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ R_PAREN ")"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ ARG_LIST
+ L_PAREN "("
+ TUPLE_EXPR
+ L_PAREN "("
+ PREFIX_EXPR
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ PREFIX_EXPR
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ L_PAREN "("
+ TUPLE_PAT
+ L_PAREN "("
+ LITERAL_PAT
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL_PAT
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n\n "
+ EXPR_STMT
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "A"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "B"
+ ARG_LIST
+ L_PAREN "("
+ PREFIX_EXPR
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ PREFIX_EXPR
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ R_PAREN ")"
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_ARM
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "A"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "B"
+ L_PAREN "("
+ LITERAL_PAT
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ COMMA ","
+ WHITESPACE " "
+ LITERAL_PAT
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ R_PAREN ")"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ MATCH_ARM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ FAT_ARROW "=>"
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n\n "
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ LET_EXPR
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ L_PAREN "("
+ LITERAL_PAT
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ ARG_LIST
+ L_PAREN "("
+ PREFIX_EXPR
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ ENUM
+ ENUM_KW "enum"
+ WHITESPACE " "
+ NAME
+ IDENT "A"
+ WHITESPACE " "
+ VARIANT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ VARIANT
+ NAME
+ IDENT "B"
+ TUPLE_FIELD_LIST
+ L_PAREN "("
+ TUPLE_FIELD
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i8"
+ COMMA ","
+ WHITESPACE " "
+ TUPLE_FIELD
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i8"
+ R_PAREN ")"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ RANGE_PAT
+ LITERAL_PAT
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "128"
+ DOT2EQ "..="
+ LITERAL_PAT
+ LITERAL
+ INT_NUMBER "127"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i8"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0047_minus_in_inner_pattern.txt b/crates/parser/test_data/parser/ok/0047_minus_in_inner_pattern.txt
deleted file mode 100644
index aecc71d482..0000000000
--- a/crates/parser/test_data/parser/ok/0047_minus_in_inner_pattern.txt
+++ /dev/null
@@ -1,323 +0,0 @@
-SOURCE_FILE
- COMMENT "// https://github.com/rust-analyzer/rust-analyzer/issues/972"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- ARG_LIST
- L_PAREN "("
- PREFIX_EXPR
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- L_PAREN "("
- LITERAL_PAT
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- R_PAREN ")"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- ARG_LIST
- L_PAREN "("
- TUPLE_EXPR
- L_PAREN "("
- PREFIX_EXPR
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- PREFIX_EXPR
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- L_PAREN "("
- TUPLE_PAT
- L_PAREN "("
- LITERAL_PAT
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- LITERAL_PAT
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n\n "
- EXPR_STMT
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "A"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "B"
- ARG_LIST
- L_PAREN "("
- PREFIX_EXPR
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- PREFIX_EXPR
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- R_PAREN ")"
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_ARM
- TUPLE_STRUCT_PAT
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "A"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "B"
- L_PAREN "("
- LITERAL_PAT
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- COMMA ","
- WHITESPACE " "
- LITERAL_PAT
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- R_PAREN ")"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- MATCH_ARM
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- FAT_ARROW "=>"
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n\n "
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- LET_EXPR
- LET_KW "let"
- WHITESPACE " "
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- L_PAREN "("
- LITERAL_PAT
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- ARG_LIST
- L_PAREN "("
- PREFIX_EXPR
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- ENUM
- ENUM_KW "enum"
- WHITESPACE " "
- NAME
- IDENT "A"
- WHITESPACE " "
- VARIANT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- VARIANT
- NAME
- IDENT "B"
- TUPLE_FIELD_LIST
- L_PAREN "("
- TUPLE_FIELD
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i8"
- COMMA ","
- WHITESPACE " "
- TUPLE_FIELD
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i8"
- R_PAREN ")"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- PARAM
- RANGE_PAT
- LITERAL_PAT
- MINUS "-"
- LITERAL
- INT_NUMBER "128"
- DOT2EQ "..="
- LITERAL_PAT
- LITERAL
- INT_NUMBER "127"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i8"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0048_compound_assignment.rast b/crates/parser/test_data/parser/ok/0048_compound_assignment.rast
index b19a0b5f8b..eca5e7aa81 100644
--- a/crates/parser/test_data/parser/ok/0048_compound_assignment.rast
+++ b/crates/parser/test_data/parser/ok/0048_compound_assignment.rast
@@ -1,201 +1,201 @@
- [email protected] "// https://github.com ..."
- [email protected] "compound_assignment"
+SOURCE_FILE
+ COMMENT "// https://github.com/rust-analyzer/rust-analyzer/pull/983"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "compound_assignment"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "a"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ PLUSEQ "+="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "1"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ MINUSEQ "-="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ STAREQ "*="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "3"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ PERCENTEQ "%="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "4"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ SLASHEQ "/="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "5"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ PIPEEQ "|="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "6"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ AMPEQ "&="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "7"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ CARETEQ "^="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "8"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ LTEQ "<="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "9"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ GTEQ ">="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "10"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ SHREQ ">>="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "11"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ WHITESPACE " "
+ SHLEQ "<<="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "12"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0048_compound_assignment.txt b/crates/parser/test_data/parser/ok/0048_compound_assignment.txt
deleted file mode 100644
index eca5e7aa81..0000000000
--- a/crates/parser/test_data/parser/ok/0048_compound_assignment.txt
+++ /dev/null
@@ -1,201 +0,0 @@
-SOURCE_FILE
- COMMENT "// https://github.com/rust-analyzer/rust-analyzer/pull/983"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "compound_assignment"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "a"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- PLUSEQ "+="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "1"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- MINUSEQ "-="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- STAREQ "*="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "3"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- PERCENTEQ "%="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "4"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- SLASHEQ "/="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "5"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- PIPEEQ "|="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "6"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- AMPEQ "&="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "7"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- CARETEQ "^="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "8"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- LTEQ "<="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "9"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- GTEQ ">="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "10"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- SHREQ ">>="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "11"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- WHITESPACE " "
- SHLEQ "<<="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "12"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0049_async_block.rast b/crates/parser/test_data/parser/ok/0049_async_block.rast
index a254214595..f376821e28 100644
--- a/crates/parser/test_data/parser/ok/0049_async_block.rast
+++ b/crates/parser/test_data/parser/ok/0049_async_block.rast
@@ -1,36 +1,36 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ ASYNC_KW "async"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ ASYNC_KW "async"
+ WHITESPACE " "
+ MOVE_KW "move"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
diff --git a/crates/parser/test_data/parser/ok/0049_async_block.txt b/crates/parser/test_data/parser/ok/0049_async_block.txt
deleted file mode 100644
index f376821e28..0000000000
--- a/crates/parser/test_data/parser/ok/0049_async_block.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- BLOCK_EXPR
- ASYNC_KW "async"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- BLOCK_EXPR
- ASYNC_KW "async"
- WHITESPACE " "
- MOVE_KW "move"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
diff --git a/crates/parser/test_data/parser/ok/0050_async_block_as_argument.rast b/crates/parser/test_data/parser/ok/0050_async_block_as_argument.rast
index f54c0c1664..53ddf35ccb 100644
--- a/crates/parser/test_data/parser/ok/0050_async_block_as_argument.rast
+++ b/crates/parser/test_data/parser/ok/0050_async_block_as_argument.rast
@@ -1,92 +1,92 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ IMPL_TRAIT_TYPE
+ IMPL_KW "impl"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "std"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "future"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Future"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ ASSOC_TYPE_ARG
+ NAME_REF
+ IDENT "Output"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_ANGLE ">"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ ARG_LIST
+ L_PAREN "("
+ BLOCK_EXPR
+ ASYNC_KW "async"
+ WHITESPACE " "
+ MOVE_KW "move"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "12"
+ WHITESPACE " "
+ R_CURLY "}"
+ R_PAREN ")"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0050_async_block_as_argument.txt b/crates/parser/test_data/parser/ok/0050_async_block_as_argument.txt
deleted file mode 100644
index 53ddf35ccb..0000000000
--- a/crates/parser/test_data/parser/ok/0050_async_block_as_argument.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- IMPL_TRAIT_TYPE
- IMPL_KW "impl"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "std"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "future"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Future"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- ASSOC_TYPE_ARG
- NAME_REF
- IDENT "Output"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_ANGLE ">"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- ARG_LIST
- L_PAREN "("
- BLOCK_EXPR
- ASYNC_KW "async"
- WHITESPACE " "
- MOVE_KW "move"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "12"
- WHITESPACE " "
- R_CURLY "}"
- R_PAREN ")"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0051_parameter_attrs.rast b/crates/parser/test_data/parser/ok/0051_parameter_attrs.rast
index e4e76645ce..f8b11e7782 100644
--- a/crates/parser/test_data/parser/ok/0051_parameter_attrs.rast
+++ b/crates/parser/test_data/parser/ok/0051_parameter_attrs.rast
@@ -1,548 +1,548 @@
- [email protected] "must_use"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "g1"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr1"
+ R_BRACK "]"
+ WHITESPACE " "
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr2"
+ R_BRACK "]"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "pat"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Type"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "g2"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr1"
+ R_BRACK "]"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ EXTERN_BLOCK
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C\""
+ WHITESPACE " "
+ EXTERN_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "printf"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "format"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ CONST_KW "const"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i8"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ DOT3 "..."
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "F"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "FnMut"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ LIFETIME_ARG
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ R_PAREN ")"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "Foo"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "bar"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u64"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ ATTR
+ POUND "#"
+ WHITESPACE " "
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ IDENT_PAT
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "must_use"
+ R_BRACK "]"
+ WHITESPACE " "
+ NAME
+ SELF_KW "self"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "g1"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ NAME
+ SELF_KW "self"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "g2"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ AMP "&"
+ NAME
+ SELF_KW "self"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "g3"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ AMP "&"
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ SELF_KW "self"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "g4"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ NAME
+ SELF_KW "self"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "g5"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ SELF_KW "self"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "c"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ NAME
+ SELF_KW "self"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_TYPE_KW "Self"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "d"
+ PARAM_LIST
+ L_PAREN "("
+ SELF_PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "attr"
+ R_BRACK "]"
+ WHITESPACE " "
+ NAME
+ SELF_KW "self"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Rc"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ SELF_TYPE_KW "Self"
+ R_ANGLE ">"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0051_parameter_attrs.txt b/crates/parser/test_data/parser/ok/0051_parameter_attrs.txt
deleted file mode 100644
index f8b11e7782..0000000000
--- a/crates/parser/test_data/parser/ok/0051_parameter_attrs.txt
+++ /dev/null
@@ -1,548 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "g1"
- PARAM_LIST
- L_PAREN "("
- PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr1"
- R_BRACK "]"
- WHITESPACE " "
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr2"
- R_BRACK "]"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "pat"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Type"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "g2"
- PARAM_LIST
- L_PAREN "("
- PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr1"
- R_BRACK "]"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- EXTERN_BLOCK
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C\""
- WHITESPACE " "
- EXTERN_ITEM_LIST
- L_CURLY "{"
- WHITESPACE " "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "printf"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "format"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- CONST_KW "const"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i8"
- COMMA ","
- WHITESPACE " "
- PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- DOT3 "..."
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "F"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "FnMut"
- PARAM_LIST
- L_PAREN "("
- PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- LIFETIME_ARG
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- R_PAREN ")"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "Foo"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "bar"
- PARAM_LIST
- L_PAREN "("
- PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u64"
- COMMA ","
- WHITESPACE " "
- PARAM
- ATTR
- POUND "#"
- WHITESPACE " "
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- IDENT_PAT
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "must_use"
- R_BRACK "]"
- WHITESPACE " "
- NAME
- SELF_KW "self"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "g1"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- NAME
- SELF_KW "self"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "g2"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- AMP "&"
- NAME
- SELF_KW "self"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "g3"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- AMP "&"
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- SELF_KW "self"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "g4"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- NAME
- SELF_KW "self"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "g5"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- SELF_KW "self"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "c"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- NAME
- SELF_KW "self"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_TYPE_KW "Self"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "d"
- PARAM_LIST
- L_PAREN "("
- SELF_PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "attr"
- R_BRACK "]"
- WHITESPACE " "
- NAME
- SELF_KW "self"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Rc"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- SELF_TYPE_KW "Self"
- R_ANGLE ">"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0052_for_range_block.rast b/crates/parser/test_data/parser/ok/0052_for_range_block.rast
index 949ddc3797..0c9dd432fb 100644
--- a/crates/parser/test_data/parser/ok/0052_for_range_block.rast
+++ b/crates/parser/test_data/parser/ok/0052_for_range_block.rast
@@ -1,81 +1,81 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FOR_EXPR
+ FOR_KW "for"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "_x"
+ WHITESPACE " "
+ IN_KW "in"
+ WHITESPACE " "
+ RANGE_EXPR
+ LITERAL
+ INT_NUMBER "0"
+ WHITESPACE " "
+ DOT2 ".."
+ WHITESPACE " "
+ METHOD_CALL_EXPR
+ PAREN_EXPR
+ L_PAREN "("
+ RANGE_EXPR
+ LITERAL
+ INT_NUMBER "0"
+ WHITESPACE " "
+ DOT2 ".."
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "2"
+ R_CURLY "}"
+ R_PAREN ")"
+ DOT "."
+ NAME_REF
+ IDENT "sum"
+ GENERIC_ARG_LIST
+ COLON2 "::"
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u32"
+ R_ANGLE ">"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0052_for_range_block.txt b/crates/parser/test_data/parser/ok/0052_for_range_block.txt
deleted file mode 100644
index 0c9dd432fb..0000000000
--- a/crates/parser/test_data/parser/ok/0052_for_range_block.txt
+++ /dev/null
@@ -1,81 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FOR_EXPR
- FOR_KW "for"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "_x"
- WHITESPACE " "
- IN_KW "in"
- WHITESPACE " "
- RANGE_EXPR
- LITERAL
- INT_NUMBER "0"
- WHITESPACE " "
- DOT2 ".."
- WHITESPACE " "
- METHOD_CALL_EXPR
- PAREN_EXPR
- L_PAREN "("
- RANGE_EXPR
- LITERAL
- INT_NUMBER "0"
- WHITESPACE " "
- DOT2 ".."
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "2"
- R_CURLY "}"
- R_PAREN ")"
- DOT "."
- NAME_REF
- IDENT "sum"
- GENERIC_ARG_LIST
- COLON2 "::"
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u32"
- R_ANGLE ">"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast b/crates/parser/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast
index 97416f16ac..b94d43beb3 100644
--- a/crates/parser/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast
+++ b/crates/parser/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast
@@ -1,37 +1,37 @@
- [email protected] "/// Some docs"
- [email protected] "macro_export"
- [email protected] "macro_rules"
+SOURCE_FILE
+ MACRO_RULES
+ COMMENT "/// Some docs"
+ WHITESPACE "\n"
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "macro_export"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ MACRO_RULES_KW "macro_rules"
+ BANG "!"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ WHITESPACE "\n "
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ EQ "="
+ R_ANGLE ">"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ R_CURLY "}"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt b/crates/parser/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt
deleted file mode 100644
index b94d43beb3..0000000000
--- a/crates/parser/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-SOURCE_FILE
- MACRO_RULES
- COMMENT "/// Some docs"
- WHITESPACE "\n"
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "macro_export"
- R_BRACK "]"
- WHITESPACE "\n"
- MACRO_RULES_KW "macro_rules"
- BANG "!"
- WHITESPACE " "
- NAME
- IDENT "foo"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- WHITESPACE "\n "
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- EQ "="
- R_ANGLE ">"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- R_CURLY "}"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0054_qual_path_in_type_arg.rast b/crates/parser/test_data/parser/ok/0054_qual_path_in_type_arg.rast
index e85cb15961..4e1e31f376 100644
--- a/crates/parser/test_data/parser/ok/0054_qual_path_in_type_arg.rast
+++ b/crates/parser/test_data/parser/ok/0054_qual_path_in_type_arg.rast
@@ -1,126 +1,126 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "a"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Baz"
+ R_ANGLE ">"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ IMPL_TRAIT_TYPE
+ IMPL_KW "impl"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "FnMut"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Y"
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "c"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ IMPL_TRAIT_TYPE
+ IMPL_KW "impl"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "FnMut"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ REF_TYPE
+ AMP "&"
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Y"
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0054_qual_path_in_type_arg.txt b/crates/parser/test_data/parser/ok/0054_qual_path_in_type_arg.txt
deleted file mode 100644
index 4e1e31f376..0000000000
--- a/crates/parser/test_data/parser/ok/0054_qual_path_in_type_arg.txt
+++ /dev/null
@@ -1,126 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "a"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Baz"
- R_ANGLE ">"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "b"
- PARAM_LIST
- L_PAREN "("
- PARAM
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- IMPL_TRAIT_TYPE
- IMPL_KW "impl"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "FnMut"
- PARAM_LIST
- L_PAREN "("
- PARAM
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Y"
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "c"
- PARAM_LIST
- L_PAREN "("
- PARAM
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- IMPL_TRAIT_TYPE
- IMPL_KW "impl"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "FnMut"
- PARAM_LIST
- L_PAREN "("
- PARAM
- REF_TYPE
- AMP "&"
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Y"
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0055_dot_dot_dot.rast b/crates/parser/test_data/parser/ok/0055_dot_dot_dot.rast
index b43c38b9e0..684f499df5 100644
--- a/crates/parser/test_data/parser/ok/0055_dot_dot_dot.rast
+++ b/crates/parser/test_data/parser/ok/0055_dot_dot_dot.rast
@@ -1,50 +1,50 @@
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "X"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ TUPLE_PAT
+ L_PAREN "("
+ R_PAREN ")"
+ COLON ":"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ COLON2 "::"
+ NAME_REF
+ IDENT "X"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0055_dot_dot_dot.txt b/crates/parser/test_data/parser/ok/0055_dot_dot_dot.txt
deleted file mode 100644
index 684f499df5..0000000000
--- a/crates/parser/test_data/parser/ok/0055_dot_dot_dot.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "X"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- TUPLE_PAT
- L_PAREN "("
- R_PAREN ")"
- COLON ":"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- COLON2 "::"
- NAME_REF
- IDENT "X"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0056_neq_in_type.rast b/crates/parser/test_data/parser/ok/0056_neq_in_type.rast
index 7393f1df83..55ce31275f 100644
--- a/crates/parser/test_data/parser/ok/0056_neq_in_type.rast
+++ b/crates/parser/test_data/parser/ok/0056_neq_in_type.rast
@@ -1,66 +1,65 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ IF_EXPR
+ IF_KW "if"
+ WHITESPACE " "
+ BIN_EXPR
+ CAST_EXPR
+ METHOD_CALL_EXPR
+ LITERAL
+ FLOAT_NUMBER "1.0f32"
+ DOT "."
+ NAME_REF
+ IDENT "floor"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i64"
+ WHITESPACE " "
+ NEQ "!="
+ WHITESPACE " "
+ CAST_EXPR
+ METHOD_CALL_EXPR
+ LITERAL
+ FLOAT_NUMBER "1.0f32"
+ DOT "."
+ NAME_REF
+ IDENT "floor"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i64"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0056_neq_in_type.txt b/crates/parser/test_data/parser/ok/0056_neq_in_type.txt
deleted file mode 100644
index 55ce31275f..0000000000
--- a/crates/parser/test_data/parser/ok/0056_neq_in_type.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- IF_EXPR
- IF_KW "if"
- WHITESPACE " "
- BIN_EXPR
- CAST_EXPR
- METHOD_CALL_EXPR
- LITERAL
- FLOAT_NUMBER "1.0f32"
- DOT "."
- NAME_REF
- IDENT "floor"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i64"
- WHITESPACE " "
- NEQ "!="
- WHITESPACE " "
- CAST_EXPR
- METHOD_CALL_EXPR
- LITERAL
- FLOAT_NUMBER "1.0f32"
- DOT "."
- NAME_REF
- IDENT "floor"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i64"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0057_loop_in_call.rast b/crates/parser/test_data/parser/ok/0057_loop_in_call.rast
index f8efd8ea4c..67837e4750 100644
--- a/crates/parser/test_data/parser/ok/0057_loop_in_call.rast
+++ b/crates/parser/test_data/parser/ok/0057_loop_in_call.rast
@@ -1,59 +1,59 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "foo"
+ ARG_LIST
+ L_PAREN "("
+ LOOP_EXPR
+ LOOP_KW "loop"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0057_loop_in_call.txt b/crates/parser/test_data/parser/ok/0057_loop_in_call.txt
deleted file mode 100644
index 67837e4750..0000000000
--- a/crates/parser/test_data/parser/ok/0057_loop_in_call.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "foo"
- ARG_LIST
- L_PAREN "("
- LOOP_EXPR
- LOOP_KW "loop"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
diff --git a/crates/parser/test_data/parser/ok/0058_unary_expr_precedence.rast b/crates/parser/test_data/parser/ok/0058_unary_expr_precedence.rast
index 476a19307a..683d5070ae 100644
--- a/crates/parser/test_data/parser/ok/0058_unary_expr_precedence.rast
+++ b/crates/parser/test_data/parser/ok/0058_unary_expr_precedence.rast
@@ -1,97 +1,97 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BIN_EXPR
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ PREFIX_EXPR
+ STAR "*"
+ REF_EXPR
+ AMP "&"
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "3"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CAST_EXPR
+ PREFIX_EXPR
+ STAR "*"
+ REF_EXPR
+ AMP "&"
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u64"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ PREFIX_EXPR
+ STAR "*"
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ ARG_LIST
+ L_PAREN "("
+ LITERAL
+ INT_NUMBER "1"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ REF_EXPR
+ AMP "&"
+ INDEX_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "x"
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "1"
+ R_BRACK "]"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RANGE_EXPR
+ PREFIX_EXPR
+ MINUS "-"
+ LITERAL
+ INT_NUMBER "1"
+ DOT2 ".."
+ LITERAL
+ INT_NUMBER "2"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0058_unary_expr_precedence.txt b/crates/parser/test_data/parser/ok/0058_unary_expr_precedence.txt
deleted file mode 100644
index 683d5070ae..0000000000
--- a/crates/parser/test_data/parser/ok/0058_unary_expr_precedence.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- BIN_EXPR
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- PREFIX_EXPR
- STAR "*"
- REF_EXPR
- AMP "&"
- LITERAL
- INT_NUMBER "2"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- LITERAL
- INT_NUMBER "3"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CAST_EXPR
- PREFIX_EXPR
- STAR "*"
- REF_EXPR
- AMP "&"
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u64"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- PREFIX_EXPR
- STAR "*"
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- ARG_LIST
- L_PAREN "("
- LITERAL
- INT_NUMBER "1"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- REF_EXPR
- AMP "&"
- INDEX_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "x"
- L_BRACK "["
- LITERAL
- INT_NUMBER "1"
- R_BRACK "]"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- RANGE_EXPR
- PREFIX_EXPR
- MINUS "-"
- LITERAL
- INT_NUMBER "1"
- DOT2 ".."
- LITERAL
- INT_NUMBER "2"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0059_loops_in_parens.rast b/crates/parser/test_data/parser/ok/0059_loops_in_parens.rast
index 0cb1ccf044..79bc7f971d 100644
--- a/crates/parser/test_data/parser/ok/0059_loops_in_parens.rast
+++ b/crates/parser/test_data/parser/ok/0059_loops_in_parens.rast
@@ -1,101 +1,100 @@
- [email protected] "into_iter"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ ARG_LIST
+ L_PAREN "("
+ FOR_EXPR
+ FOR_KW "for"
+ WHITESPACE " "
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ WHITESPACE " "
+ IN_KW "in"
+ WHITESPACE " "
+ METHOD_CALL_EXPR
+ ARRAY_EXPR
+ L_BRACK "["
+ LITERAL
+ INT_NUMBER "1"
+ R_BRACK "]"
+ DOT "."
+ NAME_REF
+ IDENT "into_iter"
+ ARG_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ ARG_LIST
+ L_PAREN "("
+ LOOP_EXPR
+ LOOP_KW "loop"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ EXPR_STMT
+ BREAK_EXPR
+ BREAK_KW "break"
+ SEMICOLON ";"
+ WHITESPACE " "
+ R_CURLY "}"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ CALL_EXPR
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Some"
+ ARG_LIST
+ L_PAREN "("
+ WHILE_EXPR
+ WHILE_KW "while"
+ WHITESPACE " "
+ LITERAL
+ TRUE_KW "true"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0059_loops_in_parens.txt b/crates/parser/test_data/parser/ok/0059_loops_in_parens.txt
deleted file mode 100644
index 79bc7f971d..0000000000
--- a/crates/parser/test_data/parser/ok/0059_loops_in_parens.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- ARG_LIST
- L_PAREN "("
- FOR_EXPR
- FOR_KW "for"
- WHITESPACE " "
- WILDCARD_PAT
- UNDERSCORE "_"
- WHITESPACE " "
- IN_KW "in"
- WHITESPACE " "
- METHOD_CALL_EXPR
- ARRAY_EXPR
- L_BRACK "["
- LITERAL
- INT_NUMBER "1"
- R_BRACK "]"
- DOT "."
- NAME_REF
- IDENT "into_iter"
- ARG_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- ARG_LIST
- L_PAREN "("
- LOOP_EXPR
- LOOP_KW "loop"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- EXPR_STMT
- BREAK_EXPR
- BREAK_KW "break"
- SEMICOLON ";"
- WHITESPACE " "
- R_CURLY "}"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- CALL_EXPR
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Some"
- ARG_LIST
- L_PAREN "("
- WHILE_EXPR
- WHILE_KW "while"
- WHITESPACE " "
- LITERAL
- TRUE_KW "true"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0060_as_range.rast b/crates/parser/test_data/parser/ok/0060_as_range.rast
index f692108505..81fc02b6f4 100644
--- a/crates/parser/test_data/parser/ok/0060_as_range.rast
+++ b/crates/parser/test_data/parser/ok/0060_as_range.rast
@@ -1,56 +1,56 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RANGE_EXPR
+ CAST_EXPR
+ LITERAL
+ INT_NUMBER "0"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "usize"
+ WHITESPACE " "
+ DOT2 ".."
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ EXPR_STMT
+ RANGE_EXPR
+ BIN_EXPR
+ LITERAL
+ INT_NUMBER "1"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ CAST_EXPR
+ LITERAL
+ INT_NUMBER "2"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "usize"
+ WHITESPACE " "
+ DOT2 ".."
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0060_as_range.txt b/crates/parser/test_data/parser/ok/0060_as_range.txt
deleted file mode 100644
index 81fc02b6f4..0000000000
--- a/crates/parser/test_data/parser/ok/0060_as_range.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- RANGE_EXPR
- CAST_EXPR
- LITERAL
- INT_NUMBER "0"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "usize"
- WHITESPACE " "
- DOT2 ".."
- SEMICOLON ";"
- WHITESPACE "\n "
- EXPR_STMT
- RANGE_EXPR
- BIN_EXPR
- LITERAL
- INT_NUMBER "1"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- CAST_EXPR
- LITERAL
- INT_NUMBER "2"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "usize"
- WHITESPACE " "
- DOT2 ".."
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0061_match_full_range.rast b/crates/parser/test_data/parser/ok/0061_match_full_range.rast
index bcc8732c97..2f56e9041e 100644
--- a/crates/parser/test_data/parser/ok/0061_match_full_range.rast
+++ b/crates/parser/test_data/parser/ok/0061_match_full_range.rast
@@ -1,27 +1,27 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MATCH_EXPR
+ MATCH_KW "match"
+ WHITESPACE " "
+ RANGE_EXPR
+ DOT2 ".."
+ WHITESPACE " "
+ MATCH_ARM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0061_match_full_range.txt b/crates/parser/test_data/parser/ok/0061_match_full_range.txt
deleted file mode 100644
index 2f56e9041e..0000000000
--- a/crates/parser/test_data/parser/ok/0061_match_full_range.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MATCH_EXPR
- MATCH_KW "match"
- WHITESPACE " "
- RANGE_EXPR
- DOT2 ".."
- WHITESPACE " "
- MATCH_ARM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0062_macro_2.0.rast b/crates/parser/test_data/parser/ok/0062_macro_2.0.rast
index 80f331bec3..3915ed7506 100644
--- a/crates/parser/test_data/parser/ok/0062_macro_2.0.rast
+++ b/crates/parser/test_data/parser/ok/0062_macro_2.0.rast
@@ -1,177 +1,177 @@
- [email protected] "parse_use_trees"
- [email protected] "parse_use_tree"
- [email protected] "test_use_tree_merge"
- [email protected] "test_merge"
- [email protected] "assert_eq"
- [email protected] "merge_use_trees"
- [email protected] "parse_use_trees"
- [email protected] "parse_use_trees"
+SOURCE_FILE
+ MACRO_DEF
+ MACRO_KW "macro"
+ WHITESPACE " "
+ NAME
+ IDENT "parse_use_trees"
+ TOKEN_TREE
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ IDENT "s"
+ COLON ":"
+ IDENT "expr"
+ R_PAREN ")"
+ COMMA ","
+ STAR "*"
+ WHITESPACE " "
+ DOLLAR "$"
+ TOKEN_TREE
+ L_PAREN "("
+ COMMA ","
+ R_PAREN ")"
+ STAR "*"
+ R_PAREN ")"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ WHITESPACE "\n "
+ IDENT "vec"
+ BANG "!"
+ TOKEN_TREE
+ L_BRACK "["
+ WHITESPACE "\n "
+ DOLLAR "$"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "parse_use_tree"
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ IDENT "s"
+ R_PAREN ")"
+ COMMA ","
+ R_PAREN ")"
+ STAR "*"
+ WHITESPACE "\n "
+ R_BRACK "]"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ FN
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "test"
+ R_BRACK "]"
+ WHITESPACE "\n"
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "test_use_tree_merge"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ MACRO_DEF
+ MACRO_KW "macro"
+ WHITESPACE " "
+ NAME
+ IDENT "test_merge"
+ TOKEN_TREE
+ TOKEN_TREE
+ L_PAREN "("
+ TOKEN_TREE
+ L_BRACK "["
+ DOLLAR "$"
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ IDENT "input"
+ COLON ":"
+ IDENT "expr"
+ R_PAREN ")"
+ COMMA ","
+ STAR "*"
+ WHITESPACE " "
+ DOLLAR "$"
+ TOKEN_TREE
+ L_PAREN "("
+ COMMA ","
+ R_PAREN ")"
+ STAR "*"
+ R_BRACK "]"
+ COMMA ","
+ WHITESPACE " "
+ TOKEN_TREE
+ L_BRACK "["
+ DOLLAR "$"
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ IDENT "output"
+ COLON ":"
+ IDENT "expr"
+ R_PAREN ")"
+ COMMA ","
+ STAR "*"
+ WHITESPACE " "
+ DOLLAR "$"
+ TOKEN_TREE
+ L_PAREN "("
+ COMMA ","
+ R_PAREN ")"
+ STAR "*"
+ R_BRACK "]"
+ R_PAREN ")"
+ WHITESPACE " "
+ TOKEN_TREE
+ L_CURLY "{"
+ WHITESPACE "\n "
+ IDENT "assert_eq"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ WHITESPACE "\n "
+ IDENT "merge_use_trees"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "parse_use_trees"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ IDENT "input"
+ COMMA ","
+ R_PAREN ")"
+ STAR "*"
+ R_PAREN ")"
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ IDENT "parse_use_trees"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ TOKEN_TREE
+ L_PAREN "("
+ DOLLAR "$"
+ IDENT "output"
+ COMMA ","
+ R_PAREN ")"
+ STAR "*"
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n "
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0062_macro_2.0.txt b/crates/parser/test_data/parser/ok/0062_macro_2.0.txt
deleted file mode 100644
index 3915ed7506..0000000000
--- a/crates/parser/test_data/parser/ok/0062_macro_2.0.txt
+++ /dev/null
@@ -1,177 +0,0 @@
-SOURCE_FILE
- MACRO_DEF
- MACRO_KW "macro"
- WHITESPACE " "
- NAME
- IDENT "parse_use_trees"
- TOKEN_TREE
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- IDENT "s"
- COLON ":"
- IDENT "expr"
- R_PAREN ")"
- COMMA ","
- STAR "*"
- WHITESPACE " "
- DOLLAR "$"
- TOKEN_TREE
- L_PAREN "("
- COMMA ","
- R_PAREN ")"
- STAR "*"
- R_PAREN ")"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- WHITESPACE "\n "
- IDENT "vec"
- BANG "!"
- TOKEN_TREE
- L_BRACK "["
- WHITESPACE "\n "
- DOLLAR "$"
- TOKEN_TREE
- L_PAREN "("
- IDENT "parse_use_tree"
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- IDENT "s"
- R_PAREN ")"
- COMMA ","
- R_PAREN ")"
- STAR "*"
- WHITESPACE "\n "
- R_BRACK "]"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- FN
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "test"
- R_BRACK "]"
- WHITESPACE "\n"
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "test_use_tree_merge"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- MACRO_DEF
- MACRO_KW "macro"
- WHITESPACE " "
- NAME
- IDENT "test_merge"
- TOKEN_TREE
- TOKEN_TREE
- L_PAREN "("
- TOKEN_TREE
- L_BRACK "["
- DOLLAR "$"
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- IDENT "input"
- COLON ":"
- IDENT "expr"
- R_PAREN ")"
- COMMA ","
- STAR "*"
- WHITESPACE " "
- DOLLAR "$"
- TOKEN_TREE
- L_PAREN "("
- COMMA ","
- R_PAREN ")"
- STAR "*"
- R_BRACK "]"
- COMMA ","
- WHITESPACE " "
- TOKEN_TREE
- L_BRACK "["
- DOLLAR "$"
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- IDENT "output"
- COLON ":"
- IDENT "expr"
- R_PAREN ")"
- COMMA ","
- STAR "*"
- WHITESPACE " "
- DOLLAR "$"
- TOKEN_TREE
- L_PAREN "("
- COMMA ","
- R_PAREN ")"
- STAR "*"
- R_BRACK "]"
- R_PAREN ")"
- WHITESPACE " "
- TOKEN_TREE
- L_CURLY "{"
- WHITESPACE "\n "
- IDENT "assert_eq"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- WHITESPACE "\n "
- IDENT "merge_use_trees"
- TOKEN_TREE
- L_PAREN "("
- IDENT "parse_use_trees"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- IDENT "input"
- COMMA ","
- R_PAREN ")"
- STAR "*"
- R_PAREN ")"
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- IDENT "parse_use_trees"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- TOKEN_TREE
- L_PAREN "("
- DOLLAR "$"
- IDENT "output"
- COMMA ","
- R_PAREN ")"
- STAR "*"
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n "
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0063_trait_fn_patterns.rast b/crates/parser/test_data/parser/ok/0063_trait_fn_patterns.rast
index 979058d032..a86b21d27c 100644
--- a/crates/parser/test_data/parser/ok/0063_trait_fn_patterns.rast
+++ b/crates/parser/test_data/parser/ok/0063_trait_fn_patterns.rast
@@ -1,198 +1,198 @@
- [email protected] "NewType"
- [email protected] "NewType"
+SOURCE_FILE
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f1"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ TUPLE_PAT
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "b"
+ R_PAREN ")"
+ COLON ":"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "usize"
+ COMMA ","
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "usize"
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f2"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ RECORD_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_PAT_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ IDENT_PAT
+ NAME
+ IDENT "b"
+ WHITESPACE " "
+ R_CURLY "}"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f3"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "NewType"
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ R_PAREN ")"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "NewType"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f4"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ REF_PAT
+ AMP "&"
+ REF_PAT
+ AMP "&"
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COLON ":"
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ REF_TYPE
+ AMP "&"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "usize"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "bar"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u64"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ IDENT_PAT
+ MUT_KW "mut"
+ WHITESPACE " "
+ NAME
+ IDENT "x"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "i32"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0063_trait_fn_patterns.txt b/crates/parser/test_data/parser/ok/0063_trait_fn_patterns.txt
deleted file mode 100644
index a86b21d27c..0000000000
--- a/crates/parser/test_data/parser/ok/0063_trait_fn_patterns.txt
+++ /dev/null
@@ -1,198 +0,0 @@
-SOURCE_FILE
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f1"
- PARAM_LIST
- L_PAREN "("
- PARAM
- TUPLE_PAT
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "b"
- R_PAREN ")"
- COLON ":"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "usize"
- COMMA ","
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "usize"
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f2"
- PARAM_LIST
- L_PAREN "("
- PARAM
- RECORD_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_PAT_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_PAT_FIELD
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- RECORD_PAT_FIELD
- IDENT_PAT
- NAME
- IDENT "b"
- WHITESPACE " "
- R_CURLY "}"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f3"
- PARAM_LIST
- L_PAREN "("
- PARAM
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "NewType"
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "a"
- R_PAREN ")"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "NewType"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f4"
- PARAM_LIST
- L_PAREN "("
- PARAM
- REF_PAT
- AMP "&"
- REF_PAT
- AMP "&"
- IDENT_PAT
- NAME
- IDENT "a"
- COLON ":"
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- REF_TYPE
- AMP "&"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "usize"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "bar"
- PARAM_LIST
- L_PAREN "("
- PARAM
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u64"
- COMMA ","
- WHITESPACE " "
- PARAM
- IDENT_PAT
- MUT_KW "mut"
- WHITESPACE " "
- NAME
- IDENT "x"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "i32"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0063_variadic_fun.rast b/crates/parser/test_data/parser/ok/0063_variadic_fun.rast
index dcc4105c91..e36399123b 100644
--- a/crates/parser/test_data/parser/ok/0063_variadic_fun.rast
+++ b/crates/parser/test_data/parser/ok/0063_variadic_fun.rast
@@ -1,134 +1,134 @@
+SOURCE_FILE
+ EXTERN_BLOCK
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C\""
+ WHITESPACE " "
+ EXTERN_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "a"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ DOT3 "..."
+ COMMA ","
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "b"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ DOT3 "..."
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "c"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ WILDCARD_PAT
+ UNDERSCORE "_"
+ COLON ":"
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ MUT_KW "mut"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "cfg"
+ TOKEN_TREE
+ L_PAREN "("
+ IDENT "never"
+ R_PAREN ")"
+ R_BRACK "]"
+ WHITESPACE " "
+ SLICE_PAT
+ L_BRACK "["
+ IDENT_PAT
+ NAME
+ IDENT "w"
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "t"
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "f"
+ R_BRACK "]"
+ COLON ":"
+ WHITESPACE " "
+ DOT3 "..."
+ COMMA ","
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0063_variadic_fun.txt b/crates/parser/test_data/parser/ok/0063_variadic_fun.txt
deleted file mode 100644
index e36399123b..0000000000
--- a/crates/parser/test_data/parser/ok/0063_variadic_fun.txt
+++ /dev/null
@@ -1,134 +0,0 @@
-SOURCE_FILE
- EXTERN_BLOCK
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C\""
- WHITESPACE " "
- EXTERN_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "a"
- PARAM_LIST
- L_PAREN "("
- PARAM
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- COMMA ","
- WHITESPACE " "
- PARAM
- DOT3 "..."
- COMMA ","
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "b"
- PARAM_LIST
- L_PAREN "("
- PARAM
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- COMMA ","
- WHITESPACE " "
- PARAM
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- DOT3 "..."
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "c"
- PARAM_LIST
- L_PAREN "("
- PARAM
- WILDCARD_PAT
- UNDERSCORE "_"
- COLON ":"
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- MUT_KW "mut"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- COMMA ","
- WHITESPACE " "
- PARAM
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "cfg"
- TOKEN_TREE
- L_PAREN "("
- IDENT "never"
- R_PAREN ")"
- R_BRACK "]"
- WHITESPACE " "
- SLICE_PAT
- L_BRACK "["
- IDENT_PAT
- NAME
- IDENT "w"
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "t"
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "f"
- R_BRACK "]"
- COLON ":"
- WHITESPACE " "
- DOT3 "..."
- COMMA ","
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0064_impl_fn_params.rast b/crates/parser/test_data/parser/ok/0064_impl_fn_params.rast
index dbfc2f9260..18cecc8108 100644
--- a/crates/parser/test_data/parser/ok/0064_impl_fn_params.rast
+++ b/crates/parser/test_data/parser/ok/0064_impl_fn_params.rast
@@ -1,166 +1,166 @@
- [email protected] "NewType"
- [email protected] "NewType"
+SOURCE_FILE
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "U"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f1"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ TUPLE_PAT
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "b"
+ R_PAREN ")"
+ COLON ":"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "usize"
+ COMMA ","
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "usize"
+ R_PAREN ")"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f2"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ RECORD_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ WHITESPACE " "
+ RECORD_PAT_FIELD_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COMMA ","
+ WHITESPACE " "
+ RECORD_PAT_FIELD
+ IDENT_PAT
+ NAME
+ IDENT "b"
+ WHITESPACE " "
+ R_CURLY "}"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "S"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f3"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ TUPLE_STRUCT_PAT
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "NewType"
+ L_PAREN "("
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ R_PAREN ")"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "NewType"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f4"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ REF_PAT
+ AMP "&"
+ REF_PAT
+ AMP "&"
+ IDENT_PAT
+ NAME
+ IDENT "a"
+ COLON ":"
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ REF_TYPE
+ AMP "&"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "usize"
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0064_impl_fn_params.txt b/crates/parser/test_data/parser/ok/0064_impl_fn_params.txt
deleted file mode 100644
index 18cecc8108..0000000000
--- a/crates/parser/test_data/parser/ok/0064_impl_fn_params.txt
+++ /dev/null
@@ -1,166 +0,0 @@
-SOURCE_FILE
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "U"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f1"
- PARAM_LIST
- L_PAREN "("
- PARAM
- TUPLE_PAT
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "b"
- R_PAREN ")"
- COLON ":"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "usize"
- COMMA ","
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "usize"
- R_PAREN ")"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f2"
- PARAM_LIST
- L_PAREN "("
- PARAM
- RECORD_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- WHITESPACE " "
- RECORD_PAT_FIELD_LIST
- L_CURLY "{"
- WHITESPACE " "
- RECORD_PAT_FIELD
- IDENT_PAT
- NAME
- IDENT "a"
- COMMA ","
- WHITESPACE " "
- RECORD_PAT_FIELD
- IDENT_PAT
- NAME
- IDENT "b"
- WHITESPACE " "
- R_CURLY "}"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "S"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f3"
- PARAM_LIST
- L_PAREN "("
- PARAM
- TUPLE_STRUCT_PAT
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "NewType"
- L_PAREN "("
- IDENT_PAT
- NAME
- IDENT "a"
- R_PAREN ")"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "NewType"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f4"
- PARAM_LIST
- L_PAREN "("
- PARAM
- REF_PAT
- AMP "&"
- REF_PAT
- AMP "&"
- IDENT_PAT
- NAME
- IDENT "a"
- COLON ":"
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- REF_TYPE
- AMP "&"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "usize"
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0065_comment_newline.rast b/crates/parser/test_data/parser/ok/0065_comment_newline.rast
index 162830d95f..3ffcb48f5e 100644
--- a/crates/parser/test_data/parser/ok/0065_comment_newline.rast
+++ b/crates/parser/test_data/parser/ok/0065_comment_newline.rast
@@ -1,17 +1,17 @@
- [email protected] "/// Example"
+SOURCE_FILE
+ FN
+ COMMENT "/// Example"
+ WHITESPACE "\n\n"
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "test"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0065_comment_newline.txt b/crates/parser/test_data/parser/ok/0065_comment_newline.txt
deleted file mode 100644
index 3ffcb48f5e..0000000000
--- a/crates/parser/test_data/parser/ok/0065_comment_newline.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-SOURCE_FILE
- FN
- COMMENT "/// Example"
- WHITESPACE "\n\n"
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "test"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast b/crates/parser/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
index 9efa6ec0b6..ba7b6042a9 100644
--- a/crates/parser/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
+++ b/crates/parser/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
@@ -1,61 +1,61 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE " "
+ WHERE_PRED
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Fn"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Send"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0065_plus_after_fn_trait_bound.txt b/crates/parser/test_data/parser/ok/0065_plus_after_fn_trait_bound.txt
deleted file mode 100644
index ba7b6042a9..0000000000
--- a/crates/parser/test_data/parser/ok/0065_plus_after_fn_trait_bound.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE " "
- WHERE_PRED
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Fn"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Send"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0066_default_modifier.rast b/crates/parser/test_data/parser/ok/0066_default_modifier.rast
index 0479c5f60f..a4303098a2 100644
--- a/crates/parser/test_data/parser/ok/0066_default_modifier.rast
+++ b/crates/parser/test_data/parser/ok/0066_default_modifier.rast
@@ -1,222 +1,222 @@
- [email protected] "default"
- [email protected] "default"
- [email protected] "default"
- [email protected] "default"
- [email protected] "default"
- [email protected] "default"
- [email protected] "default"
- [email protected] "default"
- [email protected] "default"
- [email protected] "default"
+SOURCE_FILE
+ TRAIT
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ TYPE_ALIAS
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Bar"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ CONST
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ CONST_KW "const"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "bar"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ IMPL
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ FOR_KW "for"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ TYPE_ALIAS
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Bar"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ CONST
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ CONST_KW "const"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ COLON ":"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "u8"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ LITERAL
+ INT_NUMBER "0"
+ SEMICOLON ";"
+ WHITESPACE "\n "
+ FN
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n "
+ FN
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "bar"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ IMPL
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ FOR_KW "for"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ IMPL
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ FOR_KW "for"
+ WHITESPACE " "
+ TUPLE_TYPE
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0066_default_modifier.txt b/crates/parser/test_data/parser/ok/0066_default_modifier.txt
deleted file mode 100644
index a4303098a2..0000000000
--- a/crates/parser/test_data/parser/ok/0066_default_modifier.txt
+++ /dev/null
@@ -1,222 +0,0 @@
-SOURCE_FILE
- TRAIT
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- TYPE_ALIAS
- DEFAULT_KW "default"
- WHITESPACE " "
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Bar"
- SEMICOLON ";"
- WHITESPACE "\n "
- CONST
- DEFAULT_KW "default"
- WHITESPACE " "
- CONST_KW "const"
- WHITESPACE " "
- NAME
- IDENT "f"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- DEFAULT_KW "default"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- DEFAULT_KW "default"
- WHITESPACE " "
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "bar"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- IMPL
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- FOR_KW "for"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- TYPE_ALIAS
- DEFAULT_KW "default"
- WHITESPACE " "
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Bar"
- SEMICOLON ";"
- WHITESPACE "\n "
- CONST
- DEFAULT_KW "default"
- WHITESPACE " "
- CONST_KW "const"
- WHITESPACE " "
- NAME
- IDENT "f"
- COLON ":"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "u8"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- LITERAL
- INT_NUMBER "0"
- SEMICOLON ";"
- WHITESPACE "\n "
- FN
- DEFAULT_KW "default"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n "
- FN
- DEFAULT_KW "default"
- WHITESPACE " "
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "bar"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n\n"
- IMPL
- DEFAULT_KW "default"
- WHITESPACE " "
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- FOR_KW "for"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- IMPL
- DEFAULT_KW "default"
- WHITESPACE " "
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- FOR_KW "for"
- WHITESPACE " "
- TUPLE_TYPE
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0067_where_for_pred.rast b/crates/parser/test_data/parser/ok/0067_where_for_pred.rast
index d1bf63d507..136fce93d7 100644
--- a/crates/parser/test_data/parser/ok/0067_where_for_pred.rast
+++ b/crates/parser/test_data/parser/ok/0067_where_for_pred.rast
@@ -1,413 +1,413 @@
- [email protected] "for_trait"
- [email protected] "for_ref"
- [email protected] "for_parens"
- [email protected] "for_slice"
- [email protected] "for_qpath"
- [email protected] "Iterator"
- [email protected] "for_for_fn"
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "for_trait"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "F"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n"
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE "\n "
+ WHERE_PRED
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "F"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Fn"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "str"
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "for_ref"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "F"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n"
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE "\n "
+ WHERE_PRED
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "F"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Debug"
+ COMMA ","
+ WHITESPACE "\n"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "for_parens"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "F"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n"
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE "\n "
+ WHERE_PRED
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PAREN_TYPE
+ L_PAREN "("
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "F"
+ R_PAREN ")"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Fn"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "str"
+ R_PAREN ")"
+ COMMA ","
+ WHITESPACE "\n"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "for_slice"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "F"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n"
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE "\n "
+ WHERE_PRED
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ SLICE_TYPE
+ L_BRACK "["
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "F"
+ R_BRACK "]"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Eq"
+ COMMA ","
+ WHITESPACE "\n"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "for_qpath"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ IDENT_PAT
+ NAME
+ IDENT "_t"
+ COLON ":"
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ R_PAREN ")"
+ WHITESPACE "\n"
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE "\n "
+ WHERE_PRED
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH
+ PATH_SEGMENT
+ L_ANGLE "<"
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Baz"
+ R_ANGLE ">"
+ COLON2 "::"
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Iterator"
+ COMMA ","
+ WHITESPACE "\n"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "for_for_fn"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ TYPE_PARAM
+ NAME
+ IDENT "T"
+ R_ANGLE ">"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n"
+ WHERE_CLAUSE
+ WHERE_KW "where"
+ WHITESPACE "\n "
+ WHERE_PRED
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ FOR_TYPE
+ FOR_KW "for"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ R_ANGLE ">"
+ WHITESPACE " "
+ FN_PTR_TYPE
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ PARAM
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ COMMA ","
+ WHITESPACE " "
+ PARAM
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'b"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "T"
+ R_PAREN ")"
+ COLON ":"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Copy"
+ COMMA ","
+ WHITESPACE "\n"
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0067_where_for_pred.txt b/crates/parser/test_data/parser/ok/0067_where_for_pred.txt
deleted file mode 100644
index 136fce93d7..0000000000
--- a/crates/parser/test_data/parser/ok/0067_where_for_pred.txt
+++ /dev/null
@@ -1,413 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "for_trait"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "F"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n"
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE "\n "
- WHERE_PRED
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "F"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Fn"
- PARAM_LIST
- L_PAREN "("
- PARAM
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "str"
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "for_ref"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "F"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n"
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE "\n "
- WHERE_PRED
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "F"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Debug"
- COMMA ","
- WHITESPACE "\n"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "for_parens"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "F"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n"
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE "\n "
- WHERE_PRED
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- PAREN_TYPE
- L_PAREN "("
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "F"
- R_PAREN ")"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Fn"
- PARAM_LIST
- L_PAREN "("
- PARAM
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "str"
- R_PAREN ")"
- COMMA ","
- WHITESPACE "\n"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "for_slice"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "F"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n"
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE "\n "
- WHERE_PRED
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- SLICE_TYPE
- L_BRACK "["
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "F"
- R_BRACK "]"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Eq"
- COMMA ","
- WHITESPACE "\n"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "for_qpath"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- PARAM
- IDENT_PAT
- NAME
- IDENT "_t"
- COLON ":"
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- R_PAREN ")"
- WHITESPACE "\n"
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE "\n "
- WHERE_PRED
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH
- PATH_SEGMENT
- L_ANGLE "<"
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Baz"
- R_ANGLE ">"
- COLON2 "::"
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Iterator"
- COMMA ","
- WHITESPACE "\n"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "for_for_fn"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- TYPE_PARAM
- NAME
- IDENT "T"
- R_ANGLE ">"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n"
- WHERE_CLAUSE
- WHERE_KW "where"
- WHITESPACE "\n "
- WHERE_PRED
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- FOR_TYPE
- FOR_KW "for"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'b"
- R_ANGLE ">"
- WHITESPACE " "
- FN_PTR_TYPE
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- PARAM
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- COMMA ","
- WHITESPACE " "
- PARAM
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'b"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "T"
- R_PAREN ")"
- COLON ":"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Copy"
- COMMA ","
- WHITESPACE "\n"
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0068_item_modifiers.rast b/crates/parser/test_data/parser/ok/0068_item_modifiers.rast
index 8b635d0a03..41fc5691ad 100644
--- a/crates/parser/test_data/parser/ok/0068_item_modifiers.rast
+++ b/crates/parser/test_data/parser/ok/0068_item_modifiers.rast
@@ -1,238 +1,238 @@
- [email protected] "default"
- [email protected] "default"
- [email protected] "\"C++\""
+SOURCE_FILE
+ FN
+ ASYNC_KW "async"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ CONST_KW "const"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ CONST_KW "const"
+ WHITESPACE " "
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C\""
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ ASYNC_KW "async"
+ WHITESPACE " "
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ FN
+ CONST_KW "const"
+ WHITESPACE " "
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "bar"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ TRAIT
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ TRAIT
+ AUTO_KW "auto"
+ WHITESPACE " "
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ TRAIT
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ AUTO_KW "auto"
+ WHITESPACE " "
+ TRAIT_KW "trait"
+ WHITESPACE " "
+ NAME
+ IDENT "T"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ IMPL
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ IMPL
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
+ IMPL
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ DEFAULT_KW "default"
+ WHITESPACE " "
+ IMPL_KW "impl"
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Foo"
+ WHITESPACE " "
+ ASSOC_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n\n"
+ EXTERN_BLOCK
+ UNSAFE_KW "unsafe"
+ WHITESPACE " "
+ ABI
+ EXTERN_KW "extern"
+ WHITESPACE " "
+ STRING "\"C++\""
+ WHITESPACE " "
+ EXTERN_ITEM_LIST
+ L_CURLY "{"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0068_item_modifiers.txt b/crates/parser/test_data/parser/ok/0068_item_modifiers.txt
deleted file mode 100644
index 41fc5691ad..0000000000
--- a/crates/parser/test_data/parser/ok/0068_item_modifiers.txt
+++ /dev/null
@@ -1,238 +0,0 @@
-SOURCE_FILE
- FN
- ASYNC_KW "async"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- CONST_KW "const"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- CONST_KW "const"
- WHITESPACE " "
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C\""
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- ASYNC_KW "async"
- WHITESPACE " "
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- FN
- CONST_KW "const"
- WHITESPACE " "
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "bar"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- TRAIT
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- TRAIT
- AUTO_KW "auto"
- WHITESPACE " "
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- TRAIT
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- AUTO_KW "auto"
- WHITESPACE " "
- TRAIT_KW "trait"
- WHITESPACE " "
- NAME
- IDENT "T"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- IMPL
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- IMPL
- DEFAULT_KW "default"
- WHITESPACE " "
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
- IMPL
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- DEFAULT_KW "default"
- WHITESPACE " "
- IMPL_KW "impl"
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Foo"
- WHITESPACE " "
- ASSOC_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n\n"
- EXTERN_BLOCK
- UNSAFE_KW "unsafe"
- WHITESPACE " "
- ABI
- EXTERN_KW "extern"
- WHITESPACE " "
- STRING "\"C++\""
- WHITESPACE " "
- EXTERN_ITEM_LIST
- L_CURLY "{"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0069_multi_trait_object.rast b/crates/parser/test_data/parser/ok/0069_multi_trait_object.rast
index 7967b88f20..9e8f4e1974 100644
--- a/crates/parser/test_data/parser/ok/0069_multi_trait_object.rast
+++ b/crates/parser/test_data/parser/ok/0069_multi_trait_object.rast
@@ -1,204 +1,204 @@
- [email protected] "'static"
- [email protected] "Addable"
+SOURCE_FILE
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Foo"
+ GENERIC_PARAM_LIST
+ L_ANGLE "<"
+ LIFETIME_PARAM
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ R_ANGLE ">"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ LIFETIME
+ LIFETIME_IDENT "'a"
+ WHITESPACE " "
+ PAREN_TYPE
+ L_PAREN "("
+ DYN_TRAIT_TYPE
+ DYN_KW "dyn"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Send"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Sync"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Foo"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PTR_TYPE
+ STAR "*"
+ CONST_KW "const"
+ WHITESPACE " "
+ PAREN_TYPE
+ L_PAREN "("
+ DYN_TRAIT_TYPE
+ DYN_KW "dyn"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Send"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Sync"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ TYPE_ALIAS
+ TYPE_KW "type"
+ WHITESPACE " "
+ NAME
+ IDENT "Foo"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ FN_PTR_TYPE
+ FN_KW "fn"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ RET_TYPE
+ THIN_ARROW "->"
+ WHITESPACE " "
+ PAREN_TYPE
+ L_PAREN "("
+ DYN_TRAIT_TYPE
+ DYN_KW "dyn"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Send"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ LIFETIME
+ LIFETIME_IDENT "'static"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "main"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ LET_STMT
+ LET_KW "let"
+ WHITESPACE " "
+ IDENT_PAT
+ NAME
+ IDENT "b"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ CAST_EXPR
+ PAREN_EXPR
+ L_PAREN "("
+ REF_EXPR
+ AMP "&"
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ R_PAREN ")"
+ WHITESPACE " "
+ AS_KW "as"
+ WHITESPACE " "
+ REF_TYPE
+ AMP "&"
+ PAREN_TYPE
+ L_PAREN "("
+ DYN_TRAIT_TYPE
+ DYN_KW "dyn"
+ WHITESPACE " "
+ TYPE_BOUND_LIST
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Add"
+ GENERIC_ARG_LIST
+ L_ANGLE "<"
+ TYPE_ARG
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Other"
+ COMMA ","
+ WHITESPACE " "
+ ASSOC_TYPE_ARG
+ NAME_REF
+ IDENT "Output"
+ WHITESPACE " "
+ EQ "="
+ WHITESPACE " "
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Addable"
+ R_ANGLE ">"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ TYPE_BOUND
+ PATH_TYPE
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "Other"
+ R_PAREN ")"
+ SEMICOLON ";"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0069_multi_trait_object.txt b/crates/parser/test_data/parser/ok/0069_multi_trait_object.txt
deleted file mode 100644
index 9e8f4e1974..0000000000
--- a/crates/parser/test_data/parser/ok/0069_multi_trait_object.txt
+++ /dev/null
@@ -1,204 +0,0 @@
-SOURCE_FILE
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Foo"
- GENERIC_PARAM_LIST
- L_ANGLE "<"
- LIFETIME_PARAM
- LIFETIME
- LIFETIME_IDENT "'a"
- R_ANGLE ">"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- LIFETIME
- LIFETIME_IDENT "'a"
- WHITESPACE " "
- PAREN_TYPE
- L_PAREN "("
- DYN_TRAIT_TYPE
- DYN_KW "dyn"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Send"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Sync"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Foo"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PTR_TYPE
- STAR "*"
- CONST_KW "const"
- WHITESPACE " "
- PAREN_TYPE
- L_PAREN "("
- DYN_TRAIT_TYPE
- DYN_KW "dyn"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Send"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Sync"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- TYPE_ALIAS
- TYPE_KW "type"
- WHITESPACE " "
- NAME
- IDENT "Foo"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- FN_PTR_TYPE
- FN_KW "fn"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- RET_TYPE
- THIN_ARROW "->"
- WHITESPACE " "
- PAREN_TYPE
- L_PAREN "("
- DYN_TRAIT_TYPE
- DYN_KW "dyn"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Send"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- LIFETIME
- LIFETIME_IDENT "'static"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "main"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- LET_STMT
- LET_KW "let"
- WHITESPACE " "
- IDENT_PAT
- NAME
- IDENT "b"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- CAST_EXPR
- PAREN_EXPR
- L_PAREN "("
- REF_EXPR
- AMP "&"
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- R_PAREN ")"
- WHITESPACE " "
- AS_KW "as"
- WHITESPACE " "
- REF_TYPE
- AMP "&"
- PAREN_TYPE
- L_PAREN "("
- DYN_TRAIT_TYPE
- DYN_KW "dyn"
- WHITESPACE " "
- TYPE_BOUND_LIST
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Add"
- GENERIC_ARG_LIST
- L_ANGLE "<"
- TYPE_ARG
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Other"
- COMMA ","
- WHITESPACE " "
- ASSOC_TYPE_ARG
- NAME_REF
- IDENT "Output"
- WHITESPACE " "
- EQ "="
- WHITESPACE " "
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Addable"
- R_ANGLE ">"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- TYPE_BOUND
- PATH_TYPE
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "Other"
- R_PAREN ")"
- SEMICOLON ";"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0070_expr_attr_placement.rast b/crates/parser/test_data/parser/ok/0070_expr_attr_placement.rast
index b52161a401..3d00b27ab8 100644
--- a/crates/parser/test_data/parser/ok/0070_expr_attr_placement.rast
+++ b/crates/parser/test_data/parser/ok/0070_expr_attr_placement.rast
@@ -1,59 +1,59 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "f"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ PAREN_EXPR
+ L_PAREN "("
+ BIN_EXPR
+ TRY_EXPR
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "a"
+ R_BRACK "]"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "lhs"
+ QUESTION "?"
+ WHITESPACE " "
+ PLUS "+"
+ WHITESPACE " "
+ AWAIT_EXPR
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "b"
+ R_BRACK "]"
+ WHITESPACE " "
+ PATH_EXPR
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "rhs"
+ DOT "."
+ AWAIT_KW "await"
+ R_PAREN ")"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0070_expr_attr_placement.txt b/crates/parser/test_data/parser/ok/0070_expr_attr_placement.txt
deleted file mode 100644
index 3d00b27ab8..0000000000
--- a/crates/parser/test_data/parser/ok/0070_expr_attr_placement.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "f"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- PAREN_EXPR
- L_PAREN "("
- BIN_EXPR
- TRY_EXPR
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "a"
- R_BRACK "]"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "lhs"
- QUESTION "?"
- WHITESPACE " "
- PLUS "+"
- WHITESPACE " "
- AWAIT_EXPR
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "b"
- R_BRACK "]"
- WHITESPACE " "
- PATH_EXPR
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "rhs"
- DOT "."
- AWAIT_KW "await"
- R_PAREN ")"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0071_stmt_attr_placement.rast b/crates/parser/test_data/parser/ok/0071_stmt_attr_placement.rast
index 075d15f249..81797c35ba 100644
--- a/crates/parser/test_data/parser/ok/0071_stmt_attr_placement.rast
+++ b/crates/parser/test_data/parser/ok/0071_stmt_attr_placement.rast
@@ -1,71 +1,71 @@
+SOURCE_FILE
+ FN
+ FN_KW "fn"
+ WHITESPACE " "
+ NAME
+ IDENT "foo"
+ PARAM_LIST
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE " "
+ BLOCK_EXPR
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE "\n "
+ EXPR_STMT
+ BLOCK_EXPR
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "A"
+ R_BRACK "]"
+ WHITESPACE " "
+ STMT_LIST
+ L_CURLY "{"
+ WHITESPACE " "
+ TRY_EXPR
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "B"
+ R_BRACK "]"
+ WHITESPACE " "
+ MACRO_CALL
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "bar"
+ BANG "!"
+ TOKEN_TREE
+ L_PAREN "("
+ R_PAREN ")"
+ QUESTION "?"
+ WHITESPACE " "
+ R_CURLY "}"
+ WHITESPACE "\n "
+ REF_EXPR
+ ATTR
+ POUND "#"
+ L_BRACK "["
+ META
+ PATH
+ PATH_SEGMENT
+ NAME_REF
+ IDENT "C"
+ R_BRACK "]"
+ WHITESPACE " "
+ AMP "&"
+ TUPLE_EXPR
+ L_PAREN "("
+ R_PAREN ")"
+ WHITESPACE "\n"
+ R_CURLY "}"
+ WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0071_stmt_attr_placement.txt b/crates/parser/test_data/parser/ok/0071_stmt_attr_placement.txt
deleted file mode 100644
index 81797c35ba..0000000000
--- a/crates/parser/test_data/parser/ok/0071_stmt_attr_placement.txt
+++ /dev/null
@@ -1,71 +0,0 @@
-SOURCE_FILE
- FN
- FN_KW "fn"
- WHITESPACE " "
- NAME
- IDENT "foo"
- PARAM_LIST
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE " "
- BLOCK_EXPR
- STMT_LIST
- L_CURLY "{"
- WHITESPACE "\n "
- EXPR_STMT
- BLOCK_EXPR
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "A"
- R_BRACK "]"
- WHITESPACE " "
- STMT_LIST
- L_CURLY "{"
- WHITESPACE " "
- TRY_EXPR
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "B"
- R_BRACK "]"
- WHITESPACE " "
- MACRO_CALL
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "bar"
- BANG "!"
- TOKEN_TREE
- L_PAREN "("
- R_PAREN ")"
- QUESTION "?"
- WHITESPACE " "
- R_CURLY "}"
- WHITESPACE "\n "
- REF_EXPR
- ATTR
- POUND "#"
- L_BRACK "["
- META
- PATH
- PATH_SEGMENT
- NAME_REF
- IDENT "C"
- R_BRACK "]"
- WHITESPACE " "
- AMP "&"
- TUPLE_EXPR
- L_PAREN "("
- R_PAREN ")"
- WHITESPACE "\n"
- R_CURLY "}"
- WHITESPACE "\n"
diff --git a/crates/parser/test_data/parser/ok/0072_destructuring_assignment.txt b/crates/parser/test_data/parser/ok/0072_destructuring_assignment.rast
index e8b836dfbd..e8b836dfbd 100644
--- a/crates/parser/test_data/parser/ok/0072_destructuring_assignment.txt
+++ b/crates/parser/test_data/parser/ok/0072_destructuring_assignment.rast