aboutsummaryrefslogtreecommitdiff
path: root/crates/syntax/test_data/parser
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-08-12 17:26:51 +0100
committerAleksey Kladov <[email protected]>2020-08-12 17:30:53 +0100
commita1c187eef3ba08076aedb5154929f7eda8d1b424 (patch)
tree9d898eb9600b0c36a74e4f95238f679c683fa566 /crates/syntax/test_data/parser
parent3d6889cba72a9d02199f7adaa2ecc69bc30af834 (diff)
Rename ra_syntax -> syntax
Diffstat (limited to 'crates/syntax/test_data/parser')
-rw-r--r--crates/syntax/test_data/parser/err/0000_struct_field_missing_comma.rast34
-rw-r--r--crates/syntax/test_data/parser/err/0000_struct_field_missing_comma.rs4
-rw-r--r--crates/syntax/test_data/parser/err/0001_item_recovery_in_file.rast18
-rw-r--r--crates/syntax/test_data/parser/err/0001_item_recovery_in_file.rs3
-rw-r--r--crates/syntax/test_data/parser/err/0002_duplicate_shebang.rast39
-rw-r--r--crates/syntax/test_data/parser/err/0002_duplicate_shebang.rs2
-rw-r--r--crates/syntax/test_data/parser/err/0003_C++_semicolon.rast39
-rw-r--r--crates/syntax/test_data/parser/err/0003_C++_semicolon.rs4
-rw-r--r--crates/syntax/test_data/parser/err/0004_use_path_bad_segment.rast15
-rw-r--r--crates/syntax/test_data/parser/err/0004_use_path_bad_segment.rs1
-rw-r--r--crates/syntax/test_data/parser/err/0005_attribute_recover.rast59
-rw-r--r--crates/syntax/test_data/parser/err/0005_attribute_recover.rs8
-rw-r--r--crates/syntax/test_data/parser/err/0006_named_field_recovery.rast74
-rw-r--r--crates/syntax/test_data/parser/err/0006_named_field_recovery.rs7
-rw-r--r--crates/syntax/test_data/parser/err/0007_stray_curly_in_file.rast32
-rw-r--r--crates/syntax/test_data/parser/err/0007_stray_curly_in_file.rs9
-rw-r--r--crates/syntax/test_data/parser/err/0008_item_block_recovery.rast77
-rw-r--r--crates/syntax/test_data/parser/err/0008_item_block_recovery.rs13
-rw-r--r--crates/syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast58
-rw-r--r--crates/syntax/test_data/parser/err/0009_broken_struct_type_parameter.rs5
-rw-r--r--crates/syntax/test_data/parser/err/0010_unsafe_lambda_block.rast44
-rw-r--r--crates/syntax/test_data/parser/err/0010_unsafe_lambda_block.rs3
-rw-r--r--crates/syntax/test_data/parser/err/0011_extern_struct.rast13
-rw-r--r--crates/syntax/test_data/parser/err/0011_extern_struct.rs1
-rw-r--r--crates/syntax/test_data/parser/err/0012_broken_lambda.rast387
-rw-r--r--crates/syntax/test_data/parser/err/0013_invalid_type.rast89
-rw-r--r--crates/syntax/test_data/parser/err/0013_invalid_type.rs7
-rw-r--r--crates/syntax/test_data/parser/err/0014_where_no_bounds.rast31
-rw-r--r--crates/syntax/test_data/parser/err/0014_where_no_bounds.rs1
-rw-r--r--crates/syntax/test_data/parser/err/0015_curly_in_params.rast24
-rw-r--r--crates/syntax/test_data/parser/err/0015_curly_in_params.rs2
-rw-r--r--crates/syntax/test_data/parser/err/0016_missing_semi.rast43
-rw-r--r--crates/syntax/test_data/parser/err/0016_missing_semi.rs6
-rw-r--r--crates/syntax/test_data/parser/err/0017_incomplete_binexpr.rast46
-rw-r--r--crates/syntax/test_data/parser/err/0017_incomplete_binexpr.rs4
-rw-r--r--crates/syntax/test_data/parser/err/0018_incomplete_fn.rast131
-rw-r--r--crates/syntax/test_data/parser/err/0018_incomplete_fn.rs8
-rw-r--r--crates/syntax/test_data/parser/err/0019_let_recover.rast103
-rw-r--r--crates/syntax/test_data/parser/err/0019_let_recover.rs12
-rw-r--r--crates/syntax/test_data/parser/err/0020_fn_recover.rast20
-rw-r--r--crates/syntax/test_data/parser/err/0020_fn_recover.rs3
-rw-r--r--crates/syntax/test_data/parser/err/0021_incomplete_param.rast34
-rw-r--r--crates/syntax/test_data/parser/err/0021_incomplete_param.rs2
-rw-r--r--crates/syntax/test_data/parser/err/0022_bad_exprs.rast180
-rw-r--r--crates/syntax/test_data/parser/err/0022_bad_exprs.rs3
-rw-r--r--crates/syntax/test_data/parser/err/0023_mismatched_paren.rast43
-rw-r--r--crates/syntax/test_data/parser/err/0023_mismatched_paren.rs5
-rw-r--r--crates/syntax/test_data/parser/err/0024_many_type_parens.rast319
-rw-r--r--crates/syntax/test_data/parser/err/0024_many_type_parens.rs7
-rw-r--r--crates/syntax/test_data/parser/err/0025_nope.rast202
-rw-r--r--crates/syntax/test_data/parser/err/0025_nope.rs31
-rw-r--r--crates/syntax/test_data/parser/err/0026_imp_recovery.rast49
-rw-r--r--crates/syntax/test_data/parser/err/0026_imp_recovery.rs2
-rw-r--r--crates/syntax/test_data/parser/err/0027_incomplere_where_for.rast27
-rw-r--r--crates/syntax/test_data/parser/err/0027_incomplere_where_for.rs3
-rw-r--r--crates/syntax/test_data/parser/err/0029_field_completion.rast35
-rw-r--r--crates/syntax/test_data/parser/err/0029_field_completion.rs3
-rw-r--r--crates/syntax/test_data/parser/err/0031_block_inner_attrs.rast121
-rw-r--r--crates/syntax/test_data/parser/err/0031_block_inner_attrs.rs15
-rw-r--r--crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast203
-rw-r--r--crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rs20
-rw-r--r--crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast66
-rw-r--r--crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rs7
-rw-r--r--crates/syntax/test_data/parser/err/0034_bad_box_pattern.rast95
-rw-r--r--crates/syntax/test_data/parser/err/0034_bad_box_pattern.rs6
-rw-r--r--crates/syntax/test_data/parser/err/0035_use_recover.rast53
-rw-r--r--crates/syntax/test_data/parser/err/0035_use_recover.rs5
-rw-r--r--crates/syntax/test_data/parser/err/0036_partial_use.rast51
-rw-r--r--crates/syntax/test_data/parser/err/0036_partial_use.rs2
-rw-r--r--crates/syntax/test_data/parser/err/0037_visibility_in_traits.rast97
-rw-r--r--crates/syntax/test_data/parser/err/0037_visibility_in_traits.rs6
-rw-r--r--crates/syntax/test_data/parser/err/0038_endless_inclusive_range.rast29
-rw-r--r--crates/syntax/test_data/parser/err/0038_endless_inclusive_range.rs4
-rw-r--r--crates/syntax/test_data/parser/err/0039_lambda_recovery.rast82
-rw-r--r--crates/syntax/test_data/parser/err/0039_lambda_recovery.rs5
-rw-r--r--crates/syntax/test_data/parser/err/0040_illegal_crate_kw_location.rast91
-rw-r--r--crates/syntax/test_data/parser/err/0040_illegal_crate_kw_location.rs4
-rw-r--r--crates/syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast70
-rw-r--r--crates/syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs4
-rw-r--r--crates/syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast27
-rw-r--r--crates/syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs2
-rw-r--r--crates/syntax/test_data/parser/err/0043_weird_blocks.rast71
-rw-r--r--crates/syntax/test_data/parser/err/0043_weird_blocks.rs6
-rw-r--r--crates/syntax/test_data/parser/err/0044_unexpected_for_type.rast240
-rw-r--r--crates/syntax/test_data/parser/err/0044_unexpected_for_type.rs9
-rw-r--r--crates/syntax/test_data/parser/err/0045_item_modifiers.rast45
-rw-r--r--crates/syntax/test_data/parser/err/0045_item_modifiers.rs2
-rw-r--r--crates/syntax/test_data/parser/fragments/expr/err/0000_truncated_add.rast1
-rw-r--r--crates/syntax/test_data/parser/fragments/expr/err/0000_truncated_add.rs1
-rw-r--r--crates/syntax/test_data/parser/fragments/expr/ok/0000_add.rast8
-rw-r--r--crates/syntax/test_data/parser/fragments/expr/ok/0000_add.rs1
-rw-r--r--crates/syntax/test_data/parser/fragments/item/err/0000_extra_keyword.rast1
-rw-r--r--crates/syntax/test_data/parser/fragments/item/err/0000_extra_keyword.rs1
-rw-r--r--crates/syntax/test_data/parser/fragments/item/ok/0000_fn.rast12
-rw-r--r--crates/syntax/test_data/parser/fragments/item/ok/0000_fn.rs1
-rw-r--r--crates/syntax/test_data/parser/fragments/path/err/0000_reserved_word.rast1
-rw-r--r--crates/syntax/test_data/parser/fragments/path/err/0000_reserved_word.rs1
-rw-r--r--crates/syntax/test_data/parser/fragments/path/err/0001_expression.rast1
-rw-r--r--crates/syntax/test_data/parser/fragments/path/err/0001_expression.rs1
-rw-r--r--crates/syntax/test_data/parser/fragments/path/ok/0000_single_ident.rast4
-rw-r--r--crates/syntax/test_data/parser/fragments/path/ok/0000_single_ident.rs1
-rw-r--r--crates/syntax/test_data/parser/fragments/path/ok/0001_multipart.rast14
-rw-r--r--crates/syntax/test_data/parser/fragments/path/ok/0001_multipart.rs1
-rw-r--r--crates/syntax/test_data/parser/fragments/pattern/err/0000_reserved_word.rast1
-rw-r--r--crates/syntax/test_data/parser/fragments/pattern/err/0000_reserved_word.rs1
-rw-r--r--crates/syntax/test_data/parser/fragments/pattern/err/0001_missing_paren.rast1
-rw-r--r--crates/syntax/test_data/parser/fragments/pattern/err/0001_missing_paren.rs1
-rw-r--r--crates/syntax/test_data/parser/fragments/pattern/ok/0000_enum.rast10
-rw-r--r--crates/syntax/test_data/parser/fragments/pattern/ok/0000_enum.rs1
-rw-r--r--crates/syntax/test_data/parser/fragments/type/err/0000_missing_close.rast1
-rw-r--r--crates/syntax/test_data/parser/fragments/type/err/0000_missing_close.rs1
-rw-r--r--crates/syntax/test_data/parser/fragments/type/ok/0000_result.rast22
-rw-r--r--crates/syntax/test_data/parser/fragments/type/ok/0000_result.rs1
-rw-r--r--crates/syntax/test_data/parser/fuzz-failures/0000.rs199
-rw-r--r--crates/syntax/test_data/parser/fuzz-failures/0001.rs106
-rw-r--r--crates/syntax/test_data/parser/fuzz-failures/0002.rs1
-rw-r--r--crates/syntax/test_data/parser/fuzz-failures/0003.rs1
-rw-r--r--crates/syntax/test_data/parser/fuzz-failures/0004.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast27
-rw-r--r--crates/syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast28
-rw-r--r--crates/syntax/test_data/parser/inline/err/0002_misplaced_label_err.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast17
-rw-r--r--crates/syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/err/0004_impl_type.rast79
-rw-r--r--crates/syntax/test_data/parser/inline/err/0004_impl_type.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast23
-rw-r--r--crates/syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast35
-rw-r--r--crates/syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast31
-rw-r--r--crates/syntax/test_data/parser/inline/err/0007_async_without_semicolon.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/err/0008_pub_expr.rast25
-rw-r--r--crates/syntax/test_data/parser/inline/err/0008_pub_expr.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast58
-rw-r--r--crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast52
-rw-r--r--crates/syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/err/0013_static_underscore.rast21
-rw-r--r--crates/syntax/test_data/parser/inline/err/0013_static_underscore.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast48
-rw-r--r--crates/syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/err/0015_empty_segment.rast15
-rw-r--r--crates/syntax/test_data/parser/inline/err/0015_empty_segment.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0001_trait_item_list.rast71
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0001_trait_item_list.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0002_use_tree_list.rast136
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0002_use_tree_list.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0003_where_pred_for.rast60
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0003_where_pred_for.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast60
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0005_function_type_params.rast37
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0005_function_type_params.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0006_self_param.rast116
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0006_self_param.rs7
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast40
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0007_type_param_bounds.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0008_path_part.rast96
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0008_path_part.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0009_loop_expr.rast24
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0009_loop_expr.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0010_extern_block.rast9
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0010_extern_block.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0011_field_expr.rast59
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0011_field_expr.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast33
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast35
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rs2
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0014_never_type.rast13
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0014_never_type.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0015_continue_expr.rast35
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0015_continue_expr.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0017_array_type.rast21
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0017_array_type.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0018_arb_self_types.rast72
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0018_arb_self_types.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0019_unary_expr.rast44
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0019_unary_expr.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0020_use_star.rast59
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0020_use_star.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0021_impl_item_list.rast78
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0021_impl_item_list.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0022_crate_visibility.rast53
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0022_crate_visibility.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0023_placeholder_type.rast13
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0023_placeholder_type.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0024_slice_pat.rast41
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0024_slice_pat.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0025_slice_type.rast17
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0025_slice_type.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast104
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0027_ref_pat.rast49
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0027_ref_pat.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast43
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0028_impl_trait_type.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0029_cast_expr.rast89
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0029_cast_expr.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0030_cond.rast202
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0030_cond.rs7
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0031_while_expr.rast84
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0031_while_expr.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast98
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0033_reference_type;.rast50
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0033_reference_type;.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0034_break_expr.rast53
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0034_break_expr.rs8
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0037_qual_paths.rast78
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0037_qual_paths.rs2
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0038_full_range_expr.rast28
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0038_full_range_expr.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0039_type_arg.rast55
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0039_type_arg.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast62
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0041_trait_item.rast125
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0041_trait_item.rs2
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0042_call_expr.rast147
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0042_call_expr.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0043_use_alias.rast138
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0043_use_alias.rs8
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0044_block_items.rast28
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0044_block_items.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast46
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast20
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast81
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rs2
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0050_fn_decl.rast22
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0050_fn_decl.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0051_unit_type.rast14
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0051_unit_type.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0052_path_type.rast70
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0052_path_type.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0053_path_expr.rast95
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0053_path_expr.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast44
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0055_literal_pattern.rast76
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0055_literal_pattern.rs8
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0056_where_clause.rast110
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0056_where_clause.rs7
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0058_range_pat.rast82
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0058_range_pat.rs7
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast58
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0059_match_arms_commas.rs7
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0060_extern_crate.rast10
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0060_extern_crate.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0061_record_lit.rast124
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0061_record_lit.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0062_mod_contents.rast66
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0062_mod_contents.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast23
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0063_impl_def_neg.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0064_if_expr.rast121
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0064_if_expr.rs7
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast43
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0066_match_arm.rast151
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0066_match_arm.rs9
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0067_crate_path.rast15
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0067_crate_path.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0068_union_items.rast46
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0068_union_items.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast37
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rs2
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast50
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0071_match_expr.rast93
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0071_match_expr.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0072_return_expr.rast28
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0072_return_expr.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast20
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0073_type_item_type_params.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast59
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rs7
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0075_block.rast86
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0075_block.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0076_function_where_clause.rast39
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0076_function_where_clause.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0077_try_expr.rast25
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0077_try_expr.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0078_type_item.rast16
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0078_type_item.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0079_impl_def.rast14
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0079_impl_def.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0080_postfix_range.rast95
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0080_postfix_range.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0081_for_type.rast112
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0081_for_type.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0082_ref_expr.rast138
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0082_ref_expr.rs10
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0083_struct_items.rast87
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0083_struct_items.rs8
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0084_paren_type.rast19
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0084_paren_type.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0085_expr_literals.rast135
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0085_expr_literals.rs12
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0086_function_ret_type.rast34
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0086_function_ret_type.rs2
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast65
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0088_break_ambiguity.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0090_type_param_default.rast22
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0090_type_param_default.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast23
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0093_index_expr.rast33
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0093_index_expr.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast28
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0095_placeholder_pat.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast123
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rs13
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0099_param_list.rast99
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0099_param_list.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0100_for_expr.rast34
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0100_for_expr.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast132
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0103_array_expr.rast54
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0103_array_expr.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast41
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0106_lambda_expr.rast135
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0106_lambda_expr.rs9
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0107_method_call_expr.rast62
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0107_method_call_expr.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0108_tuple_expr.rast38
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0108_tuple_expr.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0109_label.rast64
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0109_label.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0110_use_path.rast38
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0110_use_path.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0111_tuple_pat.rast89
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0111_tuple_pat.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0112_bind_pat.rast127
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0112_bind_pat.rs8
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast55
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0113_nocontentexpr.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast64
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rs2
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast41
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0117_macro_call_type.rast43
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0117_macro_call_type.rs2
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast40
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0118_match_guard.rast47
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0118_match_guard.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast80
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rs8
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast145
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rs12
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast65
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rs2
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast50
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast31
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast47
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast97
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rs6
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast57
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0129_marco_pat.rast36
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0129_marco_pat.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rast126
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rs9
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0130_try_block_expr.rast31
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0130_try_block_expr.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0131_existential_type.rast31
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0131_existential_type.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0132_box_expr.rast89
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0132_box_expr.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast62
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rs8
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0137_await_expr.rast69
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0137_await_expr.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast55
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0138_expression_after_block.rast64
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0138_expression_after_block.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast25
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast34
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0142_for_range_from.rast40
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0142_for_range_from.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0143_box_pat.rast110
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0143_box_pat.rs5
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast455
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rs25
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0145_record_field_pat.rast75
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0145_record_field_pat.rs4
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0146_as_precedence.rast42
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0146_as_precedence.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0147_const_param.rast23
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0147_const_param.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0147_macro_def.rast45
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0147_macro_def.rs2
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast21
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0148_pub_macro_def.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rast47
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0150_impl_type_params.rast38
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0150_impl_type_params.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0151_fn.rast14
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0151_fn.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0151_trait_alias.rast128
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0151_trait_alias.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast36
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0152_impl.rast22
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0152_impl.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0153_trait.rast11
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0153_trait.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast58
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rs2
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0155_closure_params.rast69
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0155_closure_params.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0156_fn_def_param.rast43
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0156_fn_def_param.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0156_or_pattern.rast111
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0156_or_pattern.rs8
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast26
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast30
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0157_variant_discriminant.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast36
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast43
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rast34
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0160_try_macro_rules.rast27
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0160_try_macro_rules.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0161_labeled_block.rast26
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0161_labeled_block.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0162_unsafe_block.rast23
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0162_unsafe_block.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0163_default_unsafe_item.rast44
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0163_default_unsafe_item.rs3
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0164_default_item.rast24
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0164_default_item.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0164_type_path_in_pattern.rast38
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0164_type_path_in_pattern.rs1
-rw-r--r--crates/syntax/test_data/parser/ok/0000_empty.rast1
-rw-r--r--crates/syntax/test_data/parser/ok/0000_empty.rs0
-rw-r--r--crates/syntax/test_data/parser/ok/0001_struct_item.rast39
-rw-r--r--crates/syntax/test_data/parser/ok/0001_struct_item.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0002_struct_item_field.rast22
-rw-r--r--crates/syntax/test_data/parser/ok/0002_struct_item_field.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0004_file_shebang.rast2
-rw-r--r--crates/syntax/test_data/parser/ok/0004_file_shebang.rs1
-rw-r--r--crates/syntax/test_data/parser/ok/0005_fn_item.rast15
-rw-r--r--crates/syntax/test_data/parser/ok/0005_fn_item.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0006_inner_attributes.rast184
-rw-r--r--crates/syntax/test_data/parser/ok/0006_inner_attributes.rs10
-rw-r--r--crates/syntax/test_data/parser/ok/0007_extern_crate.rast39
-rw-r--r--crates/syntax/test_data/parser/ok/0007_extern_crate.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0008_mod_item.rast92
-rw-r--r--crates/syntax/test_data/parser/ok/0008_mod_item.rs17
-rw-r--r--crates/syntax/test_data/parser/ok/0009_use_item.rast21
-rw-r--r--crates/syntax/test_data/parser/ok/0009_use_item.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0010_use_path_segments.rast42
-rw-r--r--crates/syntax/test_data/parser/ok/0010_use_path_segments.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0011_outer_attribute.rast57
-rw-r--r--crates/syntax/test_data/parser/ok/0011_outer_attribute.rs6
-rw-r--r--crates/syntax/test_data/parser/ok/0012_visibility.rast102
-rw-r--r--crates/syntax/test_data/parser/ok/0012_visibility.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0013_use_path_self_super.rast33
-rw-r--r--crates/syntax/test_data/parser/ok/0013_use_path_self_super.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0014_use_tree.rast95
-rw-r--r--crates/syntax/test_data/parser/ok/0014_use_tree.rs7
-rw-r--r--crates/syntax/test_data/parser/ok/0015_use_tree.rast65
-rw-r--r--crates/syntax/test_data/parser/ok/0015_use_tree.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0016_struct_flavors.rast93
-rw-r--r--crates/syntax/test_data/parser/ok/0016_struct_flavors.rs10
-rw-r--r--crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast28
-rw-r--r--crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0018_struct_type_params.rast257
-rw-r--r--crates/syntax/test_data/parser/ok/0018_struct_type_params.rs17
-rw-r--r--crates/syntax/test_data/parser/ok/0019_enums.rast155
-rw-r--r--crates/syntax/test_data/parser/ok/0019_enums.rs25
-rw-r--r--crates/syntax/test_data/parser/ok/0020_type_param_bounds.rast268
-rw-r--r--crates/syntax/test_data/parser/ok/0020_type_param_bounds.rs10
-rw-r--r--crates/syntax/test_data/parser/ok/0022_empty_extern_block.rast21
-rw-r--r--crates/syntax/test_data/parser/ok/0022_empty_extern_block.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0023_static_items.rast41
-rw-r--r--crates/syntax/test_data/parser/ok/0023_static_items.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0024_const_item.rast59
-rw-r--r--crates/syntax/test_data/parser/ok/0024_const_item.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rast31
-rw-r--r--crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rast30
-rw-r--r--crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast41
-rw-r--r--crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rs4
-rw-r--r--crates/syntax/test_data/parser/ok/0028_operator_binding_power.rast185
-rw-r--r--crates/syntax/test_data/parser/ok/0028_operator_binding_power.rs14
-rw-r--r--crates/syntax/test_data/parser/ok/0029_range_forms.rast151
-rw-r--r--crates/syntax/test_data/parser/ok/0029_range_forms.rs11
-rw-r--r--crates/syntax/test_data/parser/ok/0030_string_suffixes.rast63
-rw-r--r--crates/syntax/test_data/parser/ok/0030_string_suffixes.rs6
-rw-r--r--crates/syntax/test_data/parser/ok/0030_traits.rast61
-rw-r--r--crates/syntax/test_data/parser/ok/0030_traits.rs7
-rw-r--r--crates/syntax/test_data/parser/ok/0031_extern.rast973
-rw-r--r--crates/syntax/test_data/parser/ok/0031_extern.rs29
-rw-r--r--crates/syntax/test_data/parser/ok/0032_where_for.rast90
-rw-r--r--crates/syntax/test_data/parser/ok/0032_where_for.rs4
-rw-r--r--crates/syntax/test_data/parser/ok/0033_label_break.rast215
-rw-r--r--crates/syntax/test_data/parser/ok/0033_label_break.rs28
-rw-r--r--crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rast41
-rw-r--r--crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0035_weird_exprs.rast2291
-rw-r--r--crates/syntax/test_data/parser/ok/0035_weird_exprs.rs154
-rw-r--r--crates/syntax/test_data/parser/ok/0036_fully_qualified.rast92
-rw-r--r--crates/syntax/test_data/parser/ok/0036_fully_qualified.rs8
-rw-r--r--crates/syntax/test_data/parser/ok/0037_mod.rast16
-rw-r--r--crates/syntax/test_data/parser/ok/0037_mod.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0038_where_pred_type.rast42
-rw-r--r--crates/syntax/test_data/parser/ok/0038_where_pred_type.rs1
-rw-r--r--crates/syntax/test_data/parser/ok/0039_raw_fn_item.rast15
-rw-r--r--crates/syntax/test_data/parser/ok/0039_raw_fn_item.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rast22
-rw-r--r--crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0041_raw_keywords.rast49
-rw-r--r--crates/syntax/test_data/parser/ok/0041_raw_keywords.rs1
-rw-r--r--crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rast123
-rw-r--r--crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rs15
-rw-r--r--crates/syntax/test_data/parser/ok/0043_complex_assignment.rast109
-rw-r--r--crates/syntax/test_data/parser/ok/0043_complex_assignment.rs8
-rw-r--r--crates/syntax/test_data/parser/ok/0044_let_attrs.rast75
-rw-r--r--crates/syntax/test_data/parser/ok/0044_let_attrs.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rast177
-rw-r--r--crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rs20
-rw-r--r--crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast28
-rw-r--r--crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rs4
-rw-r--r--crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast320
-rw-r--r--crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rs27
-rw-r--r--crates/syntax/test_data/parser/ok/0048_compound_assignment.rast200
-rw-r--r--crates/syntax/test_data/parser/ok/0048_compound_assignment.rs17
-rw-r--r--crates/syntax/test_data/parser/ok/0049_async_block.rast35
-rw-r--r--crates/syntax/test_data/parser/ok/0049_async_block.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rast90
-rw-r--r--crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast508
-rw-r--r--crates/syntax/test_data/parser/ok/0051_parameter_attrs.rs21
-rw-r--r--crates/syntax/test_data/parser/ok/0052_for_range_block.rast78
-rw-r--r--crates/syntax/test_data/parser/ok/0052_for_range_block.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast39
-rw-r--r--crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast123
-rw-r--r--crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rast49
-rw-r--r--crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0056_neq_in_type.rast64
-rw-r--r--crates/syntax/test_data/parser/ok/0056_neq_in_type.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0057_loop_in_call.rast56
-rw-r--r--crates/syntax/test_data/parser/ok/0057_loop_in_call.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rast96
-rw-r--r--crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rs7
-rw-r--r--crates/syntax/test_data/parser/ok/0059_loops_in_parens.rast97
-rw-r--r--crates/syntax/test_data/parser/ok/0059_loops_in_parens.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0060_as_range.rast55
-rw-r--r--crates/syntax/test_data/parser/ok/0060_as_range.rs4
-rw-r--r--crates/syntax/test_data/parser/ok/0061_match_full_range.rast26
-rw-r--r--crates/syntax/test_data/parser/ok/0061_match_full_range.rs4
-rw-r--r--crates/syntax/test_data/parser/ok/0062_macro_2.0.rast175
-rw-r--r--crates/syntax/test_data/parser/ok/0062_macro_2.0.rs15
-rw-r--r--crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rast194
-rw-r--r--crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rs7
-rw-r--r--crates/syntax/test_data/parser/ok/0063_variadic_fun.rast133
-rw-r--r--crates/syntax/test_data/parser/ok/0063_variadic_fun.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0064_impl_fn_params.rast162
-rw-r--r--crates/syntax/test_data/parser/ok/0064_impl_fn_params.rs6
-rw-r--r--crates/syntax/test_data/parser/ok/0065_comment_newline.rast16
-rw-r--r--crates/syntax/test_data/parser/ok/0065_comment_newline.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast60
-rw-r--r--crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rs1
-rw-r--r--crates/syntax/test_data/parser/ok/0066_default_modifier.rast218
-rw-r--r--crates/syntax/test_data/parser/ok/0066_default_modifier.rs16
-rw-r--r--crates/syntax/test_data/parser/ok/0067_where_for_pred.rast392
-rw-r--r--crates/syntax/test_data/parser/ok/0067_where_for_pred.rs30
-rw-r--r--crates/syntax/test_data/parser/ok/0068_item_modifiers.rast218
-rw-r--r--crates/syntax/test_data/parser/ok/0068_item_modifiers.rs16
590 files changed, 25565 insertions, 0 deletions
diff --git a/crates/syntax/test_data/parser/err/0000_struct_field_missing_comma.rast b/crates/syntax/test_data/parser/err/0000_struct_field_missing_comma.rast
new file mode 100644
index 000000000..bbbf496c8
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0000_struct_field_missing_comma.rast
@@ -0,0 +1,34 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected]
13 [email protected] "a"
14 [email protected] ":"
15 [email protected] " "
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "u32"
21 [email protected] "\n "
22 [email protected]
23 [email protected]
24 [email protected] "b"
25 [email protected] ":"
26 [email protected] " "
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "u32"
32 [email protected] "\n"
33 [email protected] "}"
34error 21..21: expected COMMA
diff --git a/crates/syntax/test_data/parser/err/0000_struct_field_missing_comma.rs b/crates/syntax/test_data/parser/err/0000_struct_field_missing_comma.rs
new file mode 100644
index 000000000..fe5030d89
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0000_struct_field_missing_comma.rs
@@ -0,0 +1,4 @@
1struct S {
2 a: u32
3 b: u32
4} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/err/0001_item_recovery_in_file.rast b/crates/syntax/test_data/parser/err/0001_item_recovery_in_file.rast
new file mode 100644
index 000000000..6dc73bfdb
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0001_item_recovery_in_file.rast
@@ -0,0 +1,18 @@
1[email protected]
2 [email protected]
3 [email protected] "if"
4 [email protected] " "
5 [email protected]
6 [email protected] "match"
7 [email protected] "\n\n"
8 [email protected]
9 [email protected] "struct"
10 [email protected] " "
11 [email protected]
12 [email protected] "S"
13 [email protected] " "
14 [email protected]
15 [email protected] "{"
16 [email protected] "}"
17error 0..0: expected an item
18error 3..3: expected an item
diff --git a/crates/syntax/test_data/parser/err/0001_item_recovery_in_file.rs b/crates/syntax/test_data/parser/err/0001_item_recovery_in_file.rs
new file mode 100644
index 000000000..98f23de1f
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0001_item_recovery_in_file.rs
@@ -0,0 +1,3 @@
1if match
2
3struct S {} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/err/0002_duplicate_shebang.rast b/crates/syntax/test_data/parser/err/0002_duplicate_shebang.rast
new file mode 100644
index 000000000..4cfd1bce4
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0002_duplicate_shebang.rast
@@ -0,0 +1,39 @@
1[email protected]
2 [email protected] "#!/use/bin/env rusti"
3 [email protected] "\n"
4 [email protected]
5 [email protected] "#"
6 [email protected] "!"
7 [email protected]
8 [email protected] "/"
9 [email protected]
10 [email protected] "use"
11 [email protected]
12 [email protected] "/"
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "bin"
18 [email protected]
19 [email protected] "/"
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected] "env"
25 [email protected] " "
26 [email protected]
27 [email protected] "rusti"
28 [email protected] "\n"
29error 23..23: expected `[`
30error 23..23: expected an item
31error 27..27: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
32error 28..28: expected SEMICOLON
33error 31..31: expected BANG
34error 31..31: expected `{`, `[`, `(`
35error 31..31: expected SEMICOLON
36error 31..31: expected an item
37error 35..35: expected BANG
38error 41..41: expected `{`, `[`, `(`
39error 41..41: expected SEMICOLON
diff --git a/crates/syntax/test_data/parser/err/0002_duplicate_shebang.rs b/crates/syntax/test_data/parser/err/0002_duplicate_shebang.rs
new file mode 100644
index 000000000..48a3a3980
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0002_duplicate_shebang.rs
@@ -0,0 +1,2 @@
1#!/use/bin/env rusti
2#!/use/bin/env rusti
diff --git a/crates/syntax/test_data/parser/err/0003_C++_semicolon.rast b/crates/syntax/test_data/parser/err/0003_C++_semicolon.rast
new file mode 100644
index 000000000..7763fad84
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0003_C++_semicolon.rast
@@ -0,0 +1,39 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected]
13 [email protected] "a"
14 [email protected] ":"
15 [email protected] " "
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "i32"
21 [email protected] ","
22 [email protected] "\n "
23 [email protected]
24 [email protected]
25 [email protected] "b"
26 [email protected] ":"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "String"
33 [email protected] ","
34 [email protected] "\n"
35 [email protected] "}"
36 [email protected]
37 [email protected] ";"
38error 39..39: expected item, found `;`
39consider removing this semicolon
diff --git a/crates/syntax/test_data/parser/err/0003_C++_semicolon.rs b/crates/syntax/test_data/parser/err/0003_C++_semicolon.rs
new file mode 100644
index 000000000..009312270
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0003_C++_semicolon.rs
@@ -0,0 +1,4 @@
1struct S {
2 a: i32,
3 b: String,
4}; \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/err/0004_use_path_bad_segment.rast b/crates/syntax/test_data/parser/err/0004_use_path_bad_segment.rast
new file mode 100644
index 000000000..9a0f4665e
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0004_use_path_bad_segment.rast
@@ -0,0 +1,15 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected]
10 [email protected] "foo"
11 [email protected] "::"
12 [email protected]
13 [email protected] "92"
14 [email protected] ";"
15error 9..9: expected identifier
diff --git a/crates/syntax/test_data/parser/err/0004_use_path_bad_segment.rs b/crates/syntax/test_data/parser/err/0004_use_path_bad_segment.rs
new file mode 100644
index 000000000..060e65d06
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0004_use_path_bad_segment.rs
@@ -0,0 +1 @@
use foo::92; \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/err/0005_attribute_recover.rast b/crates/syntax/test_data/parser/err/0005_attribute_recover.rast
new file mode 100644
index 000000000..4845a6563
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0005_attribute_recover.rast
@@ -0,0 +1,59 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "#"
5 [email protected] "["
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "foo"
10 [email protected]
11 [email protected] "("
12 [email protected] "foo"
13 [email protected] ","
14 [email protected] " "
15 [email protected] "+"
16 [email protected] ","
17 [email protected] " "
18 [email protected] "92"
19 [email protected] ")"
20 [email protected] "]"
21 [email protected] "\n"
22 [email protected] "fn"
23 [email protected] " "
24 [email protected]
25 [email protected] "foo"
26 [email protected]
27 [email protected] "("
28 [email protected] ")"
29 [email protected] " "
30 [email protected]
31 [email protected] "{"
32 [email protected] "\n"
33 [email protected] "}"
34 [email protected] "\n\n\n"
35 [email protected]
36 [email protected] "#"
37 [email protected] "["
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "foo"
42 [email protected]
43 [email protected] "("
44 [email protected] "\n"
45 [email protected] "fn"
46 [email protected] " "
47 [email protected] "foo"
48 [email protected]
49 [email protected] "("
50 [email protected] ")"
51 [email protected] " "
52 [email protected]
53 [email protected] "{"
54 [email protected] "\n"
55 [email protected] "}"
56 [email protected] "\n"
57error 53..53: expected R_PAREN
58error 53..53: expected `]`
59error 53..53: expected an item
diff --git a/crates/syntax/test_data/parser/err/0005_attribute_recover.rs b/crates/syntax/test_data/parser/err/0005_attribute_recover.rs
new file mode 100644
index 000000000..de7f81628
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0005_attribute_recover.rs
@@ -0,0 +1,8 @@
1#[foo(foo, +, 92)]
2fn foo() {
3}
4
5
6#[foo(
7fn foo() {
8}
diff --git a/crates/syntax/test_data/parser/err/0006_named_field_recovery.rast b/crates/syntax/test_data/parser/err/0006_named_field_recovery.rast
new file mode 100644
index 000000000..5f85c3943
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0006_named_field_recovery.rast
@@ -0,0 +1,74 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected]
13 [email protected] "f"
14 [email protected] ":"
15 [email protected] " "
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "u32"
21 [email protected] ","
22 [email protected] "\n "
23 [email protected]
24 [email protected] "pub"
25 [email protected] " "
26 [email protected]
27 [email protected] "92"
28 [email protected] "\n "
29 [email protected]
30 [email protected] "+"
31 [email protected] " "
32 [email protected]
33 [email protected] "-"
34 [email protected] " "
35 [email protected]
36 [email protected] "*"
37 [email protected] "\n "
38 [email protected]
39 [email protected]
40 [email protected] "pub"
41 [email protected] " "
42 [email protected]
43 [email protected] "x"
44 [email protected] ":"
45 [email protected] " "
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected] "u32"
51 [email protected] ","
52 [email protected] "\n "
53 [email protected]
54 [email protected]
55 [email protected] "z"
56 [email protected] ":"
57 [email protected] " "
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected] "f64"
63 [email protected] ","
64 [email protected] "\n"
65 [email protected] "}"
66 [email protected] "\n"
67error 31..31: expected field declaration
68error 33..33: expected COMMA
69error 38..38: expected field declaration
70error 39..39: expected COMMA
71error 40..40: expected field declaration
72error 41..41: expected COMMA
73error 42..42: expected field declaration
74error 43..43: expected COMMA
diff --git a/crates/syntax/test_data/parser/err/0006_named_field_recovery.rs b/crates/syntax/test_data/parser/err/0006_named_field_recovery.rs
new file mode 100644
index 000000000..8069c111b
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0006_named_field_recovery.rs
@@ -0,0 +1,7 @@
1struct S {
2 f: u32,
3 pub 92
4 + - *
5 pub x: u32,
6 z: f64,
7}
diff --git a/crates/syntax/test_data/parser/err/0007_stray_curly_in_file.rast b/crates/syntax/test_data/parser/err/0007_stray_curly_in_file.rast
new file mode 100644
index 000000000..560bfd751
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0007_stray_curly_in_file.rast
@@ -0,0 +1,32 @@
1[email protected]
2 [email protected]
3 [email protected] "}"
4 [email protected] "\n\n"
5 [email protected]
6 [email protected] "struct"
7 [email protected] " "
8 [email protected]
9 [email protected] "S"
10 [email protected] ";"
11 [email protected] "\n\n"
12 [email protected]
13 [email protected] "}"
14 [email protected] "\n\n"
15 [email protected]
16 [email protected] "fn"
17 [email protected] " "
18 [email protected]
19 [email protected] "foo"
20 [email protected]
21 [email protected] "("
22 [email protected] ")"
23 [email protected]
24 [email protected] "{"
25 [email protected] "}"
26 [email protected] "\n\n"
27 [email protected]
28 [email protected] "}"
29 [email protected] "\n"
30error 0..0: unmatched `}`
31error 14..14: unmatched `}`
32error 29..29: unmatched `}`
diff --git a/crates/syntax/test_data/parser/err/0007_stray_curly_in_file.rs b/crates/syntax/test_data/parser/err/0007_stray_curly_in_file.rs
new file mode 100644
index 000000000..dc869fb78
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0007_stray_curly_in_file.rs
@@ -0,0 +1,9 @@
1}
2
3struct S;
4
5}
6
7fn foo(){}
8
9}
diff --git a/crates/syntax/test_data/parser/err/0008_item_block_recovery.rast b/crates/syntax/test_data/parser/err/0008_item_block_recovery.rast
new file mode 100644
index 000000000..1e9637c26
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0008_item_block_recovery.rast
@@ -0,0 +1,77 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n"
14 [email protected] "}"
15 [email protected] "\n\n"
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "bar"
21 [email protected]
22 [email protected] "("
23 [email protected] ")"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "\n "
28 [email protected]
29 [email protected] "if"
30 [email protected] " "
31 [email protected]
32 [email protected]
33 [email protected] "true"
34 [email protected] " "
35 [email protected]
36 [email protected] "{"
37 [email protected] "\n "
38 [email protected]
39 [email protected] "1"
40 [email protected] "\n "
41 [email protected] "}"
42 [email protected] " "
43 [email protected] "else"
44 [email protected] " "
45 [email protected]
46 [email protected] "{"
47 [email protected] "\n "
48 [email protected]
49 [email protected]
50 [email protected] "2"
51 [email protected] " "
52 [email protected] "+"
53 [email protected] " "
54 [email protected]
55 [email protected] "3"
56 [email protected] "\n "
57 [email protected] "}"
58 [email protected] "\n"
59 [email protected] "}"
60 [email protected] "\n\n"
61 [email protected]
62 [email protected] "fn"
63 [email protected] " "
64 [email protected]
65 [email protected] "baz"
66 [email protected]
67 [email protected] "("
68 [email protected] ")"
69 [email protected] " "
70 [email protected]
71 [email protected] "{"
72 [email protected] "\n"
73 [email protected] "}"
74 [email protected] "\n"
75error 17..17: expected BANG
76error 19..19: expected SEMICOLON
77error 20..20: expected an item
diff --git a/crates/syntax/test_data/parser/err/0008_item_block_recovery.rs b/crates/syntax/test_data/parser/err/0008_item_block_recovery.rs
new file mode 100644
index 000000000..9fcac19b5
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0008_item_block_recovery.rs
@@ -0,0 +1,13 @@
1fn foo() {
2}
3
4bar() {
5 if true {
6 1
7 } else {
8 2 + 3
9 }
10}
11
12fn baz() {
13}
diff --git a/crates/syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast b/crates/syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast
new file mode 100644
index 000000000..dacf71aa1
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast
@@ -0,0 +1,58 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected] "90"
11 [email protected] " "
12 [email protected]
13 [email protected] "+"
14 [email protected] " "
15 [email protected]
16 [email protected] "2"
17 [email protected]
18 [email protected] ">"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "\n "
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "f"
29 [email protected]
30 [email protected]
31 [email protected] ":"
32 [email protected] " "
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected] "u32"
38 [email protected] "\n"
39 [email protected] "}"
40 [email protected] "\n\n"
41 [email protected]
42 [email protected] "struct"
43 [email protected] " "
44 [email protected]
45 [email protected] "T"
46 [email protected] ";"
47 [email protected] "\n"
48error 9..9: expected type parameter
49error 11..11: expected COMMA
50error 11..11: expected R_ANGLE
51error 11..11: expected `;`, `{`, or `(`
52error 12..12: expected an item
53error 14..14: expected an item
54error 15..15: expected an item
55error 17..17: expected an item
56error 24..24: expected SEMICOLON
57error 24..24: expected expression
58error 25..25: expected SEMICOLON
diff --git a/crates/syntax/test_data/parser/err/0009_broken_struct_type_parameter.rs b/crates/syntax/test_data/parser/err/0009_broken_struct_type_parameter.rs
new file mode 100644
index 000000000..0dd30d0bd
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0009_broken_struct_type_parameter.rs
@@ -0,0 +1,5 @@
1struct S<90 + 2> {
2 f: u32
3}
4
5struct T;
diff --git a/crates/syntax/test_data/parser/err/0010_unsafe_lambda_block.rast b/crates/syntax/test_data/parser/err/0010_unsafe_lambda_block.rast
new file mode 100644
index 000000000..e0f1d0c27
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0010_unsafe_lambda_block.rast
@@ -0,0 +1,44 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "|"
18 [email protected] "|"
19 [email protected] " "
20 [email protected]
21 [email protected] "->"
22 [email protected] " "
23 [email protected]
24 [email protected] "("
25 [email protected] ")"
26 [email protected] " "
27 [email protected]
28 [email protected]
29 [email protected] "unsafe"
30 [email protected] " "
31 [email protected]
32 [email protected] "{"
33 [email protected] " "
34 [email protected]
35 [email protected] "("
36 [email protected] ")"
37 [email protected] " "
38 [email protected] "}"
39 [email protected] ";"
40 [email protected] "\n"
41 [email protected] "}"
42 [email protected] "\n"
43error 24..24: expected a block
44error 24..24: expected SEMICOLON
diff --git a/crates/syntax/test_data/parser/err/0010_unsafe_lambda_block.rs b/crates/syntax/test_data/parser/err/0010_unsafe_lambda_block.rs
new file mode 100644
index 000000000..985775282
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0010_unsafe_lambda_block.rs
@@ -0,0 +1,3 @@
1fn main() {
2 || -> () unsafe { () };
3}
diff --git a/crates/syntax/test_data/parser/err/0011_extern_struct.rast b/crates/syntax/test_data/parser/err/0011_extern_struct.rast
new file mode 100644
index 000000000..b02d390af
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0011_extern_struct.rast
@@ -0,0 +1,13 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "extern"
5 [email protected] " "
6 [email protected]
7 [email protected] "struct"
8 [email protected] " "
9 [email protected]
10 [email protected] "Foo"
11 [email protected] ";"
12 [email protected] "\n"
13error 6..6: expected existential, fn, trait or impl
diff --git a/crates/syntax/test_data/parser/err/0011_extern_struct.rs b/crates/syntax/test_data/parser/err/0011_extern_struct.rs
new file mode 100644
index 000000000..c1bd0a2d1
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0011_extern_struct.rs
@@ -0,0 +1 @@
extern struct Foo;
diff --git a/crates/syntax/test_data/parser/err/0012_broken_lambda.rast b/crates/syntax/test_data/parser/err/0012_broken_lambda.rast
new file mode 100644
index 000000000..f31c27633
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0012_broken_lambda.rast
@@ -0,0 +1,387 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected]
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected] "process"
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected] "'a"
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "S"
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected] "Sink"
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "'a"
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected] "builder"
40 [email protected]
41 [email protected]
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected] "S"
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected] "tokens"
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected] "Token"
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected]
74 [email protected] "events"
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected]
81 [email protected] "Vec"
82 [email protected]
83 [email protected]
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected] "Event"
90 [email protected]
91 [email protected]
92 [email protected]
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected]
97 [email protected]
98 [email protected]
99 [email protected]
100 [email protected]
101 [email protected]
102 [email protected]
103 [email protected] "next_tok_idx"
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected]
108 [email protected] "0"
109 [email protected]
110 [email protected]
111 [email protected]
112 [email protected]
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected] "eat_ws"
117 [email protected]
118 [email protected]
119 [email protected]
120 [email protected]
121 [email protected]
122 [email protected]
123 [email protected]
124 [email protected]
125 [email protected]
126 [email protected] "idx"
127 [email protected]
128 [email protected]
129 [email protected]
130 [email protected]
131 [email protected]
132 [email protected]
133 [email protected]
134 [email protected]
135 [email protected]
136 [email protected]
137 [email protected] "usize"
138 [email protected]
139 [email protected]
140 [email protected]
141 [email protected]
142 [email protected]
143 [email protected]
144 [email protected]
145 err: `expected pattern`
146 [email protected]
147 [email protected]
148 err: `expected COMMA`
149 [email protected]
150 err: `expected pattern`
151 [email protected]
152 [email protected]
153 [email protected]
154 err: `expected COMMA`
155 [email protected]
156 err: `expected pattern`
157 [email protected]
158 [email protected]
159 [email protected]
160 err: `expected COMMA`
161 [email protected]
162 err: `expected pattern`
163 [email protected]
164 [email protected]
165 [email protected]
166 err: `expected COMMA`
167 [email protected]
168 [email protected]
169 [email protected]
170 [email protected]
171 [email protected]
172 [email protected]
173 [email protected] "Some"
174 [email protected]
175 [email protected]
176 [email protected]
177 [email protected] "token"
178 [email protected]
179 err: `expected COMMA`
180 [email protected]
181 err: `expected pattern`
182 [email protected]
183 [email protected]
184 [email protected]
185 err: `expected COMMA`
186 [email protected]
187 [email protected]
188 [email protected]
189 [email protected]
190 [email protected] "tokens"
191 err: `expected COMMA`
192 err: `expected pattern`
193 [email protected]
194 [email protected]
195 [email protected]
196 err: `expected COMMA`
197 [email protected]
198 [email protected]
199 [email protected]
200 [email protected]
201 [email protected]
202 [email protected] "get"
203 [email protected]
204 err: `expected pattern`
205 [email protected]
206 [email protected]
207 err: `expected COMMA`
208 [email protected]
209 [email protected]
210 [email protected] "idx"
211 [email protected]
212 err: `expected COMMA`
213 [email protected]
214 err: `expected pattern`
215 [email protected]
216 [email protected]
217 [email protected]
218 err: `expected COMMA`
219 [email protected]
220 err: `expected pattern`
221 [email protected]
222 [email protected]
223 [email protected]
224 err: `expected COMMA`
225 [email protected]
226 err: `expected pattern`
227 [email protected]
228 [email protected]
229 [email protected]
230 err: `expected COMMA`
231 [email protected]
232 [email protected]
233 [email protected]
234 [email protected] "token"
235 err: `expected COMMA`
236 err: `expected pattern`
237 [email protected]
238 [email protected]
239 [email protected]
240 err: `expected COMMA`
241 [email protected]
242 [email protected]
243 [email protected]
244 [email protected] "kind"
245 err: `expected COMMA`
246 err: `expected pattern`
247 [email protected]
248 [email protected]
249 [email protected]
250 err: `expected COMMA`
251 [email protected]
252 [email protected]
253 [email protected]
254 [email protected]
255 [email protected]
256 [email protected] "is_trivia"
257 [email protected]
258 [email protected]
259 err: `expected COMMA`
260 [email protected]
261 err: `expected pattern`
262 [email protected]
263 [email protected]
264 [email protected]
265 err: `expected COMMA`
266 [email protected]
267 [email protected]
268 [email protected]
269 [email protected]
270 [email protected] "break"
271 err: `expected COMMA`
272 err: `expected pattern`
273 [email protected]
274 [email protected]
275 [email protected]
276 err: `expected COMMA`
277 [email protected]
278 err: `expected pattern`
279 [email protected]
280 [email protected]
281 [email protected]
282 err: `expected COMMA`
283 [email protected]
284 [email protected]
285 [email protected]
286 [email protected]
287 [email protected] "builder"
288 err: `expected COMMA`
289 err: `expected pattern`
290 [email protected]
291 [email protected]
292 [email protected]
293 err: `expected COMMA`
294 [email protected]
295 [email protected]
296 [email protected]
297 [email protected]
298 [email protected]
299 [email protected] "leaf"
300 [email protected]
301 [email protected]
302 [email protected]
303 [email protected] "token"
304 err: `expected COMMA`
305 err: `expected pattern`
306 [email protected]
307 [email protected]
308 err: `expected COMMA`
309 [email protected]
310 [email protected]
311 [email protected] "kind"
312 [email protected]
313 [email protected]
314 [email protected]
315 [email protected]
316 [email protected] "token"
317 err: `expected COMMA`
318 err: `expected pattern`
319 [email protected]
320 [email protected]
321 err: `expected COMMA`
322 [email protected]
323 [email protected]
324 [email protected] "len"
325 [email protected]
326 err: `expected COMMA`
327 err: `expected pattern`
328 [email protected]
329 [email protected]
330 [email protected]
331 err: `expected COMMA`
332 [email protected]
333 err: `expected pattern`
334 [email protected]
335 [email protected]
336 [email protected]
337 err: `expected COMMA`
338 [email protected]
339 [email protected]
340 [email protected]
341 [email protected] "idx"
342 err: `expected COMMA`
343 [email protected]
344 err: `expected pattern`
345 [email protected]
346 [email protected]
347 [email protected]
348 err: `expected COMMA`
349 err: `expected pattern`
350 [email protected]
351 [email protected]
352 [email protected]
353 err: `expected COMMA`
354 [email protected]
355 [email protected]
356 [email protected]
357 [email protected] "1"
358 err: `expected COMMA`
359 [email protected]
360 err: `expected pattern`
361 [email protected]
362 [email protected]
363 [email protected]
364 err: `expected COMMA`
365 [email protected]
366 err: `expected pattern`
367 [email protected]
368 [email protected]
369 [email protected]
370 err: `expected COMMA`
371 err: `expected pattern`
372 [email protected]
373 [email protected]
374 [email protected]
375 err: `expected COMMA`
376 [email protected]
377 err: `expected pattern`
378 [email protected]
379 [email protected]
380 [email protected]
381 err: `expected COMMA`
382 err: `expected PIPE`
383 [email protected]
384 err: `expected expression`
385 err: `expected SEMI`
386 err: `expected R_CURLY`
387 [email protected]
diff --git a/crates/syntax/test_data/parser/err/0013_invalid_type.rast b/crates/syntax/test_data/parser/err/0013_invalid_type.rast
new file mode 100644
index 000000000..f48ab6e71
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0013_invalid_type.rast
@@ -0,0 +1,89 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "pub"
5 [email protected] " "
6 [email protected] "struct"
7 [email protected] " "
8 [email protected]
9 [email protected] "Cache"
10 [email protected]
11 [email protected] "("
12 [email protected] "\n "
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "RefCell"
19 [email protected]
20 [email protected] "<"
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "HashMap"
27 [email protected]
28 [email protected] "<"
29 [email protected] "\n "
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected] "TypeId"
36 [email protected] ","
37 [email protected] "\n "
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected]
43 [email protected] "Box"
44 [email protected]
45 [email protected] "<"
46 [email protected]
47 [email protected]
48 [email protected] "@"
49 [email protected] " "
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected] "Any"
56 [email protected]
57 [email protected]
58 [email protected] ">"
59 [email protected]
60 [email protected] ","
61 [email protected] "\n "
62 [email protected]
63 [email protected] ">"
64 [email protected]
65 [email protected] ">"
66 [email protected] "\n"
67 [email protected]
68 [email protected] ")"
69 [email protected]
70 [email protected] ";"
71 [email protected] "\n\n"
72error 67..67: expected type
73error 68..68: expected COMMA
74error 68..68: expected R_ANGLE
75error 68..68: expected COMMA
76error 68..68: expected R_ANGLE
77error 68..68: expected COMMA
78error 68..68: expected R_ANGLE
79error 68..68: expected COMMA
80error 72..72: expected COMMA
81error 72..72: expected a type
82error 72..72: expected R_PAREN
83error 72..72: expected SEMICOLON
84error 72..72: expected an item
85error 73..73: expected an item
86error 79..79: expected an item
87error 80..80: expected an item
88error 82..82: expected an item
89error 83..83: expected an item
diff --git a/crates/syntax/test_data/parser/err/0013_invalid_type.rs b/crates/syntax/test_data/parser/err/0013_invalid_type.rs
new file mode 100644
index 000000000..20dde3bc3
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0013_invalid_type.rs
@@ -0,0 +1,7 @@
1pub struct Cache(
2 RefCell<HashMap<
3 TypeId,
4 Box<@ Any>,
5 >>
6);
7
diff --git a/crates/syntax/test_data/parser/err/0014_where_no_bounds.rast b/crates/syntax/test_data/parser/err/0014_where_no_bounds.rast
new file mode 100644
index 000000000..a1f39b22a
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0014_where_no_bounds.rast
@@ -0,0 +1,31 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ">"
13 [email protected]
14 [email protected] "("
15 [email protected] ")"
16 [email protected] " "
17 [email protected]
18 [email protected] "where"
19 [email protected] " "
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "T"
26 [email protected] " "
27 [email protected]
28 [email protected] "{"
29 [email protected] "}"
30 [email protected] "\n"
31error 19..19: expected colon
diff --git a/crates/syntax/test_data/parser/err/0014_where_no_bounds.rs b/crates/syntax/test_data/parser/err/0014_where_no_bounds.rs
new file mode 100644
index 000000000..75c1d2f98
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0014_where_no_bounds.rs
@@ -0,0 +1 @@
fn foo<T>() where T {}
diff --git a/crates/syntax/test_data/parser/err/0015_curly_in_params.rast b/crates/syntax/test_data/parser/err/0015_curly_in_params.rast
new file mode 100644
index 000000000..a3c25b450
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0015_curly_in_params.rast
@@ -0,0 +1,24 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected] "}"
11 [email protected]
12 [email protected] ")"
13 [email protected] " "
14 [email protected]
15 [email protected] "{"
16 [email protected] "\n"
17 [email protected] "}"
18 [email protected] "\n"
19error 7..7: expected value parameter
20error 7..7: expected R_PAREN
21error 7..7: expected a block
22error 7..7: unmatched `}`
23error 8..8: expected an item
24error 10..10: expected an item
diff --git a/crates/syntax/test_data/parser/err/0015_curly_in_params.rs b/crates/syntax/test_data/parser/err/0015_curly_in_params.rs
new file mode 100644
index 000000000..156e70251
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0015_curly_in_params.rs
@@ -0,0 +1,2 @@
1fn foo(}) {
2}
diff --git a/crates/syntax/test_data/parser/err/0016_missing_semi.rast b/crates/syntax/test_data/parser/err/0016_missing_semi.rast
new file mode 100644
index 000000000..66157c3dc
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0016_missing_semi.rast
@@ -0,0 +1,43 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "foo"
21 [email protected]
22 [email protected] "("
23 [email protected] "\n "
24 [email protected]
25 [email protected] "1"
26 [email protected] ","
27 [email protected] " "
28 [email protected]
29 [email protected] "2"
30 [email protected] "\n "
31 [email protected] ")"
32 [email protected] "\n "
33 [email protected]
34 [email protected]
35 [email protected] "return"
36 [email protected] " "
37 [email protected]
38 [email protected] "92"
39 [email protected] ";"
40 [email protected] "\n"
41 [email protected] "}"
42 [email protected] "\n"
43error 38..38: expected SEMICOLON
diff --git a/crates/syntax/test_data/parser/err/0016_missing_semi.rs b/crates/syntax/test_data/parser/err/0016_missing_semi.rs
new file mode 100644
index 000000000..9ae857686
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0016_missing_semi.rs
@@ -0,0 +1,6 @@
1fn foo() {
2 foo(
3 1, 2
4 )
5 return 92;
6}
diff --git a/crates/syntax/test_data/parser/err/0017_incomplete_binexpr.rast b/crates/syntax/test_data/parser/err/0017_incomplete_binexpr.rast
new file mode 100644
index 000000000..fe094f61c
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0017_incomplete_binexpr.rast
@@ -0,0 +1,46 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected] "foo"
13 [email protected] ":"
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "i32"
20 [email protected] ")"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "\n "
25 [email protected]
26 [email protected] "let"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected] "bar"
31 [email protected] " "
32 [email protected] "="
33 [email protected] " "
34 [email protected]
35 [email protected] "92"
36 [email protected] ";"
37 [email protected] "\n "
38 [email protected]
39 [email protected]
40 [email protected] "1"
41 [email protected] " "
42 [email protected] "+"
43 [email protected] "\n"
44 [email protected] "}"
45 [email protected] "\n"
46error 44..44: expected expression
diff --git a/crates/syntax/test_data/parser/err/0017_incomplete_binexpr.rs b/crates/syntax/test_data/parser/err/0017_incomplete_binexpr.rs
new file mode 100644
index 000000000..17bd49777
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0017_incomplete_binexpr.rs
@@ -0,0 +1,4 @@
1fn foo(foo: i32) {
2 let bar = 92;
3 1 +
4}
diff --git a/crates/syntax/test_data/parser/err/0018_incomplete_fn.rast b/crates/syntax/test_data/parser/err/0018_incomplete_fn.rast
new file mode 100644
index 000000000..72939fc98
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0018_incomplete_fn.rast
@@ -0,0 +1,131 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "FnScopes"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "fn"
16 [email protected] " "
17 [email protected]
18 [email protected] "new_scope"
19 [email protected]
20 [email protected] "("
21 [email protected]
22 [email protected]
23 [email protected] "&"
24 [email protected] ")"
25 [email protected] " "
26 [email protected]
27 [email protected] "->"
28 [email protected] " "
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "ScopeId"
34 [email protected] " "
35 [email protected]
36 [email protected] "{"
37 [email protected] "\n "
38 [email protected]
39 [email protected] "let"
40 [email protected] " "
41 [email protected]
42 [email protected]
43 [email protected] "res"
44 [email protected] " "
45 [email protected] "="
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected] "self"
53 [email protected] "."
54 [email protected]
55 [email protected] "scopes"
56 [email protected] "."
57 [email protected]
58 [email protected] "len"
59 [email protected]
60 [email protected] "("
61 [email protected] ")"
62 [email protected] ";"
63 [email protected] "\n "
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected]
68 [email protected]
69 [email protected] "self"
70 [email protected] "."
71 [email protected]
72 [email protected] "scopes"
73 [email protected] "."
74 [email protected]
75 [email protected] "push"
76 [email protected]
77 [email protected] "("
78 [email protected]
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected] "ScopeData"
83 [email protected] " "
84 [email protected]
85 [email protected] "{"
86 [email protected] " "
87 [email protected]
88 [email protected]
89 [email protected] "parent"
90 [email protected] ":"
91 [email protected] " "
92 [email protected]
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected] "None"
97 [email protected] ","
98 [email protected] " "
99 [email protected]
100 [email protected]
101 [email protected] "entries"
102 [email protected] ":"
103 [email protected] " "
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected]
108 [email protected] "vec"
109 [email protected] "!"
110 [email protected]
111 [email protected] "["
112 [email protected] "]"
113 [email protected] " "
114 [email protected] "}"
115 [email protected] ")"
116 [email protected] "\n "
117 [email protected] "}"
118 [email protected] "\n\n "
119 [email protected]
120 [email protected] "fn"
121 [email protected] " "
122 [email protected]
123 [email protected] "set_parent"
124 [email protected] "\n"
125 [email protected] "}"
126 [email protected] "\n"
127error 34..34: expected pattern
128error 34..34: expected COLON
129error 34..34: expected type
130error 180..180: expected function arguments
131error 180..180: expected a block
diff --git a/crates/syntax/test_data/parser/err/0018_incomplete_fn.rs b/crates/syntax/test_data/parser/err/0018_incomplete_fn.rs
new file mode 100644
index 000000000..fe604006c
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0018_incomplete_fn.rs
@@ -0,0 +1,8 @@
1impl FnScopes {
2 fn new_scope(&) -> ScopeId {
3 let res = self.scopes.len();
4 self.scopes.push(ScopeData { parent: None, entries: vec![] })
5 }
6
7 fn set_parent
8}
diff --git a/crates/syntax/test_data/parser/err/0019_let_recover.rast b/crates/syntax/test_data/parser/err/0019_let_recover.rast
new file mode 100644
index 000000000..72c05bd96
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0019_let_recover.rast
@@ -0,0 +1,103 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "foo"
20 [email protected] " "
21 [email protected] "="
22 [email protected] "\n "
23 [email protected]
24 [email protected] "let"
25 [email protected] " "
26 [email protected]
27 [email protected]
28 [email protected] "bar"
29 [email protected] " "
30 [email protected] "="
31 [email protected] " "
32 [email protected]
33 [email protected] "1"
34 [email protected] ";"
35 [email protected] "\n "
36 [email protected]
37 [email protected] "let"
38 [email protected] "\n "
39 [email protected]
40 [email protected] "let"
41 [email protected] " "
42 [email protected]
43 [email protected]
44 [email protected] "baz"
45 [email protected] " "
46 [email protected] "="
47 [email protected] " "
48 [email protected]
49 [email protected] "92"
50 [email protected] ";"
51 [email protected] "\n "
52 [email protected]
53 [email protected] "let"
54 [email protected] "\n "
55 [email protected]
56 [email protected]
57 [email protected] "if"
58 [email protected] " "
59 [email protected]
60 [email protected]
61 [email protected] "true"
62 [email protected] " "
63 [email protected]
64 [email protected] "{"
65 [email protected] "}"
66 [email protected] "\n "
67 [email protected]
68 [email protected] "let"
69 [email protected] "\n "
70 [email protected]
71 [email protected]
72 [email protected] "while"
73 [email protected] " "
74 [email protected]
75 [email protected]
76 [email protected] "true"
77 [email protected] " "
78 [email protected]
79 [email protected] "{"
80 [email protected] "}"
81 [email protected] "\n "
82 [email protected]
83 [email protected] "let"
84 [email protected] "\n "
85 [email protected]
86 [email protected] "loop"
87 [email protected] " "
88 [email protected]
89 [email protected] "{"
90 [email protected] "}"
91 [email protected] "\n"
92 [email protected] "}"
93 [email protected] "\n"
94error 24..24: expected expression
95error 24..24: expected SEMICOLON
96error 49..49: expected pattern
97error 49..49: expected SEMICOLON
98error 75..75: expected pattern
99error 75..75: expected SEMICOLON
100error 98..98: expected pattern
101error 98..98: expected SEMICOLON
102error 124..124: expected pattern
103error 124..124: expected SEMICOLON
diff --git a/crates/syntax/test_data/parser/err/0019_let_recover.rs b/crates/syntax/test_data/parser/err/0019_let_recover.rs
new file mode 100644
index 000000000..48bf3d68b
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0019_let_recover.rs
@@ -0,0 +1,12 @@
1fn foo() {
2 let foo =
3 let bar = 1;
4 let
5 let baz = 92;
6 let
7 if true {}
8 let
9 while true {}
10 let
11 loop {}
12}
diff --git a/crates/syntax/test_data/parser/err/0020_fn_recover.rast b/crates/syntax/test_data/parser/err/0020_fn_recover.rast
new file mode 100644
index 000000000..6f6feba5a
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0020_fn_recover.rast
@@ -0,0 +1,20 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] "\n\n"
5 [email protected]
6 [email protected] "fn"
7 [email protected] " "
8 [email protected]
9 [email protected] "foo"
10 [email protected]
11 [email protected] "("
12 [email protected] ")"
13 [email protected] " "
14 [email protected]
15 [email protected] "{"
16 [email protected] "}"
17 [email protected] "\n"
18error 2..2: expected a name
19error 2..2: expected function arguments
20error 2..2: expected a block
diff --git a/crates/syntax/test_data/parser/err/0020_fn_recover.rs b/crates/syntax/test_data/parser/err/0020_fn_recover.rs
new file mode 100644
index 000000000..3393b668b
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0020_fn_recover.rs
@@ -0,0 +1,3 @@
1fn
2
3fn foo() {}
diff --git a/crates/syntax/test_data/parser/err/0021_incomplete_param.rast b/crates/syntax/test_data/parser/err/0021_incomplete_param.rast
new file mode 100644
index 000000000..b32845537
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0021_incomplete_param.rast
@@ -0,0 +1,34 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected] "x"
13 [email protected] ":"
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "i32"
20 [email protected] ","
21 [email protected] " "
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "y"
26 [email protected] ")"
27 [email protected] " "
28 [email protected]
29 [email protected] "{"
30 [email protected] "\n"
31 [email protected] "}"
32 [email protected] "\n"
33error 16..16: expected COLON
34error 16..16: expected type
diff --git a/crates/syntax/test_data/parser/err/0021_incomplete_param.rs b/crates/syntax/test_data/parser/err/0021_incomplete_param.rs
new file mode 100644
index 000000000..7a6c264f6
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0021_incomplete_param.rs
@@ -0,0 +1,2 @@
1fn foo(x: i32, y) {
2}
diff --git a/crates/syntax/test_data/parser/err/0022_bad_exprs.rast b/crates/syntax/test_data/parser/err/0022_bad_exprs.rast
new file mode 100644
index 000000000..71fb19783
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0022_bad_exprs.rast
@@ -0,0 +1,180 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "a"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected] "["
17 [email protected]
18 [email protected] "1"
19 [email protected] ","
20 [email protected] " "
21 [email protected]
22 [email protected] "2"
23 [email protected] ","
24 [email protected] " "
25 [email protected]
26 [email protected] "@"
27 [email protected]
28 [email protected]
29 [email protected] ","
30 [email protected] " "
31 [email protected]
32 [email protected] "struct"
33 [email protected]
34 [email protected] ","
35 [email protected] " "
36 [email protected]
37 [email protected] "let"
38 [email protected]
39 [email protected] "]"
40 [email protected] " "
41 [email protected] "}"
42 [email protected] "\n"
43 [email protected]
44 [email protected] "fn"
45 [email protected] " "
46 [email protected]
47 [email protected] "b"
48 [email protected]
49 [email protected] "("
50 [email protected] ")"
51 [email protected] " "
52 [email protected]
53 [email protected] "{"
54 [email protected] " "
55 [email protected]
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "foo"
62 [email protected]
63 [email protected] "("
64 [email protected]
65 [email protected] "1"
66 [email protected] ","
67 [email protected] " "
68 [email protected]
69 [email protected] "2"
70 [email protected] ","
71 [email protected] " "
72 [email protected]
73 [email protected] "@"
74 [email protected]
75 [email protected]
76 [email protected] ","
77 [email protected] " "
78 [email protected]
79 [email protected] "impl"
80 [email protected]
81 [email protected]
82 [email protected] ","
83 [email protected] " "
84 [email protected]
85 [email protected] "let"
86 [email protected]
87 [email protected] ")"
88 [email protected] " "
89 [email protected] "}"
90 [email protected] "\n"
91 [email protected]
92 [email protected] "fn"
93 [email protected] " "
94 [email protected]
95 [email protected] "c"
96 [email protected]
97 [email protected] "("
98 [email protected] ")"
99 [email protected] " "
100 [email protected]
101 [email protected] "{"
102 [email protected] " "
103 [email protected]
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected]
108 [email protected]
109 [email protected] "foo"
110 [email protected] "."
111 [email protected]
112 [email protected] "bar"
113 [email protected]
114 [email protected] "("
115 [email protected]
116 [email protected] "1"
117 [email protected] ","
118 [email protected] " "
119 [email protected]
120 [email protected] "2"
121 [email protected] ","
122 [email protected] " "
123 [email protected]
124 [email protected] "@"
125 [email protected]
126 [email protected]
127 [email protected] ","
128 [email protected] " "
129 [email protected]
130 [email protected]
131 [email protected] "]"
132 [email protected]
133 [email protected]
134 [email protected] ","
135 [email protected] " "
136 [email protected]
137 [email protected] "trait"
138 [email protected]
139 [email protected] ","
140 [email protected] " "
141 [email protected]
142 [email protected] "let"
143 [email protected]
144 [email protected] ")"
145 [email protected] " "
146 [email protected] "}"
147 [email protected] "\n"
148error 16..16: expected expression
149error 17..17: expected R_BRACK
150error 17..17: expected SEMICOLON
151error 17..17: expected expression
152error 18..18: expected SEMICOLON
153error 25..25: expected a name
154error 26..26: expected `;`, `{`, or `(`
155error 30..30: expected pattern
156error 31..31: expected SEMICOLON
157error 53..53: expected expression
158error 54..54: expected SEMICOLON
159error 54..54: expected expression
160error 55..55: expected SEMICOLON
161error 60..60: expected type
162error 60..60: expected `{`
163error 60..60: expected expression
164error 61..61: expected SEMICOLON
165error 65..65: expected pattern
166error 65..65: expected SEMICOLON
167error 65..65: expected expression
168error 92..92: expected expression
169error 93..93: expected SEMICOLON
170error 93..93: expected expression
171error 94..94: expected SEMICOLON
172error 95..95: expected expression
173error 96..96: expected SEMICOLON
174error 96..96: expected expression
175error 97..97: expected SEMICOLON
176error 103..103: expected a name
177error 104..104: expected `{`
178error 108..108: expected pattern
179error 108..108: expected SEMICOLON
180error 108..108: expected expression
diff --git a/crates/syntax/test_data/parser/err/0022_bad_exprs.rs b/crates/syntax/test_data/parser/err/0022_bad_exprs.rs
new file mode 100644
index 000000000..cd2d493a1
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0022_bad_exprs.rs
@@ -0,0 +1,3 @@
1fn a() { [1, 2, @, struct, let] }
2fn b() { foo(1, 2, @, impl, let) }
3fn c() { foo.bar(1, 2, @, ], trait, let) }
diff --git a/crates/syntax/test_data/parser/err/0023_mismatched_paren.rast b/crates/syntax/test_data/parser/err/0023_mismatched_paren.rast
new file mode 100644
index 000000000..5ffefd742
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0023_mismatched_paren.rast
@@ -0,0 +1,43 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "foo"
19 [email protected] "!"
20 [email protected] " "
21 [email protected]
22 [email protected] "("
23 [email protected] "\n "
24 [email protected] "bar"
25 [email protected] ","
26 [email protected] " "
27 [email protected] "\"baz\""
28 [email protected] ","
29 [email protected] " "
30 [email protected] "1"
31 [email protected] ","
32 [email protected] " "
33 [email protected] "2.0"
34 [email protected] "\n "
35 [email protected] "}"
36 [email protected] " "
37 [email protected] "//~ ERROR incorrect c ..."
38 [email protected] "\n"
39 [email protected]
40 [email protected] "}"
41 [email protected] "\n"
42error 49..49: unmatched `}`
43error 92..92: unmatched `}`
diff --git a/crates/syntax/test_data/parser/err/0023_mismatched_paren.rs b/crates/syntax/test_data/parser/err/0023_mismatched_paren.rs
new file mode 100644
index 000000000..0206d563e
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0023_mismatched_paren.rs
@@ -0,0 +1,5 @@
1fn main() {
2 foo! (
3 bar, "baz", 1, 2.0
4 } //~ ERROR incorrect close delimiter
5}
diff --git a/crates/syntax/test_data/parser/err/0024_many_type_parens.rast b/crates/syntax/test_data/parser/err/0024_many_type_parens.rast
new file mode 100644
index 000000000..e3be6b22e
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0024_many_type_parens.rast
@@ -0,0 +1,319 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "f"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ":"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected] "("
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "Copy"
22 [email protected] ")"
23 [email protected] " "
24 [email protected] "+"
25 [email protected] " "
26 [email protected]
27 [email protected] "("
28 [email protected] "?"
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "Sized"
34 [email protected] ")"
35 [email protected] " "
36 [email protected] "+"
37 [email protected] " "
38 [email protected]
39 [email protected] "("
40 [email protected]
41 [email protected] "for"
42 [email protected]
43 [email protected] "<"
44 [email protected]
45 [email protected] "\'a"
46 [email protected] ">"
47 [email protected] " "
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected] "Trait"
53 [email protected]
54 [email protected] "<"
55 [email protected]
56 [email protected] "\'a"
57 [email protected] ">"
58 [email protected] ")"
59 [email protected] ">"
60 [email protected]
61 [email protected] "("
62 [email protected] ")"
63 [email protected] " "
64 [email protected]
65 [email protected] "{"
66 [email protected] "}"
67 [email protected] "\n\n"
68 [email protected]
69 [email protected] "fn"
70 [email protected] " "
71 [email protected]
72 [email protected] "main"
73 [email protected]
74 [email protected] "("
75 [email protected] ")"
76 [email protected] " "
77 [email protected]
78 [email protected] "{"
79 [email protected] "\n "
80 [email protected]
81 [email protected] "let"
82 [email protected] " "
83 [email protected]
84 [email protected] "_"
85 [email protected] ":"
86 [email protected] " "
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected]
92 [email protected]
93 [email protected]
94 [email protected] "Box"
95 [email protected]
96 [email protected] "<"
97 [email protected]
98 [email protected]
99 [email protected] "("
100 [email protected]
101 [email protected]
102 [email protected]
103 [email protected]
104 [email protected] "Copy"
105 [email protected] ")"
106 [email protected] " "
107 [email protected] "+"
108 [email protected] " "
109 [email protected]
110 [email protected] "("
111 [email protected] "?"
112 [email protected]
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected] "Sized"
117 [email protected] ")"
118 [email protected] " "
119 [email protected] "+"
120 [email protected] " "
121 [email protected]
122 [email protected] "("
123 [email protected]
124 [email protected] "for"
125 [email protected]
126 [email protected] "<"
127 [email protected]
128 [email protected] "\'a"
129 [email protected] ">"
130 [email protected] " "
131 [email protected]
132 [email protected]
133 [email protected]
134 [email protected]
135 [email protected] "Trait"
136 [email protected]
137 [email protected] "<"
138 [email protected]
139 [email protected] "\'a"
140 [email protected] ">"
141 [email protected] ")"
142 [email protected]
143 [email protected]
144 [email protected] ">"
145 [email protected] ";"
146 [email protected] "\n "
147 [email protected]
148 [email protected] "let"
149 [email protected] " "
150 [email protected]
151 [email protected] "_"
152 [email protected] ":"
153 [email protected] " "
154 [email protected]
155 [email protected]
156 [email protected]
157 [email protected]
158 [email protected] "Box"
159 [email protected]
160 [email protected] "<"
161 [email protected]
162 [email protected]
163 [email protected] "("
164 [email protected]
165 [email protected] "?"
166 [email protected]
167 [email protected]
168 [email protected]
169 [email protected]
170 [email protected]
171 [email protected] "Sized"
172 [email protected]
173 [email protected]
174 [email protected] ")"
175 [email protected] " "
176 [email protected]
177 [email protected]
178 [email protected] "+"
179 [email protected] " "
180 [email protected]
181 [email protected]
182 [email protected] "("
183 [email protected]
184 [email protected] "for"
185 [email protected]
186 [email protected]
187 [email protected]
188 [email protected] "<"
189 [email protected]
190 [email protected] "\'a"
191 [email protected] ">"
192 [email protected] " "
193 [email protected]
194 [email protected]
195 [email protected]
196 [email protected]
197 [email protected]
198 [email protected]
199 [email protected]
200 [email protected]
201 [email protected] "Trait"
202 [email protected] "<"
203 [email protected]
204 [email protected] "\'a"
205 [email protected] ">"
206 [email protected]
207 [email protected] ")"
208 [email protected] " "
209 [email protected] "+"
210 [email protected] " "
211 [email protected]
212 [email protected] "("
213 [email protected]
214 [email protected]
215 [email protected]
216 [email protected]
217 [email protected] "Copy"
218 [email protected] ")"
219 [email protected] ">"
220 [email protected]
221 [email protected] ";"
222 [email protected] "\n "
223 [email protected]
224 [email protected] "let"
225 [email protected] " "
226 [email protected]
227 [email protected] "_"
228 [email protected] ":"
229 [email protected] " "
230 [email protected]
231 [email protected]
232 [email protected]
233 [email protected]
234 [email protected]
235 [email protected]
236 [email protected]
237 [email protected] "Box"
238 [email protected]
239 [email protected] "<"
240 [email protected]
241 [email protected]
242 [email protected] "("
243 [email protected]
244 [email protected] "for"
245 [email protected]
246 [email protected] "<"
247 [email protected]
248 [email protected] "\'a"
249 [email protected] ">"
250 [email protected] " "
251 [email protected]
252 [email protected]
253 [email protected]
254 [email protected]
255 [email protected] "Trait"
256 [email protected]
257 [email protected] "<"
258 [email protected]
259 [email protected] "\'a"
260 [email protected] ">"
261 [email protected] ")"
262 [email protected] " "
263 [email protected] "+"
264 [email protected] " "
265 [email protected]
266 [email protected] "("
267 [email protected]
268 [email protected]
269 [email protected]
270 [email protected]
271 [email protected] "Copy"
272 [email protected] ")"
273 [email protected] " "
274 [email protected] "+"
275 [email protected] " "
276 [email protected]
277 [email protected] "("
278 [email protected] "?"
279 [email protected]
280 [email protected]
281 [email protected]
282 [email protected]
283 [email protected] "Sized"
284 [email protected] ")"
285 [email protected]
286 [email protected]
287 [email protected] ">"
288 [email protected] ";"
289 [email protected] "\n"
290 [email protected] "}"
291 [email protected] "\n"
292error 88..88: expected COMMA
293error 88..88: expected R_ANGLE
294error 121..121: expected SEMICOLON
295error 121..121: expected expression
296error 140..140: expected type
297error 141..141: expected R_PAREN
298error 141..141: expected COMMA
299error 141..141: expected R_ANGLE
300error 141..141: expected SEMICOLON
301error 146..146: expected SEMICOLON
302error 146..146: expected expression
303error 147..147: expected SEMICOLON
304error 148..148: expected expression
305error 149..149: expected SEMICOLON
306error 155..155: expected type
307error 158..158: expected IN_KW
308error 165..165: expected expression
309error 168..168: expected expression
310error 179..179: expected expression
311error 180..180: expected a block
312error 180..180: expected COMMA
313error 180..180: expected expression
314error 180..180: expected R_PAREN
315error 180..180: expected SEMICOLON
316error 215..215: expected COMMA
317error 215..215: expected R_ANGLE
318error 235..235: expected SEMICOLON
319error 235..235: expected expression
diff --git a/crates/syntax/test_data/parser/err/0024_many_type_parens.rs b/crates/syntax/test_data/parser/err/0024_many_type_parens.rs
new file mode 100644
index 000000000..6c2e95c02
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0024_many_type_parens.rs
@@ -0,0 +1,7 @@
1fn f<T: (Copy) + (?Sized) + (for<'a> Trait<'a>)>() {}
2
3fn main() {
4 let _: Box<(Copy) + (?Sized) + (for<'a> Trait<'a>)>;
5 let _: Box<(?Sized) + (for<'a> Trait<'a>) + (Copy)>;
6 let _: Box<(for<'a> Trait<'a>) + (Copy) + (?Sized)>;
7}
diff --git a/crates/syntax/test_data/parser/err/0025_nope.rast b/crates/syntax/test_data/parser/err/0025_nope.rast
new file mode 100644
index 000000000..83fc9fe77
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0025_nope.rast
@@ -0,0 +1,202 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "enum"
16 [email protected] " "
17 [email protected]
18 [email protected] "Test"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "\n "
23 [email protected]
24 [email protected]
25 [email protected] "Var1"
26 [email protected] ","
27 [email protected] "\n "
28 [email protected]
29 [email protected]
30 [email protected] "Var2"
31 [email protected]
32 [email protected] "("
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "String"
39 [email protected] ")"
40 [email protected] ","
41 [email protected] "\n "
42 [email protected]
43 [email protected]
44 [email protected] "Var3"
45 [email protected] " "
46 [email protected]
47 [email protected] "{"
48 [email protected] "\n "
49 [email protected]
50 [email protected]
51 [email protected] "abc"
52 [email protected] ":"
53 [email protected] " "
54 [email protected]
55 [email protected] "{"
56 [email protected] "}"
57 [email protected]
58 [email protected] ","
59 [email protected] " "
60 [email protected] "//~ ERROR: expected t ..."
61 [email protected] "\n "
62 [email protected] "}"
63 [email protected] ","
64 [email protected] "\n "
65 [email protected] "}"
66 [email protected] "\n\n "
67 [email protected] "// recover..."
68 [email protected] "\n "
69 [email protected]
70 [email protected] "let"
71 [email protected] " "
72 [email protected]
73 [email protected]
74 [email protected] "a"
75 [email protected] " "
76 [email protected] "="
77 [email protected] " "
78 [email protected]
79 [email protected] "1"
80 [email protected] ";"
81 [email protected] "\n "
82 [email protected]
83 [email protected] "enum"
84 [email protected] " "
85 [email protected]
86 [email protected] "Test2"
87 [email protected] " "
88 [email protected]
89 [email protected] "{"
90 [email protected] "\n "
91 [email protected]
92 [email protected]
93 [email protected] "Fine"
94 [email protected] ","
95 [email protected] "\n "
96 [email protected] "}"
97 [email protected] "\n\n "
98 [email protected]
99 [email protected] "enum"
100 [email protected] " "
101 [email protected]
102 [email protected] "Test3"
103 [email protected] " "
104 [email protected]
105 [email protected] "{"
106 [email protected] "\n "
107 [email protected]
108 [email protected]
109 [email protected] "StillFine"
110 [email protected] " "
111 [email protected]
112 [email protected] "{"
113 [email protected] "\n "
114 [email protected]
115 [email protected]
116 [email protected] "def"
117 [email protected] ":"
118 [email protected] " "
119 [email protected]
120 [email protected]
121 [email protected]
122 [email protected]
123 [email protected] "i32"
124 [email protected] ","
125 [email protected] "\n "
126 [email protected] "}"
127 [email protected] ","
128 [email protected] "\n "
129 [email protected] "}"
130 [email protected] "\n\n "
131 [email protected]
132 [email protected]
133 [email protected] "{"
134 [email protected] "\n "
135 [email protected]
136 [email protected] "// fail again"
137 [email protected] "\n "
138 [email protected] "enum"
139 [email protected] " "
140 [email protected]
141 [email protected] "Test4"
142 [email protected] " "
143 [email protected]
144 [email protected] "{"
145 [email protected] "\n "
146 [email protected]
147 [email protected]
148 [email protected] "Nope"
149 [email protected]
150 [email protected] "("
151 [email protected]
152 [email protected]
153 [email protected]
154 [email protected]
155 [email protected]
156 [email protected] "i32"
157 [email protected] " "
158 [email protected]
159 [email protected]
160 [email protected] "{"
161 [email protected] "}"
162 [email protected]
163 [email protected] ")"
164 [email protected] " "
165 [email protected] "//~ ERROR: found `{`"
166 [email protected] "\n ..."
167 [email protected] "//~^ ERROR: found `{`"
168 [email protected] "\n "
169 [email protected] "}"
170 [email protected] "\n "
171 [email protected] "}"
172 [email protected] "\n "
173 [email protected] "// still recover later"
174 [email protected] "\n "
175 [email protected]
176 [email protected] "let"
177 [email protected] " "
178 [email protected]
179 [email protected]
180 [email protected] "bad_syntax"
181 [email protected] " "
182 [email protected] "="
183 [email protected] " "
184 [email protected]
185 [email protected] "_"
186 [email protected] ";"
187 [email protected] " "
188 [email protected] "//~ ERROR: expected e ..."
189 [email protected] "\n"
190 [email protected] "}"
191 [email protected] "\n"
192error 95..95: expected type
193error 95..95: expected COMMA
194error 96..96: expected field
195error 98..98: expected field declaration
196error 371..371: expected COMMA
197error 372..372: expected a type
198error 372..372: expected R_PAREN
199error 372..372: expected COMMA
200error 372..372: expected enum variant
201error 374..374: expected enum variant
202error 508..508: expected expression
diff --git a/crates/syntax/test_data/parser/err/0025_nope.rs b/crates/syntax/test_data/parser/err/0025_nope.rs
new file mode 100644
index 000000000..28726ed51
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0025_nope.rs
@@ -0,0 +1,31 @@
1fn main() {
2 enum Test {
3 Var1,
4 Var2(String),
5 Var3 {
6 abc: {}, //~ ERROR: expected type, found `{`
7 },
8 }
9
10 // recover...
11 let a = 1;
12 enum Test2 {
13 Fine,
14 }
15
16 enum Test3 {
17 StillFine {
18 def: i32,
19 },
20 }
21
22 {
23 // fail again
24 enum Test4 {
25 Nope(i32 {}) //~ ERROR: found `{`
26 //~^ ERROR: found `{`
27 }
28 }
29 // still recover later
30 let bad_syntax = _; //~ ERROR: expected expression, found reserved identifier `_`
31}
diff --git a/crates/syntax/test_data/parser/err/0026_imp_recovery.rast b/crates/syntax/test_data/parser/err/0026_imp_recovery.rast
new file mode 100644
index 000000000..1b08c834e
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0026_imp_recovery.rast
@@ -0,0 +1,49 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected]
5 [email protected] "<"
6 [email protected]
7 [email protected]
8 [email protected] "T"
9 [email protected] ":"
10 [email protected] " "
11 [email protected]
12 [email protected]
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "Clone"
18 [email protected] ">"
19 [email protected] "\n"
20 [email protected]
21 [email protected] "impl"
22 [email protected]
23 [email protected] "<"
24 [email protected]
25 [email protected]
26 [email protected] "T"
27 [email protected] ">"
28 [email protected] " "
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "OnceCell"
34 [email protected]
35 [email protected] "<"
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "T"
42 [email protected] ">"
43 [email protected] " "
44 [email protected]
45 [email protected] "{"
46 [email protected] "}"
47 [email protected] "\n"
48error 14..14: expected trait or type
49error 14..14: expected `{`
diff --git a/crates/syntax/test_data/parser/err/0026_imp_recovery.rs b/crates/syntax/test_data/parser/err/0026_imp_recovery.rs
new file mode 100644
index 000000000..829ca1c4b
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0026_imp_recovery.rs
@@ -0,0 +1,2 @@
1impl<T: Clone>
2impl<T> OnceCell<T> {}
diff --git a/crates/syntax/test_data/parser/err/0027_incomplere_where_for.rast b/crates/syntax/test_data/parser/err/0027_incomplere_where_for.rast
new file mode 100644
index 000000000..a8e42e6ea
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0027_incomplere_where_for.rast
@@ -0,0 +1,27 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] "\n "
11 [email protected]
12 [email protected] "where"
13 [email protected] " "
14 [email protected]
15 [email protected] "for"
16 [email protected]
17 [email protected] "<"
18 [email protected]
19 [email protected] "\'a"
20 [email protected] ">"
21 [email protected] "\n"
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] "\n"
26error 26..26: expected type
27error 26..26: expected colon
diff --git a/crates/syntax/test_data/parser/err/0027_incomplere_where_for.rs b/crates/syntax/test_data/parser/err/0027_incomplere_where_for.rs
new file mode 100644
index 000000000..2792c2084
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0027_incomplere_where_for.rs
@@ -0,0 +1,3 @@
1fn foo()
2 where for<'a>
3{}
diff --git a/crates/syntax/test_data/parser/err/0029_field_completion.rast b/crates/syntax/test_data/parser/err/0029_field_completion.rast
new file mode 100644
index 000000000..c6402cdd8
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0029_field_completion.rast
@@ -0,0 +1,35 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected] "a"
13 [email protected] ":"
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "A"
20 [email protected] ")"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "\n "
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "a"
31 [email protected] "."
32 [email protected] "\n"
33 [email protected] "}"
34 [email protected] "\n"
35error 21..21: expected field name or number
diff --git a/crates/syntax/test_data/parser/err/0029_field_completion.rs b/crates/syntax/test_data/parser/err/0029_field_completion.rs
new file mode 100644
index 000000000..a7cdc17bb
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0029_field_completion.rs
@@ -0,0 +1,3 @@
1fn foo(a: A) {
2 a.
3}
diff --git a/crates/syntax/test_data/parser/err/0031_block_inner_attrs.rast b/crates/syntax/test_data/parser/err/0031_block_inner_attrs.rast
new file mode 100644
index 000000000..a443b37db
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0031_block_inner_attrs.rast
@@ -0,0 +1,121 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "block"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "inner"
20 [email protected] " "
21 [email protected] "="
22 [email protected] " "
23 [email protected]
24 [email protected] "{"
25 [email protected] "\n "
26 [email protected]
27 [email protected] "#"
28 [email protected] "!"
29 [email protected] "["
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "doc"
34 [email protected]
35 [email protected] "("
36 [email protected] "\"Inner attributes not ..."
37 [email protected] ")"
38 [email protected] "]"
39 [email protected] "\n "
40 [email protected] "//! Nor are ModuleDoc ..."
41 [email protected] "\n "
42 [email protected] "}"
43 [email protected] ";"
44 [email protected] "\n "
45 [email protected]
46 [email protected]
47 [email protected] "if"
48 [email protected] " "
49 [email protected]
50 [email protected]
51 [email protected] "true"
52 [email protected] " "
53 [email protected]
54 [email protected] "{"
55 [email protected] "\n "
56 [email protected]
57 [email protected] "#"
58 [email protected] "!"
59 [email protected] "["
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected] "doc"
64 [email protected]
65 [email protected] "("
66 [email protected] "\"Nor here\""
67 [email protected] ")"
68 [email protected] "]"
69 [email protected] "\n "
70 [email protected]
71 [email protected] "#"
72 [email protected] "!"
73 [email protected] "["
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected] "doc"
78 [email protected]
79 [email protected] "("
80 [email protected] "\"We error on each attr\""
81 [email protected] ")"
82 [email protected] "]"
83 [email protected] "\n "
84 [email protected] "//! Nor are ModuleDoc ..."
85 [email protected] "\n "
86 [email protected] "}"
87 [email protected] "\n "
88 [email protected]
89 [email protected] "while"
90 [email protected] " "
91 [email protected]
92 [email protected]
93 [email protected] "true"
94 [email protected] " "
95 [email protected]
96 [email protected] "{"
97 [email protected] "\n "
98 [email protected]
99 [email protected] "#"
100 [email protected] "!"
101 [email protected] "["
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected] "doc"
106 [email protected]
107 [email protected] "("
108 [email protected] "\"Nor here\""
109 [email protected] ")"
110 [email protected] "]"
111 [email protected] "\n "
112 [email protected] "//! Nor are ModuleDoc ..."
113 [email protected] "\n "
114 [email protected] "}"
115 [email protected] "\n"
116 [email protected] "}"
117 [email protected] "\n"
118error 39..83: A block in this position cannot accept inner attributes
119error 152..171: A block in this position cannot accept inner attributes
120error 180..212: A block in this position cannot accept inner attributes
121error 283..302: A block in this position cannot accept inner attributes
diff --git a/crates/syntax/test_data/parser/err/0031_block_inner_attrs.rs b/crates/syntax/test_data/parser/err/0031_block_inner_attrs.rs
new file mode 100644
index 000000000..6a04f2d0a
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0031_block_inner_attrs.rs
@@ -0,0 +1,15 @@
1fn block() {
2 let inner = {
3 #![doc("Inner attributes not allowed here")]
4 //! Nor are ModuleDoc comments
5 };
6 if true {
7 #![doc("Nor here")]
8 #![doc("We error on each attr")]
9 //! Nor are ModuleDoc comments
10 }
11 while true {
12 #![doc("Nor here")]
13 //! Nor are ModuleDoc comments
14 }
15}
diff --git a/crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast b/crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast
new file mode 100644
index 000000000..672dd054a
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast
@@ -0,0 +1,203 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "match"
17 [email protected] " "
18 [email protected]
19 [email protected] "("
20 [email protected] ")"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "\n "
25 [email protected]
26 [email protected]
27 [email protected] "_"
28 [email protected] " "
29 [email protected] "=>"
30 [email protected] " "
31 [email protected]
32 [email protected] "("
33 [email protected] ")"
34 [email protected] ","
35 [email protected] "\n "
36 [email protected]
37 [email protected]
38 [email protected] "#"
39 [email protected]
40 [email protected] "!"
41 [email protected]
42 [email protected] "["
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "doc"
49 [email protected]
50 [email protected] "("
51 [email protected]
52 [email protected] "\"Not allowed here\""
53 [email protected] ")"
54 [email protected] "]"
55 [email protected] "\n "
56 [email protected]
57 [email protected]
58 [email protected] "_"
59 [email protected] " "
60 [email protected] "=>"
61 [email protected] " "
62 [email protected]
63 [email protected] "("
64 [email protected] ")"
65 [email protected] ","
66 [email protected] "\n "
67 [email protected] "}"
68 [email protected] "\n\n "
69 [email protected]
70 [email protected]
71 [email protected] "match"
72 [email protected] " "
73 [email protected]
74 [email protected] "("
75 [email protected] ")"
76 [email protected] " "
77 [email protected]
78 [email protected] "{"
79 [email protected] "\n "
80 [email protected]
81 [email protected]
82 [email protected] "_"
83 [email protected] " "
84 [email protected] "=>"
85 [email protected] " "
86 [email protected]
87 [email protected] "("
88 [email protected] ")"
89 [email protected] ","
90 [email protected] "\n "
91 [email protected]
92 [email protected]
93 [email protected] "_"
94 [email protected] " "
95 [email protected] "=>"
96 [email protected] " "
97 [email protected]
98 [email protected] "("
99 [email protected] ")"
100 [email protected] ","
101 [email protected] "\n "
102 [email protected]
103 [email protected]
104 [email protected] "#"
105 [email protected]
106 [email protected] "!"
107 [email protected]
108 [email protected] "["
109 [email protected]
110 [email protected]
111 [email protected]
112 [email protected]
113 [email protected]
114 [email protected] "doc"
115 [email protected]
116 [email protected] "("
117 [email protected]
118 [email protected] "\"Nor here\""
119 [email protected] ")"
120 [email protected] "]"
121 [email protected] "\n "
122 [email protected] "}"
123 [email protected] "\n\n "
124 [email protected]
125 [email protected] "match"
126 [email protected] " "
127 [email protected]
128 [email protected] "("
129 [email protected] ")"
130 [email protected] " "
131 [email protected]
132 [email protected] "{"
133 [email protected] "\n "
134 [email protected]
135 [email protected]
136 [email protected] "#"
137 [email protected] "["
138 [email protected]
139 [email protected]
140 [email protected]
141 [email protected] "cfg"
142 [email protected]
143 [email protected] "("
144 [email protected] "test"
145 [email protected] ")"
146 [email protected] "]"
147 [email protected] "\n "
148 [email protected]
149 [email protected] "#"
150 [email protected]
151 [email protected] "!"
152 [email protected]
153 [email protected] "["
154 [email protected]
155 [email protected]
156 [email protected]
157 [email protected]
158 [email protected]
159 [email protected] "doc"
160 [email protected]
161 [email protected] "("
162 [email protected]
163 [email protected] "\"Nor here\""
164 [email protected] ")"
165 [email protected] "]"
166 [email protected] "\n "
167 [email protected]
168 [email protected]
169 [email protected] "_"
170 [email protected] " "
171 [email protected] "=>"
172 [email protected] " "
173 [email protected]
174 [email protected] "("
175 [email protected] ")"
176 [email protected] ","
177 [email protected] "\n "
178 [email protected]
179 [email protected]
180 [email protected] "_"
181 [email protected] " "
182 [email protected] "=>"
183 [email protected] " "
184 [email protected]
185 [email protected] "("
186 [email protected] ")"
187 [email protected] ","
188 [email protected] "\n "
189 [email protected] "}"
190 [email protected] "\n"
191 [email protected] "}"
192 [email protected] "\n"
193error 52..52: expected `[`
194error 52..52: expected pattern
195error 53..53: expected FAT_ARROW
196error 78..78: expected COMMA
197error 161..161: expected `[`
198error 161..161: expected pattern
199error 162..162: expected FAT_ARROW
200error 232..232: expected `[`
201error 232..232: expected pattern
202error 233..233: expected FAT_ARROW
203error 250..250: expected COMMA
diff --git a/crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rs b/crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rs
new file mode 100644
index 000000000..06aa47770
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rs
@@ -0,0 +1,20 @@
1fn foo() {
2 match () {
3 _ => (),
4 #![doc("Not allowed here")]
5 _ => (),
6 }
7
8 match () {
9 _ => (),
10 _ => (),
11 #![doc("Nor here")]
12 }
13
14 match () {
15 #[cfg(test)]
16 #![doc("Nor here")]
17 _ => (),
18 _ => (),
19 }
20}
diff --git a/crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast b/crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast
new file mode 100644
index 000000000..33bb085e9
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast
@@ -0,0 +1,66 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "match"
16 [email protected] " "
17 [email protected]
18 [email protected] "("
19 [email protected] ")"
20 [email protected] " "
21 [email protected]
22 [email protected] "{"
23 [email protected] "\n "
24 [email protected]
25 [email protected]
26 [email protected] "_"
27 [email protected] " "
28 [email protected] "=>"
29 [email protected] " "
30 [email protected]
31 [email protected] "("
32 [email protected] ")"
33 [email protected] ","
34 [email protected] "\n "
35 [email protected]
36 [email protected]
37 [email protected] "_"
38 [email protected] " "
39 [email protected] "=>"
40 [email protected] " "
41 [email protected]
42 [email protected] "("
43 [email protected] ")"
44 [email protected] ","
45 [email protected] "\n "
46 [email protected]
47 [email protected]
48 [email protected] "#"
49 [email protected] "["
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected] "cfg"
54 [email protected]
55 [email protected] "("
56 [email protected] "test"
57 [email protected] ")"
58 [email protected] "]"
59 [email protected] "\n "
60 [email protected] "}"
61 [email protected] "\n"
62 [email protected] "}"
63 [email protected] "\n"
64error 80..80: expected pattern
65error 80..80: expected FAT_ARROW
66error 80..80: expected expression
diff --git a/crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rs b/crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rs
new file mode 100644
index 000000000..4635222da
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rs
@@ -0,0 +1,7 @@
1fn foo() {
2 match () {
3 _ => (),
4 _ => (),
5 #[cfg(test)]
6 }
7}
diff --git a/crates/syntax/test_data/parser/err/0034_bad_box_pattern.rast b/crates/syntax/test_data/parser/err/0034_bad_box_pattern.rast
new file mode 100644
index 000000000..d9d49bfb5
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0034_bad_box_pattern.rast
@@ -0,0 +1,95 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "ref"
19 [email protected] " "
20 [email protected]
21 [email protected] "box"
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected] "i"
30 [email protected] " "
31 [email protected] "="
32 [email protected] " "
33 [email protected]
34 [email protected] "("
35 [email protected] ")"
36 [email protected] ";"
37 [email protected] "\n "
38 [email protected]
39 [email protected] "let"
40 [email protected] " "
41 [email protected]
42 [email protected] "mut"
43 [email protected] " "
44 [email protected]
45 [email protected] "box"
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected] "i"
54 [email protected] " "
55 [email protected] "="
56 [email protected] " "
57 [email protected]
58 [email protected] "("
59 [email protected] ")"
60 [email protected] ";"
61 [email protected] "\n "
62 [email protected]
63 [email protected] "let"
64 [email protected] " "
65 [email protected]
66 [email protected] "ref"
67 [email protected] " "
68 [email protected] "mut"
69 [email protected] " "
70 [email protected]
71 [email protected] "box"
72 [email protected] " "
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected] "i"
80 [email protected] " "
81 [email protected] "="
82 [email protected] " "
83 [email protected]
84 [email protected] "("
85 [email protected] ")"
86 [email protected] ";"
87 [email protected] "\n"
88 [email protected] "}"
89 [email protected] "\n\n"
90error 24..24: expected a name
91error 27..27: expected SEMICOLON
92error 48..48: expected a name
93error 51..51: expected SEMICOLON
94error 76..76: expected a name
95error 79..79: expected SEMICOLON
diff --git a/crates/syntax/test_data/parser/err/0034_bad_box_pattern.rs b/crates/syntax/test_data/parser/err/0034_bad_box_pattern.rs
new file mode 100644
index 000000000..d3fa2e468
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0034_bad_box_pattern.rs
@@ -0,0 +1,6 @@
1fn main() {
2 let ref box i = ();
3 let mut box i = ();
4 let ref mut box i = ();
5}
6
diff --git a/crates/syntax/test_data/parser/err/0035_use_recover.rast b/crates/syntax/test_data/parser/err/0035_use_recover.rast
new file mode 100644
index 000000000..2f03709eb
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0035_use_recover.rast
@@ -0,0 +1,53 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected]
10 [email protected] "foo"
11 [email protected] "::"
12 [email protected]
13 [email protected]
14 [email protected] "bar"
15 [email protected] ";"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "use"
19 [email protected] "\n"
20 [email protected]
21 [email protected] "use"
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected] "crate"
28 [email protected] "::"
29 [email protected]
30 [email protected]
31 [email protected] "baz"
32 [email protected] ";"
33 [email protected] "\n"
34 [email protected]
35 [email protected] "use"
36 [email protected] "\n"
37 [email protected]
38 [email protected] "fn"
39 [email protected] " "
40 [email protected]
41 [email protected] "f"
42 [email protected]
43 [email protected] "("
44 [email protected] ")"
45 [email protected] " "
46 [email protected]
47 [email protected] "{"
48 [email protected] "}"
49 [email protected] "\n"
50error 17..17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
51error 17..17: expected SEMICOLON
52error 37..37: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
53error 37..37: expected SEMICOLON
diff --git a/crates/syntax/test_data/parser/err/0035_use_recover.rs b/crates/syntax/test_data/parser/err/0035_use_recover.rs
new file mode 100644
index 000000000..4a2668126
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0035_use_recover.rs
@@ -0,0 +1,5 @@
1use foo::bar;
2use
3use crate::baz;
4use
5fn f() {}
diff --git a/crates/syntax/test_data/parser/err/0036_partial_use.rast b/crates/syntax/test_data/parser/err/0036_partial_use.rast
new file mode 100644
index 000000000..ef6172f8a
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0036_partial_use.rast
@@ -0,0 +1,51 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "std"
10 [email protected] "::"
11 [email protected]
12 [email protected] "{"
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "error"
19 [email protected] "::"
20 [email protected]
21 [email protected]
22 [email protected] "Error"
23 [email protected]
24 [email protected] ";"
25 [email protected] "\n"
26 [email protected]
27 [email protected] "use"
28 [email protected] " "
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "std"
35 [email protected] "::"
36 [email protected]
37 [email protected]
38 [email protected] "io"
39 [email protected]
40 [email protected] ";"
41 [email protected] "\n"
42error 22..22: expected COMMA
43error 22..22: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
44error 23..23: expected COMMA
45error 24..24: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
46error 27..27: expected COMMA
47error 35..35: expected COMMA
48error 35..35: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
49error 36..36: expected COMMA
50error 36..36: expected R_CURLY
51error 36..36: expected SEMICOLON
diff --git a/crates/syntax/test_data/parser/err/0036_partial_use.rs b/crates/syntax/test_data/parser/err/0036_partial_use.rs
new file mode 100644
index 000000000..d521a5bb2
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0036_partial_use.rs
@@ -0,0 +1,2 @@
1use std::{error::Error;
2use std::io;
diff --git a/crates/syntax/test_data/parser/err/0037_visibility_in_traits.rast b/crates/syntax/test_data/parser/err/0037_visibility_in_traits.rast
new file mode 100644
index 000000000..faf87d6e5
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0037_visibility_in_traits.rast
@@ -0,0 +1,97 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "T"
10 [email protected] " "
11 [email protected] "for"
12 [email protected] " "
13 [email protected]
14 [email protected] "("
15 [email protected] ")"
16 [email protected] " "
17 [email protected]
18 [email protected] "{"
19 [email protected] "\n "
20 [email protected]
21 [email protected] "fn"
22 [email protected] " "
23 [email protected]
24 [email protected] "foo"
25 [email protected]
26 [email protected] "("
27 [email protected] ")"
28 [email protected] " "
29 [email protected]
30 [email protected] "{"
31 [email protected] "}"
32 [email protected] "\n "
33 [email protected]
34 [email protected]
35 [email protected] "pub"
36 [email protected] " "
37 [email protected] "fn"
38 [email protected] " "
39 [email protected]
40 [email protected] "bar"
41 [email protected]
42 [email protected] "("
43 [email protected] ")"
44 [email protected] " "
45 [email protected]
46 [email protected] "{"
47 [email protected] "}"
48 [email protected] "\n "
49 [email protected]
50 [email protected]
51 [email protected] "pub"
52 [email protected] "("
53 [email protected] "crate"
54 [email protected] ")"
55 [email protected] " "
56 [email protected] "type"
57 [email protected] " "
58 [email protected]
59 [email protected] "Baz"
60 [email protected] " "
61 [email protected] "="
62 [email protected] " "
63 [email protected]
64 [email protected] "("
65 [email protected] ")"
66 [email protected] ";"
67 [email protected] "\n "
68 [email protected]
69 [email protected]
70 [email protected] "pub"
71 [email protected] "("
72 [email protected] "crate"
73 [email protected] ")"
74 [email protected] " "
75 [email protected] "const"
76 [email protected] " "
77 [email protected]
78 [email protected] "C"
79 [email protected] ":"
80 [email protected] " "
81 [email protected]
82 [email protected]
83 [email protected]
84 [email protected]
85 [email protected] "i32"
86 [email protected] " "
87 [email protected] "="
88 [email protected] " "
89 [email protected]
90 [email protected] "92"
91 [email protected] ";"
92 [email protected] "\n"
93 [email protected] "}"
94 [email protected] "\n"
95error 36..39: Unnecessary visibility qualifier
96error 56..66: Unnecessary visibility qualifier
97error 86..96: Unnecessary visibility qualifier
diff --git a/crates/syntax/test_data/parser/err/0037_visibility_in_traits.rs b/crates/syntax/test_data/parser/err/0037_visibility_in_traits.rs
new file mode 100644
index 000000000..a43e7ef10
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0037_visibility_in_traits.rs
@@ -0,0 +1,6 @@
1impl T for () {
2 fn foo() {}
3 pub fn bar() {}
4 pub(crate) type Baz = ();
5 pub(crate) const C: i32 = 92;
6}
diff --git a/crates/syntax/test_data/parser/err/0038_endless_inclusive_range.rast b/crates/syntax/test_data/parser/err/0038_endless_inclusive_range.rast
new file mode 100644
index 000000000..bed7ad6c3
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0038_endless_inclusive_range.rast
@@ -0,0 +1,29 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "0"
18 [email protected] "..="
19 [email protected] ";"
20 [email protected] "\n "
21 [email protected]
22 [email protected]
23 [email protected] "..="
24 [email protected] ";"
25 [email protected] "\n"
26 [email protected] "}"
27 [email protected] "\n"
28error 16..20: An inclusive range must have an end expression
29error 26..29: An inclusive range must have an end expression
diff --git a/crates/syntax/test_data/parser/err/0038_endless_inclusive_range.rs b/crates/syntax/test_data/parser/err/0038_endless_inclusive_range.rs
new file mode 100644
index 000000000..0b4ed7a2b
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0038_endless_inclusive_range.rs
@@ -0,0 +1,4 @@
1fn main() {
2 0..=;
3 ..=;
4}
diff --git a/crates/syntax/test_data/parser/err/0039_lambda_recovery.rast b/crates/syntax/test_data/parser/err/0039_lambda_recovery.rast
new file mode 100644
index 000000000..a9c5b70fd
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0039_lambda_recovery.rast
@@ -0,0 +1,82 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "->"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "i32"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "\n "
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "["
29 [email protected]
30 [email protected] "1"
31 [email protected] ","
32 [email protected] " "
33 [email protected]
34 [email protected] "2"
35 [email protected] ","
36 [email protected] " "
37 [email protected]
38 [email protected] "3"
39 [email protected] "]"
40 [email protected] "."
41 [email protected]
42 [email protected] "iter"
43 [email protected]
44 [email protected] "("
45 [email protected] ")"
46 [email protected] "\n "
47 [email protected] "."
48 [email protected]
49 [email protected] "map"
50 [email protected]
51 [email protected] "("
52 [email protected]
53 [email protected]
54 [email protected] "|"
55 [email protected]
56 [email protected]
57 [email protected]
58 [email protected] "it"
59 [email protected] "|"
60 [email protected] ")"
61 [email protected] "\n "
62 [email protected] "."
63 [email protected]
64 [email protected] "max"
65 [email protected]
66 [email protected] "::"
67 [email protected] "<"
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected] "i32"
74 [email protected] ">"
75 [email protected]
76 [email protected] "("
77 [email protected] ")"
78 [email protected] ";"
79 [email protected] "\n"
80 [email protected] "}"
81 [email protected] "\n"
82error 56..56: expected expression
diff --git a/crates/syntax/test_data/parser/err/0039_lambda_recovery.rs b/crates/syntax/test_data/parser/err/0039_lambda_recovery.rs
new file mode 100644
index 000000000..a2f74bd87
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0039_lambda_recovery.rs
@@ -0,0 +1,5 @@
1fn foo() -> i32 {
2 [1, 2, 3].iter()
3 .map(|it|)
4 .max::<i32>();
5}
diff --git a/crates/syntax/test_data/parser/err/0040_illegal_crate_kw_location.rast b/crates/syntax/test_data/parser/err/0040_illegal_crate_kw_location.rast
new file mode 100644
index 000000000..284c8715b
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0040_illegal_crate_kw_location.rast
@@ -0,0 +1,91 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected] "::"
9 [email protected] "crate"
10 [email protected] ";"
11 [email protected] "\n"
12 [email protected]
13 [email protected] "use"
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected] "{"
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "crate"
22 [email protected] ","
23 [email protected] " "
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "foo"
29 [email protected] "::"
30 [email protected]
31 [email protected] "{"
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "crate"
39 [email protected] "::"
40 [email protected]
41 [email protected]
42 [email protected] "foo"
43 [email protected] "::"
44 [email protected]
45 [email protected]
46 [email protected] "bar"
47 [email protected] "::"
48 [email protected]
49 [email protected]
50 [email protected] "baz"
51 [email protected] "}"
52 [email protected] "}"
53 [email protected] ";"
54 [email protected] "\n"
55 [email protected]
56 [email protected] "use"
57 [email protected] " "
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected] "hello"
64 [email protected] "::"
65 [email protected]
66 [email protected] "crate"
67 [email protected] ";"
68 [email protected] "\n"
69 [email protected]
70 [email protected] "use"
71 [email protected] " "
72 [email protected]
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected] "hello"
79 [email protected] "::"
80 [email protected]
81 [email protected] "crate"
82 [email protected] "::"
83 [email protected]
84 [email protected]
85 [email protected] "there"
86 [email protected] ";"
87 [email protected] "\n"
88error 6..11: The `crate` keyword is only allowed as the first segment of a path
89error 31..36: The `crate` keyword is only allowed as the first segment of a path
90error 66..71: The `crate` keyword is only allowed as the first segment of a path
91error 84..89: The `crate` keyword is only allowed as the first segment of a path
diff --git a/crates/syntax/test_data/parser/err/0040_illegal_crate_kw_location.rs b/crates/syntax/test_data/parser/err/0040_illegal_crate_kw_location.rs
new file mode 100644
index 000000000..508def2c7
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0040_illegal_crate_kw_location.rs
@@ -0,0 +1,4 @@
1use ::crate;
2use {crate, foo::{crate::foo::bar::baz}};
3use hello::crate;
4use hello::crate::there;
diff --git a/crates/syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast b/crates/syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast
new file mode 100644
index 000000000..2049a9d72
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast
@@ -0,0 +1,70 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected] "::"
9 [email protected] "super"
10 [email protected] ";"
11 [email protected] "\n"
12 [email protected]
13 [email protected] "use"
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "a"
21 [email protected] "::"
22 [email protected]
23 [email protected] "super"
24 [email protected] ";"
25 [email protected] "\n"
26 [email protected]
27 [email protected] "use"
28 [email protected] " "
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "super"
35 [email protected] "::"
36 [email protected]
37 [email protected]
38 [email protected] "a"
39 [email protected] "::"
40 [email protected]
41 [email protected] "super"
42 [email protected] ";"
43 [email protected] "\n"
44 [email protected]
45 [email protected] "use"
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected] "a"
52 [email protected] "::"
53 [email protected]
54 [email protected] "{"
55 [email protected]
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected] "super"
60 [email protected] "::"
61 [email protected]
62 [email protected]
63 [email protected] "b"
64 [email protected] "}"
65 [email protected] ";"
66 [email protected] "\n"
67error 6..11: The `super` keyword may only be preceded by other `super`s
68error 20..25: The `super` keyword may only be preceded by other `super`s
69error 41..46: The `super` keyword may only be preceded by other `super`s
70error 56..61: The `super` keyword may only be preceded by other `super`s
diff --git a/crates/syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs b/crates/syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs
new file mode 100644
index 000000000..bd4d58042
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs
@@ -0,0 +1,4 @@
1use ::super;
2use a::super;
3use super::a::super;
4use a::{super::b};
diff --git a/crates/syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast b/crates/syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast
new file mode 100644
index 000000000..deadf56b4
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast
@@ -0,0 +1,27 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected] "::"
9 [email protected] "self"
10 [email protected] ";"
11 [email protected] "\n"
12 [email protected]
13 [email protected] "use"
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "a"
21 [email protected] "::"
22 [email protected]
23 [email protected] "self"
24 [email protected] ";"
25 [email protected] "\n"
26error 6..10: The `self` keyword is only allowed as the first segment of a path
27error 19..23: The `self` keyword is only allowed as the first segment of a path
diff --git a/crates/syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs b/crates/syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs
new file mode 100644
index 000000000..b9e1d7d8b
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs
@@ -0,0 +1,2 @@
1use ::self;
2use a::self;
diff --git a/crates/syntax/test_data/parser/err/0043_weird_blocks.rast b/crates/syntax/test_data/parser/err/0043_weird_blocks.rast
new file mode 100644
index 000000000..df29017e7
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0043_weird_blocks.rast
@@ -0,0 +1,71 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "{"
17 [email protected] " "
18 [email protected]
19 [email protected] "unsafe"
20 [email protected] " "
21 [email protected]
22 [email protected] "92"
23 [email protected] " "
24 [email protected] "}"
25 [email protected] "\n "
26 [email protected]
27 [email protected]
28 [email protected] "{"
29 [email protected] " "
30 [email protected]
31 [email protected] "async"
32 [email protected] " "
33 [email protected]
34 [email protected] "92"
35 [email protected] " "
36 [email protected] "}"
37 [email protected] "\n "
38 [email protected]
39 [email protected]
40 [email protected] "{"
41 [email protected] " "
42 [email protected]
43 [email protected]
44 [email protected] "try"
45 [email protected] " "
46 [email protected]
47 [email protected] "92"
48 [email protected] " "
49 [email protected] "}"
50 [email protected] "\n "
51 [email protected]
52 [email protected] "{"
53 [email protected] " "
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected] "\'label"
58 [email protected] ":"
59 [email protected] " "
60 [email protected]
61 [email protected] "92"
62 [email protected] " "
63 [email protected] "}"
64 [email protected] "\n"
65 [email protected] "}"
66 [email protected] "\n"
67error 24..24: expected existential, fn, trait or impl
68error 41..41: expected existential, fn, trait or impl
69error 56..56: expected a block
70error 75..75: expected a loop
71error 75..75: expected SEMICOLON
diff --git a/crates/syntax/test_data/parser/err/0043_weird_blocks.rs b/crates/syntax/test_data/parser/err/0043_weird_blocks.rs
new file mode 100644
index 000000000..8fa324c1a
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0043_weird_blocks.rs
@@ -0,0 +1,6 @@
1fn main() {
2 { unsafe 92 }
3 { async 92 }
4 { try 92 }
5 { 'label: 92 }
6}
diff --git a/crates/syntax/test_data/parser/err/0044_unexpected_for_type.rast b/crates/syntax/test_data/parser/err/0044_unexpected_for_type.rast
new file mode 100644
index 000000000..71aa86494
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0044_unexpected_for_type.rast
@@ -0,0 +1,240 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "ForRef"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "for"
12 [email protected]
13 [email protected] "<"
14 [email protected]
15 [email protected] "\'a"
16 [email protected] ">"
17 [email protected] " "
18 [email protected]
19 [email protected] "&"
20 [email protected] "\'a"
21 [email protected] " "
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "u32"
27 [email protected] ";"
28 [email protected] "\n"
29 [email protected]
30 [email protected] "type"
31 [email protected] " "
32 [email protected]
33 [email protected] "ForTup"
34 [email protected] " "
35 [email protected] "="
36 [email protected] " "
37 [email protected]
38 [email protected] "for"
39 [email protected]
40 [email protected] "<"
41 [email protected]
42 [email protected] "\'a"
43 [email protected] ">"
44 [email protected] " "
45 [email protected]
46 [email protected] "("
47 [email protected]
48 [email protected] "&"
49 [email protected] "\'a"
50 [email protected] " "
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected] "u32"
56 [email protected] ","
57 [email protected] ")"
58 [email protected] ";"
59 [email protected] "\n"
60 [email protected]
61 [email protected] "type"
62 [email protected] " "
63 [email protected]
64 [email protected] "ForSlice"
65 [email protected] " "
66 [email protected] "="
67 [email protected] " "
68 [email protected]
69 [email protected] "for"
70 [email protected]
71 [email protected] "<"
72 [email protected]
73 [email protected] "\'a"
74 [email protected] ">"
75 [email protected] " "
76 [email protected]
77 [email protected] "["
78 [email protected]
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected] "u32"
83 [email protected] "]"
84 [email protected] ";"
85 [email protected] "\n"
86 [email protected]
87 [email protected] "type"
88 [email protected] " "
89 [email protected]
90 [email protected] "ForForFn"
91 [email protected] " "
92 [email protected] "="
93 [email protected] " "
94 [email protected]
95 [email protected] "for"
96 [email protected]
97 [email protected] "<"
98 [email protected]
99 [email protected] "\'a"
100 [email protected] ">"
101 [email protected] " "
102 [email protected]
103 [email protected] "for"
104 [email protected]
105 [email protected] "<"
106 [email protected]
107 [email protected] "\'b"
108 [email protected] ">"
109 [email protected] " "
110 [email protected]
111 [email protected] "fn"
112 [email protected]
113 [email protected] "("
114 [email protected]
115 [email protected]
116 [email protected] "&"
117 [email protected] "\'a"
118 [email protected] " "
119 [email protected]
120 [email protected]
121 [email protected]
122 [email protected]
123 [email protected] "i32"
124 [email protected] ","
125 [email protected] " "
126 [email protected]
127 [email protected]
128 [email protected] "&"
129 [email protected] "\'b"
130 [email protected] " "
131 [email protected]
132 [email protected]
133 [email protected]
134 [email protected]
135 [email protected] "i32"
136 [email protected] ")"
137 [email protected] ";"
138 [email protected] "\n"
139 [email protected]
140 [email protected] "fn"
141 [email protected] " "
142 [email protected]
143 [email protected] "for_for_for"
144 [email protected]
145 [email protected] "<"
146 [email protected]
147 [email protected]
148 [email protected] "T"
149 [email protected] ">"
150 [email protected]
151 [email protected] "("
152 [email protected] ")"
153 [email protected] "\n"
154 [email protected]
155 [email protected] "where"
156 [email protected] "\n "
157 [email protected]
158 [email protected] "for"
159 [email protected]
160 [email protected] "<"
161 [email protected]
162 [email protected] "\'a"
163 [email protected] ">"
164 [email protected] " "
165 [email protected]
166 [email protected] "for"
167 [email protected]
168 [email protected] "<"
169 [email protected]
170 [email protected] "\'b"
171 [email protected] ">"
172 [email protected] " "
173 [email protected]
174 [email protected] "for"
175 [email protected]
176 [email protected] "<"
177 [email protected]
178 [email protected] "\'c"
179 [email protected] ">"
180 [email protected] " "
181 [email protected]
182 [email protected] "fn"
183 [email protected]
184 [email protected] "("
185 [email protected]
186 [email protected]
187 [email protected] "&"
188 [email protected] "\'a"
189 [email protected] " "
190 [email protected]
191 [email protected]
192 [email protected]
193 [email protected]
194 [email protected] "T"
195 [email protected] ","
196 [email protected] " "
197 [email protected]
198 [email protected]
199 [email protected] "&"
200 [email protected] "\'b"
201 [email protected] " "
202 [email protected]
203 [email protected]
204 [email protected]
205 [email protected]
206 [email protected] "T"
207 [email protected] ","
208 [email protected] " "
209 [email protected]
210 [email protected]
211 [email protected] "&"
212 [email protected] "\'c"
213 [email protected] " "
214 [email protected]
215 [email protected]
216 [email protected]
217 [email protected]
218 [email protected] "T"
219 [email protected] ")"
220 [email protected] ":"
221 [email protected] " "
222 [email protected]
223 [email protected]
224 [email protected]
225 [email protected]
226 [email protected]
227 [email protected]
228 [email protected] "Copy"
229 [email protected] ","
230 [email protected] "\n"
231 [email protected]
232 [email protected] "{"
233 [email protected] "\n"
234 [email protected] "}"
235 [email protected] "\n"
236error 21..21: expected a function pointer or path
237error 52..52: expected a function pointer or path
238error 88..88: expected a function pointer or path
239error 119..119: expected a function pointer or path
240error 195..195: expected a function pointer or path
diff --git a/crates/syntax/test_data/parser/err/0044_unexpected_for_type.rs b/crates/syntax/test_data/parser/err/0044_unexpected_for_type.rs
new file mode 100644
index 000000000..0e9f8ccb4
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0044_unexpected_for_type.rs
@@ -0,0 +1,9 @@
1type ForRef = for<'a> &'a u32;
2type ForTup = for<'a> (&'a u32,);
3type ForSlice = for<'a> [u32];
4type ForForFn = for<'a> for<'b> fn(&'a i32, &'b i32);
5fn for_for_for<T>()
6where
7 for<'a> for<'b> for<'c> fn(&'a T, &'b T, &'c T): Copy,
8{
9}
diff --git a/crates/syntax/test_data/parser/err/0045_item_modifiers.rast b/crates/syntax/test_data/parser/err/0045_item_modifiers.rast
new file mode 100644
index 000000000..a6e6552a9
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0045_item_modifiers.rast
@@ -0,0 +1,45 @@
1[email protected]
2 [email protected]
3 [email protected] "unsafe"
4 [email protected] " "
5 [email protected]
6 [email protected] "async"
7 [email protected] " "
8 [email protected] "fn"
9 [email protected] " "
10 [email protected]
11 [email protected] "foo"
12 [email protected]
13 [email protected] "("
14 [email protected] ")"
15 [email protected] " "
16 [email protected]
17 [email protected] "{"
18 [email protected] "}"
19 [email protected] "\n"
20 [email protected]
21 [email protected] "unsafe"
22 [email protected] " "
23 [email protected] "const"
24 [email protected] " "
25 [email protected]
26 [email protected] "fn"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "bar"
33 [email protected]
34 [email protected] "("
35 [email protected] ")"
36 [email protected] " "
37 [email protected]
38 [email protected] "{"
39 [email protected] "}"
40 [email protected] "\n"
41error 6..6: expected existential, fn, trait or impl
42error 38..38: expected a name
43error 40..40: expected COLON
44error 46..46: expected SEMICOLON
45error 47..47: expected an item
diff --git a/crates/syntax/test_data/parser/err/0045_item_modifiers.rs b/crates/syntax/test_data/parser/err/0045_item_modifiers.rs
new file mode 100644
index 000000000..731e58013
--- /dev/null
+++ b/crates/syntax/test_data/parser/err/0045_item_modifiers.rs
@@ -0,0 +1,2 @@
1unsafe async fn foo() {}
2unsafe const fn bar() {}
diff --git a/crates/syntax/test_data/parser/fragments/expr/err/0000_truncated_add.rast b/crates/syntax/test_data/parser/fragments/expr/err/0000_truncated_add.rast
new file mode 100644
index 000000000..5df7507e2
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/expr/err/0000_truncated_add.rast
@@ -0,0 +1 @@
ERROR
diff --git a/crates/syntax/test_data/parser/fragments/expr/err/0000_truncated_add.rs b/crates/syntax/test_data/parser/fragments/expr/err/0000_truncated_add.rs
new file mode 100644
index 000000000..ca49acb07
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/expr/err/0000_truncated_add.rs
@@ -0,0 +1 @@
1 +
diff --git a/crates/syntax/test_data/parser/fragments/expr/ok/0000_add.rast b/crates/syntax/test_data/parser/fragments/expr/ok/0000_add.rast
new file mode 100644
index 000000000..fa78a02a6
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/expr/ok/0000_add.rast
@@ -0,0 +1,8 @@
1[email protected]
2 [email protected]
3 [email protected] "1"
4 [email protected] " "
5 [email protected] "+"
6 [email protected] " "
7 [email protected]
8 [email protected] "2"
diff --git a/crates/syntax/test_data/parser/fragments/expr/ok/0000_add.rs b/crates/syntax/test_data/parser/fragments/expr/ok/0000_add.rs
new file mode 100644
index 000000000..e0ef58402
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/expr/ok/0000_add.rs
@@ -0,0 +1 @@
1 + 2
diff --git a/crates/syntax/test_data/parser/fragments/item/err/0000_extra_keyword.rast b/crates/syntax/test_data/parser/fragments/item/err/0000_extra_keyword.rast
new file mode 100644
index 000000000..5df7507e2
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/item/err/0000_extra_keyword.rast
@@ -0,0 +1 @@
ERROR
diff --git a/crates/syntax/test_data/parser/fragments/item/err/0000_extra_keyword.rs b/crates/syntax/test_data/parser/fragments/item/err/0000_extra_keyword.rs
new file mode 100644
index 000000000..dc32389bb
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/item/err/0000_extra_keyword.rs
@@ -0,0 +1 @@
fn fn foo() {}
diff --git a/crates/syntax/test_data/parser/fragments/item/ok/0000_fn.rast b/crates/syntax/test_data/parser/fragments/item/ok/0000_fn.rast
new file mode 100644
index 000000000..93c429e12
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/item/ok/0000_fn.rast
@@ -0,0 +1,12 @@
1[email protected]
2 [email protected] "fn"
3 [email protected] " "
4 [email protected]
5 [email protected] "foo"
6 [email protected]
7 [email protected] "("
8 [email protected] ")"
9 [email protected] " "
10 [email protected]
11 [email protected] "{"
12 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/fragments/item/ok/0000_fn.rs b/crates/syntax/test_data/parser/fragments/item/ok/0000_fn.rs
new file mode 100644
index 000000000..8f3b7ef11
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/item/ok/0000_fn.rs
@@ -0,0 +1 @@
fn foo() {}
diff --git a/crates/syntax/test_data/parser/fragments/path/err/0000_reserved_word.rast b/crates/syntax/test_data/parser/fragments/path/err/0000_reserved_word.rast
new file mode 100644
index 000000000..5df7507e2
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/path/err/0000_reserved_word.rast
@@ -0,0 +1 @@
ERROR
diff --git a/crates/syntax/test_data/parser/fragments/path/err/0000_reserved_word.rs b/crates/syntax/test_data/parser/fragments/path/err/0000_reserved_word.rs
new file mode 100644
index 000000000..2046de049
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/path/err/0000_reserved_word.rs
@@ -0,0 +1 @@
struct
diff --git a/crates/syntax/test_data/parser/fragments/path/err/0001_expression.rast b/crates/syntax/test_data/parser/fragments/path/err/0001_expression.rast
new file mode 100644
index 000000000..5df7507e2
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/path/err/0001_expression.rast
@@ -0,0 +1 @@
ERROR
diff --git a/crates/syntax/test_data/parser/fragments/path/err/0001_expression.rs b/crates/syntax/test_data/parser/fragments/path/err/0001_expression.rs
new file mode 100644
index 000000000..745e8d376
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/path/err/0001_expression.rs
@@ -0,0 +1 @@
a + b
diff --git a/crates/syntax/test_data/parser/fragments/path/ok/0000_single_ident.rast b/crates/syntax/test_data/parser/fragments/path/ok/0000_single_ident.rast
new file mode 100644
index 000000000..0c5d4360f
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/path/ok/0000_single_ident.rast
@@ -0,0 +1,4 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "foo"
diff --git a/crates/syntax/test_data/parser/fragments/path/ok/0000_single_ident.rs b/crates/syntax/test_data/parser/fragments/path/ok/0000_single_ident.rs
new file mode 100644
index 000000000..257cc5642
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/path/ok/0000_single_ident.rs
@@ -0,0 +1 @@
foo
diff --git a/crates/syntax/test_data/parser/fragments/path/ok/0001_multipart.rast b/crates/syntax/test_data/parser/fragments/path/ok/0001_multipart.rast
new file mode 100644
index 000000000..4a2b45e6a
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/path/ok/0001_multipart.rast
@@ -0,0 +1,14 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected]
5 [email protected]
6 [email protected] "foo"
7 [email protected] "::"
8 [email protected]
9 [email protected]
10 [email protected] "bar"
11 [email protected] "::"
12 [email protected]
13 [email protected]
14 [email protected] "baz"
diff --git a/crates/syntax/test_data/parser/fragments/path/ok/0001_multipart.rs b/crates/syntax/test_data/parser/fragments/path/ok/0001_multipart.rs
new file mode 100644
index 000000000..81e0b21cd
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/path/ok/0001_multipart.rs
@@ -0,0 +1 @@
foo::bar::baz
diff --git a/crates/syntax/test_data/parser/fragments/pattern/err/0000_reserved_word.rast b/crates/syntax/test_data/parser/fragments/pattern/err/0000_reserved_word.rast
new file mode 100644
index 000000000..5df7507e2
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/pattern/err/0000_reserved_word.rast
@@ -0,0 +1 @@
ERROR
diff --git a/crates/syntax/test_data/parser/fragments/pattern/err/0000_reserved_word.rs b/crates/syntax/test_data/parser/fragments/pattern/err/0000_reserved_word.rs
new file mode 100644
index 000000000..ae26fc455
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/pattern/err/0000_reserved_word.rs
@@ -0,0 +1 @@
fn
diff --git a/crates/syntax/test_data/parser/fragments/pattern/err/0001_missing_paren.rast b/crates/syntax/test_data/parser/fragments/pattern/err/0001_missing_paren.rast
new file mode 100644
index 000000000..5df7507e2
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/pattern/err/0001_missing_paren.rast
@@ -0,0 +1 @@
ERROR
diff --git a/crates/syntax/test_data/parser/fragments/pattern/err/0001_missing_paren.rs b/crates/syntax/test_data/parser/fragments/pattern/err/0001_missing_paren.rs
new file mode 100644
index 000000000..61a391d08
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/pattern/err/0001_missing_paren.rs
@@ -0,0 +1 @@
Some(x
diff --git a/crates/syntax/test_data/parser/fragments/pattern/ok/0000_enum.rast b/crates/syntax/test_data/parser/fragments/pattern/ok/0000_enum.rast
new file mode 100644
index 000000000..dcf102339
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/pattern/ok/0000_enum.rast
@@ -0,0 +1,10 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected]
5 [email protected] "Some"
6 [email protected] "("
7 [email protected]
8 [email protected]
9 [email protected] "x"
10 [email protected] ")"
diff --git a/crates/syntax/test_data/parser/fragments/pattern/ok/0000_enum.rs b/crates/syntax/test_data/parser/fragments/pattern/ok/0000_enum.rs
new file mode 100644
index 000000000..87114dd78
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/pattern/ok/0000_enum.rs
@@ -0,0 +1 @@
Some(x)
diff --git a/crates/syntax/test_data/parser/fragments/type/err/0000_missing_close.rast b/crates/syntax/test_data/parser/fragments/type/err/0000_missing_close.rast
new file mode 100644
index 000000000..5df7507e2
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/type/err/0000_missing_close.rast
@@ -0,0 +1 @@
ERROR
diff --git a/crates/syntax/test_data/parser/fragments/type/err/0000_missing_close.rs b/crates/syntax/test_data/parser/fragments/type/err/0000_missing_close.rs
new file mode 100644
index 000000000..caa4d7c09
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/type/err/0000_missing_close.rs
@@ -0,0 +1 @@
Result<Foo, Bar
diff --git a/crates/syntax/test_data/parser/fragments/type/ok/0000_result.rast b/crates/syntax/test_data/parser/fragments/type/ok/0000_result.rast
new file mode 100644
index 000000000..38c15b581
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/type/ok/0000_result.rast
@@ -0,0 +1,22 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected]
5 [email protected] "Result"
6 [email protected]
7 [email protected] "<"
8 [email protected]
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected] "Foo"
14 [email protected] ","
15 [email protected] " "
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "Bar"
22 [email protected] ">"
diff --git a/crates/syntax/test_data/parser/fragments/type/ok/0000_result.rs b/crates/syntax/test_data/parser/fragments/type/ok/0000_result.rs
new file mode 100644
index 000000000..b50b3bb3b
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/type/ok/0000_result.rs
@@ -0,0 +1 @@
Result<Foo, Bar>
diff --git a/crates/syntax/test_data/parser/fuzz-failures/0000.rs b/crates/syntax/test_data/parser/fuzz-failures/0000.rs
new file mode 100644
index 000000000..f1d0dc343
--- /dev/null
+++ b/crates/syntax/test_data/parser/fuzz-failures/0000.rs
@@ -0,0 +1,199 @@
1//! An experimental implementation of [Rust RFC#2256 lrs);
2 let root = SyntaxNode::new_owned(root);
3 validate_block_structure(root.borrowed());
4 File { root }
5 }
6 pub fn parse(text: &str) -> File {
7 let tokens = tokenize(&text);
8 let (green, errors) = parser_impl::parse_with::<syntax_node::GreenBuilder>(
9 text, &tokens, grammar::root,
10 );
11 File::new(green, errors)
12 }
13 pub fn reparse(&self, edit: &AtomTextEdit) -> File {
14 self.incremental_reparse(edit).unwrap_or_else(|| self.full_reparse(edit))
15 }
16 pub fn incremental_reparse(&self, edit: &AtomTextEdit) -> Option<File> {
17 let (node, reparser) = find_reparsable_node(self.syntax(), edit.delete)?;
18 let text = replace_range(
19 node.text().to_string(),
20 edit.delete - node.range().start(),
21 &edit.insert,
22 );
23 let tokens = tokenize(&text);
24 if !is_balanced(&tokens) {
25 return None;
26 }
27 let (green, new_errors) = parser_impl::parse_with::<syntax_node::GreenBuilder>(
28 &te2t, &tokens, reparser,
29 );
30 let green_root = node.replace_with(green);
31 let errors = merge_errors(self.errors(), new_errors, node, edit);
32 Some(File::new(green_root, errors))
33 }
34 fn full_reparse(&self, edit: &AtomTextEdit) -> File {
35 let text = replace_range(self.syntax().text().to_string(), edit.delete, &edit.insert);
36 File::parse(&text)
37 }
38 pub fn ast(&self) -> ast::Root {
39 ast::Root::cast(self.syntax()).unwrap()
40 }
41 pub fn syntax(&self) -> SyntaxNodeRef {
42 self.root.brroowed()
43 }
44 mp_tree(root),
45 );
46 assert!(
47 node.next_sibling().is_none() && pair.prev_sibling().is_none(),
48 "\nfloating curlys at {:?}\nfile:\n{}\nerror:\n{}\n",
49 node,
50 root.text(),
51 node.text(),
52 );
53 }
54 }
55 _ => (),
56 }
57 }
58}
59
60#[derive(Debug, Clone)]
61pub struct AtomTextEdit {
62 pub delete: TextRange,
63 pub insert: String,
64}
65
66impl AtomTextEdit {
67 pub fn replace(range: TextRange, replace_with: String) -> AtomTextEdit {
68 AtomTextEdit { delete: range, insert: replace_with }
69 }
70
71 pub fn delete(range: TextRange) -> AtomTextEdit {
72 AtomTextEdit::replace(range, String::new())
73 }
74
75 pub fn insert(offset: TextUnit, text: String) -> AtomTextEdit {
76 AtomTextEdit::replace(TextRange::offset_len(offset, 0.into()), text)
77 }
78}
79
80fn find_reparsable_node(node: SyntaxNodeRef, range: TextRange) -> Option<(SyntaxNodeRef, fn(&mut Parser))> {
81 let node = algo::find_covering_node(node, range);
82 return algo::ancestors(node)
83 .filter_map(|node| reparser(node).map(|r| (node, r)))
84 .next();
85
86 fn reparser(node: SyntaxNodeRef) -> Option<fn(&mut Parser)> {
87 let res = match node.kind() {
88 BLOCK => grammar::block,
89 RECORD_FIELD_LIST => grammar::record_field_list,
90 _ => return None,
91 };
92 Some(res)
93 }
94}
95
96pub /*(meh)*/ fn replace_range(mut text: String, range: TextRange, replace_with: &str) -> String {
97 let start = u32::from(range.start()) as usize;
98 let end = u32::from(range.end()) as usize;
99 text.replace_range(start..end, replace_with);
100 text
101}
102
103fn is_balanced(tokens: &[Token]) -> bool {
104 if tokens.len() == 0
105 || tokens.first().unwrap().kind != L_CURLY
106 || tokens.last().unwrap().kind != R_CURLY {
107 return false
108 }
109 let mut balance = 0usize;
110 for t in tokens.iter() {
111 match t.kind {
112 L_CURLYt {
113 pub delete: TextRange,
114 pub insert: String,
115}
116
117impl AtomTextEdit {
118 pub fn replace(range: TextRange, replace_with: String) -> AtomTextEdit {
119 AtomTextEdit { delete: range, insert: replace_with }
120 }
121
122 pub fn delete(range: TextRange) -> AtomTextEdit {
123 AtomTextEdit::replace(range, String::new())
124 }
125
126 pub fn insert(offset: TextUnit, text: String) -> AtomTextEdit {
127 AtomTextEdit::replace(TextRange::offset_len(offset, 0.into()), text)
128 }
129}
130
131fn find_reparsable_node(node: SyntaxNodeRef, range: TextRange) -> Option<(SyntaxNodeRef, fn(&mut Parser))> {
132 let node = algo::find_covering_node(node, range);
133 return algo::ancestors(node)
134 .filter_map(|node| reparser(node).map(|r| (node, r)))
135 .next();
136
137 fn reparser(node: SyntaxNodeRef) -> Option<fn(&mut Parser)> {
138 let res = match node.kind() {
139 ;
140 let end = u32::from(range.end()) as usize;
141 text.replaT => grammar::record_field_list,
142 _ => return None,
143 };
144 Some(res)
145 }
146}
147
148pub /*(meh)*/ fn replace_range(mut text: String, range: TextRange, replace_with: &str) -> String {
149 let start = u32::from(range.start()) as usize;
150 let end = u32::from(range.end()) as usize;
151 text.replace_range(start..end, replace_with);
152 text
153}
154
155fn is_balanced(tokens: &[Token]) -> bool {
156 if tokens.len() == 0
157 || tokens.first().unwrap().kind != L_CURLY
158 || tokens.last().unwrap().kind != R_CURLY {
159 return false
160 }
161 let mut balance = 0usize;
162 for t in tokens.iter() {
163 match t.kind {
164 L_CURLY => balance += 1,
165 R_CURLY => balance = match balance.checked_sub(1) {
166 Some(b) => b,
167 None => return false,
168 },
169 _ => (),
170 }
171 }
172 balance == 0
173}
174
175fn merge_errors(
176 old_errors: Vec<SyntaxError>,
177 new_errors: Vec<SyntaxError>,
178 old_node: SyntaxNodeRef,
179 edit: &AtomTextEdit,
180) -> Vec<SyntaxError> {
181 let mut res = Vec::new();
182 for e in old_errors {
183 if e.offset < old_node.range().start() {
184 res.push(e)
185 } else if e.offset > old_node.range().end() {
186 res.push(SyntaxError {
187 msg: e.msg,
188 offset: e.offset + TextUnit::of_str(&edit.insert) - edit.delete.len(),
189 })
190 }
191 }
192 for e in new_errors {
193 res.push(SyntaxError {
194 msg: e.msg,
195 offset: e.offset + old_node.range().start(),
196 })
197 }
198 res
199}
diff --git a/crates/syntax/test_data/parser/fuzz-failures/0001.rs b/crates/syntax/test_data/parser/fuzz-failures/0001.rs
new file mode 100644
index 000000000..f1148058e
--- /dev/null
+++ b/crates/syntax/test_data/parser/fuzz-failures/0001.rs
@@ -0,0 +1,106 @@
1use syntax::{
2 File, TextRange, SyntaxNodeRef, TextUnit,
3 SyntaxKind::*,
4 algo::{find_leaf_at_offset, LeafAtOffset, find_covering_node, ancestors, Direction, siblings},
5};
6
7pub fn extend_selection(file: &File, range: TextRange) -> Option<TextRange> {
8 let syntax = file.syntax();
9 extend(syntax.borrowed(), range)
10}
11
12pub(crate) fn extend(root: SyntaxNodeRef, range: TextRange) -> Option<TextRange> {
13 if range.is_empty() {
14 let offset = range.start();
15 let mut leaves = find_leaf_at_offset(root, offset);
16 if leaves.clone().all(|it| it.kind() == WHITESPACE) {
17 return Some(extend_ws(root, leaves.next()?, offset));
18 }
19 let leaf = match leaves {
20 LeafAtOffset::None => return None,
21 LeafAtOffset::Single(l) => l,
22 LeafAtOffset::Between(l, r) => pick_best(l, r),
23 };
24 return Some(leaf.range());
25 };
26 let node = find_covering_node(root, range);
27 if node.kind() == COMMENT && range == node.range() {
28 if let Some(range) = extend_comments(node) {
29 return Some(range);
30 }
31 }
32
33 match ancestors(node).skip_while(|n| n.range() == range).next() {
34 None => None,
35 Some(parent) => Some(parent.range()),
36 }
37}
38
39fn extend_ws(root: SyntaxNodeRef, ws: SyntaxNodeRef, offset: TextUnit) -> TextRange {
40 let ws_text = ws.leaf_text().unwrap();
41 let suffix = TextRange::from_to(offset, ws.range().end()) - ws.range().start();
42 let prefix = TextRange::from_to(ws.range().start(), offset) - ws.range().start();
43 let ws_suffix = &ws_text.as_str()[suffix];
44 let ws_prefix = &ws_text.as_str()[prefix];
45 if ws_text.contains("\n") && !ws_suffix.contains("\n") {
46 if let Some(node) = ws.next_sibling() {
47 let start = match ws_prefix.rfind('\n') {
48 Some(idx) => ws.range().start() + TextUnit::from((idx + 1) as u32),
49 None => node.range().start()
50 };
51 let end = if root.text().char_at(node.range().end()) == Some('\n') {
52 node.range().end() + TextUnit::of_char('\n')
53 } else {
54 node.range().end()
55 };
56 return TextRange::from_to(start, end);
57 }
58 }
59 ws.range()
60}
61
62fn pick_best<'a>(l: SyntaxNodeRef<'a>, r: Syntd[axNodeRef<'a>) -> SyntaxNodeRef<'a> {
63 return if priority(r) > priority(l) { r } else { l };
64 fn priority(n: SyntaxNodeRef) -> usize {
65 match n.kind() {
66 WHITESPACE => 0,
67 IDENT | SELF_KW | SUPER_KW | CRATE_KW => 2,
68 _ => 1,
69 }
70 }
71}
72
73fn extend_comments(node: SyntaxNodeRef) -> Option<TextRange> {
74 let left = adj_com[ments(node, Direction::Backward);
75 let right = adj_comments(node, Direction::Forward);
76 if left != right {
77 Some(TextRange::from_to(
78 left.range().start(),
79 right.range().end(),
80 ))
81 } else {
82 None
83 }
84}
85
86fn adj_comments(node: SyntaxNodeRef, dir: Direction) -> SyntaxNodeRef {
87 let mut res = node;
88 for node in siblings(node, dir) {
89 match node.kind() {
90 COMMENT => res = node,
91 WHITESPACE if !node.leaf_text().unwrap().as_str().contains("\n\n") => (),
92 _ => break
93 }
94 }
95 res
96}
97
98#[cfg(test)]
99mod tests {
100 use super::*;
101 use test_utils::extract_offset;
102
103 fn do_check(before: &str, afters: &[&str]) {
104 let (cursor, before) = extract_offset(before);
105 let file = File::parse(&before);
106 let mut range = TextRange::of
diff --git a/crates/syntax/test_data/parser/fuzz-failures/0002.rs b/crates/syntax/test_data/parser/fuzz-failures/0002.rs
new file mode 100644
index 000000000..f35dc7289
--- /dev/null
+++ b/crates/syntax/test_data/parser/fuzz-failures/0002.rs
@@ -0,0 +1 @@
!('\ \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/fuzz-failures/0003.rs b/crates/syntax/test_data/parser/fuzz-failures/0003.rs
new file mode 100644
index 000000000..0f59c4722
--- /dev/null
+++ b/crates/syntax/test_data/parser/fuzz-failures/0003.rs
@@ -0,0 +1 @@
if'\xɿ \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/fuzz-failures/0004.rs b/crates/syntax/test_data/parser/fuzz-failures/0004.rs
new file mode 100644
index 000000000..003290f52
--- /dev/null
+++ b/crates/syntax/test_data/parser/fuzz-failures/0004.rs
@@ -0,0 +1 @@
b"\xʿ \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast b/crates/syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast
new file mode 100644
index 000000000..0b9bbec07
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast
@@ -0,0 +1,27 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "["
12 [email protected]
13 [email protected] "("
14 [email protected] ")"
15 [email protected] " "
16 [email protected]
17 [email protected] "92"
18 [email protected]
19 [email protected] "]"
20 [email protected]
21 [email protected] ";"
22 [email protected] "\n"
23error 12..12: expected `;` or `]`
24error 12..12: expected SEMICOLON
25error 13..13: expected an item
26error 15..15: expected an item
27error 16..16: expected an item
diff --git a/crates/syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rs b/crates/syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rs
new file mode 100644
index 000000000..a94851443
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rs
@@ -0,0 +1 @@
type T = [() 92];
diff --git a/crates/syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast b/crates/syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast
new file mode 100644
index 000000000..a4271fc87
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast
@@ -0,0 +1,28 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "\'loop"
18 [email protected] ":"
19 [email protected] " "
20 [email protected]
21 [email protected] "impl"
22 [email protected] "\n"
23 [email protected] "}"
24 [email protected] "\n"
25error 22..22: expected a loop
26error 22..22: expected SEMICOLON
27error 27..27: expected type
28error 27..27: expected `{`
diff --git a/crates/syntax/test_data/parser/inline/err/0002_misplaced_label_err.rs b/crates/syntax/test_data/parser/inline/err/0002_misplaced_label_err.rs
new file mode 100644
index 000000000..a2164c510
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0002_misplaced_label_err.rs
@@ -0,0 +1,3 @@
1fn main() {
2 'loop: impl
3}
diff --git a/crates/syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast b/crates/syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast
new file mode 100644
index 000000000..0d8bf6dd6
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast
@@ -0,0 +1,17 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "*"
12 [email protected]
13 [email protected] "("
14 [email protected] ")"
15 [email protected] ";"
16 [email protected] "\n"
17error 10..10: expected mut or const in raw pointer type (use `*mut T` or `*const T` as appropriate)
diff --git a/crates/syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rs b/crates/syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rs
new file mode 100644
index 000000000..fae705131
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rs
@@ -0,0 +1 @@
type T = *();
diff --git a/crates/syntax/test_data/parser/inline/err/0004_impl_type.rast b/crates/syntax/test_data/parser/inline/err/0004_impl_type.rast
new file mode 100644
index 000000000..29d6b3974
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0004_impl_type.rast
@@ -0,0 +1,79 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "Type"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "}"
14 [email protected] "\n"
15 [email protected]
16 [email protected] "impl"
17 [email protected] " "
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "Trait1"
23 [email protected] " "
24 [email protected] "for"
25 [email protected] " "
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "T"
31 [email protected] " "
32 [email protected]
33 [email protected] "{"
34 [email protected] "}"
35 [email protected] "\n"
36 [email protected]
37 [email protected] "impl"
38 [email protected] " "
39 [email protected]
40 [email protected] "impl"
41 [email protected] " "
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected] "NotType"
47 [email protected] " "
48 [email protected]
49 [email protected] "{"
50 [email protected] "}"
51 [email protected] "\n"
52 [email protected]
53 [email protected] "impl"
54 [email protected] " "
55 [email protected]
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected] "Trait2"
60 [email protected] " "
61 [email protected] "for"
62 [email protected] " "
63 [email protected]
64 [email protected] "impl"
65 [email protected] " "
66 [email protected]
67 [email protected]
68 [email protected]
69 [email protected]
70 [email protected] "NotType"
71 [email protected] " "
72 [email protected]
73 [email protected] "{"
74 [email protected] "}"
75 [email protected] "\n"
76error 38..38: expected trait or type
77error 38..38: expected `{`
78error 70..70: expected trait or type
79error 70..70: expected `{`
diff --git a/crates/syntax/test_data/parser/inline/err/0004_impl_type.rs b/crates/syntax/test_data/parser/inline/err/0004_impl_type.rs
new file mode 100644
index 000000000..b8c7b65e3
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0004_impl_type.rs
@@ -0,0 +1,4 @@
1impl Type {}
2impl Trait1 for T {}
3impl impl NotType {}
4impl Trait2 for impl NotType {}
diff --git a/crates/syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast b/crates/syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast
new file mode 100644
index 000000000..776022fd9
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast
@@ -0,0 +1,23 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "F"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected] "unsafe"
11 [email protected] " "
12 [email protected]
13 [email protected] "("
14 [email protected]
15 [email protected] ")"
16 [email protected]
17 [email protected] ";"
18 [email protected] "\n"
19error 15..15: expected `fn`
20error 15..15: expected SEMICOLON
21error 16..16: expected an item
22error 17..17: expected an item
23error 18..18: expected an item
diff --git a/crates/syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rs b/crates/syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rs
new file mode 100644
index 000000000..f014914ff
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rs
@@ -0,0 +1 @@
type F = unsafe ();
diff --git a/crates/syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast b/crates/syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast
new file mode 100644
index 000000000..cc0f8bcaf
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast
@@ -0,0 +1,35 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected]
11 [email protected] "{"
12 [email protected] "}"
13 [email protected] " "
14 [email protected]
15 [email protected] "unsafe"
16 [email protected] " "
17 [email protected]
18 [email protected] "{"
19 [email protected] " "
20 [email protected] "}"
21 [email protected] " "
22 [email protected]
23 [email protected] "fn"
24 [email protected] " "
25 [email protected]
26 [email protected] "bar"
27 [email protected]
28 [email protected] "("
29 [email protected] ")"
30 [email protected]
31 [email protected] "{"
32 [email protected] "}"
33 [email protected] "\n"
34error 11..11: expected an item
35error 18..18: expected an item
diff --git a/crates/syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rs b/crates/syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rs
new file mode 100644
index 000000000..26141e904
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rs
@@ -0,0 +1 @@
fn foo(){} unsafe { } fn bar(){}
diff --git a/crates/syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast b/crates/syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast
new file mode 100644
index 000000000..2c9570678
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast
@@ -0,0 +1,31 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "_"
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected] "async"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "}"
28 [email protected] " "
29 [email protected] "}"
30 [email protected] "\n"
31error 27..27: expected SEMICOLON
diff --git a/crates/syntax/test_data/parser/inline/err/0007_async_without_semicolon.rs b/crates/syntax/test_data/parser/inline/err/0007_async_without_semicolon.rs
new file mode 100644
index 000000000..9a423248c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0007_async_without_semicolon.rs
@@ -0,0 +1 @@
fn foo() { let _ = async {} }
diff --git a/crates/syntax/test_data/parser/inline/err/0008_pub_expr.rast b/crates/syntax/test_data/parser/inline/err/0008_pub_expr.rast
new file mode 100644
index 000000000..63a10127d
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0008_pub_expr.rast
@@ -0,0 +1,25 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected] "pub"
17 [email protected] " "
18 [email protected]
19 [email protected]
20 [email protected] "92"
21 [email protected] ";"
22 [email protected] " "
23 [email protected] "}"
24 [email protected] "\n"
25error 14..14: expected an item
diff --git a/crates/syntax/test_data/parser/inline/err/0008_pub_expr.rs b/crates/syntax/test_data/parser/inline/err/0008_pub_expr.rs
new file mode 100644
index 000000000..2976f6862
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0008_pub_expr.rs
@@ -0,0 +1 @@
fn foo() { pub 92; }
diff --git a/crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast b/crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast
new file mode 100644
index 000000000..8fd8d5e59
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast
@@ -0,0 +1,58 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "#"
17 [email protected] "["
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "A"
22 [email protected] "]"
23 [email protected] " "
24 [email protected]
25 [email protected]
26 [email protected] "1"
27 [email protected] " "
28 [email protected] "+"
29 [email protected] " "
30 [email protected]
31 [email protected] "2"
32 [email protected] ";"
33 [email protected] "\n "
34 [email protected]
35 [email protected]
36 [email protected] "#"
37 [email protected] "["
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "B"
42 [email protected] "]"
43 [email protected] " "
44 [email protected]
45 [email protected] "if"
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected] "true"
50 [email protected] " "
51 [email protected]
52 [email protected] "{"
53 [email protected] "}"
54 [email protected] ";"
55 [email protected] "\n"
56 [email protected] "}"
57 [email protected] "\n"
58error 24..24: attributes are not allowed on BIN_EXPR
diff --git a/crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rs b/crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rs
new file mode 100644
index 000000000..d725a07ce
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rs
@@ -0,0 +1,4 @@
1fn foo() {
2 #[A] 1 + 2;
3 #[B] if true {};
4}
diff --git a/crates/syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast b/crates/syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast
new file mode 100644
index 000000000..fa14e1e6d
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast
@@ -0,0 +1,52 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "x"
21 [email protected] "."
22 [email protected] "0."
23 [email protected] ";"
24 [email protected] "\n "
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "x"
32 [email protected] "."
33 [email protected]
34 [email protected] "1i32"
35 [email protected] ";"
36 [email protected] "\n "
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected]
43 [email protected] "x"
44 [email protected] "."
45 [email protected]
46 [email protected] "0x01"
47 [email protected] ";"
48 [email protected] "\n"
49 [email protected] "}"
50 [email protected] "\n"
51error 27..31: Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix
52error 39..43: Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix
diff --git a/crates/syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rs b/crates/syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rs
new file mode 100644
index 000000000..30cc49138
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 x.0.;
3 x.1i32;
4 x.0x01;
5}
diff --git a/crates/syntax/test_data/parser/inline/err/0013_static_underscore.rast b/crates/syntax/test_data/parser/inline/err/0013_static_underscore.rast
new file mode 100644
index 000000000..8d761b907
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0013_static_underscore.rast
@@ -0,0 +1,21 @@
1[email protected]
2 [email protected]
3 [email protected] "static"
4 [email protected] " "
5 [email protected]
6 [email protected] "_"
7 [email protected] ":"
8 [email protected] " "
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected] "i32"
14 [email protected] " "
15 [email protected] "="
16 [email protected] " "
17 [email protected]
18 [email protected] "5"
19 [email protected] ";"
20 [email protected] "\n"
21error 7..7: expected a name
diff --git a/crates/syntax/test_data/parser/inline/err/0013_static_underscore.rs b/crates/syntax/test_data/parser/inline/err/0013_static_underscore.rs
new file mode 100644
index 000000000..df8cecb43
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0013_static_underscore.rs
@@ -0,0 +1 @@
static _: i32 = 5;
diff --git a/crates/syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast b/crates/syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast
new file mode 100644
index 000000000..a81c442c0
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast
@@ -0,0 +1,48 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "S"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected] "field"
26 [email protected] " "
27 [email protected]
28 [email protected] ".."
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected] "S"
36 [email protected] "::"
37 [email protected]
38 [email protected]
39 [email protected] "default"
40 [email protected]
41 [email protected] "("
42 [email protected] ")"
43 [email protected] " "
44 [email protected] "}"
45 [email protected] "\n"
46 [email protected] "}"
47 [email protected] "\n"
48error 25..25: expected COLON
diff --git a/crates/syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rs b/crates/syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rs
new file mode 100644
index 000000000..a4e5b2f69
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rs
@@ -0,0 +1,3 @@
1fn main() {
2 S { field ..S::default() }
3}
diff --git a/crates/syntax/test_data/parser/inline/err/0015_empty_segment.rast b/crates/syntax/test_data/parser/inline/err/0015_empty_segment.rast
new file mode 100644
index 000000000..2f59d0606
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0015_empty_segment.rast
@@ -0,0 +1,15 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "crate"
10 [email protected] "::"
11 [email protected]
12 [email protected] ";"
13 [email protected] "\n"
14error 11..11: expected identifier
15error 12..12: expected SEMICOLON
diff --git a/crates/syntax/test_data/parser/inline/err/0015_empty_segment.rs b/crates/syntax/test_data/parser/inline/err/0015_empty_segment.rs
new file mode 100644
index 000000000..7510664e1
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/err/0015_empty_segment.rs
@@ -0,0 +1 @@
use crate::;
diff --git a/crates/syntax/test_data/parser/inline/ok/0001_trait_item_list.rast b/crates/syntax/test_data/parser/inline/ok/0001_trait_item_list.rast
new file mode 100644
index 000000000..c7289e400
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0001_trait_item_list.rast
@@ -0,0 +1,71 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "F"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "type"
16 [email protected] " "
17 [email protected]
18 [email protected] "A"
19 [email protected] ":"
20 [email protected] " "
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected] "Clone"
28 [email protected] ";"
29 [email protected] "\n "
30 [email protected]
31 [email protected] "const"
32 [email protected] " "
33 [email protected]
34 [email protected] "B"
35 [email protected] ":"
36 [email protected] " "
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "i32"
42 [email protected] ";"
43 [email protected] "\n "
44 [email protected]
45 [email protected] "fn"
46 [email protected] " "
47 [email protected]
48 [email protected] "foo"
49 [email protected]
50 [email protected] "("
51 [email protected] ")"
52 [email protected] " "
53 [email protected]
54 [email protected] "{"
55 [email protected] "}"
56 [email protected] "\n "
57 [email protected]
58 [email protected] "fn"
59 [email protected] " "
60 [email protected]
61 [email protected] "bar"
62 [email protected]
63 [email protected] "("
64 [email protected]
65 [email protected] "&"
66 [email protected] "self"
67 [email protected] ")"
68 [email protected] ";"
69 [email protected] "\n"
70 [email protected] "}"
71 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0001_trait_item_list.rs b/crates/syntax/test_data/parser/inline/ok/0001_trait_item_list.rs
new file mode 100644
index 000000000..a5ec3239f
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0001_trait_item_list.rs
@@ -0,0 +1,6 @@
1impl F {
2 type A: Clone;
3 const B: i32;
4 fn foo() {}
5 fn bar(&self);
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0002_use_tree_list.rast b/crates/syntax/test_data/parser/inline/ok/0002_use_tree_list.rast
new file mode 100644
index 000000000..1e80dd7e2
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0002_use_tree_list.rast
@@ -0,0 +1,136 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected] "{"
8 [email protected]
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected]
14 [email protected] "crate"
15 [email protected] "::"
16 [email protected]
17 [email protected]
18 [email protected] "path"
19 [email protected] "::"
20 [email protected]
21 [email protected]
22 [email protected] "from"
23 [email protected] "::"
24 [email protected]
25 [email protected]
26 [email protected] "root"
27 [email protected] ","
28 [email protected] " "
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected] "or"
37 [email protected] "::"
38 [email protected]
39 [email protected]
40 [email protected] "path"
41 [email protected] "::"
42 [email protected]
43 [email protected]
44 [email protected] "from"
45 [email protected] "::"
46 [email protected]
47 [email protected]
48 [email protected] "crate_name"
49 [email protected] "}"
50 [email protected] ";"
51 [email protected] " "
52 [email protected] "// Rust 2018 (with a ..."
53 [email protected] "\n"
54 [email protected]
55 [email protected] "use"
56 [email protected] " "
57 [email protected]
58 [email protected]
59 [email protected] "{"
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected]
66 [email protected] "path"
67 [email protected] "::"
68 [email protected]
69 [email protected]
70 [email protected] "from"
71 [email protected] "::"
72 [email protected]
73 [email protected]
74 [email protected] "root"
75 [email protected] "}"
76 [email protected] ";"
77 [email protected] " "
78 [email protected] "// Rust 2015"
79 [email protected] "\n"
80 [email protected]
81 [email protected] "use"
82 [email protected] " "
83 [email protected]
84 [email protected] "::"
85 [email protected]
86 [email protected] "{"
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected]
92 [email protected]
93 [email protected] "some"
94 [email protected] "::"
95 [email protected]
96 [email protected]
97 [email protected] "arbritrary"
98 [email protected] "::"
99 [email protected]
100 [email protected]
101 [email protected] "path"
102 [email protected] "}"
103 [email protected] ";"
104 [email protected] " "
105 [email protected] "// Rust 2015"
106 [email protected] "\n"
107 [email protected]
108 [email protected] "use"
109 [email protected] " "
110 [email protected]
111 [email protected] "::"
112 [email protected]
113 [email protected] "{"
114 [email protected]
115 [email protected]
116 [email protected] "{"
117 [email protected]
118 [email protected]
119 [email protected] "{"
120 [email protected]
121 [email protected]
122 [email protected]
123 [email protected]
124 [email protected]
125 [email protected] "root"
126 [email protected] "::"
127 [email protected]
128 [email protected]
129 [email protected] "export"
130 [email protected] "}"
131 [email protected] "}"
132 [email protected] "}"
133 [email protected] ";"
134 [email protected] " "
135 [email protected] "// Nonsensical but pe ..."
136 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0002_use_tree_list.rs b/crates/syntax/test_data/parser/inline/ok/0002_use_tree_list.rs
new file mode 100644
index 000000000..381cba1e2
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0002_use_tree_list.rs
@@ -0,0 +1,4 @@
1use {crate::path::from::root, or::path::from::crate_name}; // Rust 2018 (with a crate named `or`)
2use {path::from::root}; // Rust 2015
3use ::{some::arbritrary::path}; // Rust 2015
4use ::{{{root::export}}}; // Nonsensical but perfectly legal nesting
diff --git a/crates/syntax/test_data/parser/inline/ok/0003_where_pred_for.rast b/crates/syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
new file mode 100644
index 000000000..62da7b887
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
@@ -0,0 +1,60 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "for_trait"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "F"
12 [email protected] ">"
13 [email protected]
14 [email protected] "("
15 [email protected] ")"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "where"
19 [email protected] "\n "
20 [email protected]
21 [email protected] "for"
22 [email protected]
23 [email protected] "<"
24 [email protected]
25 [email protected] "\'a"
26 [email protected] ">"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "F"
33 [email protected] ":"
34 [email protected] " "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "Fn"
42 [email protected]
43 [email protected] "("
44 [email protected]
45 [email protected]
46 [email protected] "&"
47 [email protected] "\'a"
48 [email protected] " "
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected] "str"
54 [email protected] ")"
55 [email protected] "\n"
56 [email protected]
57 [email protected] "{"
58 [email protected] " "
59 [email protected] "}"
60 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0003_where_pred_for.rs b/crates/syntax/test_data/parser/inline/ok/0003_where_pred_for.rs
new file mode 100644
index 000000000..423bc105b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0003_where_pred_for.rs
@@ -0,0 +1,4 @@
1fn for_trait<F>()
2where
3 for<'a> F: Fn(&'a str)
4{ }
diff --git a/crates/syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast b/crates/syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast
new file mode 100644
index 000000000..b650735ba
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast
@@ -0,0 +1,60 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "F"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected]
14 [email protected] "Box"
15 [email protected]
16 [email protected] "<"
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "Fn"
23 [email protected]
24 [email protected] "("
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "i32"
31 [email protected] ","
32 [email protected] " "
33 [email protected]
34 [email protected]
35 [email protected] "&"
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected] "i32"
41 [email protected] ","
42 [email protected] " "
43 [email protected]
44 [email protected]
45 [email protected] "&"
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected] "i32"
51 [email protected] ","
52 [email protected] " "
53 [email protected]
54 [email protected]
55 [email protected] "("
56 [email protected] ")"
57 [email protected] ")"
58 [email protected] ">"
59 [email protected] ";"
60 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rs b/crates/syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rs
new file mode 100644
index 000000000..93636e926
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rs
@@ -0,0 +1 @@
type F = Box<Fn(i32, &i32, &i32, ())>;
diff --git a/crates/syntax/test_data/parser/inline/ok/0005_function_type_params.rast b/crates/syntax/test_data/parser/inline/ok/0005_function_type_params.rast
new file mode 100644
index 000000000..8e0252ce7
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0005_function_type_params.rast
@@ -0,0 +1,37 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ":"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "Clone"
21 [email protected] " "
22 [email protected] "+"
23 [email protected] " "
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected] "Copy"
30 [email protected] ">"
31 [email protected]
32 [email protected] "("
33 [email protected] ")"
34 [email protected]
35 [email protected] "{"
36 [email protected] "}"
37 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0005_function_type_params.rs b/crates/syntax/test_data/parser/inline/ok/0005_function_type_params.rs
new file mode 100644
index 000000000..9df40ed39
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0005_function_type_params.rs
@@ -0,0 +1 @@
fn foo<T: Clone + Copy>(){}
diff --git a/crates/syntax/test_data/parser/inline/ok/0006_self_param.rast b/crates/syntax/test_data/parser/inline/ok/0006_self_param.rast
new file mode 100644
index 000000000..d24ad7423
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0006_self_param.rast
@@ -0,0 +1,116 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "S"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "fn"
16 [email protected] " "
17 [email protected]
18 [email protected] "a"
19 [email protected]
20 [email protected] "("
21 [email protected]
22 [email protected] "self"
23 [email protected] ")"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "}"
28 [email protected] "\n "
29 [email protected]
30 [email protected] "fn"
31 [email protected] " "
32 [email protected]
33 [email protected] "b"
34 [email protected]
35 [email protected] "("
36 [email protected]
37 [email protected] "&"
38 [email protected] "self"
39 [email protected] ","
40 [email protected] ")"
41 [email protected] " "
42 [email protected]
43 [email protected] "{"
44 [email protected] "}"
45 [email protected] "\n "
46 [email protected]
47 [email protected] "fn"
48 [email protected] " "
49 [email protected]
50 [email protected] "c"
51 [email protected]
52 [email protected] "("
53 [email protected]
54 [email protected] "&"
55 [email protected] "\'a"
56 [email protected] " "
57 [email protected] "self"
58 [email protected] ","
59 [email protected] ")"
60 [email protected] " "
61 [email protected]
62 [email protected] "{"
63 [email protected] "}"
64 [email protected] "\n "
65 [email protected]
66 [email protected] "fn"
67 [email protected] " "
68 [email protected]
69 [email protected] "d"
70 [email protected]
71 [email protected] "("
72 [email protected]
73 [email protected] "&"
74 [email protected] "\'a"
75 [email protected] " "
76 [email protected] "mut"
77 [email protected] " "
78 [email protected] "self"
79 [email protected] ","
80 [email protected] " "
81 [email protected]
82 [email protected]
83 [email protected]
84 [email protected] "x"
85 [email protected] ":"
86 [email protected] " "
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected] "i32"
92 [email protected] ")"
93 [email protected] " "
94 [email protected]
95 [email protected] "{"
96 [email protected] "}"
97 [email protected] "\n "
98 [email protected]
99 [email protected] "fn"
100 [email protected] " "
101 [email protected]
102 [email protected] "e"
103 [email protected]
104 [email protected] "("
105 [email protected]
106 [email protected] "mut"
107 [email protected] " "
108 [email protected] "self"
109 [email protected] ")"
110 [email protected] " "
111 [email protected]
112 [email protected] "{"
113 [email protected] "}"
114 [email protected] "\n"
115 [email protected] "}"
116 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0006_self_param.rs b/crates/syntax/test_data/parser/inline/ok/0006_self_param.rs
new file mode 100644
index 000000000..80c0a43f5
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0006_self_param.rs
@@ -0,0 +1,7 @@
1impl S {
2 fn a(self) {}
3 fn b(&self,) {}
4 fn c(&'a self,) {}
5 fn d(&'a mut self, x: i32) {}
6 fn e(mut self) {}
7}
diff --git a/crates/syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast b/crates/syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast
new file mode 100644
index 000000000..e95688f56
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast
@@ -0,0 +1,40 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ":"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected] "\'a"
17 [email protected] " "
18 [email protected] "+"
19 [email protected] " "
20 [email protected]
21 [email protected] "?"
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "Sized"
27 [email protected] " "
28 [email protected] "+"
29 [email protected] " "
30 [email protected]
31 [email protected] "("
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected] "Copy"
37 [email protected] ")"
38 [email protected] ">"
39 [email protected] ";"
40 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0007_type_param_bounds.rs b/crates/syntax/test_data/parser/inline/ok/0007_type_param_bounds.rs
new file mode 100644
index 000000000..919bde0ee
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0007_type_param_bounds.rs
@@ -0,0 +1 @@
struct S<T: 'a + ?Sized + (Copy)>;
diff --git a/crates/syntax/test_data/parser/inline/ok/0008_path_part.rast b/crates/syntax/test_data/parser/inline/ok/0008_path_part.rast
new file mode 100644
index 000000000..7d2f7eab0
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0008_path_part.rast
@@ -0,0 +1,96 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "foo"
23 [email protected] "::"
24 [email protected]
25 [email protected]
26 [email protected] "Bar"
27 [email protected] " "
28 [email protected] "="
29 [email protected] " "
30 [email protected]
31 [email protected] "("
32 [email protected] ")"
33 [email protected] ";"
34 [email protected] "\n "
35 [email protected]
36 [email protected] "let"
37 [email protected] " "
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "::"
42 [email protected]
43 [email protected] "Bar"
44 [email protected] " "
45 [email protected] "="
46 [email protected] " "
47 [email protected]
48 [email protected] "("
49 [email protected] ")"
50 [email protected] ";"
51 [email protected] "\n "
52 [email protected]
53 [email protected] "let"
54 [email protected] " "
55 [email protected]
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected] "Bar"
60 [email protected] " "
61 [email protected]
62 [email protected] "{"
63 [email protected] " "
64 [email protected] ".."
65 [email protected] " "
66 [email protected] "}"
67 [email protected] " "
68 [email protected] "="
69 [email protected] " "
70 [email protected]
71 [email protected] "("
72 [email protected] ")"
73 [email protected] ";"
74 [email protected] "\n "
75 [email protected]
76 [email protected] "let"
77 [email protected] " "
78 [email protected]
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected] "Bar"
83 [email protected] "("
84 [email protected]
85 [email protected] ".."
86 [email protected] ")"
87 [email protected] " "
88 [email protected] "="
89 [email protected] " "
90 [email protected]
91 [email protected] "("
92 [email protected] ")"
93 [email protected] ";"
94 [email protected] "\n"
95 [email protected] "}"
96 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0008_path_part.rs b/crates/syntax/test_data/parser/inline/ok/0008_path_part.rs
new file mode 100644
index 000000000..f6e32c7c1
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0008_path_part.rs
@@ -0,0 +1,6 @@
1fn foo() {
2 let foo::Bar = ();
3 let ::Bar = ();
4 let Bar { .. } = ();
5 let Bar(..) = ();
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0009_loop_expr.rast b/crates/syntax/test_data/parser/inline/ok/0009_loop_expr.rast
new file mode 100644
index 000000000..f62826fd5
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0009_loop_expr.rast
@@ -0,0 +1,24 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "loop"
17 [email protected] " "
18 [email protected]
19 [email protected] "{"
20 [email protected] "}"
21 [email protected] ";"
22 [email protected] "\n"
23 [email protected] "}"
24 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0009_loop_expr.rs b/crates/syntax/test_data/parser/inline/ok/0009_loop_expr.rs
new file mode 100644
index 000000000..9f078fa48
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0009_loop_expr.rs
@@ -0,0 +1,3 @@
1fn foo() {
2 loop {};
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0010_extern_block.rast b/crates/syntax/test_data/parser/inline/ok/0010_extern_block.rast
new file mode 100644
index 000000000..869875875
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0010_extern_block.rast
@@ -0,0 +1,9 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "extern"
5 [email protected] " "
6 [email protected]
7 [email protected] "{"
8 [email protected] "}"
9 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0010_extern_block.rs b/crates/syntax/test_data/parser/inline/ok/0010_extern_block.rs
new file mode 100644
index 000000000..26a9ccd1e
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0010_extern_block.rs
@@ -0,0 +1 @@
extern {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0011_field_expr.rast b/crates/syntax/test_data/parser/inline/ok/0011_field_expr.rast
new file mode 100644
index 000000000..66a609346
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0011_field_expr.rast
@@ -0,0 +1,59 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "x"
21 [email protected] "."
22 [email protected]
23 [email protected] "foo"
24 [email protected] ";"
25 [email protected] "\n "
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "x"
34 [email protected] "."
35 [email protected]
36 [email protected] "0"
37 [email protected] "."
38 [email protected]
39 [email protected] "bar"
40 [email protected] ";"
41 [email protected] "\n "
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "x"
50 [email protected] "."
51 [email protected]
52 [email protected] "0"
53 [email protected]
54 [email protected] "("
55 [email protected] ")"
56 [email protected] ";"
57 [email protected] "\n"
58 [email protected] "}"
59 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0011_field_expr.rs b/crates/syntax/test_data/parser/inline/ok/0011_field_expr.rs
new file mode 100644
index 000000000..b8da2ddc3
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0011_field_expr.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 x.foo;
3 x.0.bar;
4 x.0();
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast b/crates/syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast
new file mode 100644
index 000000000..28c94bfd6
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast
@@ -0,0 +1,33 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "Foo"
7 [email protected] " "
8 [email protected]
9 [email protected] "where"
10 [email protected] " "
11 [email protected]
12 [email protected]
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected] "Foo"
17 [email protected] ":"
18 [email protected] " "
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "Copy"
26 [email protected] " "
27 [email protected] "="
28 [email protected] " "
29 [email protected]
30 [email protected] "("
31 [email protected] ")"
32 [email protected] ";"
33 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rs b/crates/syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rs
new file mode 100644
index 000000000..a602d07f0
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rs
@@ -0,0 +1 @@
type Foo where Foo: Copy = ();
diff --git a/crates/syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast b/crates/syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast
new file mode 100644
index 000000000..d33215b50
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast
@@ -0,0 +1,35 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "M"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "*"
12 [email protected] "mut"
13 [email protected] " "
14 [email protected]
15 [email protected] "("
16 [email protected] ")"
17 [email protected] ";"
18 [email protected] "\n"
19 [email protected]
20 [email protected] "type"
21 [email protected] " "
22 [email protected]
23 [email protected] "C"
24 [email protected] " "
25 [email protected] "="
26 [email protected] " "
27 [email protected]
28 [email protected] "*"
29 [email protected] "mut"
30 [email protected] " "
31 [email protected]
32 [email protected] "("
33 [email protected] ")"
34 [email protected] ";"
35 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rs b/crates/syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rs
new file mode 100644
index 000000000..04b2bb9ba
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rs
@@ -0,0 +1,2 @@
1type M = *mut ();
2type C = *mut ();
diff --git a/crates/syntax/test_data/parser/inline/ok/0014_never_type.rast b/crates/syntax/test_data/parser/inline/ok/0014_never_type.rast
new file mode 100644
index 000000000..b1d5106ce
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0014_never_type.rast
@@ -0,0 +1,13 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "Never"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "!"
12 [email protected] ";"
13 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0014_never_type.rs b/crates/syntax/test_data/parser/inline/ok/0014_never_type.rs
new file mode 100644
index 000000000..de399fcf4
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0014_never_type.rs
@@ -0,0 +1 @@
type Never = !;
diff --git a/crates/syntax/test_data/parser/inline/ok/0015_continue_expr.rast b/crates/syntax/test_data/parser/inline/ok/0015_continue_expr.rast
new file mode 100644
index 000000000..104e153ce
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0015_continue_expr.rast
@@ -0,0 +1,35 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "loop"
16 [email protected] " "
17 [email protected]
18 [email protected] "{"
19 [email protected] "\n "
20 [email protected]
21 [email protected]
22 [email protected] "continue"
23 [email protected] ";"
24 [email protected] "\n "
25 [email protected]
26 [email protected]
27 [email protected] "continue"
28 [email protected] " "
29 [email protected] "\'l"
30 [email protected] ";"
31 [email protected] "\n "
32 [email protected] "}"
33 [email protected] "\n"
34 [email protected] "}"
35 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0015_continue_expr.rs b/crates/syntax/test_data/parser/inline/ok/0015_continue_expr.rs
new file mode 100644
index 000000000..474cc3f0e
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0015_continue_expr.rs
@@ -0,0 +1,6 @@
1fn foo() {
2 loop {
3 continue;
4 continue 'l;
5 }
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0017_array_type.rast b/crates/syntax/test_data/parser/inline/ok/0017_array_type.rast
new file mode 100644
index 000000000..c131df1c9
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0017_array_type.rast
@@ -0,0 +1,21 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "["
12 [email protected]
13 [email protected] "("
14 [email protected] ")"
15 [email protected] ";"
16 [email protected] " "
17 [email protected]
18 [email protected] "92"
19 [email protected] "]"
20 [email protected] ";"
21 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0017_array_type.rs b/crates/syntax/test_data/parser/inline/ok/0017_array_type.rs
new file mode 100644
index 000000000..27eb22f22
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0017_array_type.rs
@@ -0,0 +1 @@
type T = [(); 92];
diff --git a/crates/syntax/test_data/parser/inline/ok/0018_arb_self_types.rast b/crates/syntax/test_data/parser/inline/ok/0018_arb_self_types.rast
new file mode 100644
index 000000000..ddbd66588
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0018_arb_self_types.rast
@@ -0,0 +1,72 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "S"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "fn"
16 [email protected] " "
17 [email protected]
18 [email protected] "a"
19 [email protected]
20 [email protected] "("
21 [email protected]
22 [email protected] "self"
23 [email protected] ":"
24 [email protected] " "
25 [email protected]
26 [email protected] "&"
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "Self"
32 [email protected] ")"
33 [email protected] " "
34 [email protected]
35 [email protected] "{"
36 [email protected] "}"
37 [email protected] "\n "
38 [email protected]
39 [email protected] "fn"
40 [email protected] " "
41 [email protected]
42 [email protected] "b"
43 [email protected]
44 [email protected] "("
45 [email protected]
46 [email protected] "mut"
47 [email protected] " "
48 [email protected] "self"
49 [email protected] ":"
50 [email protected] " "
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected] "Box"
56 [email protected]
57 [email protected] "<"
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected] "Self"
64 [email protected] ">"
65 [email protected] ")"
66 [email protected] " "
67 [email protected]
68 [email protected] "{"
69 [email protected] "}"
70 [email protected] "\n"
71 [email protected] "}"
72 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0018_arb_self_types.rs b/crates/syntax/test_data/parser/inline/ok/0018_arb_self_types.rs
new file mode 100644
index 000000000..6a170d5ac
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0018_arb_self_types.rs
@@ -0,0 +1,4 @@
1impl S {
2 fn a(self: &Self) {}
3 fn b(mut self: Box<Self>) {}
4}
diff --git a/crates/syntax/test_data/parser/inline/ok/0019_unary_expr.rast b/crates/syntax/test_data/parser/inline/ok/0019_unary_expr.rast
new file mode 100644
index 000000000..7db38ea4d
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0019_unary_expr.rast
@@ -0,0 +1,44 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "*"
17 [email protected]
18 [email protected] "*"
19 [email protected]
20 [email protected] "&"
21 [email protected]
22 [email protected] "1"
23 [email protected] ";"
24 [email protected] "\n "
25 [email protected]
26 [email protected]
27 [email protected] "!"
28 [email protected]
29 [email protected] "!"
30 [email protected]
31 [email protected] "true"
32 [email protected] ";"
33 [email protected] "\n "
34 [email protected]
35 [email protected]
36 [email protected] "-"
37 [email protected]
38 [email protected] "-"
39 [email protected]
40 [email protected] "1"
41 [email protected] ";"
42 [email protected] "\n"
43 [email protected] "}"
44 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0019_unary_expr.rs b/crates/syntax/test_data/parser/inline/ok/0019_unary_expr.rs
new file mode 100644
index 000000000..f1c3f7118
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0019_unary_expr.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 **&1;
3 !!true;
4 --1;
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0020_use_star.rast b/crates/syntax/test_data/parser/inline/ok/0020_use_star.rast
new file mode 100644
index 000000000..b3623c445
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0020_use_star.rast
@@ -0,0 +1,59 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected] "*"
7 [email protected] ";"
8 [email protected] "\n"
9 [email protected]
10 [email protected] "use"
11 [email protected] " "
12 [email protected]
13 [email protected] "::"
14 [email protected] "*"
15 [email protected] ";"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "use"
19 [email protected] " "
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "some"
26 [email protected] "::"
27 [email protected]
28 [email protected]
29 [email protected] "path"
30 [email protected] "::"
31 [email protected]
32 [email protected] "{"
33 [email protected]
34 [email protected] "*"
35 [email protected] "}"
36 [email protected] ";"
37 [email protected] "\n"
38 [email protected]
39 [email protected] "use"
40 [email protected] " "
41 [email protected]
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected] "some"
47 [email protected] "::"
48 [email protected]
49 [email protected]
50 [email protected] "path"
51 [email protected] "::"
52 [email protected]
53 [email protected] "{"
54 [email protected]
55 [email protected] "::"
56 [email protected] "*"
57 [email protected] "}"
58 [email protected] ";"
59 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0020_use_star.rs b/crates/syntax/test_data/parser/inline/ok/0020_use_star.rs
new file mode 100644
index 000000000..6f15769a8
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0020_use_star.rs
@@ -0,0 +1,4 @@
1use *;
2use ::*;
3use some::path::{*};
4use some::path::{::*};
diff --git a/crates/syntax/test_data/parser/inline/ok/0021_impl_item_list.rast b/crates/syntax/test_data/parser/inline/ok/0021_impl_item_list.rast
new file mode 100644
index 000000000..ca0702aba
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0021_impl_item_list.rast
@@ -0,0 +1,78 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "F"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "type"
16 [email protected] " "
17 [email protected]
18 [email protected] "A"
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "i32"
27 [email protected] ";"
28 [email protected] "\n "
29 [email protected]
30 [email protected] "const"
31 [email protected] " "
32 [email protected]
33 [email protected] "B"
34 [email protected] ":"
35 [email protected] " "
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected] "i32"
41 [email protected] " "
42 [email protected] "="
43 [email protected] " "
44 [email protected]
45 [email protected] "92"
46 [email protected] ";"
47 [email protected] "\n "
48 [email protected]
49 [email protected] "fn"
50 [email protected] " "
51 [email protected]
52 [email protected] "foo"
53 [email protected]
54 [email protected] "("
55 [email protected] ")"
56 [email protected] " "
57 [email protected]
58 [email protected] "{"
59 [email protected] "}"
60 [email protected] "\n "
61 [email protected]
62 [email protected] "fn"
63 [email protected] " "
64 [email protected]
65 [email protected] "bar"
66 [email protected]
67 [email protected] "("
68 [email protected]
69 [email protected] "&"
70 [email protected] "self"
71 [email protected] ")"
72 [email protected] " "
73 [email protected]
74 [email protected] "{"
75 [email protected] "}"
76 [email protected] "\n"
77 [email protected] "}"
78 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0021_impl_item_list.rs b/crates/syntax/test_data/parser/inline/ok/0021_impl_item_list.rs
new file mode 100644
index 000000000..f10851487
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0021_impl_item_list.rs
@@ -0,0 +1,6 @@
1impl F {
2 type A = i32;
3 const B: i32 = 92;
4 fn foo() {}
5 fn bar(&self) {}
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0022_crate_visibility.rast b/crates/syntax/test_data/parser/inline/ok/0022_crate_visibility.rast
new file mode 100644
index 000000000..50742cbcf
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0022_crate_visibility.rast
@@ -0,0 +1,53 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "pub"
5 [email protected] "("
6 [email protected] "crate"
7 [email protected] ")"
8 [email protected] " "
9 [email protected] "struct"
10 [email protected] " "
11 [email protected]
12 [email protected] "S"
13 [email protected] ";"
14 [email protected] "\n"
15 [email protected]
16 [email protected]
17 [email protected] "pub"
18 [email protected] "("
19 [email protected] "self"
20 [email protected] ")"
21 [email protected] " "
22 [email protected] "struct"
23 [email protected] " "
24 [email protected]
25 [email protected] "S"
26 [email protected] ";"
27 [email protected] "\n"
28 [email protected]
29 [email protected]
30 [email protected] "pub"
31 [email protected] "("
32 [email protected] "self"
33 [email protected] ")"
34 [email protected] " "
35 [email protected] "struct"
36 [email protected] " "
37 [email protected]
38 [email protected] "S"
39 [email protected] ";"
40 [email protected] "\n"
41 [email protected]
42 [email protected]
43 [email protected] "pub"
44 [email protected] "("
45 [email protected] "self"
46 [email protected] ")"
47 [email protected] " "
48 [email protected] "struct"
49 [email protected] " "
50 [email protected]
51 [email protected] "S"
52 [email protected] ";"
53 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0022_crate_visibility.rs b/crates/syntax/test_data/parser/inline/ok/0022_crate_visibility.rs
new file mode 100644
index 000000000..faeefde94
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0022_crate_visibility.rs
@@ -0,0 +1,4 @@
1pub(crate) struct S;
2pub(self) struct S;
3pub(self) struct S;
4pub(self) struct S;
diff --git a/crates/syntax/test_data/parser/inline/ok/0023_placeholder_type.rast b/crates/syntax/test_data/parser/inline/ok/0023_placeholder_type.rast
new file mode 100644
index 000000000..e4fe2b948
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0023_placeholder_type.rast
@@ -0,0 +1,13 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "Placeholder"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "_"
12 [email protected] ";"
13 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0023_placeholder_type.rs b/crates/syntax/test_data/parser/inline/ok/0023_placeholder_type.rs
new file mode 100644
index 000000000..7952dbd57
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0023_placeholder_type.rs
@@ -0,0 +1 @@
type Placeholder = _;
diff --git a/crates/syntax/test_data/parser/inline/ok/0024_slice_pat.rast b/crates/syntax/test_data/parser/inline/ok/0024_slice_pat.rast
new file mode 100644
index 000000000..2dbce34b6
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0024_slice_pat.rast
@@ -0,0 +1,41 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "["
19 [email protected]
20 [email protected]
21 [email protected] "a"
22 [email protected] ","
23 [email protected] " "
24 [email protected]
25 [email protected]
26 [email protected] "b"
27 [email protected] ","
28 [email protected] " "
29 [email protected]
30 [email protected] ".."
31 [email protected] "]"
32 [email protected] " "
33 [email protected] "="
34 [email protected] " "
35 [email protected]
36 [email protected] "["
37 [email protected] "]"
38 [email protected] ";"
39 [email protected] "\n"
40 [email protected] "}"
41 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0024_slice_pat.rs b/crates/syntax/test_data/parser/inline/ok/0024_slice_pat.rs
new file mode 100644
index 000000000..7955973b9
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0024_slice_pat.rs
@@ -0,0 +1,3 @@
1fn main() {
2 let [a, b, ..] = [];
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0025_slice_type.rast b/crates/syntax/test_data/parser/inline/ok/0025_slice_type.rast
new file mode 100644
index 000000000..fd819ea37
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0025_slice_type.rast
@@ -0,0 +1,17 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "["
12 [email protected]
13 [email protected] "("
14 [email protected] ")"
15 [email protected] "]"
16 [email protected] ";"
17 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0025_slice_type.rs b/crates/syntax/test_data/parser/inline/ok/0025_slice_type.rs
new file mode 100644
index 000000000..4da1af827
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0025_slice_type.rs
@@ -0,0 +1 @@
type T = [()];
diff --git a/crates/syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast b/crates/syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast
new file mode 100644
index 000000000..467a30134
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast
@@ -0,0 +1,104 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "S"
22 [email protected] "("
23 [email protected] ")"
24 [email protected] " "
25 [email protected] "="
26 [email protected] " "
27 [email protected]
28 [email protected] "("
29 [email protected] ")"
30 [email protected] ";"
31 [email protected] "\n "
32 [email protected]
33 [email protected] "let"
34 [email protected] " "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected] "S"
40 [email protected] "("
41 [email protected]
42 [email protected] "_"
43 [email protected] ")"
44 [email protected] " "
45 [email protected] "="
46 [email protected] " "
47 [email protected]
48 [email protected] "("
49 [email protected] ")"
50 [email protected] ";"
51 [email protected] "\n "
52 [email protected]
53 [email protected] "let"
54 [email protected] " "
55 [email protected]
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected] "S"
60 [email protected] "("
61 [email protected]
62 [email protected] "_"
63 [email protected] ","
64 [email protected] ")"
65 [email protected] " "
66 [email protected] "="
67 [email protected] " "
68 [email protected]
69 [email protected] "("
70 [email protected] ")"
71 [email protected] ";"
72 [email protected] "\n "
73 [email protected]
74 [email protected] "let"
75 [email protected] " "
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected] "S"
81 [email protected] "("
82 [email protected]
83 [email protected] "_"
84 [email protected] ","
85 [email protected] " "
86 [email protected]
87 [email protected] ".."
88 [email protected] " "
89 [email protected] ","
90 [email protected] " "
91 [email protected]
92 [email protected]
93 [email protected] "x"
94 [email protected] ")"
95 [email protected] " "
96 [email protected] "="
97 [email protected] " "
98 [email protected]
99 [email protected] "("
100 [email protected] ")"
101 [email protected] ";"
102 [email protected] "\n"
103 [email protected] "}"
104 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rs b/crates/syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rs
new file mode 100644
index 000000000..0dfe63629
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rs
@@ -0,0 +1,6 @@
1fn foo() {
2 let S() = ();
3 let S(_) = ();
4 let S(_,) = ();
5 let S(_, .. , x) = ();
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0027_ref_pat.rast b/crates/syntax/test_data/parser/inline/ok/0027_ref_pat.rast
new file mode 100644
index 000000000..348b54dc9
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0027_ref_pat.rast
@@ -0,0 +1,49 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "&"
19 [email protected]
20 [email protected]
21 [email protected] "a"
22 [email protected] " "
23 [email protected] "="
24 [email protected] " "
25 [email protected]
26 [email protected] "("
27 [email protected] ")"
28 [email protected] ";"
29 [email protected] "\n "
30 [email protected]
31 [email protected] "let"
32 [email protected] " "
33 [email protected]
34 [email protected] "&"
35 [email protected] "mut"
36 [email protected] " "
37 [email protected]
38 [email protected]
39 [email protected] "b"
40 [email protected] " "
41 [email protected] "="
42 [email protected] " "
43 [email protected]
44 [email protected] "("
45 [email protected] ")"
46 [email protected] ";"
47 [email protected] "\n"
48 [email protected] "}"
49 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0027_ref_pat.rs b/crates/syntax/test_data/parser/inline/ok/0027_ref_pat.rs
new file mode 100644
index 000000000..de41f5cae
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0027_ref_pat.rs
@@ -0,0 +1,4 @@
1fn main() {
2 let &a = ();
3 let &mut b = ();
4}
diff --git a/crates/syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast b/crates/syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast
new file mode 100644
index 000000000..32b2959bd
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast
@@ -0,0 +1,43 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "impl"
12 [email protected] " "
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "Iterator"
20 [email protected]
21 [email protected] "<"
22 [email protected]
23 [email protected]
24 [email protected] "Item"
25 [email protected] "="
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "Foo"
31 [email protected]
32 [email protected] "<"
33 [email protected]
34 [email protected] "\'a"
35 [email protected] ">"
36 [email protected] ">"
37 [email protected] " "
38 [email protected] "+"
39 [email protected] " "
40 [email protected]
41 [email protected] "\'a"
42 [email protected] ";"
43 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0028_impl_trait_type.rs b/crates/syntax/test_data/parser/inline/ok/0028_impl_trait_type.rs
new file mode 100644
index 000000000..54c5a7c46
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0028_impl_trait_type.rs
@@ -0,0 +1 @@
type A = impl Iterator<Item=Foo<'a>> + 'a;
diff --git a/crates/syntax/test_data/parser/inline/ok/0029_cast_expr.rast b/crates/syntax/test_data/parser/inline/ok/0029_cast_expr.rast
new file mode 100644
index 000000000..e096b3a1f
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0029_cast_expr.rast
@@ -0,0 +1,89 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "82"
18 [email protected] " "
19 [email protected] "as"
20 [email protected] " "
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "i32"
26 [email protected] ";"
27 [email protected] "\n "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "81"
33 [email protected] " "
34 [email protected] "as"
35 [email protected] " "
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected] "i8"
41 [email protected] " "
42 [email protected] "+"
43 [email protected] " "
44 [email protected]
45 [email protected] "1"
46 [email protected] ";"
47 [email protected] "\n "
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected] "79"
53 [email protected] " "
54 [email protected] "as"
55 [email protected] " "
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected] "i16"
61 [email protected] " "
62 [email protected] "-"
63 [email protected] " "
64 [email protected]
65 [email protected] "1"
66 [email protected] ";"
67 [email protected] "\n "
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected]
72 [email protected] "0x36"
73 [email protected] " "
74 [email protected] "as"
75 [email protected] " "
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected] "u8"
81 [email protected] " "
82 [email protected] "<="
83 [email protected] " "
84 [email protected]
85 [email protected] "0x37"
86 [email protected] ";"
87 [email protected] "\n"
88 [email protected] "}"
89 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0029_cast_expr.rs b/crates/syntax/test_data/parser/inline/ok/0029_cast_expr.rs
new file mode 100644
index 000000000..bfe8e4b36
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0029_cast_expr.rs
@@ -0,0 +1,6 @@
1fn foo() {
2 82 as i32;
3 81 as i8 + 1;
4 79 as i16 - 1;
5 0x36 as u8 <= 0x37;
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0030_cond.rast b/crates/syntax/test_data/parser/inline/ok/0030_cond.rast
new file mode 100644
index 000000000..58a97d3ad
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0030_cond.rast
@@ -0,0 +1,202 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected] "if"
16 [email protected] " "
17 [email protected]
18 [email protected] "let"
19 [email protected] " "
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected] "Some"
25 [email protected] "("
26 [email protected]
27 [email protected] "_"
28 [email protected] ")"
29 [email protected] " "
30 [email protected] "="
31 [email protected] " "
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected] "None"
37 [email protected] " "
38 [email protected]
39 [email protected] "{"
40 [email protected] "}"
41 [email protected] " "
42 [email protected] "}"
43 [email protected] "\n"
44 [email protected]
45 [email protected] "fn"
46 [email protected] " "
47 [email protected]
48 [email protected] "bar"
49 [email protected]
50 [email protected] "("
51 [email protected] ")"
52 [email protected] " "
53 [email protected]
54 [email protected] "{"
55 [email protected] "\n "
56 [email protected]
57 [email protected]
58 [email protected] "if"
59 [email protected] " "
60 [email protected]
61 [email protected] "let"
62 [email protected] " "
63 [email protected]
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected]
68 [email protected] "Some"
69 [email protected] "("
70 [email protected]
71 [email protected] "_"
72 [email protected] ")"
73 [email protected] " "
74 [email protected] "|"
75 [email protected] " "
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected] "Some"
81 [email protected] "("
82 [email protected]
83 [email protected] "_"
84 [email protected] ")"
85 [email protected] " "
86 [email protected] "="
87 [email protected] " "
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected]
92 [email protected] "None"
93 [email protected] " "
94 [email protected]
95 [email protected] "{"
96 [email protected] "}"
97 [email protected] "\n "
98 [email protected]
99 [email protected]
100 [email protected] "if"
101 [email protected] " "
102 [email protected]
103 [email protected] "let"
104 [email protected] " "
105 [email protected] "|"
106 [email protected] " "
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected]
111 [email protected] "Some"
112 [email protected] "("
113 [email protected]
114 [email protected] "_"
115 [email protected] ")"
116 [email protected] " "
117 [email protected] "="
118 [email protected] " "
119 [email protected]
120 [email protected]
121 [email protected]
122 [email protected]
123 [email protected] "None"
124 [email protected] " "
125 [email protected]
126 [email protected] "{"
127 [email protected] "}"
128 [email protected] "\n "
129 [email protected]
130 [email protected]
131 [email protected] "while"
132 [email protected] " "
133 [email protected]
134 [email protected] "let"
135 [email protected] " "
136 [email protected]
137 [email protected]
138 [email protected]
139 [email protected]
140 [email protected]
141 [email protected] "Some"
142 [email protected] "("
143 [email protected]
144 [email protected] "_"
145 [email protected] ")"
146 [email protected] " "
147 [email protected] "|"
148 [email protected] " "
149 [email protected]
150 [email protected]
151 [email protected]
152 [email protected]
153 [email protected] "Some"
154 [email protected] "("
155 [email protected]
156 [email protected] "_"
157 [email protected] ")"
158 [email protected] " "
159 [email protected] "="
160 [email protected] " "
161 [email protected]
162 [email protected]
163 [email protected]
164 [email protected]
165 [email protected] "None"
166 [email protected] " "
167 [email protected]
168 [email protected] "{"
169 [email protected] "}"
170 [email protected] "\n "
171 [email protected]
172 [email protected] "while"
173 [email protected] " "
174 [email protected]
175 [email protected] "let"
176 [email protected] " "
177 [email protected] "|"
178 [email protected] " "
179 [email protected]
180 [email protected]
181 [email protected]
182 [email protected]
183 [email protected] "Some"
184 [email protected] "("
185 [email protected]
186 [email protected] "_"
187 [email protected] ")"
188 [email protected] " "
189 [email protected] "="
190 [email protected] " "
191 [email protected]
192 [email protected]
193 [email protected]
194 [email protected]
195 [email protected] "None"
196 [email protected] " "
197 [email protected]
198 [email protected] "{"
199 [email protected] "}"
200 [email protected] "\n"
201 [email protected] "}"
202 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0030_cond.rs b/crates/syntax/test_data/parser/inline/ok/0030_cond.rs
new file mode 100644
index 000000000..2552a2621
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0030_cond.rs
@@ -0,0 +1,7 @@
1fn foo() { if let Some(_) = None {} }
2fn bar() {
3 if let Some(_) | Some(_) = None {}
4 if let | Some(_) = None {}
5 while let Some(_) | Some(_) = None {}
6 while let | Some(_) = None {}
7}
diff --git a/crates/syntax/test_data/parser/inline/ok/0031_while_expr.rast b/crates/syntax/test_data/parser/inline/ok/0031_while_expr.rast
new file mode 100644
index 000000000..173cecf6d
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0031_while_expr.rast
@@ -0,0 +1,84 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "while"
17 [email protected] " "
18 [email protected]
19 [email protected]
20 [email protected] "true"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] ";"
26 [email protected] "\n "
27 [email protected]
28 [email protected]
29 [email protected] "while"
30 [email protected] " "
31 [email protected]
32 [email protected] "let"
33 [email protected] " "
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "Some"
39 [email protected] "("
40 [email protected]
41 [email protected]
42 [email protected] "x"
43 [email protected] ")"
44 [email protected] " "
45 [email protected] "="
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected] "it"
53 [email protected] "."
54 [email protected]
55 [email protected] "next"
56 [email protected]
57 [email protected] "("
58 [email protected] ")"
59 [email protected] " "
60 [email protected]
61 [email protected] "{"
62 [email protected] "}"
63 [email protected] ";"
64 [email protected] "\n "
65 [email protected]
66 [email protected]
67 [email protected] "while"
68 [email protected] " "
69 [email protected]
70 [email protected]
71 [email protected] "{"
72 [email protected] " "
73 [email protected]
74 [email protected] "true"
75 [email protected] " "
76 [email protected] "}"
77 [email protected] " "
78 [email protected]
79 [email protected] "{"
80 [email protected] "}"
81 [email protected] ";"
82 [email protected] "\n"
83 [email protected] "}"
84 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0031_while_expr.rs b/crates/syntax/test_data/parser/inline/ok/0031_while_expr.rs
new file mode 100644
index 000000000..2f8188160
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0031_while_expr.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 while true {};
3 while let Some(x) = it.next() {};
4 while { true } {};
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast b/crates/syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast
new file mode 100644
index 000000000..dda6577ed
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast
@@ -0,0 +1,98 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "fn"
12 [email protected]
13 [email protected] "("
14 [email protected] ")"
15 [email protected] ";"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "type"
19 [email protected] " "
20 [email protected]
21 [email protected] "B"
22 [email protected] " "
23 [email protected] "="
24 [email protected] " "
25 [email protected]
26 [email protected] "unsafe"
27 [email protected] " "
28 [email protected] "fn"
29 [email protected]
30 [email protected] "("
31 [email protected] ")"
32 [email protected] ";"
33 [email protected] "\n"
34 [email protected]
35 [email protected] "type"
36 [email protected] " "
37 [email protected]
38 [email protected] "C"
39 [email protected] " "
40 [email protected] "="
41 [email protected] " "
42 [email protected]
43 [email protected] "unsafe"
44 [email protected] " "
45 [email protected]
46 [email protected] "extern"
47 [email protected] " "
48 [email protected] "\"C\""
49 [email protected] " "
50 [email protected] "fn"
51 [email protected]
52 [email protected] "("
53 [email protected] ")"
54 [email protected] ";"
55 [email protected] "\n"
56 [email protected]
57 [email protected] "type"
58 [email protected] " "
59 [email protected]
60 [email protected] "D"
61 [email protected] " "
62 [email protected] "="
63 [email protected] " "
64 [email protected]
65 [email protected]
66 [email protected] "extern"
67 [email protected] " "
68 [email protected] "\"C\""
69 [email protected] " "
70 [email protected] "fn"
71 [email protected] " "
72 [email protected]
73 [email protected] "("
74 [email protected] " "
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected] "u8"
81 [email protected] " "
82 [email protected] ","
83 [email protected] " "
84 [email protected]
85 [email protected] "..."
86 [email protected] " "
87 [email protected] ")"
88 [email protected] " "
89 [email protected]
90 [email protected] "->"
91 [email protected] " "
92 [email protected]
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected] "u8"
97 [email protected] ";"
98 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rs b/crates/syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rs
new file mode 100644
index 000000000..9493da83d
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rs
@@ -0,0 +1,4 @@
1type A = fn();
2type B = unsafe fn();
3type C = unsafe extern "C" fn();
4type D = extern "C" fn ( u8 , ... ) -> u8;
diff --git a/crates/syntax/test_data/parser/inline/ok/0033_reference_type;.rast b/crates/syntax/test_data/parser/inline/ok/0033_reference_type;.rast
new file mode 100644
index 000000000..974df9f9a
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0033_reference_type;.rast
@@ -0,0 +1,50 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "&"
12 [email protected]
13 [email protected] "("
14 [email protected] ")"
15 [email protected] ";"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "type"
19 [email protected] " "
20 [email protected]
21 [email protected] "B"
22 [email protected] " "
23 [email protected] "="
24 [email protected] " "
25 [email protected]
26 [email protected] "&"
27 [email protected] "\'static"
28 [email protected] " "
29 [email protected]
30 [email protected] "("
31 [email protected] ")"
32 [email protected] ";"
33 [email protected] "\n"
34 [email protected]
35 [email protected] "type"
36 [email protected] " "
37 [email protected]
38 [email protected] "C"
39 [email protected] " "
40 [email protected] "="
41 [email protected] " "
42 [email protected]
43 [email protected] "&"
44 [email protected] "mut"
45 [email protected] " "
46 [email protected]
47 [email protected] "("
48 [email protected] ")"
49 [email protected] ";"
50 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0033_reference_type;.rs b/crates/syntax/test_data/parser/inline/ok/0033_reference_type;.rs
new file mode 100644
index 000000000..3ac0badab
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0033_reference_type;.rs
@@ -0,0 +1,3 @@
1type A = &();
2type B = &'static ();
3type C = &mut ();
diff --git a/crates/syntax/test_data/parser/inline/ok/0034_break_expr.rast b/crates/syntax/test_data/parser/inline/ok/0034_break_expr.rast
new file mode 100644
index 000000000..f905def6f
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0034_break_expr.rast
@@ -0,0 +1,53 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "loop"
16 [email protected] " "
17 [email protected]
18 [email protected] "{"
19 [email protected] "\n "
20 [email protected]
21 [email protected]
22 [email protected] "break"
23 [email protected] ";"
24 [email protected] "\n "
25 [email protected]
26 [email protected]
27 [email protected] "break"
28 [email protected] " "
29 [email protected] "\'l"
30 [email protected] ";"
31 [email protected] "\n "
32 [email protected]
33 [email protected]
34 [email protected] "break"
35 [email protected] " "
36 [email protected]
37 [email protected] "92"
38 [email protected] ";"
39 [email protected] "\n "
40 [email protected]
41 [email protected]
42 [email protected] "break"
43 [email protected] " "
44 [email protected] "\'l"
45 [email protected] " "
46 [email protected]
47 [email protected] "92"
48 [email protected] ";"
49 [email protected] "\n "
50 [email protected] "}"
51 [email protected] "\n"
52 [email protected] "}"
53 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0034_break_expr.rs b/crates/syntax/test_data/parser/inline/ok/0034_break_expr.rs
new file mode 100644
index 000000000..1b4094636
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0034_break_expr.rs
@@ -0,0 +1,8 @@
1fn foo() {
2 loop {
3 break;
4 break 'l;
5 break 92;
6 break 'l 92;
7 }
8}
diff --git a/crates/syntax/test_data/parser/inline/ok/0037_qual_paths.rast b/crates/syntax/test_data/parser/inline/ok/0037_qual_paths.rast
new file mode 100644
index 000000000..b6379e62f
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0037_qual_paths.rast
@@ -0,0 +1,78 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "X"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected]
14 [email protected] "<"
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "A"
20 [email protected] " "
21 [email protected] "as"
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected] "B"
28 [email protected] ">"
29 [email protected] "::"
30 [email protected]
31 [email protected]
32 [email protected] "Output"
33 [email protected] ";"
34 [email protected] "\n"
35 [email protected]
36 [email protected] "fn"
37 [email protected] " "
38 [email protected]
39 [email protected] "foo"
40 [email protected]
41 [email protected] "("
42 [email protected] ")"
43 [email protected] " "
44 [email protected]
45 [email protected] "{"
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected] "<"
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected]
58 [email protected] "usize"
59 [email protected] " "
60 [email protected] "as"
61 [email protected] " "
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected]
66 [email protected] "Default"
67 [email protected] ">"
68 [email protected] "::"
69 [email protected]
70 [email protected]
71 [email protected] "default"
72 [email protected]
73 [email protected] "("
74 [email protected] ")"
75 [email protected] ";"
76 [email protected] " "
77 [email protected] "}"
78 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0037_qual_paths.rs b/crates/syntax/test_data/parser/inline/ok/0037_qual_paths.rs
new file mode 100644
index 000000000..d140692e2
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0037_qual_paths.rs
@@ -0,0 +1,2 @@
1type X = <A as B>::Output;
2fn foo() { <usize as Default>::default(); }
diff --git a/crates/syntax/test_data/parser/inline/ok/0038_full_range_expr.rast b/crates/syntax/test_data/parser/inline/ok/0038_full_range_expr.rast
new file mode 100644
index 000000000..64e705fb3
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0038_full_range_expr.rast
@@ -0,0 +1,28 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "xs"
21 [email protected] "["
22 [email protected]
23 [email protected] ".."
24 [email protected] "]"
25 [email protected] ";"
26 [email protected] " "
27 [email protected] "}"
28 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0038_full_range_expr.rs b/crates/syntax/test_data/parser/inline/ok/0038_full_range_expr.rs
new file mode 100644
index 000000000..ae21ad94c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0038_full_range_expr.rs
@@ -0,0 +1 @@
fn foo() { xs[..]; }
diff --git a/crates/syntax/test_data/parser/inline/ok/0039_type_arg.rast b/crates/syntax/test_data/parser/inline/ok/0039_type_arg.rast
new file mode 100644
index 000000000..69e98b9d6
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0039_type_arg.rast
@@ -0,0 +1,55 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected]
14 [email protected] "B"
15 [email protected]
16 [email protected] "<"
17 [email protected]
18 [email protected] "\'static"
19 [email protected] ","
20 [email protected] " "
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "i32"
27 [email protected] ","
28 [email protected] " "
29 [email protected]
30 [email protected]
31 [email protected] "1"
32 [email protected] ","
33 [email protected] " "
34 [email protected]
35 [email protected]
36 [email protected] "{"
37 [email protected] " "
38 [email protected]
39 [email protected] "2"
40 [email protected] " "
41 [email protected] "}"
42 [email protected] ","
43 [email protected] " "
44 [email protected]
45 [email protected]
46 [email protected] "Item"
47 [email protected] "="
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected] "u64"
53 [email protected] ">"
54 [email protected] ";"
55 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0039_type_arg.rs b/crates/syntax/test_data/parser/inline/ok/0039_type_arg.rs
new file mode 100644
index 000000000..0d07d7651
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0039_type_arg.rs
@@ -0,0 +1 @@
type A = B<'static, i32, 1, { 2 }, Item=u64>;
diff --git a/crates/syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast b/crates/syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
new file mode 100644
index 000000000..db5bd2849
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
@@ -0,0 +1,62 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "crate"
5 [email protected] " "
6 [email protected] "fn"
7 [email protected] " "
8 [email protected]
9 [email protected] "main"
10 [email protected]
11 [email protected] "("
12 [email protected] ")"
13 [email protected] " "
14 [email protected]
15 [email protected] "{"
16 [email protected] " "
17 [email protected] "}"
18 [email protected] "\n"
19 [email protected]
20 [email protected] "struct"
21 [email protected] " "
22 [email protected]
23 [email protected] "S"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected] "crate"
31 [email protected] " "
32 [email protected]
33 [email protected] "field"
34 [email protected] ":"
35 [email protected] " "
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected] "u32"
41 [email protected] " "
42 [email protected] "}"
43 [email protected] "\n"
44 [email protected]
45 [email protected] "struct"
46 [email protected] " "
47 [email protected]
48 [email protected] "T"
49 [email protected]
50 [email protected] "("
51 [email protected]
52 [email protected]
53 [email protected] "crate"
54 [email protected] " "
55 [email protected]
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected] "u32"
60 [email protected] ")"
61 [email protected] ";"
62 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rs b/crates/syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rs
new file mode 100644
index 000000000..e2b5f2161
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rs
@@ -0,0 +1,3 @@
1crate fn main() { }
2struct S { crate field: u32 }
3struct T(crate u32);
diff --git a/crates/syntax/test_data/parser/inline/ok/0041_trait_item.rast b/crates/syntax/test_data/parser/inline/ok/0041_trait_item.rast
new file mode 100644
index 000000000..3638462f8
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0041_trait_item.rast
@@ -0,0 +1,125 @@
1[email protected]
2 [email protected]
3 [email protected] "trait"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "U"
12 [email protected] ">"
13 [email protected] ":"
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "Hash"
22 [email protected] " "
23 [email protected] "+"
24 [email protected] " "
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "Clone"
31 [email protected] " "
32 [email protected]
33 [email protected] "where"
34 [email protected] " "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected] "U"
41 [email protected] ":"
42 [email protected] " "
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "Copy"
50 [email protected] " "
51 [email protected]
52 [email protected] "{"
53 [email protected] "}"
54 [email protected] "\n"
55 [email protected]
56 [email protected] "trait"
57 [email protected] " "
58 [email protected]
59 [email protected] "X"
60 [email protected]
61 [email protected] "<"
62 [email protected]
63 [email protected]
64 [email protected] "U"
65 [email protected] ":"
66 [email protected] " "
67 [email protected]
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected] "Debug"
74 [email protected] " "
75 [email protected] "+"
76 [email protected] " "
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected] "Display"
83 [email protected] ">"
84 [email protected] ":"
85 [email protected] " "
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected]
92 [email protected] "Hash"
93 [email protected] " "
94 [email protected] "+"
95 [email protected] " "
96 [email protected]
97 [email protected]
98 [email protected]
99 [email protected]
100 [email protected]
101 [email protected] "Clone"
102 [email protected] " "
103 [email protected]
104 [email protected] "where"
105 [email protected] " "
106 [email protected]
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected]
111 [email protected] "U"
112 [email protected] ":"
113 [email protected] " "
114 [email protected]
115 [email protected]
116 [email protected]
117 [email protected]
118 [email protected]
119 [email protected]
120 [email protected] "Copy"
121 [email protected] " "
122 [email protected]
123 [email protected] "{"
124 [email protected] "}"
125 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0041_trait_item.rs b/crates/syntax/test_data/parser/inline/ok/0041_trait_item.rs
new file mode 100644
index 000000000..32761dd03
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0041_trait_item.rs
@@ -0,0 +1,2 @@
1trait T<U>: Hash + Clone where U: Copy {}
2trait X<U: Debug + Display>: Hash + Clone where U: Copy {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0042_call_expr.rast b/crates/syntax/test_data/parser/inline/ok/0042_call_expr.rast
new file mode 100644
index 000000000..fa38e9466
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0042_call_expr.rast
@@ -0,0 +1,147 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "_"
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected] "f"
28 [email protected]
29 [email protected] "("
30 [email protected] ")"
31 [email protected] ";"
32 [email protected] "\n "
33 [email protected]
34 [email protected] "let"
35 [email protected] " "
36 [email protected]
37 [email protected] "_"
38 [email protected] " "
39 [email protected] "="
40 [email protected] " "
41 [email protected]
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "f"
49 [email protected]
50 [email protected] "("
51 [email protected] ")"
52 [email protected]
53 [email protected] "("
54 [email protected]
55 [email protected] "1"
56 [email protected] ")"
57 [email protected]
58 [email protected] "("
59 [email protected]
60 [email protected] "1"
61 [email protected] ","
62 [email protected] " "
63 [email protected]
64 [email protected] "2"
65 [email protected] ","
66 [email protected] ")"
67 [email protected] ";"
68 [email protected] "\n "
69 [email protected]
70 [email protected] "let"
71 [email protected] " "
72 [email protected]
73 [email protected] "_"
74 [email protected] " "
75 [email protected] "="
76 [email protected] " "
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected] "f"
83 [email protected]
84 [email protected] "("
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected] "<"
91 [email protected]
92 [email protected]
93 [email protected]
94 [email protected]
95 [email protected] "Foo"
96 [email protected] ">"
97 [email protected] "::"
98 [email protected]
99 [email protected]
100 [email protected] "func"
101 [email protected]
102 [email protected] "("
103 [email protected] ")"
104 [email protected] ")"
105 [email protected] ";"
106 [email protected] "\n "
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected]
111 [email protected]
112 [email protected]
113 [email protected] "f"
114 [email protected]
115 [email protected] "("
116 [email protected]
117 [email protected]
118 [email protected]
119 [email protected]
120 [email protected]
121 [email protected] "<"
122 [email protected]
123 [email protected]
124 [email protected]
125 [email protected]
126 [email protected] "Foo"
127 [email protected] " "
128 [email protected] "as"
129 [email protected] " "
130 [email protected]
131 [email protected]
132 [email protected]
133 [email protected]
134 [email protected] "Trait"
135 [email protected] ">"
136 [email protected] "::"
137 [email protected]
138 [email protected]
139 [email protected] "func"
140 [email protected]
141 [email protected] "("
142 [email protected] ")"
143 [email protected] ")"
144 [email protected] ";"
145 [email protected] "\n"
146 [email protected] "}"
147 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0042_call_expr.rs b/crates/syntax/test_data/parser/inline/ok/0042_call_expr.rs
new file mode 100644
index 000000000..ffbf46d6d
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0042_call_expr.rs
@@ -0,0 +1,6 @@
1fn foo() {
2 let _ = f();
3 let _ = f()(1)(1, 2,);
4 let _ = f(<Foo>::func());
5 f(<Foo as Trait>::func());
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0043_use_alias.rast b/crates/syntax/test_data/parser/inline/ok/0043_use_alias.rast
new file mode 100644
index 000000000..60b517230
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0043_use_alias.rast
@@ -0,0 +1,138 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected]
10 [email protected] "some"
11 [email protected] "::"
12 [email protected]
13 [email protected]
14 [email protected] "path"
15 [email protected] " "
16 [email protected]
17 [email protected] "as"
18 [email protected] " "
19 [email protected]
20 [email protected] "some_name"
21 [email protected] ";"
22 [email protected] "\n"
23 [email protected]
24 [email protected] "use"
25 [email protected] " "
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "some"
31 [email protected] "::"
32 [email protected]
33 [email protected] "{"
34 [email protected] "\n "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected] "other"
41 [email protected] "::"
42 [email protected]
43 [email protected]
44 [email protected] "path"
45 [email protected] " "
46 [email protected]
47 [email protected] "as"
48 [email protected] " "
49 [email protected]
50 [email protected] "some_other_name"
51 [email protected] ","
52 [email protected] "\n "
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected]
58 [email protected] "different"
59 [email protected] "::"
60 [email protected]
61 [email protected]
62 [email protected] "path"
63 [email protected] " "
64 [email protected]
65 [email protected] "as"
66 [email protected] " "
67 [email protected]
68 [email protected] "different_name"
69 [email protected] ","
70 [email protected] "\n "
71 [email protected]
72 [email protected]
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected] "yet"
78 [email protected] "::"
79 [email protected]
80 [email protected]
81 [email protected] "another"
82 [email protected] "::"
83 [email protected]
84 [email protected]
85 [email protected] "path"
86 [email protected] ","
87 [email protected] "\n "
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected]
92 [email protected]
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected]
97 [email protected] "running"
98 [email protected] "::"
99 [email protected]
100 [email protected]
101 [email protected] "out"
102 [email protected] "::"
103 [email protected]
104 [email protected]
105 [email protected] "of"
106 [email protected] "::"
107 [email protected]
108 [email protected]
109 [email protected] "synonyms"
110 [email protected] "::"
111 [email protected]
112 [email protected]
113 [email protected] "for_"
114 [email protected] "::"
115 [email protected]
116 [email protected]
117 [email protected] "different"
118 [email protected] "::"
119 [email protected] "*"
120 [email protected] "\n"
121 [email protected] "}"
122 [email protected] ";"
123 [email protected] "\n"
124 [email protected]
125 [email protected] "use"
126 [email protected] " "
127 [email protected]
128 [email protected]
129 [email protected]
130 [email protected]
131 [email protected] "Trait"
132 [email protected] " "
133 [email protected]
134 [email protected] "as"
135 [email protected] " "
136 [email protected] "_"
137 [email protected] ";"
138 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0043_use_alias.rs b/crates/syntax/test_data/parser/inline/ok/0043_use_alias.rs
new file mode 100644
index 000000000..9be50f877
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0043_use_alias.rs
@@ -0,0 +1,8 @@
1use some::path as some_name;
2use some::{
3 other::path as some_other_name,
4 different::path as different_name,
5 yet::another::path,
6 running::out::of::synonyms::for_::different::*
7};
8use Trait as _;
diff --git a/crates/syntax/test_data/parser/inline/ok/0044_block_items.rast b/crates/syntax/test_data/parser/inline/ok/0044_block_items.rast
new file mode 100644
index 000000000..1fd3cd0e7
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0044_block_items.rast
@@ -0,0 +1,28 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "a"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected] "fn"
16 [email protected] " "
17 [email protected]
18 [email protected] "b"
19 [email protected]
20 [email protected] "("
21 [email protected] ")"
22 [email protected] " "
23 [email protected]
24 [email protected] "{"
25 [email protected] "}"
26 [email protected] " "
27 [email protected] "}"
28 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0044_block_items.rs b/crates/syntax/test_data/parser/inline/ok/0044_block_items.rs
new file mode 100644
index 000000000..d9868718c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0044_block_items.rs
@@ -0,0 +1 @@
fn a() { fn b() {} }
diff --git a/crates/syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast b/crates/syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
new file mode 100644
index 000000000..6baea6e3c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
@@ -0,0 +1,46 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "F"
12 [email protected] ":"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "FnMut"
21 [email protected]
22 [email protected] "("
23 [email protected]
24 [email protected]
25 [email protected] "&"
26 [email protected] "mut"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "Foo"
33 [email protected]
34 [email protected] "<"
35 [email protected]
36 [email protected] "\'a"
37 [email protected] ">"
38 [email protected] ")"
39 [email protected] ">"
40 [email protected]
41 [email protected] "("
42 [email protected] ")"
43 [email protected]
44 [email protected] "{"
45 [email protected] "}"
46 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs b/crates/syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs
new file mode 100644
index 000000000..9b93442c0
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs
@@ -0,0 +1 @@
fn foo<F: FnMut(&mut Foo<'a>)>(){}
diff --git a/crates/syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast b/crates/syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast
new file mode 100644
index 000000000..e89284c14
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast
@@ -0,0 +1,20 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "("
12 [email protected]
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected] "i32"
17 [email protected] ","
18 [email protected] ")"
19 [email protected] ";"
20 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rs b/crates/syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rs
new file mode 100644
index 000000000..cb66bad24
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rs
@@ -0,0 +1 @@
type T = (i32,);
diff --git a/crates/syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast b/crates/syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast
new file mode 100644
index 000000000..4d8404e7c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast
@@ -0,0 +1,81 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "->"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "Box"
19 [email protected]
20 [email protected] "<"
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected] "T"
30 [email protected] " "
31 [email protected] "+"
32 [email protected] " "
33 [email protected]
34 [email protected] "\'f"
35 [email protected] ">"
36 [email protected] " "
37 [email protected]
38 [email protected] "{"
39 [email protected] "}"
40 [email protected] "\n"
41 [email protected]
42 [email protected] "fn"
43 [email protected] " "
44 [email protected]
45 [email protected] "foo"
46 [email protected]
47 [email protected] "("
48 [email protected] ")"
49 [email protected] " "
50 [email protected]
51 [email protected] "->"
52 [email protected] " "
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected] "Box"
58 [email protected]
59 [email protected] "<"
60 [email protected]
61 [email protected]
62 [email protected] "dyn"
63 [email protected] " "
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected]
68 [email protected]
69 [email protected]
70 [email protected] "T"
71 [email protected] " "
72 [email protected] "+"
73 [email protected] " "
74 [email protected]
75 [email protected] "\'f"
76 [email protected] ">"
77 [email protected] " "
78 [email protected]
79 [email protected] "{"
80 [email protected] "}"
81 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rs b/crates/syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rs
new file mode 100644
index 000000000..4bb0f63b7
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rs
@@ -0,0 +1,2 @@
1fn foo() -> Box<T + 'f> {}
2fn foo() -> Box<dyn T + 'f> {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0050_fn_decl.rast b/crates/syntax/test_data/parser/inline/ok/0050_fn_decl.rast
new file mode 100644
index 000000000..a5bf55131
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0050_fn_decl.rast
@@ -0,0 +1,22 @@
1[email protected]
2 [email protected]
3 [email protected] "trait"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] " "
11 [email protected]
12 [email protected] "fn"
13 [email protected] " "
14 [email protected]
15 [email protected] "foo"
16 [email protected]
17 [email protected] "("
18 [email protected] ")"
19 [email protected] ";"
20 [email protected] " "
21 [email protected] "}"
22 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0050_fn_decl.rs b/crates/syntax/test_data/parser/inline/ok/0050_fn_decl.rs
new file mode 100644
index 000000000..c9f74f7f5
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0050_fn_decl.rs
@@ -0,0 +1 @@
trait T { fn foo(); }
diff --git a/crates/syntax/test_data/parser/inline/ok/0051_unit_type.rast b/crates/syntax/test_data/parser/inline/ok/0051_unit_type.rast
new file mode 100644
index 000000000..6330dbf9e
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0051_unit_type.rast
@@ -0,0 +1,14 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "("
12 [email protected] ")"
13 [email protected] ";"
14 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0051_unit_type.rs b/crates/syntax/test_data/parser/inline/ok/0051_unit_type.rs
new file mode 100644
index 000000000..c039cf7d3
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0051_unit_type.rs
@@ -0,0 +1 @@
type T = ();
diff --git a/crates/syntax/test_data/parser/inline/ok/0052_path_type.rast b/crates/syntax/test_data/parser/inline/ok/0052_path_type.rast
new file mode 100644
index 000000000..9bc36bea7
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0052_path_type.rast
@@ -0,0 +1,70 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected]
14 [email protected] "Foo"
15 [email protected] ";"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "type"
19 [email protected] " "
20 [email protected]
21 [email protected] "B"
22 [email protected] " "
23 [email protected] "="
24 [email protected] " "
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "::"
29 [email protected]
30 [email protected] "Foo"
31 [email protected] ";"
32 [email protected] "\n"
33 [email protected]
34 [email protected] "type"
35 [email protected] " "
36 [email protected]
37 [email protected] "C"
38 [email protected] " "
39 [email protected] "="
40 [email protected] " "
41 [email protected]
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected] "self"
46 [email protected] "::"
47 [email protected]
48 [email protected]
49 [email protected] "Foo"
50 [email protected] ";"
51 [email protected] "\n"
52 [email protected]
53 [email protected] "type"
54 [email protected] " "
55 [email protected]
56 [email protected] "D"
57 [email protected] " "
58 [email protected] "="
59 [email protected] " "
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected] "super"
65 [email protected] "::"
66 [email protected]
67 [email protected]
68 [email protected] "Foo"
69 [email protected] ";"
70 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0052_path_type.rs b/crates/syntax/test_data/parser/inline/ok/0052_path_type.rs
new file mode 100644
index 000000000..bf94f32e1
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0052_path_type.rs
@@ -0,0 +1,4 @@
1type A = Foo;
2type B = ::Foo;
3type C = self::Foo;
4type D = super::Foo;
diff --git a/crates/syntax/test_data/parser/inline/ok/0053_path_expr.rast b/crates/syntax/test_data/parser/inline/ok/0053_path_expr.rast
new file mode 100644
index 000000000..c34cfeb31
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0053_path_expr.rast
@@ -0,0 +1,95 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "_"
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "a"
27 [email protected] ";"
28 [email protected] "\n "
29 [email protected]
30 [email protected] "let"
31 [email protected] " "
32 [email protected]
33 [email protected] "_"
34 [email protected] " "
35 [email protected] "="
36 [email protected] " "
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected] "a"
43 [email protected] "::"
44 [email protected]
45 [email protected]
46 [email protected] "b"
47 [email protected] ";"
48 [email protected] "\n "
49 [email protected]
50 [email protected] "let"
51 [email protected] " "
52 [email protected]
53 [email protected] "_"
54 [email protected] " "
55 [email protected] "="
56 [email protected] " "
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected] "::"
61 [email protected]
62 [email protected] "a"
63 [email protected]
64 [email protected] "::"
65 [email protected] "<"
66 [email protected]
67 [email protected]
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected] "b"
72 [email protected] ">"
73 [email protected] ";"
74 [email protected] "\n "
75 [email protected]
76 [email protected] "let"
77 [email protected] " "
78 [email protected]
79 [email protected] "_"
80 [email protected] " "
81 [email protected] "="
82 [email protected] " "
83 [email protected]
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected] "format"
88 [email protected] "!"
89 [email protected]
90 [email protected] "("
91 [email protected] ")"
92 [email protected] ";"
93 [email protected] "\n"
94 [email protected] "}"
95 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0053_path_expr.rs b/crates/syntax/test_data/parser/inline/ok/0053_path_expr.rs
new file mode 100644
index 000000000..333ebabef
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0053_path_expr.rs
@@ -0,0 +1,6 @@
1fn foo() {
2 let _ = a;
3 let _ = a::b;
4 let _ = ::a::<b>;
5 let _ = format!();
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast b/crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast
new file mode 100644
index 000000000..9ae271817
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast
@@ -0,0 +1,44 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected]
13 [email protected] "#"
14 [email protected] "["
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "serde"
19 [email protected]
20 [email protected] "("
21 [email protected] "with"
22 [email protected] " "
23 [email protected] "="
24 [email protected] " "
25 [email protected] "\"url_serde\""
26 [email protected] ")"
27 [email protected] "]"
28 [email protected] "\n "
29 [email protected]
30 [email protected] "pub"
31 [email protected] " "
32 [email protected]
33 [email protected] "uri"
34 [email protected] ":"
35 [email protected] " "
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected] "Uri"
41 [email protected] ","
42 [email protected] "\n"
43 [email protected] "}"
44 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rs b/crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rs
new file mode 100644
index 000000000..4744d8ac0
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rs
@@ -0,0 +1,4 @@
1struct S {
2 #[serde(with = "url_serde")]
3 pub uri: Uri,
4}
diff --git a/crates/syntax/test_data/parser/inline/ok/0055_literal_pattern.rast b/crates/syntax/test_data/parser/inline/ok/0055_literal_pattern.rast
new file mode 100644
index 000000000..68bb43852
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0055_literal_pattern.rast
@@ -0,0 +1,76 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "match"
16 [email protected] " "
17 [email protected]
18 [email protected] "("
19 [email protected] ")"
20 [email protected] " "
21 [email protected]
22 [email protected] "{"
23 [email protected] "\n "
24 [email protected]
25 [email protected]
26 [email protected] "-"
27 [email protected]
28 [email protected] "1"
29 [email protected] " "
30 [email protected] "=>"
31 [email protected] " "
32 [email protected]
33 [email protected] "("
34 [email protected] ")"
35 [email protected] ","
36 [email protected] "\n "
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected] "92"
41 [email protected] " "
42 [email protected] "=>"
43 [email protected] " "
44 [email protected]
45 [email protected] "("
46 [email protected] ")"
47 [email protected] ","
48 [email protected] "\n "
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected] "\'c\'"
53 [email protected] " "
54 [email protected] "=>"
55 [email protected] " "
56 [email protected]
57 [email protected] "("
58 [email protected] ")"
59 [email protected] ","
60 [email protected] "\n "
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected] "\"hello\""
65 [email protected] " "
66 [email protected] "=>"
67 [email protected] " "
68 [email protected]
69 [email protected] "("
70 [email protected] ")"
71 [email protected] ","
72 [email protected] "\n "
73 [email protected] "}"
74 [email protected] "\n"
75 [email protected] "}"
76 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0055_literal_pattern.rs b/crates/syntax/test_data/parser/inline/ok/0055_literal_pattern.rs
new file mode 100644
index 000000000..6dfd67b4c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0055_literal_pattern.rs
@@ -0,0 +1,8 @@
1fn main() {
2 match () {
3 -1 => (),
4 92 => (),
5 'c' => (),
6 "hello" => (),
7 }
8}
diff --git a/crates/syntax/test_data/parser/inline/ok/0056_where_clause.rast b/crates/syntax/test_data/parser/inline/ok/0056_where_clause.rast
new file mode 100644
index 000000000..28129c50c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0056_where_clause.rast
@@ -0,0 +1,110 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] "\n"
11 [email protected]
12 [email protected] "where"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "\'a"
16 [email protected] ":"
17 [email protected] " "
18 [email protected]
19 [email protected]
20 [email protected] "\'b"
21 [email protected] " "
22 [email protected] "+"
23 [email protected] " "
24 [email protected]
25 [email protected] "\'c"
26 [email protected] ","
27 [email protected] "\n "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "T"
34 [email protected] ":"
35 [email protected] " "
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected] "Clone"
43 [email protected] " "
44 [email protected] "+"
45 [email protected] " "
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected] "Copy"
52 [email protected] " "
53 [email protected] "+"
54 [email protected] " "
55 [email protected]
56 [email protected] "\'static"
57 [email protected] ","
58 [email protected] "\n "
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected] "Iterator"
66 [email protected] "::"
67 [email protected]
68 [email protected]
69 [email protected] "Item"
70 [email protected] ":"
71 [email protected] " "
72 [email protected]
73 [email protected]
74 [email protected] "\'a"
75 [email protected] ","
76 [email protected] "\n "
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected] "<"
83 [email protected]
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected] "T"
88 [email protected] " "
89 [email protected] "as"
90 [email protected] " "
91 [email protected]
92 [email protected]
93 [email protected]
94 [email protected]
95 [email protected] "Iterator"
96 [email protected] ">"
97 [email protected] "::"
98 [email protected]
99 [email protected]
100 [email protected] "Item"
101 [email protected] ":"
102 [email protected] " "
103 [email protected]
104 [email protected]
105 [email protected] "\'a"
106 [email protected] "\n"
107 [email protected]
108 [email protected] "{"
109 [email protected] "}"
110 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0056_where_clause.rs b/crates/syntax/test_data/parser/inline/ok/0056_where_clause.rs
new file mode 100644
index 000000000..19d7e571b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0056_where_clause.rs
@@ -0,0 +1,7 @@
1fn foo()
2where
3 'a: 'b + 'c,
4 T: Clone + Copy + 'static,
5 Iterator::Item: 'a,
6 <T as Iterator>::Item: 'a
7{}
diff --git a/crates/syntax/test_data/parser/inline/ok/0058_range_pat.rast b/crates/syntax/test_data/parser/inline/ok/0058_range_pat.rast
new file mode 100644
index 000000000..3e72f9671
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0058_range_pat.rast
@@ -0,0 +1,82 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "match"
16 [email protected] " "
17 [email protected]
18 [email protected] "92"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "\n "
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected] "0"
28 [email protected] " "
29 [email protected] "..."
30 [email protected] " "
31 [email protected]
32 [email protected]
33 [email protected] "100"
34 [email protected] " "
35 [email protected] "=>"
36 [email protected] " "
37 [email protected]
38 [email protected] "("
39 [email protected] ")"
40 [email protected] ","
41 [email protected] "\n "
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected] "101"
47 [email protected] " "
48 [email protected] "..="
49 [email protected] " "
50 [email protected]
51 [email protected]
52 [email protected] "200"
53 [email protected] " "
54 [email protected] "=>"
55 [email protected] " "
56 [email protected]
57 [email protected] "("
58 [email protected] ")"
59 [email protected] ","
60 [email protected] "\n "
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected] "200"
66 [email protected] " "
67 [email protected] ".."
68 [email protected] " "
69 [email protected]
70 [email protected]
71 [email protected] "301"
72 [email protected] "=>"
73 [email protected] " "
74 [email protected]
75 [email protected] "("
76 [email protected] ")"
77 [email protected] ","
78 [email protected] "\n "
79 [email protected] "}"
80 [email protected] "\n"
81 [email protected] "}"
82 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0058_range_pat.rs b/crates/syntax/test_data/parser/inline/ok/0058_range_pat.rs
new file mode 100644
index 000000000..c12ab6fce
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0058_range_pat.rs
@@ -0,0 +1,7 @@
1fn main() {
2 match 92 {
3 0 ... 100 => (),
4 101 ..= 200 => (),
5 200 .. 301=> (),
6 }
7}
diff --git a/crates/syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast b/crates/syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast
new file mode 100644
index 000000000..984829317
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast
@@ -0,0 +1,58 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "match"
16 [email protected] " "
17 [email protected]
18 [email protected] "("
19 [email protected] ")"
20 [email protected] " "
21 [email protected]
22 [email protected] "{"
23 [email protected] "\n "
24 [email protected]
25 [email protected]
26 [email protected] "_"
27 [email protected] " "
28 [email protected] "=>"
29 [email protected] " "
30 [email protected]
31 [email protected] "("
32 [email protected] ")"
33 [email protected] ","
34 [email protected] "\n "
35 [email protected]
36 [email protected]
37 [email protected] "_"
38 [email protected] " "
39 [email protected] "=>"
40 [email protected] " "
41 [email protected]
42 [email protected] "{"
43 [email protected] "}"
44 [email protected] "\n "
45 [email protected]
46 [email protected]
47 [email protected] "_"
48 [email protected] " "
49 [email protected] "=>"
50 [email protected] " "
51 [email protected]
52 [email protected] "("
53 [email protected] ")"
54 [email protected] "\n "
55 [email protected] "}"
56 [email protected] "\n"
57 [email protected] "}"
58 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0059_match_arms_commas.rs b/crates/syntax/test_data/parser/inline/ok/0059_match_arms_commas.rs
new file mode 100644
index 000000000..1f25d577a
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0059_match_arms_commas.rs
@@ -0,0 +1,7 @@
1fn foo() {
2 match () {
3 _ => (),
4 _ => {}
5 _ => ()
6 }
7}
diff --git a/crates/syntax/test_data/parser/inline/ok/0060_extern_crate.rast b/crates/syntax/test_data/parser/inline/ok/0060_extern_crate.rast
new file mode 100644
index 000000000..25e1777d1
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0060_extern_crate.rast
@@ -0,0 +1,10 @@
1[email protected]
2 [email protected]
3 [email protected] "extern"
4 [email protected] " "
5 [email protected] "crate"
6 [email protected] " "
7 [email protected]
8 [email protected] "foo"
9 [email protected] ";"
10 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0060_extern_crate.rs b/crates/syntax/test_data/parser/inline/ok/0060_extern_crate.rs
new file mode 100644
index 000000000..49af74e1b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0060_extern_crate.rs
@@ -0,0 +1 @@
extern crate foo;
diff --git a/crates/syntax/test_data/parser/inline/ok/0061_record_lit.rast b/crates/syntax/test_data/parser/inline/ok/0061_record_lit.rast
new file mode 100644
index 000000000..a9ae1aa59
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0061_record_lit.rast
@@ -0,0 +1,124 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "S"
20 [email protected] " "
21 [email protected]
22 [email protected] "{"
23 [email protected] "}"
24 [email protected] ";"
25 [email protected] "\n "
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "S"
32 [email protected] " "
33 [email protected]
34 [email protected] "{"
35 [email protected] " "
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "x"
42 [email protected] ","
43 [email protected] " "
44 [email protected]
45 [email protected]
46 [email protected] "y"
47 [email protected] ":"
48 [email protected] " "
49 [email protected]
50 [email protected] "32"
51 [email protected] ","
52 [email protected] " "
53 [email protected] "}"
54 [email protected] ";"
55 [email protected] "\n "
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "S"
62 [email protected] " "
63 [email protected]
64 [email protected] "{"
65 [email protected] " "
66 [email protected]
67 [email protected]
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected] "x"
72 [email protected] ","
73 [email protected] " "
74 [email protected]
75 [email protected]
76 [email protected] "y"
77 [email protected] ":"
78 [email protected] " "
79 [email protected]
80 [email protected] "32"
81 [email protected] ","
82 [email protected] " "
83 [email protected] ".."
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected] "Default"
91 [email protected] "::"
92 [email protected]
93 [email protected]
94 [email protected] "default"
95 [email protected]
96 [email protected] "("
97 [email protected] ")"
98 [email protected] " "
99 [email protected] "}"
100 [email protected] ";"
101 [email protected] "\n "
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected] "TupleStruct"
108 [email protected] " "
109 [email protected]
110 [email protected] "{"
111 [email protected] " "
112 [email protected]
113 [email protected]
114 [email protected] "0"
115 [email protected] ":"
116 [email protected] " "
117 [email protected]
118 [email protected] "1"
119 [email protected] " "
120 [email protected] "}"
121 [email protected] ";"
122 [email protected] "\n"
123 [email protected] "}"
124 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0061_record_lit.rs b/crates/syntax/test_data/parser/inline/ok/0061_record_lit.rs
new file mode 100644
index 000000000..6285e5549
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0061_record_lit.rs
@@ -0,0 +1,6 @@
1fn foo() {
2 S {};
3 S { x, y: 32, };
4 S { x, y: 32, ..Default::default() };
5 TupleStruct { 0: 1 };
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0062_mod_contents.rast b/crates/syntax/test_data/parser/inline/ok/0062_mod_contents.rast
new file mode 100644
index 000000000..de8217064
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0062_mod_contents.rast
@@ -0,0 +1,66 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "}"
14 [email protected] "\n"
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "macro_rules"
20 [email protected] "!"
21 [email protected] " "
22 [email protected]
23 [email protected] "foo"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "}"
28 [email protected] "\n"
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "foo"
35 [email protected] "::"
36 [email protected]
37 [email protected]
38 [email protected] "bar"
39 [email protected] "!"
40 [email protected]
41 [email protected] "("
42 [email protected] ")"
43 [email protected] ";"
44 [email protected] "\n"
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "super"
50 [email protected] "::"
51 [email protected]
52 [email protected]
53 [email protected] "baz"
54 [email protected] "!"
55 [email protected] " "
56 [email protected]
57 [email protected] "{"
58 [email protected] "}"
59 [email protected] "\n"
60 [email protected]
61 [email protected] "struct"
62 [email protected] " "
63 [email protected]
64 [email protected] "S"
65 [email protected] ";"
66 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0062_mod_contents.rs b/crates/syntax/test_data/parser/inline/ok/0062_mod_contents.rs
new file mode 100644
index 000000000..24a15c5c5
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0062_mod_contents.rs
@@ -0,0 +1,5 @@
1fn foo() {}
2macro_rules! foo {}
3foo::bar!();
4super::baz! {}
5struct S;
diff --git a/crates/syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast b/crates/syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast
new file mode 100644
index 000000000..4368930cc
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast
@@ -0,0 +1,23 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected] " "
5 [email protected] "!"
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected]
10 [email protected] "Send"
11 [email protected] " "
12 [email protected] "for"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "X"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "}"
23 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0063_impl_def_neg.rs b/crates/syntax/test_data/parser/inline/ok/0063_impl_def_neg.rs
new file mode 100644
index 000000000..b7527c870
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0063_impl_def_neg.rs
@@ -0,0 +1 @@
impl !Send for X {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0064_if_expr.rast b/crates/syntax/test_data/parser/inline/ok/0064_if_expr.rast
new file mode 100644
index 000000000..587160003
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0064_if_expr.rast
@@ -0,0 +1,121 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "if"
17 [email protected] " "
18 [email protected]
19 [email protected]
20 [email protected] "true"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] ";"
26 [email protected] "\n "
27 [email protected]
28 [email protected]
29 [email protected] "if"
30 [email protected] " "
31 [email protected]
32 [email protected]
33 [email protected] "true"
34 [email protected] " "
35 [email protected]
36 [email protected] "{"
37 [email protected] "}"
38 [email protected] " "
39 [email protected] "else"
40 [email protected] " "
41 [email protected]
42 [email protected] "{"
43 [email protected] "}"
44 [email protected] ";"
45 [email protected] "\n "
46 [email protected]
47 [email protected]
48 [email protected] "if"
49 [email protected] " "
50 [email protected]
51 [email protected]
52 [email protected] "true"
53 [email protected] " "
54 [email protected]
55 [email protected] "{"
56 [email protected] "}"
57 [email protected] " "
58 [email protected] "else"
59 [email protected] " "
60 [email protected]
61 [email protected] "if"
62 [email protected] " "
63 [email protected]
64 [email protected]
65 [email protected] "false"
66 [email protected] " "
67 [email protected]
68 [email protected] "{"
69 [email protected] "}"
70 [email protected] " "
71 [email protected] "else"
72 [email protected] " "
73 [email protected]
74 [email protected] "{"
75 [email protected] "}"
76 [email protected] ";"
77 [email protected] "\n "
78 [email protected]
79 [email protected]
80 [email protected] "if"
81 [email protected] " "
82 [email protected]
83 [email protected]
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected] "S"
88 [email protected] " "
89 [email protected]
90 [email protected] "{"
91 [email protected] "}"
92 [email protected] ";"
93 [email protected] "\n "
94 [email protected]
95 [email protected]
96 [email protected] "if"
97 [email protected] " "
98 [email protected]
99 [email protected]
100 [email protected] "{"
101 [email protected] " "
102 [email protected]
103 [email protected] "true"
104 [email protected] " "
105 [email protected] "}"
106 [email protected] " "
107 [email protected]
108 [email protected] "{"
109 [email protected] " "
110 [email protected] "}"
111 [email protected] " "
112 [email protected] "else"
113 [email protected] " "
114 [email protected]
115 [email protected] "{"
116 [email protected] " "
117 [email protected] "}"
118 [email protected] ";"
119 [email protected] "\n"
120 [email protected] "}"
121 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0064_if_expr.rs b/crates/syntax/test_data/parser/inline/ok/0064_if_expr.rs
new file mode 100644
index 000000000..40f227ba3
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0064_if_expr.rs
@@ -0,0 +1,7 @@
1fn foo() {
2 if true {};
3 if true {} else {};
4 if true {} else if false {} else {};
5 if S {};
6 if { true } { } else { };
7}
diff --git a/crates/syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast b/crates/syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast
new file mode 100644
index 000000000..3a7fcfe24
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast
@@ -0,0 +1,43 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "dyn"
12 [email protected] " "
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "Iterator"
20 [email protected]
21 [email protected] "<"
22 [email protected]
23 [email protected]
24 [email protected] "Item"
25 [email protected] "="
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "Foo"
31 [email protected]
32 [email protected] "<"
33 [email protected]
34 [email protected] "\'a"
35 [email protected] ">"
36 [email protected] ">"
37 [email protected] " "
38 [email protected] "+"
39 [email protected] " "
40 [email protected]
41 [email protected] "\'a"
42 [email protected] ";"
43 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rs b/crates/syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rs
new file mode 100644
index 000000000..c3ecabb99
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rs
@@ -0,0 +1 @@
type A = dyn Iterator<Item=Foo<'a>> + 'a;
diff --git a/crates/syntax/test_data/parser/inline/ok/0066_match_arm.rast b/crates/syntax/test_data/parser/inline/ok/0066_match_arm.rast
new file mode 100644
index 000000000..57d0661a5
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0066_match_arm.rast
@@ -0,0 +1,151 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "match"
17 [email protected] " "
18 [email protected]
19 [email protected] "("
20 [email protected] ")"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "\n "
25 [email protected]
26 [email protected]
27 [email protected] "_"
28 [email protected] " "
29 [email protected] "=>"
30 [email protected] " "
31 [email protected]
32 [email protected] "("
33 [email protected] ")"
34 [email protected] ","
35 [email protected] "\n "
36 [email protected]
37 [email protected]
38 [email protected] "_"
39 [email protected] " "
40 [email protected]
41 [email protected] "if"
42 [email protected] " "
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "Test"
49 [email protected] " "
50 [email protected] ">"
51 [email protected] " "
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected] "Test"
57 [email protected]
58 [email protected] "{"
59 [email protected]
60 [email protected]
61 [email protected] "field"
62 [email protected] ":"
63 [email protected] " "
64 [email protected]
65 [email protected] "0"
66 [email protected] "}"
67 [email protected] " "
68 [email protected] "=>"
69 [email protected] " "
70 [email protected]
71 [email protected] "("
72 [email protected] ")"
73 [email protected] ","
74 [email protected] "\n "
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected] "X"
80 [email protected] " "
81 [email protected] "|"
82 [email protected] " "
83 [email protected]
84 [email protected]
85 [email protected] "Y"
86 [email protected] " "
87 [email protected]
88 [email protected] "if"
89 [email protected] " "
90 [email protected]
91 [email protected]
92 [email protected]
93 [email protected]
94 [email protected] "Z"
95 [email protected] " "
96 [email protected] "=>"
97 [email protected] " "
98 [email protected]
99 [email protected] "("
100 [email protected] ")"
101 [email protected] ","
102 [email protected] "\n "
103 [email protected]
104 [email protected] "|"
105 [email protected] " "
106 [email protected]
107 [email protected]
108 [email protected]
109 [email protected] "X"
110 [email protected] " "
111 [email protected] "|"
112 [email protected] " "
113 [email protected]
114 [email protected]
115 [email protected] "Y"
116 [email protected] " "
117 [email protected]
118 [email protected] "if"
119 [email protected] " "
120 [email protected]
121 [email protected]
122 [email protected]
123 [email protected]
124 [email protected] "Z"
125 [email protected] " "
126 [email protected] "=>"
127 [email protected] " "
128 [email protected]
129 [email protected] "("
130 [email protected] ")"
131 [email protected] ","
132 [email protected] "\n "
133 [email protected]
134 [email protected] "|"
135 [email protected] " "
136 [email protected]
137 [email protected]
138 [email protected] "X"
139 [email protected] " "
140 [email protected] "=>"
141 [email protected] " "
142 [email protected]
143 [email protected] "("
144 [email protected] ")"
145 [email protected] ","
146 [email protected] "\n "
147 [email protected] "}"
148 [email protected] ";"
149 [email protected] "\n"
150 [email protected] "}"
151 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0066_match_arm.rs b/crates/syntax/test_data/parser/inline/ok/0066_match_arm.rs
new file mode 100644
index 000000000..9e009e24f
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0066_match_arm.rs
@@ -0,0 +1,9 @@
1fn foo() {
2 match () {
3 _ => (),
4 _ if Test > Test{field: 0} => (),
5 X | Y if Z => (),
6 | X | Y if Z => (),
7 | X => (),
8 };
9}
diff --git a/crates/syntax/test_data/parser/inline/ok/0067_crate_path.rast b/crates/syntax/test_data/parser/inline/ok/0067_crate_path.rast
new file mode 100644
index 000000000..702f2e0b0
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0067_crate_path.rast
@@ -0,0 +1,15 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "crate"
10 [email protected] "::"
11 [email protected]
12 [email protected]
13 [email protected] "foo"
14 [email protected] ";"
15 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0067_crate_path.rs b/crates/syntax/test_data/parser/inline/ok/0067_crate_path.rs
new file mode 100644
index 000000000..1bbb5930b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0067_crate_path.rs
@@ -0,0 +1 @@
use crate::foo;
diff --git a/crates/syntax/test_data/parser/inline/ok/0068_union_items.rast b/crates/syntax/test_data/parser/inline/ok/0068_union_items.rast
new file mode 100644
index 000000000..6589e4795
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0068_union_items.rast
@@ -0,0 +1,46 @@
1[email protected]
2 [email protected]
3 [email protected] "union"
4 [email protected] " "
5 [email protected]
6 [email protected] "Foo"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "}"
11 [email protected] "\n"
12 [email protected]
13 [email protected] "union"
14 [email protected] " "
15 [email protected]
16 [email protected] "Foo"
17 [email protected] " "
18 [email protected]
19 [email protected] "{"
20 [email protected] "\n "
21 [email protected]
22 [email protected]
23 [email protected] "a"
24 [email protected] ":"
25 [email protected] " "
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "i32"
31 [email protected] ","
32 [email protected] "\n "
33 [email protected]
34 [email protected]
35 [email protected] "b"
36 [email protected] ":"
37 [email protected] " "
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected] "f32"
43 [email protected] ","
44 [email protected] "\n"
45 [email protected] "}"
46 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0068_union_items.rs b/crates/syntax/test_data/parser/inline/ok/0068_union_items.rs
new file mode 100644
index 000000000..b7dd610d8
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0068_union_items.rs
@@ -0,0 +1,5 @@
1union Foo {}
2union Foo {
3 a: i32,
4 b: f32,
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast b/crates/syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast
new file mode 100644
index 000000000..c4c5bc51e
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast
@@ -0,0 +1,37 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected] "crate"
9 [email protected] "::"
10 [email protected]
11 [email protected] "{"
12 [email protected]
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected] "Item"
17 [email protected] "}"
18 [email protected] ";"
19 [email protected] "\n"
20 [email protected]
21 [email protected] "use"
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "self"
27 [email protected] "::"
28 [email protected]
29 [email protected] "{"
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "Item"
35 [email protected] "}"
36 [email protected] ";"
37 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rs b/crates/syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rs
new file mode 100644
index 000000000..c0a3d634e
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rs
@@ -0,0 +1,2 @@
1use crate::{Item};
2use self::{Item};
diff --git a/crates/syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast b/crates/syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
new file mode 100644
index 000000000..36c9cd5bb
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
@@ -0,0 +1,50 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "_"
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected]
24 [email protected] "{"
25 [email protected]
26 [email protected] "1"
27 [email protected] "}"
28 [email protected] " "
29 [email protected] "&"
30 [email protected] " "
31 [email protected]
32 [email protected] "2"
33 [email protected] ";"
34 [email protected] "\n "
35 [email protected]
36 [email protected]
37 [email protected] "{"
38 [email protected]
39 [email protected] "1"
40 [email protected] "}"
41 [email protected] " "
42 [email protected]
43 [email protected]
44 [email protected] "&"
45 [email protected]
46 [email protected] "2"
47 [email protected] ";"
48 [email protected] "\n"
49 [email protected] "}"
50 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rs b/crates/syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rs
new file mode 100644
index 000000000..37b843742
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rs
@@ -0,0 +1,4 @@
1fn foo() {
2 let _ = {1} & 2;
3 {1} &2;
4}
diff --git a/crates/syntax/test_data/parser/inline/ok/0071_match_expr.rast b/crates/syntax/test_data/parser/inline/ok/0071_match_expr.rast
new file mode 100644
index 000000000..d34d98ced
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0071_match_expr.rast
@@ -0,0 +1,93 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "match"
17 [email protected] " "
18 [email protected]
19 [email protected] "("
20 [email protected] ")"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] " "
25 [email protected] "}"
26 [email protected] ";"
27 [email protected] "\n "
28 [email protected]
29 [email protected]
30 [email protected] "match"
31 [email protected] " "
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected] "S"
37 [email protected] " "
38 [email protected]
39 [email protected] "{"
40 [email protected] "}"
41 [email protected] ";"
42 [email protected] "\n "
43 [email protected]
44 [email protected]
45 [email protected] "match"
46 [email protected] " "
47 [email protected]
48 [email protected] "{"
49 [email protected] " "
50 [email protected] "}"
51 [email protected] " "
52 [email protected]
53 [email protected] "{"
54 [email protected] " "
55 [email protected]
56 [email protected]
57 [email protected] "_"
58 [email protected] " "
59 [email protected] "=>"
60 [email protected] " "
61 [email protected]
62 [email protected] "("
63 [email protected] ")"
64 [email protected] " "
65 [email protected] "}"
66 [email protected] ";"
67 [email protected] "\n "
68 [email protected]
69 [email protected]
70 [email protected] "match"
71 [email protected] " "
72 [email protected]
73 [email protected] "{"
74 [email protected] " "
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected] "S"
80 [email protected] " "
81 [email protected]
82 [email protected] "{"
83 [email protected] "}"
84 [email protected] " "
85 [email protected] "}"
86 [email protected] " "
87 [email protected]
88 [email protected] "{"
89 [email protected] "}"
90 [email protected] ";"
91 [email protected] "\n"
92 [email protected] "}"
93 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0071_match_expr.rs b/crates/syntax/test_data/parser/inline/ok/0071_match_expr.rs
new file mode 100644
index 000000000..c4021dc10
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0071_match_expr.rs
@@ -0,0 +1,6 @@
1fn foo() {
2 match () { };
3 match S {};
4 match { } { _ => () };
5 match { S {} } {};
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0072_return_expr.rast b/crates/syntax/test_data/parser/inline/ok/0072_return_expr.rast
new file mode 100644
index 000000000..437d7ac04
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0072_return_expr.rast
@@ -0,0 +1,28 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "return"
17 [email protected] ";"
18 [email protected] "\n "
19 [email protected]
20 [email protected]
21 [email protected] "return"
22 [email protected] " "
23 [email protected]
24 [email protected] "92"
25 [email protected] ";"
26 [email protected] "\n"
27 [email protected] "}"
28 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0072_return_expr.rs b/crates/syntax/test_data/parser/inline/ok/0072_return_expr.rs
new file mode 100644
index 000000000..5733666b6
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0072_return_expr.rs
@@ -0,0 +1,4 @@
1fn foo() {
2 return;
3 return 92;
4}
diff --git a/crates/syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast b/crates/syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast
new file mode 100644
index 000000000..00cce69e6
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast
@@ -0,0 +1,20 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "Result"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ">"
13 [email protected] " "
14 [email protected] "="
15 [email protected] " "
16 [email protected]
17 [email protected] "("
18 [email protected] ")"
19 [email protected] ";"
20 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0073_type_item_type_params.rs b/crates/syntax/test_data/parser/inline/ok/0073_type_item_type_params.rs
new file mode 100644
index 000000000..defd110c4
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0073_type_item_type_params.rs
@@ -0,0 +1 @@
type Result<T> = ();
diff --git a/crates/syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast b/crates/syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
new file mode 100644
index 000000000..3a789b9f5
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
@@ -0,0 +1,59 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "match"
16 [email protected] " "
17 [email protected]
18 [email protected] "("
19 [email protected] ")"
20 [email protected] " "
21 [email protected]
22 [email protected] "{"
23 [email protected] "\n "
24 [email protected]
25 [email protected]
26 [email protected] "_"
27 [email protected] " "
28 [email protected] "=>"
29 [email protected] " "
30 [email protected]
31 [email protected] "{"
32 [email protected] "}"
33 [email protected] "\n "
34 [email protected]
35 [email protected]
36 [email protected] "("
37 [email protected] ")"
38 [email protected] " "
39 [email protected] "=>"
40 [email protected] " "
41 [email protected]
42 [email protected] "{"
43 [email protected] "}"
44 [email protected] "\n "
45 [email protected]
46 [email protected]
47 [email protected] "["
48 [email protected] "]"
49 [email protected] " "
50 [email protected] "=>"
51 [email protected] " "
52 [email protected]
53 [email protected] "{"
54 [email protected] "}"
55 [email protected] "\n "
56 [email protected] "}"
57 [email protected] "\n"
58 [email protected] "}"
59 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rs b/crates/syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rs
new file mode 100644
index 000000000..2edd578f9
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rs
@@ -0,0 +1,7 @@
1fn foo() {
2 match () {
3 _ => {}
4 () => {}
5 [] => {}
6 }
7}
diff --git a/crates/syntax/test_data/parser/inline/ok/0075_block.rast b/crates/syntax/test_data/parser/inline/ok/0075_block.rast
new file mode 100644
index 000000000..e847ce9b2
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0075_block.rast
@@ -0,0 +1,86 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "a"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "}"
14 [email protected] "\n"
15 [email protected]
16 [email protected] "fn"
17 [email protected] " "
18 [email protected]
19 [email protected] "b"
20 [email protected]
21 [email protected] "("
22 [email protected] ")"
23 [email protected] " "
24 [email protected]
25 [email protected] "{"
26 [email protected] " "
27 [email protected]
28 [email protected] "let"
29 [email protected] " "
30 [email protected]
31 [email protected] "_"
32 [email protected] " "
33 [email protected] "="
34 [email protected] " "
35 [email protected]
36 [email protected] "1"
37 [email protected] ";"
38 [email protected] " "
39 [email protected] "}"
40 [email protected] "\n"
41 [email protected]
42 [email protected] "fn"
43 [email protected] " "
44 [email protected]
45 [email protected] "c"
46 [email protected]
47 [email protected] "("
48 [email protected] ")"
49 [email protected] " "
50 [email protected]
51 [email protected] "{"
52 [email protected] " "
53 [email protected]
54 [email protected]
55 [email protected] "1"
56 [email protected] ";"
57 [email protected] " "
58 [email protected]
59 [email protected]
60 [email protected] "2"
61 [email protected] ";"
62 [email protected] " "
63 [email protected] "}"
64 [email protected] "\n"
65 [email protected]
66 [email protected] "fn"
67 [email protected] " "
68 [email protected]
69 [email protected] "d"
70 [email protected]
71 [email protected] "("
72 [email protected] ")"
73 [email protected] " "
74 [email protected]
75 [email protected] "{"
76 [email protected] " "
77 [email protected]
78 [email protected]
79 [email protected] "1"
80 [email protected] ";"
81 [email protected] " "
82 [email protected]
83 [email protected] "2"
84 [email protected] " "
85 [email protected] "}"
86 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0075_block.rs b/crates/syntax/test_data/parser/inline/ok/0075_block.rs
new file mode 100644
index 000000000..81f44c533
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0075_block.rs
@@ -0,0 +1,4 @@
1fn a() {}
2fn b() { let _ = 1; }
3fn c() { 1; 2; }
4fn d() { 1; 2 }
diff --git a/crates/syntax/test_data/parser/inline/ok/0076_function_where_clause.rast b/crates/syntax/test_data/parser/inline/ok/0076_function_where_clause.rast
new file mode 100644
index 000000000..96217a7fd
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0076_function_where_clause.rast
@@ -0,0 +1,39 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ">"
13 [email protected]
14 [email protected] "("
15 [email protected] ")"
16 [email protected] " "
17 [email protected]
18 [email protected] "where"
19 [email protected] " "
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "T"
26 [email protected] ":"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "Copy"
35 [email protected] " "
36 [email protected]
37 [email protected] "{"
38 [email protected] "}"
39 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0076_function_where_clause.rs b/crates/syntax/test_data/parser/inline/ok/0076_function_where_clause.rs
new file mode 100644
index 000000000..f0920b2a8
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0076_function_where_clause.rs
@@ -0,0 +1 @@
fn foo<T>() where T: Copy {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0077_try_expr.rast b/crates/syntax/test_data/parser/inline/ok/0077_try_expr.rast
new file mode 100644
index 000000000..33e6fb93f
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0077_try_expr.rast
@@ -0,0 +1,25 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "x"
21 [email protected] "?"
22 [email protected] ";"
23 [email protected] "\n"
24 [email protected] "}"
25 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0077_try_expr.rs b/crates/syntax/test_data/parser/inline/ok/0077_try_expr.rs
new file mode 100644
index 000000000..8b74f7bc8
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0077_try_expr.rs
@@ -0,0 +1,3 @@
1fn foo() {
2 x?;
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0078_type_item.rast b/crates/syntax/test_data/parser/inline/ok/0078_type_item.rast
new file mode 100644
index 000000000..2befc8388
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0078_type_item.rast
@@ -0,0 +1,16 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "Foo"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected]
14 [email protected] "Bar"
15 [email protected] ";"
16 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0078_type_item.rs b/crates/syntax/test_data/parser/inline/ok/0078_type_item.rs
new file mode 100644
index 000000000..04c0344fa
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0078_type_item.rs
@@ -0,0 +1 @@
type Foo = Bar;
diff --git a/crates/syntax/test_data/parser/inline/ok/0079_impl_def.rast b/crates/syntax/test_data/parser/inline/ok/0079_impl_def.rast
new file mode 100644
index 000000000..209711fc4
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0079_impl_def.rast
@@ -0,0 +1,14 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "Foo"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "}"
14 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0079_impl_def.rs b/crates/syntax/test_data/parser/inline/ok/0079_impl_def.rs
new file mode 100644
index 000000000..d6337f6b3
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0079_impl_def.rs
@@ -0,0 +1 @@
impl Foo {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0080_postfix_range.rast b/crates/syntax/test_data/parser/inline/ok/0080_postfix_range.rast
new file mode 100644
index 000000000..b3003577c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0080_postfix_range.rast
@@ -0,0 +1,95 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "x"
20 [email protected] " "
21 [email protected] "="
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected] "1"
26 [email protected] ".."
27 [email protected] ";"
28 [email protected] "\n "
29 [email protected]
30 [email protected]
31 [email protected] "match"
32 [email protected] " "
33 [email protected]
34 [email protected]
35 [email protected] "1"
36 [email protected] ".."
37 [email protected] " "
38 [email protected]
39 [email protected] "{"
40 [email protected] " "
41 [email protected]
42 [email protected]
43 [email protected] "_"
44 [email protected] " "
45 [email protected] "=>"
46 [email protected] " "
47 [email protected]
48 [email protected] "("
49 [email protected] ")"
50 [email protected] " "
51 [email protected] "}"
52 [email protected] ";"
53 [email protected] "\n "
54 [email protected]
55 [email protected]
56 [email protected] "match"
57 [email protected] " "
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected] "a"
65 [email protected] "."
66 [email protected]
67 [email protected] "b"
68 [email protected]
69 [email protected] "("
70 [email protected] ")"
71 [email protected] ".."
72 [email protected]
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected] "S"
77 [email protected] " "
78 [email protected]
79 [email protected] "{"
80 [email protected] " "
81 [email protected]
82 [email protected]
83 [email protected] "_"
84 [email protected] " "
85 [email protected] "=>"
86 [email protected] " "
87 [email protected]
88 [email protected] "("
89 [email protected] ")"
90 [email protected] " "
91 [email protected] "}"
92 [email protected] ";"
93 [email protected] "\n"
94 [email protected] "}"
95 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0080_postfix_range.rs b/crates/syntax/test_data/parser/inline/ok/0080_postfix_range.rs
new file mode 100644
index 000000000..e7b7cfc6b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0080_postfix_range.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 let x = 1..;
3 match 1.. { _ => () };
4 match a.b()..S { _ => () };
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0081_for_type.rast b/crates/syntax/test_data/parser/inline/ok/0081_for_type.rast
new file mode 100644
index 000000000..f319d5141
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0081_for_type.rast
@@ -0,0 +1,112 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "for"
12 [email protected]
13 [email protected] "<"
14 [email protected]
15 [email protected] "\'a"
16 [email protected] ">"
17 [email protected] " "
18 [email protected]
19 [email protected] "fn"
20 [email protected]
21 [email protected] "("
22 [email protected] ")"
23 [email protected] " "
24 [email protected]
25 [email protected] "->"
26 [email protected] " "
27 [email protected]
28 [email protected] "("
29 [email protected] ")"
30 [email protected] ";"
31 [email protected] "\n"
32 [email protected]
33 [email protected] "type"
34 [email protected] " "
35 [email protected]
36 [email protected] "B"
37 [email protected] " "
38 [email protected] "="
39 [email protected] " "
40 [email protected]
41 [email protected] "for"
42 [email protected]
43 [email protected] "<"
44 [email protected]
45 [email protected] "\'a"
46 [email protected] ">"
47 [email protected] " "
48 [email protected]
49 [email protected] "unsafe"
50 [email protected] " "
51 [email protected]
52 [email protected] "extern"
53 [email protected] " "
54 [email protected] "\"C\""
55 [email protected] " "
56 [email protected] "fn"
57 [email protected]
58 [email protected] "("
59 [email protected]
60 [email protected]
61 [email protected] "&"
62 [email protected] "\'a"
63 [email protected] " "
64 [email protected]
65 [email protected] "("
66 [email protected] ")"
67 [email protected] ")"
68 [email protected] " "
69 [email protected]
70 [email protected] "->"
71 [email protected] " "
72 [email protected]
73 [email protected] "("
74 [email protected] ")"
75 [email protected] ";"
76 [email protected] "\n"
77 [email protected]
78 [email protected] "type"
79 [email protected] " "
80 [email protected]
81 [email protected] "Obj"
82 [email protected] " "
83 [email protected] "="
84 [email protected] " "
85 [email protected]
86 [email protected] "for"
87 [email protected]
88 [email protected] "<"
89 [email protected]
90 [email protected] "\'a"
91 [email protected] ">"
92 [email protected] " "
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected]
97 [email protected] "PartialEq"
98 [email protected]
99 [email protected] "<"
100 [email protected]
101 [email protected]
102 [email protected] "&"
103 [email protected] "\'a"
104 [email protected] " "
105 [email protected]
106 [email protected]
107 [email protected]
108 [email protected]
109 [email protected] "i32"
110 [email protected] ">"
111 [email protected] ";"
112 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0081_for_type.rs b/crates/syntax/test_data/parser/inline/ok/0081_for_type.rs
new file mode 100644
index 000000000..8ac7b9e10
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0081_for_type.rs
@@ -0,0 +1,3 @@
1type A = for<'a> fn() -> ();
2type B = for<'a> unsafe extern "C" fn(&'a ()) -> ();
3type Obj = for<'a> PartialEq<&'a i32>;
diff --git a/crates/syntax/test_data/parser/inline/ok/0082_ref_expr.rast b/crates/syntax/test_data/parser/inline/ok/0082_ref_expr.rast
new file mode 100644
index 000000000..70b975c0b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0082_ref_expr.rast
@@ -0,0 +1,138 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected] "// reference operator"
15 [email protected] "\n "
16 [email protected]
17 [email protected] "let"
18 [email protected] " "
19 [email protected]
20 [email protected] "_"
21 [email protected] " "
22 [email protected] "="
23 [email protected] " "
24 [email protected]
25 [email protected] "&"
26 [email protected]
27 [email protected] "1"
28 [email protected] ";"
29 [email protected] "\n "
30 [email protected]
31 [email protected] "let"
32 [email protected] " "
33 [email protected]
34 [email protected] "_"
35 [email protected] " "
36 [email protected] "="
37 [email protected] " "
38 [email protected]
39 [email protected] "&"
40 [email protected] "mut"
41 [email protected] " "
42 [email protected]
43 [email protected] "&"
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "f"
50 [email protected]
51 [email protected] "("
52 [email protected] ")"
53 [email protected] ";"
54 [email protected] "\n "
55 [email protected]
56 [email protected] "let"
57 [email protected] " "
58 [email protected]
59 [email protected] "_"
60 [email protected] " "
61 [email protected] "="
62 [email protected] " "
63 [email protected]
64 [email protected] "&"
65 [email protected]
66 [email protected]
67 [email protected]
68 [email protected]
69 [email protected] "raw"
70 [email protected] ";"
71 [email protected] "\n "
72 [email protected]
73 [email protected] "let"
74 [email protected] " "
75 [email protected]
76 [email protected] "_"
77 [email protected] " "
78 [email protected] "="
79 [email protected] " "
80 [email protected]
81 [email protected] "&"
82 [email protected]
83 [email protected]
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected] "raw"
88 [email protected] "."
89 [email protected]
90 [email protected] "0"
91 [email protected] ";"
92 [email protected] "\n "
93 [email protected] "// raw reference oper ..."
94 [email protected] "\n "
95 [email protected]
96 [email protected] "let"
97 [email protected] " "
98 [email protected]
99 [email protected] "_"
100 [email protected] " "
101 [email protected] "="
102 [email protected] " "
103 [email protected]
104 [email protected] "&"
105 [email protected] "raw"
106 [email protected] " "
107 [email protected] "mut"
108 [email protected] " "
109 [email protected]
110 [email protected]
111 [email protected]
112 [email protected]
113 [email protected] "foo"
114 [email protected] ";"
115 [email protected] "\n "
116 [email protected]
117 [email protected] "let"
118 [email protected] " "
119 [email protected]
120 [email protected] "_"
121 [email protected] " "
122 [email protected] "="
123 [email protected] " "
124 [email protected]
125 [email protected] "&"
126 [email protected] "raw"
127 [email protected] " "
128 [email protected] "const"
129 [email protected] " "
130 [email protected]
131 [email protected]
132 [email protected]
133 [email protected]
134 [email protected] "foo"
135 [email protected] ";"
136 [email protected] "\n"
137 [email protected] "}"
138 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0082_ref_expr.rs b/crates/syntax/test_data/parser/inline/ok/0082_ref_expr.rs
new file mode 100644
index 000000000..c5262f446
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0082_ref_expr.rs
@@ -0,0 +1,10 @@
1fn foo() {
2 // reference operator
3 let _ = &1;
4 let _ = &mut &f();
5 let _ = &raw;
6 let _ = &raw.0;
7 // raw reference operator
8 let _ = &raw mut foo;
9 let _ = &raw const foo;
10}
diff --git a/crates/syntax/test_data/parser/inline/ok/0083_struct_items.rast b/crates/syntax/test_data/parser/inline/ok/0083_struct_items.rast
new file mode 100644
index 000000000..cdbc40fe0
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0083_struct_items.rast
@@ -0,0 +1,87 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "Foo"
7 [email protected] ";"
8 [email protected] "\n"
9 [email protected]
10 [email protected] "struct"
11 [email protected] " "
12 [email protected]
13 [email protected] "Foo"
14 [email protected] " "
15 [email protected]
16 [email protected] "{"
17 [email protected] "}"
18 [email protected] "\n"
19 [email protected]
20 [email protected] "struct"
21 [email protected] " "
22 [email protected]
23 [email protected] "Foo"
24 [email protected]
25 [email protected] "("
26 [email protected] ")"
27 [email protected] ";"
28 [email protected] "\n"
29 [email protected]
30 [email protected] "struct"
31 [email protected] " "
32 [email protected]
33 [email protected] "Foo"
34 [email protected]
35 [email protected] "("
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "String"
42 [email protected] ","
43 [email protected] " "
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "usize"
50 [email protected] ")"
51 [email protected] ";"
52 [email protected] "\n"
53 [email protected]
54 [email protected] "struct"
55 [email protected] " "
56 [email protected]
57 [email protected] "Foo"
58 [email protected] " "
59 [email protected]
60 [email protected] "{"
61 [email protected] "\n "
62 [email protected]
63 [email protected]
64 [email protected] "a"
65 [email protected] ":"
66 [email protected] " "
67 [email protected]
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected] "i32"
72 [email protected] ","
73 [email protected] "\n "
74 [email protected]
75 [email protected]
76 [email protected] "b"
77 [email protected] ":"
78 [email protected] " "
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected]
83 [email protected] "f32"
84 [email protected] ","
85 [email protected] "\n"
86 [email protected] "}"
87 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0083_struct_items.rs b/crates/syntax/test_data/parser/inline/ok/0083_struct_items.rs
new file mode 100644
index 000000000..693e3f3ee
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0083_struct_items.rs
@@ -0,0 +1,8 @@
1struct Foo;
2struct Foo {}
3struct Foo();
4struct Foo(String, usize);
5struct Foo {
6 a: i32,
7 b: f32,
8}
diff --git a/crates/syntax/test_data/parser/inline/ok/0084_paren_type.rast b/crates/syntax/test_data/parser/inline/ok/0084_paren_type.rast
new file mode 100644
index 000000000..ee8894966
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0084_paren_type.rast
@@ -0,0 +1,19 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "("
12 [email protected]
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected] "i32"
17 [email protected] ")"
18 [email protected] ";"
19 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0084_paren_type.rs b/crates/syntax/test_data/parser/inline/ok/0084_paren_type.rs
new file mode 100644
index 000000000..6e1b25101
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0084_paren_type.rs
@@ -0,0 +1 @@
type T = (i32);
diff --git a/crates/syntax/test_data/parser/inline/ok/0085_expr_literals.rast b/crates/syntax/test_data/parser/inline/ok/0085_expr_literals.rast
new file mode 100644
index 000000000..9a87b5b93
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0085_expr_literals.rast
@@ -0,0 +1,135 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "_"
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected] "true"
24 [email protected] ";"
25 [email protected] "\n "
26 [email protected]
27 [email protected] "let"
28 [email protected] " "
29 [email protected]
30 [email protected] "_"
31 [email protected] " "
32 [email protected] "="
33 [email protected] " "
34 [email protected]
35 [email protected] "false"
36 [email protected] ";"
37 [email protected] "\n "
38 [email protected]
39 [email protected] "let"
40 [email protected] " "
41 [email protected]
42 [email protected] "_"
43 [email protected] " "
44 [email protected] "="
45 [email protected] " "
46 [email protected]
47 [email protected] "1"
48 [email protected] ";"
49 [email protected] "\n "
50 [email protected]
51 [email protected] "let"
52 [email protected] " "
53 [email protected]
54 [email protected] "_"
55 [email protected] " "
56 [email protected] "="
57 [email protected] " "
58 [email protected]
59 [email protected] "2.0"
60 [email protected] ";"
61 [email protected] "\n "
62 [email protected]
63 [email protected] "let"
64 [email protected] " "
65 [email protected]
66 [email protected] "_"
67 [email protected] " "
68 [email protected] "="
69 [email protected] " "
70 [email protected]
71 [email protected] "b\'a\'"
72 [email protected] ";"
73 [email protected] "\n "
74 [email protected]
75 [email protected] "let"
76 [email protected] " "
77 [email protected]
78 [email protected] "_"
79 [email protected] " "
80 [email protected] "="
81 [email protected] " "
82 [email protected]
83 [email protected] "\'b\'"
84 [email protected] ";"
85 [email protected] "\n "
86 [email protected]
87 [email protected] "let"
88 [email protected] " "
89 [email protected]
90 [email protected] "_"
91 [email protected] " "
92 [email protected] "="
93 [email protected] " "
94 [email protected]
95 [email protected] "\"c\""
96 [email protected] ";"
97 [email protected] "\n "
98 [email protected]
99 [email protected] "let"
100 [email protected] " "
101 [email protected]
102 [email protected] "_"
103 [email protected] " "
104 [email protected] "="
105 [email protected] " "
106 [email protected]
107 [email protected] "r\"d\""
108 [email protected] ";"
109 [email protected] "\n "
110 [email protected]
111 [email protected] "let"
112 [email protected] " "
113 [email protected]
114 [email protected] "_"
115 [email protected] " "
116 [email protected] "="
117 [email protected] " "
118 [email protected]
119 [email protected] "b\"e\""
120 [email protected] ";"
121 [email protected] "\n "
122 [email protected]
123 [email protected] "let"
124 [email protected] " "
125 [email protected]
126 [email protected] "_"
127 [email protected] " "
128 [email protected] "="
129 [email protected] " "
130 [email protected]
131 [email protected] "br\"f\""
132 [email protected] ";"
133 [email protected] "\n"
134 [email protected] "}"
135 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0085_expr_literals.rs b/crates/syntax/test_data/parser/inline/ok/0085_expr_literals.rs
new file mode 100644
index 000000000..2e11a5a6e
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0085_expr_literals.rs
@@ -0,0 +1,12 @@
1fn foo() {
2 let _ = true;
3 let _ = false;
4 let _ = 1;
5 let _ = 2.0;
6 let _ = b'a';
7 let _ = 'b';
8 let _ = "c";
9 let _ = r"d";
10 let _ = b"e";
11 let _ = br"f";
12}
diff --git a/crates/syntax/test_data/parser/inline/ok/0086_function_ret_type.rast b/crates/syntax/test_data/parser/inline/ok/0086_function_ret_type.rast
new file mode 100644
index 000000000..70e05a859
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0086_function_ret_type.rast
@@ -0,0 +1,34 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "}"
14 [email protected] "\n"
15 [email protected]
16 [email protected] "fn"
17 [email protected] " "
18 [email protected]
19 [email protected] "bar"
20 [email protected]
21 [email protected] "("
22 [email protected] ")"
23 [email protected] " "
24 [email protected]
25 [email protected] "->"
26 [email protected] " "
27 [email protected]
28 [email protected] "("
29 [email protected] ")"
30 [email protected] " "
31 [email protected]
32 [email protected] "{"
33 [email protected] "}"
34 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0086_function_ret_type.rs b/crates/syntax/test_data/parser/inline/ok/0086_function_ret_type.rs
new file mode 100644
index 000000000..d22d8cada
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0086_function_ret_type.rs
@@ -0,0 +1,2 @@
1fn foo() {}
2fn bar() -> () {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast b/crates/syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast
new file mode 100644
index 000000000..f7b839303
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast
@@ -0,0 +1,65 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected]
11 [email protected] "{"
12 [email protected] "\n "
13 [email protected]
14 [email protected]
15 [email protected] "if"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "break"
20 [email protected] " "
21 [email protected]
22 [email protected] "{"
23 [email protected] "}"
24 [email protected] "\n "
25 [email protected]
26 [email protected]
27 [email protected] "while"
28 [email protected] " "
29 [email protected]
30 [email protected]
31 [email protected] "break"
32 [email protected] " "
33 [email protected]
34 [email protected] "{"
35 [email protected] "}"
36 [email protected] "\n "
37 [email protected]
38 [email protected]
39 [email protected] "for"
40 [email protected] " "
41 [email protected]
42 [email protected]
43 [email protected] "i"
44 [email protected] " "
45 [email protected] "in"
46 [email protected] " "
47 [email protected]
48 [email protected] "break"
49 [email protected] " "
50 [email protected]
51 [email protected] "{"
52 [email protected] "}"
53 [email protected] "\n "
54 [email protected]
55 [email protected] "match"
56 [email protected] " "
57 [email protected]
58 [email protected] "break"
59 [email protected] " "
60 [email protected]
61 [email protected] "{"
62 [email protected] "}"
63 [email protected] "\n"
64 [email protected] "}"
65 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0088_break_ambiguity.rs b/crates/syntax/test_data/parser/inline/ok/0088_break_ambiguity.rs
new file mode 100644
index 000000000..560eb05b9
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0088_break_ambiguity.rs
@@ -0,0 +1,6 @@
1fn foo(){
2 if break {}
3 while break {}
4 for i in break {}
5 match break {}
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0090_type_param_default.rast b/crates/syntax/test_data/parser/inline/ok/0090_type_param_default.rast
new file mode 100644
index 000000000..2ef026e37
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0090_type_param_default.rast
@@ -0,0 +1,22 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] " "
13 [email protected] "="
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "i32"
20 [email protected] ">"
21 [email protected] ";"
22 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0090_type_param_default.rs b/crates/syntax/test_data/parser/inline/ok/0090_type_param_default.rs
new file mode 100644
index 000000000..540eacb02
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0090_type_param_default.rs
@@ -0,0 +1 @@
struct S<T = i32>;
diff --git a/crates/syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast b/crates/syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast
new file mode 100644
index 000000000..f80326465
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast
@@ -0,0 +1,23 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "F"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "fn"
12 [email protected]
13 [email protected] "("
14 [email protected] ")"
15 [email protected] " "
16 [email protected]
17 [email protected] "->"
18 [email protected] " "
19 [email protected]
20 [email protected] "("
21 [email protected] ")"
22 [email protected] ";"
23 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rs b/crates/syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rs
new file mode 100644
index 000000000..e3ba5e87f
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rs
@@ -0,0 +1 @@
type F = fn() -> ();
diff --git a/crates/syntax/test_data/parser/inline/ok/0093_index_expr.rast b/crates/syntax/test_data/parser/inline/ok/0093_index_expr.rast
new file mode 100644
index 000000000..82f03f9c1
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0093_index_expr.rast
@@ -0,0 +1,33 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "x"
22 [email protected] "["
23 [email protected]
24 [email protected] "1"
25 [email protected] "]"
26 [email protected] "["
27 [email protected]
28 [email protected] "2"
29 [email protected] "]"
30 [email protected] ";"
31 [email protected] "\n"
32 [email protected] "}"
33 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0093_index_expr.rs b/crates/syntax/test_data/parser/inline/ok/0093_index_expr.rs
new file mode 100644
index 000000000..b9ba78a6c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0093_index_expr.rs
@@ -0,0 +1,3 @@
1fn foo() {
2 x[1][2];
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast b/crates/syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast
new file mode 100644
index 000000000..c1fdc6e25
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast
@@ -0,0 +1,28 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "_"
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected] "("
24 [email protected] ")"
25 [email protected] ";"
26 [email protected] " "
27 [email protected] "}"
28 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0095_placeholder_pat.rs b/crates/syntax/test_data/parser/inline/ok/0095_placeholder_pat.rs
new file mode 100644
index 000000000..4d719c433
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0095_placeholder_pat.rs
@@ -0,0 +1 @@
fn main() { let _ = (); }
diff --git a/crates/syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast b/crates/syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast
new file mode 100644
index 000000000..e757249f0
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast
@@ -0,0 +1,123 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "if"
17 [email protected] " "
18 [email protected]
19 [email protected]
20 [email protected] "true"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] "\n "
26 [email protected]
27 [email protected]
28 [email protected] "loop"
29 [email protected] " "
30 [email protected]
31 [email protected] "{"
32 [email protected] "}"
33 [email protected] "\n "
34 [email protected]
35 [email protected]
36 [email protected] "match"
37 [email protected] " "
38 [email protected]
39 [email protected] "("
40 [email protected] ")"
41 [email protected] " "
42 [email protected]
43 [email protected] "{"
44 [email protected] "}"
45 [email protected] "\n "
46 [email protected]
47 [email protected]
48 [email protected] "while"
49 [email protected] " "
50 [email protected]
51 [email protected]
52 [email protected] "true"
53 [email protected] " "
54 [email protected]
55 [email protected] "{"
56 [email protected] "}"
57 [email protected] "\n "
58 [email protected]
59 [email protected]
60 [email protected] "for"
61 [email protected] " "
62 [email protected]
63 [email protected] "_"
64 [email protected] " "
65 [email protected] "in"
66 [email protected] " "
67 [email protected]
68 [email protected] "("
69 [email protected] ")"
70 [email protected] " "
71 [email protected]
72 [email protected] "{"
73 [email protected] "}"
74 [email protected] "\n "
75 [email protected]
76 [email protected]
77 [email protected] "{"
78 [email protected] "}"
79 [email protected] "\n "
80 [email protected]
81 [email protected]
82 [email protected] "{"
83 [email protected] "}"
84 [email protected] "\n "
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected] "macro_rules"
91 [email protected] "!"
92 [email protected] " "
93 [email protected]
94 [email protected] "test"
95 [email protected] " "
96 [email protected]
97 [email protected] "{"
98 [email protected] "\n "
99 [email protected]
100 [email protected] "("
101 [email protected] ")"
102 [email protected] " "
103 [email protected] "="
104 [email protected] ">"
105 [email protected] " "
106 [email protected]
107 [email protected] "{"
108 [email protected] "}"
109 [email protected] "\n "
110 [email protected] "}"
111 [email protected] "\n "
112 [email protected]
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected] "test"
117 [email protected] "!"
118 [email protected]
119 [email protected] "{"
120 [email protected] "}"
121 [email protected] "\n"
122 [email protected] "}"
123 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rs b/crates/syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rs
new file mode 100644
index 000000000..4919665cb
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rs
@@ -0,0 +1,13 @@
1fn foo() {
2 if true {}
3 loop {}
4 match () {}
5 while true {}
6 for _ in () {}
7 {}
8 {}
9 macro_rules! test {
10 () => {}
11 }
12 test!{}
13}
diff --git a/crates/syntax/test_data/parser/inline/ok/0099_param_list.rast b/crates/syntax/test_data/parser/inline/ok/0099_param_list.rast
new file mode 100644
index 000000000..f19e9fd52
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0099_param_list.rast
@@ -0,0 +1,99 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "a"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "}"
14 [email protected] "\n"
15 [email protected]
16 [email protected] "fn"
17 [email protected] " "
18 [email protected]
19 [email protected] "b"
20 [email protected]
21 [email protected] "("
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "x"
26 [email protected] ":"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "i32"
33 [email protected] ")"
34 [email protected] " "
35 [email protected]
36 [email protected] "{"
37 [email protected] "}"
38 [email protected] "\n"
39 [email protected]
40 [email protected] "fn"
41 [email protected] " "
42 [email protected]
43 [email protected] "c"
44 [email protected]
45 [email protected] "("
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "x"
50 [email protected] ":"
51 [email protected] " "
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected] "i32"
57 [email protected] ","
58 [email protected] " "
59 [email protected] ")"
60 [email protected] " "
61 [email protected]
62 [email protected] "{"
63 [email protected] "}"
64 [email protected] "\n"
65 [email protected]
66 [email protected] "fn"
67 [email protected] " "
68 [email protected]
69 [email protected] "d"
70 [email protected]
71 [email protected] "("
72 [email protected]
73 [email protected]
74 [email protected]
75 [email protected] "x"
76 [email protected] ":"
77 [email protected] " "
78 [email protected]
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected] "i32"
83 [email protected] ","
84 [email protected] " "
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected] "y"
89 [email protected] ":"
90 [email protected] " "
91 [email protected]
92 [email protected] "("
93 [email protected] ")"
94 [email protected] ")"
95 [email protected] " "
96 [email protected]
97 [email protected] "{"
98 [email protected] "}"
99 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0099_param_list.rs b/crates/syntax/test_data/parser/inline/ok/0099_param_list.rs
new file mode 100644
index 000000000..9d55bedbb
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0099_param_list.rs
@@ -0,0 +1,4 @@
1fn a() {}
2fn b(x: i32) {}
3fn c(x: i32, ) {}
4fn d(x: i32, y: ()) {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0100_for_expr.rast b/crates/syntax/test_data/parser/inline/ok/0100_for_expr.rast
new file mode 100644
index 000000000..5c4055e44
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0100_for_expr.rast
@@ -0,0 +1,34 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "for"
17 [email protected] " "
18 [email protected]
19 [email protected]
20 [email protected] "x"
21 [email protected] " "
22 [email protected] "in"
23 [email protected] " "
24 [email protected]
25 [email protected] "["
26 [email protected] "]"
27 [email protected] " "
28 [email protected]
29 [email protected] "{"
30 [email protected] "}"
31 [email protected] ";"
32 [email protected] "\n"
33 [email protected] "}"
34 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0100_for_expr.rs b/crates/syntax/test_data/parser/inline/ok/0100_for_expr.rs
new file mode 100644
index 000000000..972197d2a
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0100_for_expr.rs
@@ -0,0 +1,3 @@
1fn foo() {
2 for x in [] {};
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast b/crates/syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast
new file mode 100644
index 000000000..866e60ed8
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast
@@ -0,0 +1,132 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "S"
22 [email protected] " "
23 [email protected]
24 [email protected] "{"
25 [email protected] "}"
26 [email protected] " "
27 [email protected] "="
28 [email protected] " "
29 [email protected]
30 [email protected] "("
31 [email protected] ")"
32 [email protected] ";"
33 [email protected] "\n "
34 [email protected]
35 [email protected] "let"
36 [email protected] " "
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "S"
42 [email protected] " "
43 [email protected]
44 [email protected] "{"
45 [email protected] " "
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "f"
50 [email protected] ","
51 [email protected] " "
52 [email protected]
53 [email protected]
54 [email protected] "ref"
55 [email protected] " "
56 [email protected] "mut"
57 [email protected] " "
58 [email protected]
59 [email protected] "g"
60 [email protected] " "
61 [email protected] "}"
62 [email protected] " "
63 [email protected] "="
64 [email protected] " "
65 [email protected]
66 [email protected] "("
67 [email protected] ")"
68 [email protected] ";"
69 [email protected] "\n "
70 [email protected]
71 [email protected] "let"
72 [email protected] " "
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected] "S"
78 [email protected] " "
79 [email protected]
80 [email protected] "{"
81 [email protected] " "
82 [email protected]
83 [email protected]
84 [email protected] "h"
85 [email protected] ":"
86 [email protected] " "
87 [email protected]
88 [email protected] "_"
89 [email protected] ","
90 [email protected] " "
91 [email protected] ".."
92 [email protected] "}"
93 [email protected] " "
94 [email protected] "="
95 [email protected] " "
96 [email protected]
97 [email protected] "("
98 [email protected] ")"
99 [email protected] ";"
100 [email protected] "\n "
101 [email protected]
102 [email protected] "let"
103 [email protected] " "
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected]
108 [email protected] "S"
109 [email protected] " "
110 [email protected]
111 [email protected] "{"
112 [email protected] " "
113 [email protected]
114 [email protected]
115 [email protected] "h"
116 [email protected] ":"
117 [email protected] " "
118 [email protected]
119 [email protected] "_"
120 [email protected] ","
121 [email protected] " "
122 [email protected] "}"
123 [email protected] " "
124 [email protected] "="
125 [email protected] " "
126 [email protected]
127 [email protected] "("
128 [email protected] ")"
129 [email protected] ";"
130 [email protected] "\n"
131 [email protected] "}"
132 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rs b/crates/syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rs
new file mode 100644
index 000000000..da3412fa8
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rs
@@ -0,0 +1,6 @@
1fn foo() {
2 let S {} = ();
3 let S { f, ref mut g } = ();
4 let S { h: _, ..} = ();
5 let S { h: _, } = ();
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0103_array_expr.rast b/crates/syntax/test_data/parser/inline/ok/0103_array_expr.rast
new file mode 100644
index 000000000..c4c0a0568
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0103_array_expr.rast
@@ -0,0 +1,54 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "["
17 [email protected] "]"
18 [email protected] ";"
19 [email protected] "\n "
20 [email protected]
21 [email protected]
22 [email protected] "["
23 [email protected]
24 [email protected] "1"
25 [email protected] "]"
26 [email protected] ";"
27 [email protected] "\n "
28 [email protected]
29 [email protected]
30 [email protected] "["
31 [email protected]
32 [email protected] "1"
33 [email protected] ","
34 [email protected] " "
35 [email protected]
36 [email protected] "2"
37 [email protected] ","
38 [email protected] "]"
39 [email protected] ";"
40 [email protected] "\n "
41 [email protected]
42 [email protected]
43 [email protected] "["
44 [email protected]
45 [email protected] "1"
46 [email protected] ";"
47 [email protected] " "
48 [email protected]
49 [email protected] "2"
50 [email protected] "]"
51 [email protected] ";"
52 [email protected] "\n"
53 [email protected] "}"
54 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0103_array_expr.rs b/crates/syntax/test_data/parser/inline/ok/0103_array_expr.rs
new file mode 100644
index 000000000..4dc1999d1
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0103_array_expr.rs
@@ -0,0 +1,6 @@
1fn foo() {
2 [];
3 [1];
4 [1, 2,];
5 [1; 2];
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast b/crates/syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast
new file mode 100644
index 000000000..1244a5031
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast
@@ -0,0 +1,41 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "F"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected]
14 [email protected] "Box"
15 [email protected]
16 [email protected] "<"
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "Fn"
23 [email protected]
24 [email protected] "("
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "i32"
31 [email protected] ")"
32 [email protected] " "
33 [email protected]
34 [email protected] "->"
35 [email protected] " "
36 [email protected]
37 [email protected] "("
38 [email protected] ")"
39 [email protected] ">"
40 [email protected] ";"
41 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rs b/crates/syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rs
new file mode 100644
index 000000000..17ed20e5b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rs
@@ -0,0 +1 @@
type F = Box<Fn(i32) -> ()>;
diff --git a/crates/syntax/test_data/parser/inline/ok/0106_lambda_expr.rast b/crates/syntax/test_data/parser/inline/ok/0106_lambda_expr.rast
new file mode 100644
index 000000000..9b8381619
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0106_lambda_expr.rast
@@ -0,0 +1,135 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "|"
18 [email protected] "|"
19 [email protected] " "
20 [email protected]
21 [email protected] "("
22 [email protected] ")"
23 [email protected] ";"
24 [email protected] "\n "
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "|"
29 [email protected] "|"
30 [email protected] " "
31 [email protected]
32 [email protected] "->"
33 [email protected] " "
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "i32"
39 [email protected] " "
40 [email protected]
41 [email protected] "{"
42 [email protected] " "
43 [email protected]
44 [email protected] "92"
45 [email protected] " "
46 [email protected] "}"
47 [email protected] ";"
48 [email protected] "\n "
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected] "|"
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected] "x"
57 [email protected] "|"
58 [email protected] " "
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected] "x"
64 [email protected] ";"
65 [email protected] "\n "
66 [email protected]
67 [email protected]
68 [email protected] "move"
69 [email protected] " "
70 [email protected]
71 [email protected] "|"
72 [email protected]
73 [email protected]
74 [email protected]
75 [email protected] "x"
76 [email protected] ":"
77 [email protected] " "
78 [email protected]
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected] "i32"
83 [email protected] ","
84 [email protected] "|"
85 [email protected] " "
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected] "x"
91 [email protected] ";"
92 [email protected] "\n "
93 [email protected]
94 [email protected]
95 [email protected] "async"
96 [email protected] " "
97 [email protected]
98 [email protected] "|"
99 [email protected] "|"
100 [email protected] " "
101 [email protected]
102 [email protected] "{"
103 [email protected] "}"
104 [email protected] ";"
105 [email protected] "\n "
106 [email protected]
107 [email protected]
108 [email protected] "move"
109 [email protected] " "
110 [email protected]
111 [email protected] "|"
112 [email protected] "|"
113 [email protected] " "
114 [email protected]
115 [email protected] "{"
116 [email protected] "}"
117 [email protected] ";"
118 [email protected] "\n "
119 [email protected]
120 [email protected]
121 [email protected] "async"
122 [email protected] " "
123 [email protected] "move"
124 [email protected] " "
125 [email protected]
126 [email protected] "|"
127 [email protected] "|"
128 [email protected] " "
129 [email protected]
130 [email protected] "{"
131 [email protected] "}"
132 [email protected] ";"
133 [email protected] "\n"
134 [email protected] "}"
135 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0106_lambda_expr.rs b/crates/syntax/test_data/parser/inline/ok/0106_lambda_expr.rs
new file mode 100644
index 000000000..075717823
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0106_lambda_expr.rs
@@ -0,0 +1,9 @@
1fn foo() {
2 || ();
3 || -> i32 { 92 };
4 |x| x;
5 move |x: i32,| x;
6 async || {};
7 move || {};
8 async move || {};
9}
diff --git a/crates/syntax/test_data/parser/inline/ok/0107_method_call_expr.rast b/crates/syntax/test_data/parser/inline/ok/0107_method_call_expr.rast
new file mode 100644
index 000000000..be8365e05
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0107_method_call_expr.rast
@@ -0,0 +1,62 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "x"
21 [email protected] "."
22 [email protected]
23 [email protected] "foo"
24 [email protected]
25 [email protected] "("
26 [email protected] ")"
27 [email protected] ";"
28 [email protected] "\n "
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected] "y"
36 [email protected] "."
37 [email protected]
38 [email protected] "bar"
39 [email protected]
40 [email protected] "::"
41 [email protected] "<"
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected] "T"
48 [email protected] ">"
49 [email protected]
50 [email protected] "("
51 [email protected]
52 [email protected] "1"
53 [email protected] ","
54 [email protected] " "
55 [email protected]
56 [email protected] "2"
57 [email protected] ","
58 [email protected] ")"
59 [email protected] ";"
60 [email protected] "\n"
61 [email protected] "}"
62 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0107_method_call_expr.rs b/crates/syntax/test_data/parser/inline/ok/0107_method_call_expr.rs
new file mode 100644
index 000000000..1a3aa35ae
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0107_method_call_expr.rs
@@ -0,0 +1,4 @@
1fn foo() {
2 x.foo();
3 y.bar::<T>(1, 2,);
4}
diff --git a/crates/syntax/test_data/parser/inline/ok/0108_tuple_expr.rast b/crates/syntax/test_data/parser/inline/ok/0108_tuple_expr.rast
new file mode 100644
index 000000000..ca7e4a5c3
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0108_tuple_expr.rast
@@ -0,0 +1,38 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "("
17 [email protected] ")"
18 [email protected] ";"
19 [email protected] "\n "
20 [email protected]
21 [email protected]
22 [email protected] "("
23 [email protected]
24 [email protected] "1"
25 [email protected] ")"
26 [email protected] ";"
27 [email protected] "\n "
28 [email protected]
29 [email protected]
30 [email protected] "("
31 [email protected]
32 [email protected] "1"
33 [email protected] ","
34 [email protected] ")"
35 [email protected] ";"
36 [email protected] "\n"
37 [email protected] "}"
38 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0108_tuple_expr.rs b/crates/syntax/test_data/parser/inline/ok/0108_tuple_expr.rs
new file mode 100644
index 000000000..e4f774280
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0108_tuple_expr.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 ();
3 (1);
4 (1,);
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0109_label.rast b/crates/syntax/test_data/parser/inline/ok/0109_label.rast
new file mode 100644
index 000000000..c9588025c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0109_label.rast
@@ -0,0 +1,64 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "\'a"
18 [email protected] ":"
19 [email protected] " "
20 [email protected] "loop"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] "\n "
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected] "\'b"
30 [email protected] ":"
31 [email protected] " "
32 [email protected] "while"
33 [email protected] " "
34 [email protected]
35 [email protected]
36 [email protected] "true"
37 [email protected] " "
38 [email protected]
39 [email protected] "{"
40 [email protected] "}"
41 [email protected] "\n "
42 [email protected]
43 [email protected]
44 [email protected] "\'c"
45 [email protected] ":"
46 [email protected] " "
47 [email protected] "for"
48 [email protected] " "
49 [email protected]
50 [email protected]
51 [email protected] "x"
52 [email protected] " "
53 [email protected] "in"
54 [email protected] " "
55 [email protected]
56 [email protected] "("
57 [email protected] ")"
58 [email protected] " "
59 [email protected]
60 [email protected] "{"
61 [email protected] "}"
62 [email protected] "\n"
63 [email protected] "}"
64 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0109_label.rs b/crates/syntax/test_data/parser/inline/ok/0109_label.rs
new file mode 100644
index 000000000..48e83f263
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0109_label.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 'a: loop {}
3 'b: while true {}
4 'c: for x in () {}
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0110_use_path.rast b/crates/syntax/test_data/parser/inline/ok/0110_use_path.rast
new file mode 100644
index 000000000..82028096f
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0110_use_path.rast
@@ -0,0 +1,38 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected] "::"
9 [email protected]
10 [email protected] "crate_name"
11 [email protected] ";"
12 [email protected] " "
13 [email protected] "// Rust 2018 - All fl ..."
14 [email protected] "\n"
15 [email protected]
16 [email protected] "use"
17 [email protected] " "
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "crate_name"
23 [email protected] ";"
24 [email protected] " "
25 [email protected] "// Rust 2018 - Anchor ..."
26 [email protected] "\n"
27 [email protected]
28 [email protected] "use"
29 [email protected] " "
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "item_in_scope_or_crat ..."
35 [email protected] ";"
36 [email protected] " "
37 [email protected] "// Rust 2018 - Unifor ..."
38 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0110_use_path.rs b/crates/syntax/test_data/parser/inline/ok/0110_use_path.rs
new file mode 100644
index 000000000..328e94736
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0110_use_path.rs
@@ -0,0 +1,3 @@
1use ::crate_name; // Rust 2018 - All flavours
2use crate_name; // Rust 2018 - Anchored paths
3use item_in_scope_or_crate_name; // Rust 2018 - Uniform Paths
diff --git a/crates/syntax/test_data/parser/inline/ok/0111_tuple_pat.rast b/crates/syntax/test_data/parser/inline/ok/0111_tuple_pat.rast
new file mode 100644
index 000000000..b82ed0230
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0111_tuple_pat.rast
@@ -0,0 +1,89 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "("
19 [email protected]
20 [email protected]
21 [email protected] "a"
22 [email protected] ","
23 [email protected] " "
24 [email protected]
25 [email protected]
26 [email protected] "b"
27 [email protected] ","
28 [email protected] " "
29 [email protected]
30 [email protected] ".."
31 [email protected] ")"
32 [email protected] " "
33 [email protected] "="
34 [email protected] " "
35 [email protected]
36 [email protected] "("
37 [email protected] ")"
38 [email protected] ";"
39 [email protected] "\n "
40 [email protected]
41 [email protected] "let"
42 [email protected] " "
43 [email protected]
44 [email protected] "("
45 [email protected]
46 [email protected]
47 [email protected] "a"
48 [email protected] ","
49 [email protected] ")"
50 [email protected] " "
51 [email protected] "="
52 [email protected] " "
53 [email protected]
54 [email protected] "("
55 [email protected] ")"
56 [email protected] ";"
57 [email protected] "\n "
58 [email protected]
59 [email protected] "let"
60 [email protected] " "
61 [email protected]
62 [email protected] "("
63 [email protected]
64 [email protected] ".."
65 [email protected] ")"
66 [email protected] " "
67 [email protected] "="
68 [email protected] " "
69 [email protected]
70 [email protected] "("
71 [email protected] ")"
72 [email protected] ";"
73 [email protected] "\n "
74 [email protected]
75 [email protected] "let"
76 [email protected] " "
77 [email protected]
78 [email protected] "("
79 [email protected] ")"
80 [email protected] " "
81 [email protected] "="
82 [email protected] " "
83 [email protected]
84 [email protected] "("
85 [email protected] ")"
86 [email protected] ";"
87 [email protected] "\n"
88 [email protected] "}"
89 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0111_tuple_pat.rs b/crates/syntax/test_data/parser/inline/ok/0111_tuple_pat.rs
new file mode 100644
index 000000000..ba719879d
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0111_tuple_pat.rs
@@ -0,0 +1,6 @@
1fn main() {
2 let (a, b, ..) = ();
3 let (a,) = ();
4 let (..) = ();
5 let () = ();
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0112_bind_pat.rast b/crates/syntax/test_data/parser/inline/ok/0112_bind_pat.rast
new file mode 100644
index 000000000..7b9a498c8
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0112_bind_pat.rast
@@ -0,0 +1,127 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "a"
20 [email protected] " "
21 [email protected] "="
22 [email protected] " "
23 [email protected]
24 [email protected] "("
25 [email protected] ")"
26 [email protected] ";"
27 [email protected] "\n "
28 [email protected]
29 [email protected] "let"
30 [email protected] " "
31 [email protected]
32 [email protected] "mut"
33 [email protected] " "
34 [email protected]
35 [email protected] "b"
36 [email protected] " "
37 [email protected] "="
38 [email protected] " "
39 [email protected]
40 [email protected] "("
41 [email protected] ")"
42 [email protected] ";"
43 [email protected] "\n "
44 [email protected]
45 [email protected] "let"
46 [email protected] " "
47 [email protected]
48 [email protected] "ref"
49 [email protected] " "
50 [email protected]
51 [email protected] "c"
52 [email protected] " "
53 [email protected] "="
54 [email protected] " "
55 [email protected]
56 [email protected] "("
57 [email protected] ")"
58 [email protected] ";"
59 [email protected] "\n "
60 [email protected]
61 [email protected] "let"
62 [email protected] " "
63 [email protected]
64 [email protected] "ref"
65 [email protected] " "
66 [email protected] "mut"
67 [email protected] " "
68 [email protected]
69 [email protected] "d"
70 [email protected] " "
71 [email protected] "="
72 [email protected] " "
73 [email protected]
74 [email protected] "("
75 [email protected] ")"
76 [email protected] ";"
77 [email protected] "\n "
78 [email protected]
79 [email protected] "let"
80 [email protected] " "
81 [email protected]
82 [email protected]
83 [email protected] "e"
84 [email protected] " "
85 [email protected] "@"
86 [email protected] " "
87 [email protected]
88 [email protected] "_"
89 [email protected] " "
90 [email protected] "="
91 [email protected] " "
92 [email protected]
93 [email protected] "("
94 [email protected] ")"
95 [email protected] ";"
96 [email protected] "\n "
97 [email protected]
98 [email protected] "let"
99 [email protected] " "
100 [email protected]
101 [email protected] "ref"
102 [email protected] " "
103 [email protected] "mut"
104 [email protected] " "
105 [email protected]
106 [email protected] "f"
107 [email protected] " "
108 [email protected] "@"
109 [email protected] " "
110 [email protected]
111 [email protected]
112 [email protected] "g"
113 [email protected] " "
114 [email protected] "@"
115 [email protected] " "
116 [email protected]
117 [email protected] "_"
118 [email protected] " "
119 [email protected] "="
120 [email protected] " "
121 [email protected]
122 [email protected] "("
123 [email protected] ")"
124 [email protected] ";"
125 [email protected] "\n"
126 [email protected] "}"
127 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0112_bind_pat.rs b/crates/syntax/test_data/parser/inline/ok/0112_bind_pat.rs
new file mode 100644
index 000000000..820a9e72c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0112_bind_pat.rs
@@ -0,0 +1,8 @@
1fn main() {
2 let a = ();
3 let mut b = ();
4 let ref c = ();
5 let ref mut d = ();
6 let e @ _ = ();
7 let ref mut f @ g @ _ = ();
8}
diff --git a/crates/syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast b/crates/syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast
new file mode 100644
index 000000000..d761c1c68
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast
@@ -0,0 +1,55 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected]
11 [email protected] "{"
12 [email protected] "\n "
13 [email protected] ";"
14 [email protected] ";"
15 [email protected] ";"
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "some_expr"
23 [email protected]
24 [email protected] "("
25 [email protected] ")"
26 [email protected] ";"
27 [email protected] ";"
28 [email protected] ";"
29 [email protected] ";"
30 [email protected]
31 [email protected]
32 [email protected] "{"
33 [email protected] ";"
34 [email protected] ";"
35 [email protected] ";"
36 [email protected] "}"
37 [email protected] ";"
38 [email protected] ";"
39 [email protected] ";"
40 [email protected] ";"
41 [email protected]
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected] "Ok"
47 [email protected]
48 [email protected] "("
49 [email protected]
50 [email protected] "("
51 [email protected] ")"
52 [email protected] ")"
53 [email protected] "\n"
54 [email protected] "}"
55 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0113_nocontentexpr.rs b/crates/syntax/test_data/parser/inline/ok/0113_nocontentexpr.rs
new file mode 100644
index 000000000..bbf09e367
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0113_nocontentexpr.rs
@@ -0,0 +1,3 @@
1fn foo(){
2 ;;;some_expr();;;;{;;;};;;;Ok(())
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast b/crates/syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast
new file mode 100644
index 000000000..0e1594dc4
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast
@@ -0,0 +1,64 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "Test"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ">"
13 [email protected]
14 [email protected] "("
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "T"
21 [email protected] ")"
22 [email protected] " "
23 [email protected]
24 [email protected] "where"
25 [email protected] " "
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "T"
32 [email protected] ":"
33 [email protected] " "
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected] "Clone"
41 [email protected] ";"
42 [email protected] "\n"
43 [email protected]
44 [email protected] "struct"
45 [email protected] " "
46 [email protected]
47 [email protected] "Test"
48 [email protected]
49 [email protected] "<"
50 [email protected]
51 [email protected]
52 [email protected] "T"
53 [email protected] ">"
54 [email protected]
55 [email protected] "("
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "T"
62 [email protected] ")"
63 [email protected] ";"
64 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rs b/crates/syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rs
new file mode 100644
index 000000000..ddd59016d
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rs
@@ -0,0 +1,2 @@
1struct Test<T>(T) where T: Clone;
2struct Test<T>(T);
diff --git a/crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast b/crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast
new file mode 100644
index 000000000..4d09c9f50
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast
@@ -0,0 +1,41 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected] " "
8 [email protected]
9 [email protected] "("
10 [email protected] "\n "
11 [email protected]
12 [email protected]
13 [email protected] "#"
14 [email protected] "["
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "serde"
19 [email protected]
20 [email protected] "("
21 [email protected] "with"
22 [email protected] " "
23 [email protected] "="
24 [email protected] " "
25 [email protected] "\"url_serde\""
26 [email protected] ")"
27 [email protected] "]"
28 [email protected] "\n "
29 [email protected]
30 [email protected] "pub"
31 [email protected] " "
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected] "Uri"
37 [email protected] ","
38 [email protected] "\n"
39 [email protected] ")"
40 [email protected] ";"
41 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rs b/crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rs
new file mode 100644
index 000000000..635b9ac21
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rs
@@ -0,0 +1,4 @@
1struct S (
2 #[serde(with = "url_serde")]
3 pub Uri,
4);
diff --git a/crates/syntax/test_data/parser/inline/ok/0117_macro_call_type.rast b/crates/syntax/test_data/parser/inline/ok/0117_macro_call_type.rast
new file mode 100644
index 000000000..f3d4ad72c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0117_macro_call_type.rast
@@ -0,0 +1,43 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected]
14 [email protected] "foo"
15 [email protected] "!"
16 [email protected]
17 [email protected] "("
18 [email protected] ")"
19 [email protected] ";"
20 [email protected] "\n"
21 [email protected]
22 [email protected] "type"
23 [email protected] " "
24 [email protected]
25 [email protected] "B"
26 [email protected] " "
27 [email protected] "="
28 [email protected] " "
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "crate"
34 [email protected] "::"
35 [email protected]
36 [email protected]
37 [email protected] "foo"
38 [email protected] "!"
39 [email protected]
40 [email protected] "("
41 [email protected] ")"
42 [email protected] ";"
43 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0117_macro_call_type.rs b/crates/syntax/test_data/parser/inline/ok/0117_macro_call_type.rs
new file mode 100644
index 000000000..edb470c89
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0117_macro_call_type.rs
@@ -0,0 +1,2 @@
1type A = foo!();
2type B = crate::foo!();
diff --git a/crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast b/crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast
new file mode 100644
index 000000000..141a7b203
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast
@@ -0,0 +1,40 @@
1[email protected]
2 [email protected]
3 [email protected] "enum"
4 [email protected] " "
5 [email protected]
6 [email protected] "F"
7 [email protected]
8 [email protected] "{"
9 [email protected] "}"
10 [email protected] "\n"
11 [email protected]
12 [email protected] "impl"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "F"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "\n "
23 [email protected] "//! This is a doc com ..."
24 [email protected] "\n "
25 [email protected]
26 [email protected] "#"
27 [email protected] "!"
28 [email protected] "["
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "doc"
33 [email protected]
34 [email protected] "("
35 [email protected] "\"This is also a doc c ..."
36 [email protected] ")"
37 [email protected] "]"
38 [email protected] "\n"
39 [email protected] "}"
40 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rs b/crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rs
new file mode 100644
index 000000000..4d68cceb7
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rs
@@ -0,0 +1,5 @@
1enum F{}
2impl F {
3 //! This is a doc comment
4 #![doc("This is also a doc comment")]
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0118_match_guard.rast b/crates/syntax/test_data/parser/inline/ok/0118_match_guard.rast
new file mode 100644
index 000000000..0cf4eb0a5
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0118_match_guard.rast
@@ -0,0 +1,47 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "match"
16 [email protected] " "
17 [email protected]
18 [email protected] "("
19 [email protected] ")"
20 [email protected] " "
21 [email protected]
22 [email protected] "{"
23 [email protected] "\n "
24 [email protected]
25 [email protected]
26 [email protected] "_"
27 [email protected] " "
28 [email protected]
29 [email protected] "if"
30 [email protected] " "
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected] "foo"
36 [email protected] " "
37 [email protected] "=>"
38 [email protected] " "
39 [email protected]
40 [email protected] "("
41 [email protected] ")"
42 [email protected] ","
43 [email protected] "\n "
44 [email protected] "}"
45 [email protected] "\n"
46 [email protected] "}"
47 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0118_match_guard.rs b/crates/syntax/test_data/parser/inline/ok/0118_match_guard.rs
new file mode 100644
index 000000000..f1bd72fc4
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0118_match_guard.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 match () {
3 _ if foo => (),
4 }
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast b/crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
new file mode 100644
index 000000000..ec7a00f1d
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
@@ -0,0 +1,80 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "match"
16 [email protected] " "
17 [email protected]
18 [email protected] "("
19 [email protected] ")"
20 [email protected] " "
21 [email protected]
22 [email protected] "{"
23 [email protected] "\n "
24 [email protected]
25 [email protected] "#"
26 [email protected] "!"
27 [email protected] "["
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "doc"
32 [email protected]
33 [email protected] "("
34 [email protected] "\"Inner attribute\""
35 [email protected] ")"
36 [email protected] "]"
37 [email protected] "\n "
38 [email protected]
39 [email protected] "#"
40 [email protected] "!"
41 [email protected] "["
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected] "doc"
46 [email protected]
47 [email protected] "("
48 [email protected] "\"Can be\""
49 [email protected] ")"
50 [email protected] "]"
51 [email protected] "\n "
52 [email protected]
53 [email protected] "#"
54 [email protected] "!"
55 [email protected] "["
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected] "doc"
60 [email protected]
61 [email protected] "("
62 [email protected] "\"Stacked\""
63 [email protected] ")"
64 [email protected] "]"
65 [email protected] "\n "
66 [email protected]
67 [email protected]
68 [email protected] "_"
69 [email protected] " "
70 [email protected] "=>"
71 [email protected] " "
72 [email protected]
73 [email protected] "("
74 [email protected] ")"
75 [email protected] ","
76 [email protected] "\n "
77 [email protected] "}"
78 [email protected] "\n"
79 [email protected] "}"
80 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rs b/crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rs
new file mode 100644
index 000000000..54a67c9d7
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rs
@@ -0,0 +1,8 @@
1fn foo() {
2 match () {
3 #![doc("Inner attribute")]
4 #![doc("Can be")]
5 #![doc("Stacked")]
6 _ => (),
7 }
8}
diff --git a/crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast b/crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
new file mode 100644
index 000000000..97924da05
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
@@ -0,0 +1,145 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "match"
16 [email protected] " "
17 [email protected]
18 [email protected] "("
19 [email protected] ")"
20 [email protected] " "
21 [email protected]
22 [email protected] "{"
23 [email protected] "\n "
24 [email protected]
25 [email protected]
26 [email protected] "#"
27 [email protected] "["
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "cfg"
32 [email protected]
33 [email protected] "("
34 [email protected] "feature"
35 [email protected] " "
36 [email protected] "="
37 [email protected] " "
38 [email protected] "\"some\""
39 [email protected] ")"
40 [email protected] "]"
41 [email protected] "\n "
42 [email protected]
43 [email protected] "_"
44 [email protected] " "
45 [email protected] "=>"
46 [email protected] " "
47 [email protected]
48 [email protected] "("
49 [email protected] ")"
50 [email protected] ","
51 [email protected] "\n "
52 [email protected]
53 [email protected]
54 [email protected] "#"
55 [email protected] "["
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected] "cfg"
60 [email protected]
61 [email protected] "("
62 [email protected] "feature"
63 [email protected] " "
64 [email protected] "="
65 [email protected] " "
66 [email protected] "\"other\""
67 [email protected] ")"
68 [email protected] "]"
69 [email protected] "\n "
70 [email protected]
71 [email protected] "_"
72 [email protected] " "
73 [email protected] "=>"
74 [email protected] " "
75 [email protected]
76 [email protected] "("
77 [email protected] ")"
78 [email protected] ","
79 [email protected] "\n "
80 [email protected]
81 [email protected]
82 [email protected] "#"
83 [email protected] "["
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected] "cfg"
88 [email protected]
89 [email protected] "("
90 [email protected] "feature"
91 [email protected] " "
92 [email protected] "="
93 [email protected] " "
94 [email protected] "\"many\""
95 [email protected] ")"
96 [email protected] "]"
97 [email protected] "\n "
98 [email protected]
99 [email protected] "#"
100 [email protected] "["
101 [email protected]
102 [email protected]
103 [email protected]
104 [email protected] "cfg"
105 [email protected]
106 [email protected] "("
107 [email protected] "feature"
108 [email protected] " "
109 [email protected] "="
110 [email protected] " "
111 [email protected] "\"attributes\""
112 [email protected] ")"
113 [email protected] "]"
114 [email protected] "\n "
115 [email protected]
116 [email protected] "#"
117 [email protected] "["
118 [email protected]
119 [email protected]
120 [email protected]
121 [email protected] "cfg"
122 [email protected]
123 [email protected] "("
124 [email protected] "feature"
125 [email protected] " "
126 [email protected] "="
127 [email protected] " "
128 [email protected] "\"before\""
129 [email protected] ")"
130 [email protected] "]"
131 [email protected] "\n "
132 [email protected]
133 [email protected] "_"
134 [email protected] " "
135 [email protected] "=>"
136 [email protected] " "
137 [email protected]
138 [email protected] "("
139 [email protected] ")"
140 [email protected] ","
141 [email protected] "\n "
142 [email protected] "}"
143 [email protected] "\n"
144 [email protected] "}"
145 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rs b/crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rs
new file mode 100644
index 000000000..676db42d1
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rs
@@ -0,0 +1,12 @@
1fn foo() {
2 match () {
3 #[cfg(feature = "some")]
4 _ => (),
5 #[cfg(feature = "other")]
6 _ => (),
7 #[cfg(feature = "many")]
8 #[cfg(feature = "attributes")]
9 #[cfg(feature = "before")]
10 _ => (),
11 }
12}
diff --git a/crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast b/crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
new file mode 100644
index 000000000..570b95205
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
@@ -0,0 +1,65 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "#"
12 [email protected] "["
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected] "derive"
17 [email protected]
18 [email protected] "("
19 [email protected] "Lifetime"
20 [email protected] ")"
21 [email protected] "]"
22 [email protected] " "
23 [email protected] "\'a"
24 [email protected] ","
25 [email protected] " "
26 [email protected]
27 [email protected]
28 [email protected] "#"
29 [email protected] "["
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "derive"
34 [email protected]
35 [email protected] "("
36 [email protected] "Type"
37 [email protected] ")"
38 [email protected] "]"
39 [email protected] " "
40 [email protected]
41 [email protected] "T"
42 [email protected] ">"
43 [email protected]
44 [email protected] "("
45 [email protected]
46 [email protected]
47 [email protected] "_"
48 [email protected] ":"
49 [email protected] " "
50 [email protected]
51 [email protected] "&"
52 [email protected] "\'a"
53 [email protected] " "
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected]
58 [email protected] "T"
59 [email protected] ")"
60 [email protected] " "
61 [email protected]
62 [email protected] "{"
63 [email protected] "\n"
64 [email protected] "}"
65 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rs b/crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rs
new file mode 100644
index 000000000..e8fdf741f
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rs
@@ -0,0 +1,2 @@
1fn foo<#[derive(Lifetime)] 'a, #[derive(Type)] T>(_: &'a T) {
2}
diff --git a/crates/syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast b/crates/syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast
new file mode 100644
index 000000000..7cdec6634
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast
@@ -0,0 +1,50 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "extern"
5 [email protected] " "
6 [email protected] "\"C\""
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] " "
11 [email protected]
12 [email protected] "fn"
13 [email protected] " "
14 [email protected]
15 [email protected] "printf"
16 [email protected]
17 [email protected] "("
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "format"
22 [email protected] ":"
23 [email protected] " "
24 [email protected]
25 [email protected] "*"
26 [email protected] "const"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "i8"
33 [email protected] ","
34 [email protected] " "
35 [email protected]
36 [email protected] "..."
37 [email protected] ")"
38 [email protected] " "
39 [email protected]
40 [email protected] "->"
41 [email protected] " "
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected] "i32"
47 [email protected] ";"
48 [email protected] " "
49 [email protected] "}"
50 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs b/crates/syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs
new file mode 100644
index 000000000..c59addaf4
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs
@@ -0,0 +1 @@
extern "C" { fn printf(format: *const i8, ...) -> i32; }
diff --git a/crates/syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast b/crates/syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast
new file mode 100644
index 000000000..aa4d7a784
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast
@@ -0,0 +1,31 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "crate"
21 [email protected] "::"
22 [email protected]
23 [email protected]
24 [email protected] "foo"
25 [email protected]
26 [email protected] "("
27 [email protected] ")"
28 [email protected] ";"
29 [email protected] " "
30 [email protected] "}"
31 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rs b/crates/syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rs
new file mode 100644
index 000000000..0f454d121
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rs
@@ -0,0 +1 @@
fn foo() { crate::foo(); }
diff --git a/crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast b/crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
new file mode 100644
index 000000000..54ea2c7c6
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
@@ -0,0 +1,47 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "S"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected] "#"
26 [email protected] "["
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "cfg"
31 [email protected]
32 [email protected] "("
33 [email protected] "test"
34 [email protected] ")"
35 [email protected] "]"
36 [email protected] " "
37 [email protected]
38 [email protected] "field"
39 [email protected] ":"
40 [email protected] " "
41 [email protected]
42 [email protected] "1"
43 [email protected] " "
44 [email protected] "}"
45 [email protected] "\n"
46 [email protected] "}"
47 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rs b/crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rs
new file mode 100644
index 000000000..a6c7760c7
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rs
@@ -0,0 +1,3 @@
1fn main() {
2 S { #[cfg(test)] field: 1 }
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast b/crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
new file mode 100644
index 000000000..0342e64f3
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
@@ -0,0 +1,97 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "#"
17 [email protected] "["
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "A"
22 [email protected] "]"
23 [email protected] " "
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected] "foo"
30 [email protected]
31 [email protected] "("
32 [email protected] ")"
33 [email protected] ";"
34 [email protected] "\n "
35 [email protected]
36 [email protected]
37 [email protected] "#"
38 [email protected] "["
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected] "B"
43 [email protected] "]"
44 [email protected] " "
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "bar"
50 [email protected] "!"
51 [email protected]
52 [email protected] "{"
53 [email protected] "}"
54 [email protected] "\n "
55 [email protected]
56 [email protected]
57 [email protected] "#"
58 [email protected] "["
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected] "C"
63 [email protected] "]"
64 [email protected] " "
65 [email protected]
66 [email protected] "#"
67 [email protected] "["
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected] "D"
72 [email protected] "]"
73 [email protected] " "
74 [email protected]
75 [email protected] "{"
76 [email protected] "}"
77 [email protected] "\n "
78 [email protected]
79 [email protected]
80 [email protected] "#"
81 [email protected] "["
82 [email protected]
83 [email protected]
84 [email protected]
85 [email protected] "D"
86 [email protected] "]"
87 [email protected] " "
88 [email protected]
89 [email protected] "return"
90 [email protected] " "
91 [email protected]
92 [email protected] "("
93 [email protected] ")"
94 [email protected] ";"
95 [email protected] "\n"
96 [email protected] "}"
97 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rs b/crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rs
new file mode 100644
index 000000000..b28c078f9
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rs
@@ -0,0 +1,6 @@
1fn foo() {
2 #[A] foo();
3 #[B] bar!{}
4 #[C] #[D] {}
5 #[D] return ();
6}
diff --git a/crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast b/crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast
new file mode 100644
index 000000000..3b46e5b47
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast
@@ -0,0 +1,57 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "{"
17 [email protected] " "
18 [email protected]
19 [email protected]
20 [email protected] "#"
21 [email protected] "["
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "A"
26 [email protected] "]"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "bar"
33 [email protected] "!"
34 [email protected]
35 [email protected] "("
36 [email protected] ")"
37 [email protected] "?"
38 [email protected] " "
39 [email protected] "}"
40 [email protected] "\n "
41 [email protected]
42 [email protected]
43 [email protected] "#"
44 [email protected] "["
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "B"
49 [email protected] "]"
50 [email protected] " "
51 [email protected] "&"
52 [email protected]
53 [email protected] "("
54 [email protected] ")"
55 [email protected] "\n"
56 [email protected] "}"
57 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rs b/crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rs
new file mode 100644
index 000000000..9c5c8eb36
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rs
@@ -0,0 +1,4 @@
1fn foo() {
2 { #[A] bar!()? }
3 #[B] &()
4}
diff --git a/crates/syntax/test_data/parser/inline/ok/0129_marco_pat.rast b/crates/syntax/test_data/parser/inline/ok/0129_marco_pat.rast
new file mode 100644
index 000000000..e283966ca
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0129_marco_pat.rast
@@ -0,0 +1,36 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "m"
23 [email protected] "!"
24 [email protected]
25 [email protected] "("
26 [email protected] "x"
27 [email protected] ")"
28 [email protected] " "
29 [email protected] "="
30 [email protected] " "
31 [email protected]
32 [email protected] "0"
33 [email protected] ";"
34 [email protected] "\n"
35 [email protected] "}"
36 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0129_marco_pat.rs b/crates/syntax/test_data/parser/inline/ok/0129_marco_pat.rs
new file mode 100644
index 000000000..811181d9b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0129_marco_pat.rs
@@ -0,0 +1,3 @@
1fn main() {
2 let m!(x) = 0;
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rast b/crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rast
new file mode 100644
index 000000000..4c07cefa6
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rast
@@ -0,0 +1,126 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "a"
20 [email protected] ";"
21 [email protected] "\n "
22 [email protected]
23 [email protected] "let"
24 [email protected] " "
25 [email protected]
26 [email protected]
27 [email protected] "b"
28 [email protected] ":"
29 [email protected] " "
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "i32"
35 [email protected] ";"
36 [email protected] "\n "
37 [email protected]
38 [email protected] "let"
39 [email protected] " "
40 [email protected]
41 [email protected]
42 [email protected] "c"
43 [email protected] " "
44 [email protected] "="
45 [email protected] " "
46 [email protected]
47 [email protected] "92"
48 [email protected] ";"
49 [email protected] "\n "
50 [email protected]
51 [email protected] "let"
52 [email protected] " "
53 [email protected]
54 [email protected]
55 [email protected] "d"
56 [email protected] ":"
57 [email protected] " "
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected] "i32"
63 [email protected] " "
64 [email protected] "="
65 [email protected] " "
66 [email protected]
67 [email protected] "92"
68 [email protected] ";"
69 [email protected] "\n "
70 [email protected]
71 [email protected] "let"
72 [email protected] " "
73 [email protected]
74 [email protected]
75 [email protected] "e"
76 [email protected] ":"
77 [email protected] " "
78 [email protected]
79 [email protected] "!"
80 [email protected] ";"
81 [email protected] "\n "
82 [email protected]
83 [email protected] "let"
84 [email protected] " "
85 [email protected]
86 [email protected] "_"
87 [email protected] ":"
88 [email protected] " "
89 [email protected]
90 [email protected] "!"
91 [email protected] " "
92 [email protected] "="
93 [email protected] " "
94 [email protected]
95 [email protected] "{"
96 [email protected] "}"
97 [email protected] ";"
98 [email protected] "\n "
99 [email protected]
100 [email protected] "let"
101 [email protected] " "
102 [email protected]
103 [email protected]
104 [email protected] "f"
105 [email protected] " "
106 [email protected] "="
107 [email protected] " "
108 [email protected]
109 [email protected]
110 [email protected] "#"
111 [email protected] "["
112 [email protected]
113 [email protected]
114 [email protected]
115 [email protected] "attr"
116 [email protected] "]"
117 [email protected]
118 [email protected] "|"
119 [email protected] "|"
120 [email protected]
121 [email protected] "{"
122 [email protected] "}"
123 [email protected] ";"
124 [email protected] "\n"
125 [email protected] "}"
126 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rs b/crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rs
new file mode 100644
index 000000000..fa8ee49a2
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rs
@@ -0,0 +1,9 @@
1fn foo() {
2 let a;
3 let b: i32;
4 let c = 92;
5 let d: i32 = 92;
6 let e: !;
7 let _: ! = {};
8 let f = #[attr]||{};
9}
diff --git a/crates/syntax/test_data/parser/inline/ok/0130_try_block_expr.rast b/crates/syntax/test_data/parser/inline/ok/0130_try_block_expr.rast
new file mode 100644
index 000000000..ffdffe2f8
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0130_try_block_expr.rast
@@ -0,0 +1,31 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "_"
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected] "try"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "}"
28 [email protected] ";"
29 [email protected] "\n"
30 [email protected] "}"
31 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0130_try_block_expr.rs b/crates/syntax/test_data/parser/inline/ok/0130_try_block_expr.rs
new file mode 100644
index 000000000..0f1b41eb6
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0130_try_block_expr.rs
@@ -0,0 +1,3 @@
1fn foo() {
2 let _ = try {};
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0131_existential_type.rast b/crates/syntax/test_data/parser/inline/ok/0131_existential_type.rast
new file mode 100644
index 000000000..d47071a91
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0131_existential_type.rast
@@ -0,0 +1,31 @@
1[email protected]
2 [email protected]
3 [email protected] "existential"
4 [email protected] " "
5 [email protected] "type"
6 [email protected] " "
7 [email protected]
8 [email protected] "Foo"
9 [email protected] ":"
10 [email protected] " "
11 [email protected]
12 [email protected]
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "Fn"
18 [email protected]
19 [email protected] "("
20 [email protected] ")"
21 [email protected] " "
22 [email protected]
23 [email protected] "->"
24 [email protected] " "
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected] "usize"
30 [email protected] ";"
31 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0131_existential_type.rs b/crates/syntax/test_data/parser/inline/ok/0131_existential_type.rs
new file mode 100644
index 000000000..23baf7145
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0131_existential_type.rs
@@ -0,0 +1 @@
existential type Foo: Fn() -> usize;
diff --git a/crates/syntax/test_data/parser/inline/ok/0132_box_expr.rast b/crates/syntax/test_data/parser/inline/ok/0132_box_expr.rast
new file mode 100644
index 000000000..c55038247
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0132_box_expr.rast
@@ -0,0 +1,89 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "x"
20 [email protected] " "
21 [email protected] "="
22 [email protected] " "
23 [email protected]
24 [email protected] "box"
25 [email protected] " "
26 [email protected]
27 [email protected] "1i32"
28 [email protected] ";"
29 [email protected] "\n "
30 [email protected]
31 [email protected] "let"
32 [email protected] " "
33 [email protected]
34 [email protected]
35 [email protected] "y"
36 [email protected] " "
37 [email protected] "="
38 [email protected] " "
39 [email protected]
40 [email protected] "("
41 [email protected]
42 [email protected] "box"
43 [email protected] " "
44 [email protected]
45 [email protected] "1i32"
46 [email protected] ","
47 [email protected] " "
48 [email protected]
49 [email protected] "box"
50 [email protected] " "
51 [email protected]
52 [email protected] "2i32"
53 [email protected] ")"
54 [email protected] ";"
55 [email protected] "\n "
56 [email protected]
57 [email protected] "let"
58 [email protected] " "
59 [email protected]
60 [email protected]
61 [email protected] "z"
62 [email protected] " "
63 [email protected] "="
64 [email protected] " "
65 [email protected]
66 [email protected]
67 [email protected]
68 [email protected]
69 [email protected]
70 [email protected] "Foo"
71 [email protected]
72 [email protected] "("
73 [email protected]
74 [email protected] "box"
75 [email protected] " "
76 [email protected]
77 [email protected] "1i32"
78 [email protected] ","
79 [email protected] " "
80 [email protected]
81 [email protected] "box"
82 [email protected] " "
83 [email protected]
84 [email protected] "2i32"
85 [email protected] ")"
86 [email protected] ";"
87 [email protected] "\n"
88 [email protected] "}"
89 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0132_box_expr.rs b/crates/syntax/test_data/parser/inline/ok/0132_box_expr.rs
new file mode 100644
index 000000000..fc9923b71
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0132_box_expr.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 let x = box 1i32;
3 let y = (box 1i32, box 2i32);
4 let z = Foo(box 1i32, box 2i32);
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast b/crates/syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast
new file mode 100644
index 000000000..429a0506e
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast
@@ -0,0 +1,62 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "simple_function"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "enum"
16 [email protected] " "
17 [email protected]
18 [email protected] "LocalEnum"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "\n "
23 [email protected]
24 [email protected]
25 [email protected] "One"
26 [email protected] ","
27 [email protected] "\n "
28 [email protected]
29 [email protected]
30 [email protected] "Two"
31 [email protected] ","
32 [email protected] "\n "
33 [email protected] "}"
34 [email protected] ";"
35 [email protected] "\n "
36 [email protected]
37 [email protected] "fn"
38 [email protected] " "
39 [email protected]
40 [email protected] "f"
41 [email protected]
42 [email protected] "("
43 [email protected] ")"
44 [email protected] " "
45 [email protected]
46 [email protected] "{"
47 [email protected] "}"
48 [email protected] ";"
49 [email protected] "\n "
50 [email protected]
51 [email protected] "struct"
52 [email protected] " "
53 [email protected]
54 [email protected] "S"
55 [email protected] " "
56 [email protected]
57 [email protected] "{"
58 [email protected] "}"
59 [email protected] ";"
60 [email protected] "\n"
61 [email protected] "}"
62 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rs b/crates/syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rs
new file mode 100644
index 000000000..eadc7fffb
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rs
@@ -0,0 +1,8 @@
1fn simple_function() {
2 enum LocalEnum {
3 One,
4 Two,
5 };
6 fn f() {};
7 struct S {};
8}
diff --git a/crates/syntax/test_data/parser/inline/ok/0137_await_expr.rast b/crates/syntax/test_data/parser/inline/ok/0137_await_expr.rast
new file mode 100644
index 000000000..923effe38
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0137_await_expr.rast
@@ -0,0 +1,69 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "x"
21 [email protected] "."
22 [email protected] "await"
23 [email protected] ";"
24 [email protected] "\n "
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "x"
33 [email protected] "."
34 [email protected]
35 [email protected] "0"
36 [email protected] "."
37 [email protected] "await"
38 [email protected] ";"
39 [email protected] "\n "
40 [email protected]
41 [email protected]
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected] "x"
51 [email protected] "."
52 [email protected]
53 [email protected] "0"
54 [email protected]
55 [email protected] "("
56 [email protected] ")"
57 [email protected] "."
58 [email protected] "await"
59 [email protected] "?"
60 [email protected] "."
61 [email protected]
62 [email protected] "hello"
63 [email protected]
64 [email protected] "("
65 [email protected] ")"
66 [email protected] ";"
67 [email protected] "\n"
68 [email protected] "}"
69 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0137_await_expr.rs b/crates/syntax/test_data/parser/inline/ok/0137_await_expr.rs
new file mode 100644
index 000000000..d2ba89ca6
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0137_await_expr.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 x.await;
3 x.0.await;
4 x.0().await?.hello();
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast b/crates/syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
new file mode 100644
index 000000000..3870ec135
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
@@ -0,0 +1,55 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "print_all"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ":"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "Iterator"
21 [email protected]
22 [email protected] "<"
23 [email protected]
24 [email protected]
25 [email protected] "Item"
26 [email protected] ":"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "Display"
35 [email protected] ">"
36 [email protected] ">"
37 [email protected]
38 [email protected] "("
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected] "printables"
43 [email protected] ":"
44 [email protected] " "
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "T"
50 [email protected] ")"
51 [email protected] " "
52 [email protected]
53 [email protected] "{"
54 [email protected] "}"
55 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rs b/crates/syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rs
new file mode 100644
index 000000000..eb21a657b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rs
@@ -0,0 +1 @@
fn print_all<T: Iterator<Item: Display>>(printables: T) {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0138_expression_after_block.rast b/crates/syntax/test_data/parser/inline/ok/0138_expression_after_block.rast
new file mode 100644
index 000000000..f7c0e0ab0
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0138_expression_after_block.rast
@@ -0,0 +1,64 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "mut"
19 [email protected] " "
20 [email protected]
21 [email protected] "p"
22 [email protected] " "
23 [email protected] "="
24 [email protected] " "
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected] "F"
30 [email protected]
31 [email protected] "{"
32 [email protected]
33 [email protected]
34 [email protected] "x"
35 [email protected] ":"
36 [email protected] " "
37 [email protected]
38 [email protected] "5"
39 [email protected] "}"
40 [email protected] ";"
41 [email protected] "\n "
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected] "{"
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected] "p"
52 [email protected] "}"
53 [email protected] "."
54 [email protected]
55 [email protected] "x"
56 [email protected] " "
57 [email protected] "="
58 [email protected] " "
59 [email protected]
60 [email protected] "10"
61 [email protected] ";"
62 [email protected] "\n"
63 [email protected] "}"
64 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0138_expression_after_block.rs b/crates/syntax/test_data/parser/inline/ok/0138_expression_after_block.rs
new file mode 100644
index 000000000..76007e3ee
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0138_expression_after_block.rs
@@ -0,0 +1,4 @@
1fn foo() {
2 let mut p = F{x: 5};
3 {p}.x = 10;
4}
diff --git a/crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast b/crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
new file mode 100644
index 000000000..6403ff8d5
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
@@ -0,0 +1,25 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "f"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected] "#"
11 [email protected] "["
12 [email protected]
13 [email protected]
14 [email protected]
15 [email protected] "must_use"
16 [email protected] "]"
17 [email protected] " "
18 [email protected]
19 [email protected] "self"
20 [email protected] ")"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rs b/crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rs
new file mode 100644
index 000000000..35155057a
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rs
@@ -0,0 +1 @@
fn f(#[must_use] self) {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast b/crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
new file mode 100644
index 000000000..495e4c51b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
@@ -0,0 +1,34 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "f"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected] "#"
11 [email protected] "["
12 [email protected]
13 [email protected]
14 [email protected]
15 [email protected] "attr1"
16 [email protected] "]"
17 [email protected] " "
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "pat"
22 [email protected] ":"
23 [email protected] " "
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "Type"
29 [email protected] ")"
30 [email protected] " "
31 [email protected]
32 [email protected] "{"
33 [email protected] "}"
34 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rs b/crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rs
new file mode 100644
index 000000000..c238be791
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rs
@@ -0,0 +1 @@
fn f(#[attr1] pat: Type) {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0142_for_range_from.rast b/crates/syntax/test_data/parser/inline/ok/0142_for_range_from.rast
new file mode 100644
index 000000000..36e448c94
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0142_for_range_from.rast
@@ -0,0 +1,40 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "for"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "x"
20 [email protected] " "
21 [email protected] "in"
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected] "0"
26 [email protected] " "
27 [email protected] ".."
28 [email protected] " "
29 [email protected]
30 [email protected] "{"
31 [email protected] "\n "
32 [email protected]
33 [email protected]
34 [email protected] "break"
35 [email protected] ";"
36 [email protected] "\n "
37 [email protected] "}"
38 [email protected] "\n"
39 [email protected] "}"
40 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0142_for_range_from.rs b/crates/syntax/test_data/parser/inline/ok/0142_for_range_from.rs
new file mode 100644
index 000000000..af0d40a7a
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0142_for_range_from.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 for x in 0 .. {
3 break;
4 }
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0143_box_pat.rast b/crates/syntax/test_data/parser/inline/ok/0143_box_pat.rast
new file mode 100644
index 000000000..65887b962
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0143_box_pat.rast
@@ -0,0 +1,110 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "box"
19 [email protected] " "
20 [email protected]
21 [email protected]
22 [email protected] "i"
23 [email protected] " "
24 [email protected] "="
25 [email protected] " "
26 [email protected]
27 [email protected] "("
28 [email protected] ")"
29 [email protected] ";"
30 [email protected] "\n "
31 [email protected]
32 [email protected] "let"
33 [email protected] " "
34 [email protected]
35 [email protected] "box"
36 [email protected] " "
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "Outer"
42 [email protected] " "
43 [email protected]
44 [email protected] "{"
45 [email protected] " "
46 [email protected]
47 [email protected]
48 [email protected] "box"
49 [email protected] " "
50 [email protected]
51 [email protected]
52 [email protected] "i"
53 [email protected] ","
54 [email protected] " "
55 [email protected]
56 [email protected]
57 [email protected] "j"
58 [email protected] ":"
59 [email protected] " "
60 [email protected]
61 [email protected] "box"
62 [email protected] " "
63 [email protected]
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected] "Inner"
68 [email protected] "("
69 [email protected]
70 [email protected] "box"
71 [email protected] " "
72 [email protected]
73 [email protected] "&"
74 [email protected]
75 [email protected]
76 [email protected] "x"
77 [email protected] ")"
78 [email protected] " "
79 [email protected] "}"
80 [email protected] " "
81 [email protected] "="
82 [email protected] " "
83 [email protected]
84 [email protected] "("
85 [email protected] ")"
86 [email protected] ";"
87 [email protected] "\n "
88 [email protected]
89 [email protected] "let"
90 [email protected] " "
91 [email protected]
92 [email protected] "box"
93 [email protected] " "
94 [email protected]
95 [email protected] "ref"
96 [email protected] " "
97 [email protected] "mut"
98 [email protected] " "
99 [email protected]
100 [email protected] "i"
101 [email protected] " "
102 [email protected] "="
103 [email protected] " "
104 [email protected]
105 [email protected] "("
106 [email protected] ")"
107 [email protected] ";"
108 [email protected] "\n"
109 [email protected] "}"
110 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0143_box_pat.rs b/crates/syntax/test_data/parser/inline/ok/0143_box_pat.rs
new file mode 100644
index 000000000..9d458aa1e
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0143_box_pat.rs
@@ -0,0 +1,5 @@
1fn main() {
2 let box i = ();
3 let box Outer { box i, j: box Inner(box &x) } = ();
4 let box ref mut i = ();
5}
diff --git a/crates/syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast b/crates/syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast
new file mode 100644
index 000000000..8a5bde0b6
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast
@@ -0,0 +1,455 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] ".."
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected] "("
24 [email protected] ")"
25 [email protected] ";"
26 [email protected] "\n "
27 [email protected] "//"
28 [email protected] "\n "
29 [email protected] "// Tuples"
30 [email protected] "\n "
31 [email protected] "//"
32 [email protected] "\n "
33 [email protected]
34 [email protected] "let"
35 [email protected] " "
36 [email protected]
37 [email protected] "("
38 [email protected]
39 [email protected]
40 [email protected] "a"
41 [email protected] ","
42 [email protected] " "
43 [email protected]
44 [email protected] ".."
45 [email protected] ")"
46 [email protected] " "
47 [email protected] "="
48 [email protected] " "
49 [email protected]
50 [email protected] "("
51 [email protected] ")"
52 [email protected] ";"
53 [email protected] "\n "
54 [email protected]
55 [email protected] "let"
56 [email protected] " "
57 [email protected]
58 [email protected] "("
59 [email protected]
60 [email protected]
61 [email protected] "a"
62 [email protected] ","
63 [email protected] " "
64 [email protected]
65 [email protected] ".."
66 [email protected] ","
67 [email protected] ")"
68 [email protected] " "
69 [email protected] "="
70 [email protected] " "
71 [email protected]
72 [email protected] "("
73 [email protected] ")"
74 [email protected] ";"
75 [email protected] "\n "
76 [email protected]
77 [email protected] "let"
78 [email protected] " "
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected]
83 [email protected] "Tuple"
84 [email protected] "("
85 [email protected]
86 [email protected]
87 [email protected] "a"
88 [email protected] ","
89 [email protected] " "
90 [email protected]
91 [email protected] ".."
92 [email protected] ")"
93 [email protected] " "
94 [email protected] "="
95 [email protected] " "
96 [email protected]
97 [email protected] "("
98 [email protected] ")"
99 [email protected] ";"
100 [email protected] "\n "
101 [email protected]
102 [email protected] "let"
103 [email protected] " "
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected]
108 [email protected] "Tuple"
109 [email protected] "("
110 [email protected]
111 [email protected]
112 [email protected] "a"
113 [email protected] ","
114 [email protected] " "
115 [email protected]
116 [email protected] ".."
117 [email protected] ","
118 [email protected] ")"
119 [email protected] " "
120 [email protected] "="
121 [email protected] " "
122 [email protected]
123 [email protected] "("
124 [email protected] ")"
125 [email protected] ";"
126 [email protected] "\n "
127 [email protected]
128 [email protected] "let"
129 [email protected] " "
130 [email protected]
131 [email protected] "("
132 [email protected]
133 [email protected] ".."
134 [email protected] ","
135 [email protected] " "
136 [email protected]
137 [email protected] ".."
138 [email protected] ")"
139 [email protected] " "
140 [email protected] "="
141 [email protected] " "
142 [email protected]
143 [email protected] "("
144 [email protected] ")"
145 [email protected] ";"
146 [email protected] "\n "
147 [email protected]
148 [email protected] "let"
149 [email protected] " "
150 [email protected]
151 [email protected]
152 [email protected]
153 [email protected]
154 [email protected] "Tuple"
155 [email protected] "("
156 [email protected]
157 [email protected] ".."
158 [email protected] ","
159 [email protected] " "
160 [email protected]
161 [email protected] ".."
162 [email protected] ")"
163 [email protected] " "
164 [email protected] "="
165 [email protected] " "
166 [email protected]
167 [email protected] "("
168 [email protected] ")"
169 [email protected] ";"
170 [email protected] "\n "
171 [email protected]
172 [email protected] "let"
173 [email protected] " "
174 [email protected]
175 [email protected] "("
176 [email protected]
177 [email protected] ".."
178 [email protected] ","
179 [email protected] " "
180 [email protected]
181 [email protected]
182 [email protected] "a"
183 [email protected] ","
184 [email protected] " "
185 [email protected]
186 [email protected] ".."
187 [email protected] ")"
188 [email protected] " "
189 [email protected] "="
190 [email protected] " "
191 [email protected]
192 [email protected] "("
193 [email protected] ")"
194 [email protected] ";"
195 [email protected] "\n "
196 [email protected]
197 [email protected] "let"
198 [email protected] " "
199 [email protected]
200 [email protected]
201 [email protected]
202 [email protected]
203 [email protected] "Tuple"
204 [email protected] "("
205 [email protected]
206 [email protected] ".."
207 [email protected] ","
208 [email protected] " "
209 [email protected]
210 [email protected]
211 [email protected] "a"
212 [email protected] ","
213 [email protected] " "
214 [email protected]
215 [email protected] ".."
216 [email protected] ")"
217 [email protected] " "
218 [email protected] "="
219 [email protected] " "
220 [email protected]
221 [email protected] "("
222 [email protected] ")"
223 [email protected] ";"
224 [email protected] "\n "
225 [email protected] "//"
226 [email protected] "\n "
227 [email protected] "// Slices"
228 [email protected] "\n "
229 [email protected] "//"
230 [email protected] "\n "
231 [email protected]
232 [email protected] "let"
233 [email protected] " "
234 [email protected]
235 [email protected] "["
236 [email protected]
237 [email protected] ".."
238 [email protected] "]"
239 [email protected] " "
240 [email protected] "="
241 [email protected] " "
242 [email protected]
243 [email protected] "("
244 [email protected] ")"
245 [email protected] ";"
246 [email protected] "\n "
247 [email protected]
248 [email protected] "let"
249 [email protected] " "
250 [email protected]
251 [email protected] "["
252 [email protected]
253 [email protected]
254 [email protected] "head"
255 [email protected] ","
256 [email protected] " "
257 [email protected]
258 [email protected] ".."
259 [email protected] "]"
260 [email protected] " "
261 [email protected] "="
262 [email protected] " "
263 [email protected]
264 [email protected] "("
265 [email protected] ")"
266 [email protected] ";"
267 [email protected] "\n "
268 [email protected]
269 [email protected] "let"
270 [email protected] " "
271 [email protected]
272 [email protected] "["
273 [email protected]
274 [email protected]
275 [email protected] "head"
276 [email protected] ","
277 [email protected] " "
278 [email protected]
279 [email protected]
280 [email protected] "tail"
281 [email protected] " "
282 [email protected] "@"
283 [email protected] " "
284 [email protected]
285 [email protected] ".."
286 [email protected] "]"
287 [email protected] " "
288 [email protected] "="
289 [email protected] " "
290 [email protected]
291 [email protected] "("
292 [email protected] ")"
293 [email protected] ";"
294 [email protected] "\n "
295 [email protected]
296 [email protected] "let"
297 [email protected] " "
298 [email protected]
299 [email protected] "["
300 [email protected]
301 [email protected]
302 [email protected] "head"
303 [email protected] ","
304 [email protected] " "
305 [email protected]
306 [email protected] ".."
307 [email protected] ","
308 [email protected] " "
309 [email protected]
310 [email protected]
311 [email protected] "cons"
312 [email protected] "]"
313 [email protected] " "
314 [email protected] "="
315 [email protected] " "
316 [email protected]
317 [email protected] "("
318 [email protected] ")"
319 [email protected] ";"
320 [email protected] "\n "
321 [email protected]
322 [email protected] "let"
323 [email protected] " "
324 [email protected]
325 [email protected] "["
326 [email protected]
327 [email protected]
328 [email protected] "head"
329 [email protected] ","
330 [email protected] " "
331 [email protected]
332 [email protected]
333 [email protected] "mid"
334 [email protected] " "
335 [email protected] "@"
336 [email protected] " "
337 [email protected]
338 [email protected] ".."
339 [email protected] ","
340 [email protected] " "
341 [email protected]
342 [email protected]
343 [email protected] "cons"
344 [email protected] "]"
345 [email protected] " "
346 [email protected] "="
347 [email protected] " "
348 [email protected]
349 [email protected] "("
350 [email protected] ")"
351 [email protected] ";"
352 [email protected] "\n "
353 [email protected]
354 [email protected] "let"
355 [email protected] " "
356 [email protected]
357 [email protected] "["
358 [email protected]
359 [email protected]
360 [email protected] "head"
361 [email protected] ","
362 [email protected] " "
363 [email protected]
364 [email protected] ".."
365 [email protected] ","
366 [email protected] " "
367 [email protected]
368 [email protected] ".."
369 [email protected] ","
370 [email protected] " "
371 [email protected]
372 [email protected]
373 [email protected] "cons"
374 [email protected] "]"
375 [email protected] " "
376 [email protected] "="
377 [email protected] " "
378 [email protected]
379 [email protected] "("
380 [email protected] ")"
381 [email protected] ";"
382 [email protected] "\n "
383 [email protected]
384 [email protected] "let"
385 [email protected] " "
386 [email protected]
387 [email protected] "["
388 [email protected]
389 [email protected]
390 [email protected] "head"
391 [email protected] ","
392 [email protected] " "
393 [email protected]
394 [email protected] ".."
395 [email protected] ","
396 [email protected] " "
397 [email protected]
398 [email protected]
399 [email protected] "mid"
400 [email protected] ","
401 [email protected] " "
402 [email protected]
403 [email protected]
404 [email protected] "tail"
405 [email protected] " "
406 [email protected] "@"
407 [email protected] " "
408 [email protected]
409 [email protected] ".."
410 [email protected] "]"
411 [email protected] " "
412 [email protected] "="
413 [email protected] " "
414 [email protected]
415 [email protected] "("
416 [email protected] ")"
417 [email protected] ";"
418 [email protected] "\n "
419 [email protected]
420 [email protected] "let"
421 [email protected] " "
422 [email protected]
423 [email protected] "["
424 [email protected]
425 [email protected]
426 [email protected] "head"
427 [email protected] ","
428 [email protected] " "
429 [email protected]
430 [email protected] ".."
431 [email protected] ","
432 [email protected] " "
433 [email protected]
434 [email protected]
435 [email protected] "mid"
436 [email protected] ","
437 [email protected] " "
438 [email protected]
439 [email protected] ".."
440 [email protected] ","
441 [email protected] " "
442 [email protected]
443 [email protected]
444 [email protected] "cons"
445 [email protected] "]"
446 [email protected] " "
447 [email protected] "="
448 [email protected] " "
449 [email protected]
450 [email protected] "("
451 [email protected] ")"
452 [email protected] ";"
453 [email protected] "\n"
454 [email protected] "}"
455 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rs b/crates/syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rs
new file mode 100644
index 000000000..3262f27e1
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rs
@@ -0,0 +1,25 @@
1fn main() {
2 let .. = ();
3 //
4 // Tuples
5 //
6 let (a, ..) = ();
7 let (a, ..,) = ();
8 let Tuple(a, ..) = ();
9 let Tuple(a, ..,) = ();
10 let (.., ..) = ();
11 let Tuple(.., ..) = ();
12 let (.., a, ..) = ();
13 let Tuple(.., a, ..) = ();
14 //
15 // Slices
16 //
17 let [..] = ();
18 let [head, ..] = ();
19 let [head, tail @ ..] = ();
20 let [head, .., cons] = ();
21 let [head, mid @ .., cons] = ();
22 let [head, .., .., cons] = ();
23 let [head, .., mid, tail @ ..] = ();
24 let [head, .., mid, .., cons] = ();
25}
diff --git a/crates/syntax/test_data/parser/inline/ok/0145_record_field_pat.rast b/crates/syntax/test_data/parser/inline/ok/0145_record_field_pat.rast
new file mode 100644
index 000000000..925409bdf
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0145_record_field_pat.rast
@@ -0,0 +1,75 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "S"
22 [email protected] " "
23 [email protected]
24 [email protected] "{"
25 [email protected] " "
26 [email protected]
27 [email protected]
28 [email protected] "0"
29 [email protected] ":"
30 [email protected] " "
31 [email protected]
32 [email protected]
33 [email protected] "1"
34 [email protected] " "
35 [email protected] "}"
36 [email protected] " "
37 [email protected] "="
38 [email protected] " "
39 [email protected]
40 [email protected] "("
41 [email protected] ")"
42 [email protected] ";"
43 [email protected] "\n "
44 [email protected]
45 [email protected] "let"
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected] "S"
52 [email protected] " "
53 [email protected]
54 [email protected] "{"
55 [email protected] " "
56 [email protected]
57 [email protected]
58 [email protected] "x"
59 [email protected] ":"
60 [email protected] " "
61 [email protected]
62 [email protected]
63 [email protected] "1"
64 [email protected] " "
65 [email protected] "}"
66 [email protected] " "
67 [email protected] "="
68 [email protected] " "
69 [email protected]
70 [email protected] "("
71 [email protected] ")"
72 [email protected] ";"
73 [email protected] "\n"
74 [email protected] "}"
75 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0145_record_field_pat.rs b/crates/syntax/test_data/parser/inline/ok/0145_record_field_pat.rs
new file mode 100644
index 000000000..26b1d5f89
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0145_record_field_pat.rs
@@ -0,0 +1,4 @@
1fn foo() {
2 let S { 0: 1 } = ();
3 let S { x: 1 } = ();
4}
diff --git a/crates/syntax/test_data/parser/inline/ok/0146_as_precedence.rast b/crates/syntax/test_data/parser/inline/ok/0146_as_precedence.rast
new file mode 100644
index 000000000..a36cc8dab
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0146_as_precedence.rast
@@ -0,0 +1,42 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "_"
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected]
24 [email protected] "&"
25 [email protected]
26 [email protected] "1"
27 [email protected] " "
28 [email protected] "as"
29 [email protected] " "
30 [email protected]
31 [email protected] "*"
32 [email protected] "const"
33 [email protected] " "
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "i32"
39 [email protected] ";"
40 [email protected] "\n"
41 [email protected] "}"
42 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0146_as_precedence.rs b/crates/syntax/test_data/parser/inline/ok/0146_as_precedence.rs
new file mode 100644
index 000000000..a06dec1fa
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0146_as_precedence.rs
@@ -0,0 +1,3 @@
1fn foo() {
2 let _ = &1 as *const i32;
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0147_const_param.rast b/crates/syntax/test_data/parser/inline/ok/0147_const_param.rast
new file mode 100644
index 000000000..9312eab65
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0147_const_param.rast
@@ -0,0 +1,23 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected] "const"
11 [email protected] " "
12 [email protected]
13 [email protected] "N"
14 [email protected] ":"
15 [email protected] " "
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "u32"
21 [email protected] ">"
22 [email protected] ";"
23 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0147_const_param.rs b/crates/syntax/test_data/parser/inline/ok/0147_const_param.rs
new file mode 100644
index 000000000..8cdb3b703
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0147_const_param.rs
@@ -0,0 +1 @@
struct S<const N: u32>;
diff --git a/crates/syntax/test_data/parser/inline/ok/0147_macro_def.rast b/crates/syntax/test_data/parser/inline/ok/0147_macro_def.rast
new file mode 100644
index 000000000..6655aeab1
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0147_macro_def.rast
@@ -0,0 +1,45 @@
1[email protected]
2 [email protected]
3 [email protected] "macro"
4 [email protected] " "
5 [email protected]
6 [email protected] "m"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] " "
11 [email protected]
12 [email protected] "("
13 [email protected] "$"
14 [email protected] "i"
15 [email protected] ":"
16 [email protected] "ident"
17 [email protected] ")"
18 [email protected] " "
19 [email protected] "="
20 [email protected] ">"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] " "
26 [email protected] "}"
27 [email protected] "\n"
28 [email protected]
29 [email protected] "macro"
30 [email protected] " "
31 [email protected]
32 [email protected] "m"
33 [email protected]
34 [email protected]
35 [email protected] "("
36 [email protected] "$"
37 [email protected] "i"
38 [email protected] ":"
39 [email protected] "ident"
40 [email protected] ")"
41 [email protected] " "
42 [email protected]
43 [email protected] "{"
44 [email protected] "}"
45 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0147_macro_def.rs b/crates/syntax/test_data/parser/inline/ok/0147_macro_def.rs
new file mode 100644
index 000000000..319a4e2aa
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0147_macro_def.rs
@@ -0,0 +1,2 @@
1macro m { ($i:ident) => {} }
2macro m($i:ident) {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast b/crates/syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast
new file mode 100644
index 000000000..1c527f60b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast
@@ -0,0 +1,21 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "pub"
5 [email protected] " "
6 [email protected] "macro"
7 [email protected] " "
8 [email protected]
9 [email protected] "m"
10 [email protected]
11 [email protected]
12 [email protected] "("
13 [email protected] "$"
14 [email protected] ":"
15 [email protected] "ident"
16 [email protected] ")"
17 [email protected] " "
18 [email protected]
19 [email protected] "{"
20 [email protected] "}"
21 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0148_pub_macro_def.rs b/crates/syntax/test_data/parser/inline/ok/0148_pub_macro_def.rs
new file mode 100644
index 000000000..3b2be597f
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0148_pub_macro_def.rs
@@ -0,0 +1 @@
pub macro m($:ident) {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rast b/crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rast
new file mode 100644
index 000000000..f284aafcd
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rast
@@ -0,0 +1,47 @@
1[email protected]
2 [email protected]
3 [email protected] "const"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected] ":"
8 [email protected] " "
9 [email protected]
10 [email protected] "&"
11 [email protected]
12 [email protected] "["
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "i64"
18 [email protected] "]"
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected] "&"
24 [email protected]
25 [email protected] "["
26 [email protected]
27 [email protected] "1"
28 [email protected] ","
29 [email protected] " "
30 [email protected]
31 [email protected]
32 [email protected] "#"
33 [email protected] "["
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected] "cfg"
38 [email protected]
39 [email protected] "("
40 [email protected] "test"
41 [email protected] ")"
42 [email protected] "]"
43 [email protected] " "
44 [email protected] "2"
45 [email protected] "]"
46 [email protected] ";"
47 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rs b/crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rs
new file mode 100644
index 000000000..2ac310924
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rs
@@ -0,0 +1 @@
const A: &[i64] = &[1, #[cfg(test)] 2];
diff --git a/crates/syntax/test_data/parser/inline/ok/0150_impl_type_params.rast b/crates/syntax/test_data/parser/inline/ok/0150_impl_type_params.rast
new file mode 100644
index 000000000..12194abda
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0150_impl_type_params.rast
@@ -0,0 +1,38 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected]
5 [email protected] "<"
6 [email protected]
7 [email protected] "const"
8 [email protected] " "
9 [email protected]
10 [email protected] "N"
11 [email protected] ":"
12 [email protected] " "
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "u32"
18 [email protected] ">"
19 [email protected] " "
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected] "Bar"
25 [email protected]
26 [email protected] "<"
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "N"
33 [email protected] ">"
34 [email protected] " "
35 [email protected]
36 [email protected] "{"
37 [email protected] "}"
38 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0150_impl_type_params.rs b/crates/syntax/test_data/parser/inline/ok/0150_impl_type_params.rs
new file mode 100644
index 000000000..cb0a105c2
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0150_impl_type_params.rs
@@ -0,0 +1 @@
impl<const N: u32> Bar<N> {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0151_fn.rast b/crates/syntax/test_data/parser/inline/ok/0151_fn.rast
new file mode 100644
index 000000000..23c4269b3
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0151_fn.rast
@@ -0,0 +1,14 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "}"
14 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0151_fn.rs b/crates/syntax/test_data/parser/inline/ok/0151_fn.rs
new file mode 100644
index 000000000..8f3b7ef11
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0151_fn.rs
@@ -0,0 +1 @@
fn foo() {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0151_trait_alias.rast b/crates/syntax/test_data/parser/inline/ok/0151_trait_alias.rast
new file mode 100644
index 000000000..dac50410e
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0151_trait_alias.rast
@@ -0,0 +1,128 @@
1[email protected]
2 [email protected]
3 [email protected] "trait"
4 [email protected] " "
5 [email protected]
6 [email protected] "Z"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "U"
12 [email protected] ">"
13 [email protected] " "
14 [email protected] "="
15 [email protected] " "
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "T"
23 [email protected]
24 [email protected] "<"
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "U"
31 [email protected] ">"
32 [email protected] ";"
33 [email protected] "\n"
34 [email protected]
35 [email protected] "trait"
36 [email protected] " "
37 [email protected]
38 [email protected] "Z"
39 [email protected]
40 [email protected] "<"
41 [email protected]
42 [email protected]
43 [email protected] "U"
44 [email protected] ">"
45 [email protected] " "
46 [email protected] "="
47 [email protected] " "
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected] "T"
55 [email protected]
56 [email protected] "<"
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected] "U"
63 [email protected] ">"
64 [email protected] " "
65 [email protected]
66 [email protected] "where"
67 [email protected] " "
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected] "U"
74 [email protected] ":"
75 [email protected] " "
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected] "Copy"
83 [email protected] ";"
84 [email protected] "\n"
85 [email protected]
86 [email protected] "trait"
87 [email protected] " "
88 [email protected]
89 [email protected] "Z"
90 [email protected]
91 [email protected] "<"
92 [email protected]
93 [email protected]
94 [email protected] "U"
95 [email protected] ">"
96 [email protected] " "
97 [email protected] "="
98 [email protected] " "
99 [email protected]
100 [email protected]
101 [email protected] "where"
102 [email protected] " "
103 [email protected]
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected]
108 [email protected] "Self"
109 [email protected] ":"
110 [email protected] " "
111 [email protected]
112 [email protected]
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected]
117 [email protected] "T"
118 [email protected]
119 [email protected] "<"
120 [email protected]
121 [email protected]
122 [email protected]
123 [email protected]
124 [email protected]
125 [email protected] "U"
126 [email protected] ">"
127 [email protected] ";"
128 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0151_trait_alias.rs b/crates/syntax/test_data/parser/inline/ok/0151_trait_alias.rs
new file mode 100644
index 000000000..4bd428ee4
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0151_trait_alias.rs
@@ -0,0 +1,3 @@
1trait Z<U> = T<U>;
2trait Z<U> = T<U> where U: Copy;
3trait Z<U> = where Self: T<U>;
diff --git a/crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast b/crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast
new file mode 100644
index 000000000..2905c5f1a
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast
@@ -0,0 +1,36 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "foo"
20 [email protected]
21 [email protected] "("
22 [email protected]
23 [email protected]
24 [email protected] "#"
25 [email protected] "["
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected] "attr"
30 [email protected] "]"
31 [email protected] " "
32 [email protected] "92"
33 [email protected] ")"
34 [email protected] "\n"
35 [email protected] "}"
36 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rs b/crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rs
new file mode 100644
index 000000000..5daf1d7b0
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rs
@@ -0,0 +1,3 @@
1fn main() {
2 foo(#[attr] 92)
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0152_impl.rast b/crates/syntax/test_data/parser/inline/ok/0152_impl.rast
new file mode 100644
index 000000000..7968cf9ff
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0152_impl.rast
@@ -0,0 +1,22 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "T"
10 [email protected] " "
11 [email protected] "for"
12 [email protected] " "
13 [email protected]
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "S"
18 [email protected] " "
19 [email protected]
20 [email protected] "{"
21 [email protected] "}"
22 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0152_impl.rs b/crates/syntax/test_data/parser/inline/ok/0152_impl.rs
new file mode 100644
index 000000000..a1a550d8a
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0152_impl.rs
@@ -0,0 +1 @@
impl T for S {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0153_trait.rast b/crates/syntax/test_data/parser/inline/ok/0153_trait.rast
new file mode 100644
index 000000000..9881e5048
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0153_trait.rast
@@ -0,0 +1,11 @@
1[email protected]
2 [email protected]
3 [email protected] "trait"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "}"
11 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0153_trait.rs b/crates/syntax/test_data/parser/inline/ok/0153_trait.rs
new file mode 100644
index 000000000..8d183dbb5
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0153_trait.rs
@@ -0,0 +1 @@
trait T {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast b/crates/syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast
new file mode 100644
index 000000000..e6aff7b37
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast
@@ -0,0 +1,58 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "Foo"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "fn"
12 [email protected]
13 [email protected] "("
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "Bar"
21 [email protected] "::"
22 [email protected]
23 [email protected]
24 [email protected] "Baz"
25 [email protected] ")"
26 [email protected] ";"
27 [email protected] "\n"
28 [email protected]
29 [email protected] "type"
30 [email protected] " "
31 [email protected]
32 [email protected] "Qux"
33 [email protected] " "
34 [email protected] "="
35 [email protected] " "
36 [email protected]
37 [email protected] "fn"
38 [email protected]
39 [email protected] "("
40 [email protected]
41 [email protected]
42 [email protected]
43 [email protected] "baz"
44 [email protected] ":"
45 [email protected] " "
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected] "Bar"
52 [email protected] "::"
53 [email protected]
54 [email protected]
55 [email protected] "Baz"
56 [email protected] ")"
57 [email protected] ";"
58 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rs b/crates/syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rs
new file mode 100644
index 000000000..80a1701fd
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rs
@@ -0,0 +1,2 @@
1type Foo = fn(Bar::Baz);
2type Qux = fn(baz: Bar::Baz);
diff --git a/crates/syntax/test_data/parser/inline/ok/0155_closure_params.rast b/crates/syntax/test_data/parser/inline/ok/0155_closure_params.rast
new file mode 100644
index 000000000..31671b420
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0155_closure_params.rast
@@ -0,0 +1,69 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "foo"
20 [email protected] " "
21 [email protected] "="
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected] "|"
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected] "bar"
30 [email protected] ","
31 [email protected] " "
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected] "baz"
36 [email protected] ":"
37 [email protected] " "
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected] "Baz"
43 [email protected] ","
44 [email protected] " "
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "qux"
49 [email protected] ":"
50 [email protected] " "
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected] "Qux"
57 [email protected] "::"
58 [email protected]
59 [email protected]
60 [email protected] "Quux"
61 [email protected] "|"
62 [email protected] " "
63 [email protected]
64 [email protected] "("
65 [email protected] ")"
66 [email protected] ";"
67 [email protected] "\n"
68 [email protected] "}"
69 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0155_closure_params.rs b/crates/syntax/test_data/parser/inline/ok/0155_closure_params.rs
new file mode 100644
index 000000000..6ca8dd2d6
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0155_closure_params.rs
@@ -0,0 +1,3 @@
1fn main() {
2 let foo = |bar, baz: Baz, qux: Qux::Quux| ();
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0156_fn_def_param.rast b/crates/syntax/test_data/parser/inline/ok/0156_fn_def_param.rast
new file mode 100644
index 000000000..508b4aca7
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0156_fn_def_param.rast
@@ -0,0 +1,43 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected]
11 [email protected] "("
12 [email protected]
13 [email protected]
14 [email protected] "x"
15 [email protected] ","
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "y"
20 [email protected] ")"
21 [email protected] ":"
22 [email protected] " "
23 [email protected]
24 [email protected] "("
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected] "i32"
30 [email protected] ","
31 [email protected] " "
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected] "i32"
37 [email protected] ")"
38 [email protected] ")"
39 [email protected] " "
40 [email protected]
41 [email protected] "{"
42 [email protected] "}"
43 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0156_fn_def_param.rs b/crates/syntax/test_data/parser/inline/ok/0156_fn_def_param.rs
new file mode 100644
index 000000000..7b277c16b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0156_fn_def_param.rs
@@ -0,0 +1 @@
fn foo((x, y): (i32, i32)) {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0156_or_pattern.rast b/crates/syntax/test_data/parser/inline/ok/0156_or_pattern.rast
new file mode 100644
index 000000000..88a513cee
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0156_or_pattern.rast
@@ -0,0 +1,111 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "match"
16 [email protected] " "
17 [email protected]
18 [email protected] "("
19 [email protected] ")"
20 [email protected] " "
21 [email protected]
22 [email protected] "{"
23 [email protected] "\n "
24 [email protected]
25 [email protected]
26 [email protected] "("
27 [email protected]
28 [email protected]
29 [email protected] "_"
30 [email protected] " "
31 [email protected] "|"
32 [email protected] " "
33 [email protected]
34 [email protected] "_"
35 [email protected] ")"
36 [email protected] " "
37 [email protected] "=>"
38 [email protected] " "
39 [email protected]
40 [email protected] "("
41 [email protected] ")"
42 [email protected] ","
43 [email protected] "\n "
44 [email protected]
45 [email protected]
46 [email protected] "&"
47 [email protected]
48 [email protected] "("
49 [email protected]
50 [email protected]
51 [email protected] "_"
52 [email protected] " "
53 [email protected] "|"
54 [email protected] " "
55 [email protected]
56 [email protected] "_"
57 [email protected] ")"
58 [email protected] " "
59 [email protected] "=>"
60 [email protected] " "
61 [email protected]
62 [email protected] "("
63 [email protected] ")"
64 [email protected] ","
65 [email protected] "\n "
66 [email protected]
67 [email protected]
68 [email protected] "("
69 [email protected]
70 [email protected]
71 [email protected] "_"
72 [email protected] " "
73 [email protected] "|"
74 [email protected] " "
75 [email protected]
76 [email protected] "_"
77 [email protected] ","
78 [email protected] ")"
79 [email protected] " "
80 [email protected] "=>"
81 [email protected] " "
82 [email protected]
83 [email protected] "("
84 [email protected] ")"
85 [email protected] ","
86 [email protected] "\n "
87 [email protected]
88 [email protected]
89 [email protected] "["
90 [email protected]
91 [email protected]
92 [email protected] "_"
93 [email protected] " "
94 [email protected] "|"
95 [email protected] " "
96 [email protected]
97 [email protected] "_"
98 [email protected] ","
99 [email protected] "]"
100 [email protected] " "
101 [email protected] "=>"
102 [email protected] " "
103 [email protected]
104 [email protected] "("
105 [email protected] ")"
106 [email protected] ","
107 [email protected] "\n "
108 [email protected] "}"
109 [email protected] "\n"
110 [email protected] "}"
111 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0156_or_pattern.rs b/crates/syntax/test_data/parser/inline/ok/0156_or_pattern.rs
new file mode 100644
index 000000000..a26316605
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0156_or_pattern.rs
@@ -0,0 +1,8 @@
1fn main() {
2 match () {
3 (_ | _) => (),
4 &(_ | _) => (),
5 (_ | _,) => (),
6 [_ | _,] => (),
7 }
8}
diff --git a/crates/syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast b/crates/syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast
new file mode 100644
index 000000000..6abb4fe5a
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast
@@ -0,0 +1,26 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "Foo"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "fn"
12 [email protected]
13 [email protected] "("
14 [email protected]
15 [email protected]
16 [email protected] "_"
17 [email protected] ":"
18 [email protected] " "
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected] "bar"
24 [email protected] ")"
25 [email protected] ";"
26 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rs b/crates/syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rs
new file mode 100644
index 000000000..1ebbe5b03
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rs
@@ -0,0 +1 @@
type Foo = fn(_: bar);
diff --git a/crates/syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast b/crates/syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast
new file mode 100644
index 000000000..a2e05eb2e
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast
@@ -0,0 +1,30 @@
1[email protected]
2 [email protected]
3 [email protected] "enum"
4 [email protected] " "
5 [email protected]
6 [email protected] "E"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] " "
11 [email protected]
12 [email protected]
13 [email protected] "X"
14 [email protected]
15 [email protected] "("
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "i32"
22 [email protected] ")"
23 [email protected] " "
24 [email protected] "="
25 [email protected] " "
26 [email protected]
27 [email protected] "10"
28 [email protected] " "
29 [email protected] "}"
30 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0157_variant_discriminant.rs b/crates/syntax/test_data/parser/inline/ok/0157_variant_discriminant.rs
new file mode 100644
index 000000000..c8c5c0f17
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0157_variant_discriminant.rs
@@ -0,0 +1 @@
enum E { X(i32) = 10 }
diff --git a/crates/syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast b/crates/syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast
new file mode 100644
index 000000000..8ae24b9c1
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast
@@ -0,0 +1,36 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "v"
21 [email protected] " "
22 [email protected] "="
23 [email protected] " "
24 [email protected]
25 [email protected]
26 [email protected] "{"
27 [email protected]
28 [email protected] "1"
29 [email protected] "}"
30 [email protected] "&"
31 [email protected]
32 [email protected] "2"
33 [email protected] ";"
34 [email protected] "\n"
35 [email protected] "}"
36 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rs b/crates/syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rs
new file mode 100644
index 000000000..05acc30f1
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rs
@@ -0,0 +1,3 @@
1fn foo() {
2 v = {1}&2;
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast b/crates/syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast
new file mode 100644
index 000000000..aa4099a92
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast
@@ -0,0 +1,43 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "|"
19 [email protected] "|"
20 [email protected] " "
21 [email protected]
22 [email protected] "->"
23 [email protected] " "
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "i32"
29 [email protected] " "
30 [email protected]
31 [email protected] "{"
32 [email protected] " "
33 [email protected]
34 [email protected] "92"
35 [email protected] " "
36 [email protected] "}"
37 [email protected]
38 [email protected] "("
39 [email protected] ")"
40 [email protected] ";"
41 [email protected] " "
42 [email protected] "}"
43 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rs b/crates/syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rs
new file mode 100644
index 000000000..061118d3a
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rs
@@ -0,0 +1 @@
fn main() { || -> i32 { 92 }(); }
diff --git a/crates/syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rast b/crates/syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rast
new file mode 100644
index 000000000..fb46d4ce4
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rast
@@ -0,0 +1,34 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "try"
20 [email protected] "!"
21 [email protected]
22 [email protected] "("
23 [email protected] "Ok"
24 [email protected]
25 [email protected] "("
26 [email protected]
27 [email protected] "("
28 [email protected] ")"
29 [email protected] ")"
30 [email protected] ")"
31 [email protected] ";"
32 [email protected] " "
33 [email protected] "}"
34 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rs b/crates/syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rs
new file mode 100644
index 000000000..61a6b46a0
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rs
@@ -0,0 +1 @@
fn foo() { try!(Ok(())); }
diff --git a/crates/syntax/test_data/parser/inline/ok/0160_try_macro_rules.rast b/crates/syntax/test_data/parser/inline/ok/0160_try_macro_rules.rast
new file mode 100644
index 000000000..05b89d1c3
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0160_try_macro_rules.rast
@@ -0,0 +1,27 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected]
5 [email protected]
6 [email protected] "macro_rules"
7 [email protected] "!"
8 [email protected] " "
9 [email protected]
10 [email protected] "try"
11 [email protected] " "
12 [email protected]
13 [email protected] "{"
14 [email protected] " "
15 [email protected]
16 [email protected] "("
17 [email protected] ")"
18 [email protected] " "
19 [email protected] "="
20 [email protected] ">"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] " "
26 [email protected] "}"
27 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0160_try_macro_rules.rs b/crates/syntax/test_data/parser/inline/ok/0160_try_macro_rules.rs
new file mode 100644
index 000000000..2e2ab6e60
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0160_try_macro_rules.rs
@@ -0,0 +1 @@
macro_rules! try { () => {} }
diff --git a/crates/syntax/test_data/parser/inline/ok/0161_labeled_block.rast b/crates/syntax/test_data/parser/inline/ok/0161_labeled_block.rast
new file mode 100644
index 000000000..9e9a5f9c5
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0161_labeled_block.rast
@@ -0,0 +1,26 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "f"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "\'label"
18 [email protected] ":"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "}"
23 [email protected] ";"
24 [email protected] " "
25 [email protected] "}"
26 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0161_labeled_block.rs b/crates/syntax/test_data/parser/inline/ok/0161_labeled_block.rs
new file mode 100644
index 000000000..18b4ff4b1
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0161_labeled_block.rs
@@ -0,0 +1 @@
fn f() { 'label: {}; }
diff --git a/crates/syntax/test_data/parser/inline/ok/0162_unsafe_block.rast b/crates/syntax/test_data/parser/inline/ok/0162_unsafe_block.rast
new file mode 100644
index 000000000..ca9a1183d
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0162_unsafe_block.rast
@@ -0,0 +1,23 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "f"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected] "unsafe"
16 [email protected] " "
17 [email protected]
18 [email protected] "{"
19 [email protected] " "
20 [email protected] "}"
21 [email protected] " "
22 [email protected] "}"
23 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0162_unsafe_block.rs b/crates/syntax/test_data/parser/inline/ok/0162_unsafe_block.rs
new file mode 100644
index 000000000..dfb9b2a1c
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0162_unsafe_block.rs
@@ -0,0 +1 @@
fn f() { unsafe { } }
diff --git a/crates/syntax/test_data/parser/inline/ok/0163_default_unsafe_item.rast b/crates/syntax/test_data/parser/inline/ok/0163_default_unsafe_item.rast
new file mode 100644
index 000000000..f2e201460
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0163_default_unsafe_item.rast
@@ -0,0 +1,44 @@
1[email protected]
2 [email protected]
3 [email protected] "default"
4 [email protected] " "
5 [email protected] "unsafe"
6 [email protected] " "
7 [email protected] "impl"
8 [email protected] " "
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected] "T"
14 [email protected] " "
15 [email protected] "for"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "Foo"
22 [email protected] " "
23 [email protected]
24 [email protected] "{"
25 [email protected] "\n "
26 [email protected]
27 [email protected] "default"
28 [email protected] " "
29 [email protected] "unsafe"
30 [email protected] " "
31 [email protected] "fn"
32 [email protected] " "
33 [email protected]
34 [email protected] "foo"
35 [email protected]
36 [email protected] "("
37 [email protected] ")"
38 [email protected] " "
39 [email protected]
40 [email protected] "{"
41 [email protected] "}"
42 [email protected] "\n"
43 [email protected] "}"
44 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0163_default_unsafe_item.rs b/crates/syntax/test_data/parser/inline/ok/0163_default_unsafe_item.rs
new file mode 100644
index 000000000..96340f84a
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0163_default_unsafe_item.rs
@@ -0,0 +1,3 @@
1default unsafe impl T for Foo {
2 default unsafe fn foo() {}
3}
diff --git a/crates/syntax/test_data/parser/inline/ok/0164_default_item.rast b/crates/syntax/test_data/parser/inline/ok/0164_default_item.rast
new file mode 100644
index 000000000..9282772f3
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0164_default_item.rast
@@ -0,0 +1,24 @@
1[email protected]
2 [email protected]
3 [email protected] "default"
4 [email protected] " "
5 [email protected] "impl"
6 [email protected] " "
7 [email protected]
8 [email protected]
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] " "
13 [email protected] "for"
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "Foo"
20 [email protected] " "
21 [email protected]
22 [email protected] "{"
23 [email protected] "}"
24 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0164_default_item.rs b/crates/syntax/test_data/parser/inline/ok/0164_default_item.rs
new file mode 100644
index 000000000..a6836cbd5
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0164_default_item.rs
@@ -0,0 +1 @@
default impl T for Foo {}
diff --git a/crates/syntax/test_data/parser/inline/ok/0164_type_path_in_pattern.rast b/crates/syntax/test_data/parser/inline/ok/0164_type_path_in_pattern.rast
new file mode 100644
index 000000000..f8910677b
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0164_type_path_in_pattern.rast
@@ -0,0 +1,38 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "<"
22 [email protected]
23 [email protected] "_"
24 [email protected] ">"
25 [email protected] "::"
26 [email protected]
27 [email protected]
28 [email protected] "Foo"
29 [email protected] " "
30 [email protected] "="
31 [email protected] " "
32 [email protected]
33 [email protected] "("
34 [email protected] ")"
35 [email protected] ";"
36 [email protected] " "
37 [email protected] "}"
38 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/inline/ok/0164_type_path_in_pattern.rs b/crates/syntax/test_data/parser/inline/ok/0164_type_path_in_pattern.rs
new file mode 100644
index 000000000..ebe26834d
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0164_type_path_in_pattern.rs
@@ -0,0 +1 @@
fn main() { let <_>::Foo = (); }
diff --git a/crates/syntax/test_data/parser/ok/0000_empty.rast b/crates/syntax/test_data/parser/ok/0000_empty.rast
new file mode 100644
index 000000000..6b234b0b2
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0000_empty.rast
@@ -0,0 +1 @@
[email protected]
diff --git a/crates/syntax/test_data/parser/ok/0000_empty.rs b/crates/syntax/test_data/parser/ok/0000_empty.rs
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0000_empty.rs
diff --git a/crates/syntax/test_data/parser/ok/0001_struct_item.rast b/crates/syntax/test_data/parser/ok/0001_struct_item.rast
new file mode 100644
index 000000000..a171fe7a8
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0001_struct_item.rast
@@ -0,0 +1,39 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ":"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "Copy"
21 [email protected] ">"
22 [email protected] " "
23 [email protected]
24 [email protected] "{"
25 [email protected] "\n "
26 [email protected]
27 [email protected]
28 [email protected] "f"
29 [email protected] ":"
30 [email protected] " "
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected] "T"
36 [email protected] ","
37 [email protected] "\n"
38 [email protected] "}"
39 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0001_struct_item.rs b/crates/syntax/test_data/parser/ok/0001_struct_item.rs
new file mode 100644
index 000000000..512aeb3e7
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0001_struct_item.rs
@@ -0,0 +1,3 @@
1struct S<T: Copy> {
2 f: T,
3}
diff --git a/crates/syntax/test_data/parser/ok/0002_struct_item_field.rast b/crates/syntax/test_data/parser/ok/0002_struct_item_field.rast
new file mode 100644
index 000000000..362892b91
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0002_struct_item_field.rast
@@ -0,0 +1,22 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected]
13 [email protected] "foo"
14 [email protected] ":"
15 [email protected] " "
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "u32"
21 [email protected] "\n"
22 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0002_struct_item_field.rs b/crates/syntax/test_data/parser/ok/0002_struct_item_field.rs
new file mode 100644
index 000000000..cc3866d25
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0002_struct_item_field.rs
@@ -0,0 +1,3 @@
1struct S {
2 foo: u32
3} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0004_file_shebang.rast b/crates/syntax/test_data/parser/ok/0004_file_shebang.rast
new file mode 100644
index 000000000..67e21df13
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0004_file_shebang.rast
@@ -0,0 +1,2 @@
1[email protected]
2 [email protected] "#!/use/bin/env rusti"
diff --git a/crates/syntax/test_data/parser/ok/0004_file_shebang.rs b/crates/syntax/test_data/parser/ok/0004_file_shebang.rs
new file mode 100644
index 000000000..53dc9e617
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0004_file_shebang.rs
@@ -0,0 +1 @@
#!/use/bin/env rusti \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0005_fn_item.rast b/crates/syntax/test_data/parser/ok/0005_fn_item.rast
new file mode 100644
index 000000000..a7a2b11a7
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0005_fn_item.rast
@@ -0,0 +1,15 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n"
14 [email protected] "}"
15 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0005_fn_item.rs b/crates/syntax/test_data/parser/ok/0005_fn_item.rs
new file mode 100644
index 000000000..03210551c
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0005_fn_item.rs
@@ -0,0 +1,2 @@
1fn foo() {
2}
diff --git a/crates/syntax/test_data/parser/ok/0006_inner_attributes.rast b/crates/syntax/test_data/parser/ok/0006_inner_attributes.rast
new file mode 100644
index 000000000..42587243a
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0006_inner_attributes.rast
@@ -0,0 +1,184 @@
1[email protected]
2 [email protected]
3 [email protected] "#"
4 [email protected] "!"
5 [email protected] "["
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "attr"
10 [email protected] "]"
11 [email protected] "\n"
12 [email protected]
13 [email protected] "#"
14 [email protected] "!"
15 [email protected] "["
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "attr"
20 [email protected]
21 [email protected] "("
22 [email protected] "true"
23 [email protected] ")"
24 [email protected] "]"
25 [email protected] "\n"
26 [email protected]
27 [email protected] "#"
28 [email protected] "!"
29 [email protected] "["
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "attr"
34 [email protected]
35 [email protected] "("
36 [email protected] "ident"
37 [email protected] ")"
38 [email protected] "]"
39 [email protected] "\n"
40 [email protected]
41 [email protected] "#"
42 [email protected] "!"
43 [email protected] "["
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected] "attr"
48 [email protected]
49 [email protected] "("
50 [email protected] "ident"
51 [email protected] ","
52 [email protected] " "
53 [email protected] "100"
54 [email protected] ","
55 [email protected] " "
56 [email protected] "true"
57 [email protected] ","
58 [email protected] " "
59 [email protected] "\"true\""
60 [email protected] ","
61 [email protected] " "
62 [email protected] "ident"
63 [email protected] " "
64 [email protected] "="
65 [email protected] " "
66 [email protected] "100"
67 [email protected] ","
68 [email protected] " "
69 [email protected] "ident"
70 [email protected] " "
71 [email protected] "="
72 [email protected] " "
73 [email protected] "\"hello\""
74 [email protected] ","
75 [email protected] " "
76 [email protected] "ident"
77 [email protected]
78 [email protected] "("
79 [email protected] "100"
80 [email protected] ")"
81 [email protected] ")"
82 [email protected] "]"
83 [email protected] "\n"
84 [email protected]
85 [email protected] "#"
86 [email protected] "!"
87 [email protected] "["
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected] "attr"
92 [email protected]
93 [email protected] "("
94 [email protected] "100"
95 [email protected] ")"
96 [email protected] "]"
97 [email protected] "\n"
98 [email protected]
99 [email protected] "#"
100 [email protected] "!"
101 [email protected] "["
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected] "attr"
106 [email protected]
107 [email protected] "("
108 [email protected] "enabled"
109 [email protected] " "
110 [email protected] "="
111 [email protected] " "
112 [email protected] "true"
113 [email protected] ")"
114 [email protected] "]"
115 [email protected] "\n"
116 [email protected]
117 [email protected] "#"
118 [email protected] "!"
119 [email protected] "["
120 [email protected]
121 [email protected]
122 [email protected]
123 [email protected] "enabled"
124 [email protected]
125 [email protected] "("
126 [email protected] "true"
127 [email protected] ")"
128 [email protected] "]"
129 [email protected] "\n"
130 [email protected]
131 [email protected] "#"
132 [email protected] "!"
133 [email protected] "["
134 [email protected]
135 [email protected]
136 [email protected]
137 [email protected] "attr"
138 [email protected]
139 [email protected] "("
140 [email protected] "\"hello\""
141 [email protected] ")"
142 [email protected] "]"
143 [email protected] "\n"
144 [email protected]
145 [email protected] "#"
146 [email protected] "!"
147 [email protected] "["
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected] "repr"
152 [email protected]
153 [email protected] "("
154 [email protected] "C"
155 [email protected] ","
156 [email protected] " "
157 [email protected] "align"
158 [email protected] " "
159 [email protected] "="
160 [email protected] " "
161 [email protected] "4"
162 [email protected] ")"
163 [email protected] "]"
164 [email protected] "\n"
165 [email protected]
166 [email protected] "#"
167 [email protected] "!"
168 [email protected] "["
169 [email protected]
170 [email protected]
171 [email protected]
172 [email protected] "repr"
173 [email protected]
174 [email protected] "("
175 [email protected] "C"
176 [email protected] ","
177 [email protected] " "
178 [email protected] "align"
179 [email protected]
180 [email protected] "("
181 [email protected] "4"
182 [email protected] ")"
183 [email protected] ")"
184 [email protected] "]"
diff --git a/crates/syntax/test_data/parser/ok/0006_inner_attributes.rs b/crates/syntax/test_data/parser/ok/0006_inner_attributes.rs
new file mode 100644
index 000000000..e81f8b1e8
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0006_inner_attributes.rs
@@ -0,0 +1,10 @@
1#![attr]
2#![attr(true)]
3#![attr(ident)]
4#![attr(ident, 100, true, "true", ident = 100, ident = "hello", ident(100))]
5#![attr(100)]
6#![attr(enabled = true)]
7#![enabled(true)]
8#![attr("hello")]
9#![repr(C, align = 4)]
10#![repr(C, align(4))] \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0007_extern_crate.rast b/crates/syntax/test_data/parser/ok/0007_extern_crate.rast
new file mode 100644
index 000000000..594c2f8f2
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0007_extern_crate.rast
@@ -0,0 +1,39 @@
1[email protected]
2 [email protected]
3 [email protected] "extern"
4 [email protected] " "
5 [email protected] "crate"
6 [email protected] " "
7 [email protected]
8 [email protected] "foo"
9 [email protected] ";"
10 [email protected] "\n"
11 [email protected]
12 [email protected] "extern"
13 [email protected] " "
14 [email protected] "crate"
15 [email protected] " "
16 [email protected]
17 [email protected] "foo"
18 [email protected] " "
19 [email protected]
20 [email protected] "as"
21 [email protected] " "
22 [email protected]
23 [email protected] "bar"
24 [email protected] ";"
25 [email protected] "\n"
26 [email protected]
27 [email protected] "extern"
28 [email protected] " "
29 [email protected] "crate"
30 [email protected] " "
31 [email protected] "self"
32 [email protected] " "
33 [email protected]
34 [email protected] "as"
35 [email protected] " "
36 [email protected]
37 [email protected] "baz"
38 [email protected] ";"
39 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0007_extern_crate.rs b/crates/syntax/test_data/parser/ok/0007_extern_crate.rs
new file mode 100644
index 000000000..ab81a608c
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0007_extern_crate.rs
@@ -0,0 +1,3 @@
1extern crate foo;
2extern crate foo as bar;
3extern crate self as baz;
diff --git a/crates/syntax/test_data/parser/ok/0008_mod_item.rast b/crates/syntax/test_data/parser/ok/0008_mod_item.rast
new file mode 100644
index 000000000..b2c1d791f
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0008_mod_item.rast
@@ -0,0 +1,92 @@
1[email protected]
2 [email protected]
3 [email protected] "mod"
4 [email protected] " "
5 [email protected]
6 [email protected] "a"
7 [email protected] ";"
8 [email protected] "\n\n"
9 [email protected]
10 [email protected] "mod"
11 [email protected] " "
12 [email protected]
13 [email protected] "b"
14 [email protected] " "
15 [email protected]
16 [email protected] "{"
17 [email protected] "\n"
18 [email protected] "}"
19 [email protected] "\n\n"
20 [email protected]
21 [email protected] "mod"
22 [email protected] " "
23 [email protected]
24 [email protected] "c"
25 [email protected] " "
26 [email protected]
27 [email protected] "{"
28 [email protected] "\n "
29 [email protected]
30 [email protected] "fn"
31 [email protected] " "
32 [email protected]
33 [email protected] "foo"
34 [email protected]
35 [email protected] "("
36 [email protected] ")"
37 [email protected] " "
38 [email protected]
39 [email protected] "{"
40 [email protected] "\n "
41 [email protected] "}"
42 [email protected] "\n "
43 [email protected]
44 [email protected] "struct"
45 [email protected] " "
46 [email protected]
47 [email protected] "S"
48 [email protected] " "
49 [email protected]
50 [email protected] "{"
51 [email protected] "}"
52 [email protected] "\n"
53 [email protected] "}"
54 [email protected] "\n\n"
55 [email protected]
56 [email protected] "mod"
57 [email protected] " "
58 [email protected]
59 [email protected] "d"
60 [email protected] " "
61 [email protected]
62 [email protected] "{"
63 [email protected] "\n "
64 [email protected]
65 [email protected] "#"
66 [email protected] "!"
67 [email protected] "["
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected] "attr"
72 [email protected] "]"
73 [email protected] "\n "
74 [email protected]
75 [email protected] "mod"
76 [email protected] " "
77 [email protected]
78 [email protected] "e"
79 [email protected] ";"
80 [email protected] "\n "
81 [email protected]
82 [email protected] "mod"
83 [email protected] " "
84 [email protected]
85 [email protected] "f"
86 [email protected] " "
87 [email protected]
88 [email protected] "{"
89 [email protected] "\n "
90 [email protected] "}"
91 [email protected] "\n"
92 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0008_mod_item.rs b/crates/syntax/test_data/parser/ok/0008_mod_item.rs
new file mode 100644
index 000000000..d22993bc1
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0008_mod_item.rs
@@ -0,0 +1,17 @@
1mod a;
2
3mod b {
4}
5
6mod c {
7 fn foo() {
8 }
9 struct S {}
10}
11
12mod d {
13 #![attr]
14 mod e;
15 mod f {
16 }
17} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0009_use_item.rast b/crates/syntax/test_data/parser/ok/0009_use_item.rast
new file mode 100644
index 000000000..6be1cf9fc
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0009_use_item.rast
@@ -0,0 +1,21 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "foo"
10 [email protected] ";"
11 [email protected] "\n"
12 [email protected]
13 [email protected] "use"
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "::"
19 [email protected]
20 [email protected] "bar"
21 [email protected] ";"
diff --git a/crates/syntax/test_data/parser/ok/0009_use_item.rs b/crates/syntax/test_data/parser/ok/0009_use_item.rs
new file mode 100644
index 000000000..05a6aff83
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0009_use_item.rs
@@ -0,0 +1,2 @@
1use foo;
2use ::bar; \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0010_use_path_segments.rast b/crates/syntax/test_data/parser/ok/0010_use_path_segments.rast
new file mode 100644
index 000000000..4d49e7933
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0010_use_path_segments.rast
@@ -0,0 +1,42 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected]
10 [email protected] "::"
11 [email protected]
12 [email protected] "foo"
13 [email protected] "::"
14 [email protected]
15 [email protected]
16 [email protected] "bar"
17 [email protected] "::"
18 [email protected]
19 [email protected]
20 [email protected] "baz"
21 [email protected] ";"
22 [email protected] "\n"
23 [email protected]
24 [email protected] "use"
25 [email protected] " "
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "foo"
33 [email protected] "::"
34 [email protected]
35 [email protected]
36 [email protected] "bar"
37 [email protected] "::"
38 [email protected]
39 [email protected]
40 [email protected] "baz"
41 [email protected] ";"
42 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0010_use_path_segments.rs b/crates/syntax/test_data/parser/ok/0010_use_path_segments.rs
new file mode 100644
index 000000000..1e71b7a6c
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0010_use_path_segments.rs
@@ -0,0 +1,2 @@
1use ::foo::bar::baz;
2use foo::bar::baz;
diff --git a/crates/syntax/test_data/parser/ok/0011_outer_attribute.rast b/crates/syntax/test_data/parser/ok/0011_outer_attribute.rast
new file mode 100644
index 000000000..478fdba75
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0011_outer_attribute.rast
@@ -0,0 +1,57 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "#"
5 [email protected] "["
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "cfg"
10 [email protected]
11 [email protected] "("
12 [email protected] "test"
13 [email protected] ")"
14 [email protected] "]"
15 [email protected] "\n"
16 [email protected]
17 [email protected] "#"
18 [email protected] "["
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "ignore"
23 [email protected] "]"
24 [email protected] "\n"
25 [email protected] "fn"
26 [email protected] " "
27 [email protected]
28 [email protected] "foo"
29 [email protected]
30 [email protected] "("
31 [email protected] ")"
32 [email protected] " "
33 [email protected]
34 [email protected] "{"
35 [email protected] "}"
36 [email protected] "\n\n"
37 [email protected]
38 [email protected]
39 [email protected] "#"
40 [email protected] "["
41 [email protected]
42 [email protected]
43 [email protected]
44 [email protected] "path"
45 [email protected] " "
46 [email protected] "="
47 [email protected] " "
48 [email protected]
49 [email protected] "\"a.rs\""
50 [email protected] "]"
51 [email protected] "\n"
52 [email protected] "mod"
53 [email protected] " "
54 [email protected]
55 [email protected] "b"
56 [email protected] ";"
57 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0011_outer_attribute.rs b/crates/syntax/test_data/parser/ok/0011_outer_attribute.rs
new file mode 100644
index 000000000..3d2e01d5c
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0011_outer_attribute.rs
@@ -0,0 +1,6 @@
1#[cfg(test)]
2#[ignore]
3fn foo() {}
4
5#[path = "a.rs"]
6mod b;
diff --git a/crates/syntax/test_data/parser/ok/0012_visibility.rast b/crates/syntax/test_data/parser/ok/0012_visibility.rast
new file mode 100644
index 000000000..83a93b5a9
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0012_visibility.rast
@@ -0,0 +1,102 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "a"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "}"
14 [email protected] "\n"
15 [email protected]
16 [email protected]
17 [email protected] "pub"
18 [email protected] " "
19 [email protected] "fn"
20 [email protected] " "
21 [email protected]
22 [email protected] "b"
23 [email protected]
24 [email protected] "("
25 [email protected] ")"
26 [email protected] " "
27 [email protected]
28 [email protected] "{"
29 [email protected] "}"
30 [email protected] "\n"
31 [email protected]
32 [email protected]
33 [email protected] "pub"
34 [email protected] "("
35 [email protected] "crate"
36 [email protected] ")"
37 [email protected] " "
38 [email protected] "fn"
39 [email protected] " "
40 [email protected]
41 [email protected] "c"
42 [email protected]
43 [email protected] "("
44 [email protected] ")"
45 [email protected] " "
46 [email protected]
47 [email protected] "{"
48 [email protected] "}"
49 [email protected] "\n"
50 [email protected]
51 [email protected]
52 [email protected] "pub"
53 [email protected] "("
54 [email protected] "super"
55 [email protected] ")"
56 [email protected] " "
57 [email protected] "fn"
58 [email protected] " "
59 [email protected]
60 [email protected] "d"
61 [email protected]
62 [email protected] "("
63 [email protected] ")"
64 [email protected] " "
65 [email protected]
66 [email protected] "{"
67 [email protected] "}"
68 [email protected] "\n"
69 [email protected]
70 [email protected]
71 [email protected] "pub"
72 [email protected] "("
73 [email protected] "in"
74 [email protected] " "
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected] "foo"
81 [email protected] "::"
82 [email protected]
83 [email protected]
84 [email protected] "bar"
85 [email protected] "::"
86 [email protected]
87 [email protected]
88 [email protected] "baz"
89 [email protected] ")"
90 [email protected] " "
91 [email protected] "fn"
92 [email protected] " "
93 [email protected]
94 [email protected] "e"
95 [email protected]
96 [email protected] "("
97 [email protected] ")"
98 [email protected] " "
99 [email protected]
100 [email protected] "{"
101 [email protected] "}"
102 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0012_visibility.rs b/crates/syntax/test_data/parser/ok/0012_visibility.rs
new file mode 100644
index 000000000..75b1db121
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0012_visibility.rs
@@ -0,0 +1,5 @@
1fn a() {}
2pub fn b() {}
3pub(crate) fn c() {}
4pub(super) fn d() {}
5pub(in foo::bar::baz) fn e() {}
diff --git a/crates/syntax/test_data/parser/ok/0013_use_path_self_super.rast b/crates/syntax/test_data/parser/ok/0013_use_path_self_super.rast
new file mode 100644
index 000000000..66ab13660
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0013_use_path_self_super.rast
@@ -0,0 +1,33 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "self"
10 [email protected] "::"
11 [email protected]
12 [email protected]
13 [email protected] "foo"
14 [email protected] ";"
15 [email protected] "\n"
16 [email protected]
17 [email protected] "use"
18 [email protected] " "
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected] "super"
25 [email protected] "::"
26 [email protected]
27 [email protected] "super"
28 [email protected] "::"
29 [email protected]
30 [email protected]
31 [email protected] "bar"
32 [email protected] ";"
33 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0013_use_path_self_super.rs b/crates/syntax/test_data/parser/ok/0013_use_path_self_super.rs
new file mode 100644
index 000000000..9d9eb9917
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0013_use_path_self_super.rs
@@ -0,0 +1,2 @@
1use self::foo;
2use super::super::bar;
diff --git a/crates/syntax/test_data/parser/ok/0014_use_tree.rast b/crates/syntax/test_data/parser/ok/0014_use_tree.rast
new file mode 100644
index 000000000..4389d2d4b
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0014_use_tree.rast
@@ -0,0 +1,95 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected] "*"
7 [email protected] ";"
8 [email protected] "\n"
9 [email protected]
10 [email protected] "use"
11 [email protected] " "
12 [email protected]
13 [email protected] "::"
14 [email protected] "*"
15 [email protected] ";"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "use"
19 [email protected] " "
20 [email protected]
21 [email protected] "::"
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] ";"
26 [email protected] "\n"
27 [email protected]
28 [email protected] "use"
29 [email protected] " "
30 [email protected]
31 [email protected]
32 [email protected] "{"
33 [email protected] "}"
34 [email protected] ";"
35 [email protected] "\n"
36 [email protected]
37 [email protected] "use"
38 [email protected] " "
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected]
43 [email protected] "foo"
44 [email protected] "::"
45 [email protected] "*"
46 [email protected] ";"
47 [email protected] "\n"
48 [email protected]
49 [email protected] "use"
50 [email protected] " "
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected] "foo"
56 [email protected] "::"
57 [email protected]
58 [email protected] "{"
59 [email protected] "}"
60 [email protected] ";"
61 [email protected] "\n"
62 [email protected]
63 [email protected] "use"
64 [email protected] " "
65 [email protected]
66 [email protected]
67 [email protected]
68 [email protected] "::"
69 [email protected]
70 [email protected] "foo"
71 [email protected] "::"
72 [email protected]
73 [email protected] "{"
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected] "a"
79 [email protected] ","
80 [email protected] " "
81 [email protected]
82 [email protected]
83 [email protected]
84 [email protected]
85 [email protected] "b"
86 [email protected] ","
87 [email protected] " "
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected]
92 [email protected] "c"
93 [email protected] "}"
94 [email protected] ";"
95 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0014_use_tree.rs b/crates/syntax/test_data/parser/ok/0014_use_tree.rs
new file mode 100644
index 000000000..5e4aa3a33
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0014_use_tree.rs
@@ -0,0 +1,7 @@
1use *;
2use ::*;
3use ::{};
4use {};
5use foo::*;
6use foo::{};
7use ::foo::{a, b, c};
diff --git a/crates/syntax/test_data/parser/ok/0015_use_tree.rast b/crates/syntax/test_data/parser/ok/0015_use_tree.rast
new file mode 100644
index 000000000..d7e93f7eb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0015_use_tree.rast
@@ -0,0 +1,65 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "foo"
10 [email protected] " "
11 [email protected]
12 [email protected] "as"
13 [email protected] " "
14 [email protected]
15 [email protected] "bar"
16 [email protected] ";"
17 [email protected] "\n"
18 [email protected]
19 [email protected] "use"
20 [email protected] " "
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "foo"
26 [email protected] "::"
27 [email protected]
28 [email protected] "{"
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "a"
34 [email protected] " "
35 [email protected]
36 [email protected] "as"
37 [email protected] " "
38 [email protected]
39 [email protected] "b"
40 [email protected] ","
41 [email protected] " "
42 [email protected]
43 [email protected] "*"
44 [email protected] ","
45 [email protected] " "
46 [email protected]
47 [email protected] "::"
48 [email protected] "*"
49 [email protected] ","
50 [email protected] " "
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected] "::"
55 [email protected]
56 [email protected] "foo"
57 [email protected] " "
58 [email protected]
59 [email protected] "as"
60 [email protected] " "
61 [email protected]
62 [email protected] "x"
63 [email protected] "}"
64 [email protected] ";"
65 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0015_use_tree.rs b/crates/syntax/test_data/parser/ok/0015_use_tree.rs
new file mode 100644
index 000000000..46a0783a2
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0015_use_tree.rs
@@ -0,0 +1,2 @@
1use foo as bar;
2use foo::{a as b, *, ::*, ::foo as x};
diff --git a/crates/syntax/test_data/parser/ok/0016_struct_flavors.rast b/crates/syntax/test_data/parser/ok/0016_struct_flavors.rast
new file mode 100644
index 000000000..b15f41dd7
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0016_struct_flavors.rast
@@ -0,0 +1,93 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected] ";"
8 [email protected] "\n"
9 [email protected]
10 [email protected] "struct"
11 [email protected] " "
12 [email protected]
13 [email protected] "B"
14 [email protected] " "
15 [email protected]
16 [email protected] "{"
17 [email protected] "}"
18 [email protected] "\n"
19 [email protected]
20 [email protected] "struct"
21 [email protected] " "
22 [email protected]
23 [email protected] "C"
24 [email protected]
25 [email protected] "("
26 [email protected] ")"
27 [email protected] ";"
28 [email protected] "\n\n"
29 [email protected]
30 [email protected] "struct"
31 [email protected] " "
32 [email protected]
33 [email protected] "D"
34 [email protected] " "
35 [email protected]
36 [email protected] "{"
37 [email protected] "\n "
38 [email protected]
39 [email protected]
40 [email protected] "a"
41 [email protected] ":"
42 [email protected] " "
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected] "u32"
48 [email protected] ","
49 [email protected] "\n "
50 [email protected]
51 [email protected]
52 [email protected] "pub"
53 [email protected] " "
54 [email protected]
55 [email protected] "b"
56 [email protected] ":"
57 [email protected] " "
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected] "u32"
63 [email protected] "\n"
64 [email protected] "}"
65 [email protected] "\n\n"
66 [email protected]
67 [email protected] "struct"
68 [email protected] " "
69 [email protected]
70 [email protected] "E"
71 [email protected]
72 [email protected] "("
73 [email protected]
74 [email protected]
75 [email protected] "pub"
76 [email protected] " "
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected]
81 [email protected] "x"
82 [email protected] ","
83 [email protected] " "
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected] "y"
90 [email protected] ","
91 [email protected] ")"
92 [email protected] ";"
93 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0016_struct_flavors.rs b/crates/syntax/test_data/parser/ok/0016_struct_flavors.rs
new file mode 100644
index 000000000..69638350c
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0016_struct_flavors.rs
@@ -0,0 +1,10 @@
1struct A;
2struct B {}
3struct C();
4
5struct D {
6 a: u32,
7 pub b: u32
8}
9
10struct E(pub x, y,);
diff --git a/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast b/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast
new file mode 100644
index 000000000..a3e091ad3
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast
@@ -0,0 +1,28 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "#"
5 [email protected] "["
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "foo"
10 [email protected]
11 [email protected] "("
12 [email protected] "a"
13 [email protected] ","
14 [email protected] ")"
15 [email protected] "]"
16 [email protected] "\n"
17 [email protected] "fn"
18 [email protected] " "
19 [email protected]
20 [email protected] "foo"
21 [email protected]
22 [email protected] "("
23 [email protected] ")"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "}"
28 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rs b/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rs
new file mode 100644
index 000000000..fe0a7bb97
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rs
@@ -0,0 +1,2 @@
1#[foo(a,)]
2fn foo() {}
diff --git a/crates/syntax/test_data/parser/ok/0018_struct_type_params.rast b/crates/syntax/test_data/parser/ok/0018_struct_type_params.rast
new file mode 100644
index 000000000..630aa0708
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0018_struct_type_params.rast
@@ -0,0 +1,257 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S1"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ">"
13 [email protected] ";"
14 [email protected] "\n"
15 [email protected]
16 [email protected] "struct"
17 [email protected] " "
18 [email protected]
19 [email protected] "S2"
20 [email protected]
21 [email protected] "<"
22 [email protected]
23 [email protected]
24 [email protected] "T"
25 [email protected] ">"
26 [email protected]
27 [email protected] "("
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "u32"
34 [email protected] ")"
35 [email protected] ";"
36 [email protected] "\n"
37 [email protected]
38 [email protected] "struct"
39 [email protected] " "
40 [email protected]
41 [email protected] "S3"
42 [email protected]
43 [email protected] "<"
44 [email protected]
45 [email protected]
46 [email protected] "T"
47 [email protected] ">"
48 [email protected] " "
49 [email protected]
50 [email protected] "{"
51 [email protected] " "
52 [email protected]
53 [email protected]
54 [email protected] "u"
55 [email protected] ":"
56 [email protected] " "
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "u32"
62 [email protected] " "
63 [email protected] "}"
64 [email protected] "\n\n"
65 [email protected]
66 [email protected] "struct"
67 [email protected] " "
68 [email protected]
69 [email protected] "S4"
70 [email protected]
71 [email protected] "<"
72 [email protected] ">"
73 [email protected] ";"
74 [email protected] "\n"
75 [email protected]
76 [email protected] "struct"
77 [email protected] " "
78 [email protected]
79 [email protected] "S5"
80 [email protected]
81 [email protected] "<"
82 [email protected]
83 [email protected] "\'a"
84 [email protected] ">"
85 [email protected] ";"
86 [email protected] "\n"
87 [email protected]
88 [email protected] "struct"
89 [email protected] " "
90 [email protected]
91 [email protected] "S6"
92 [email protected]
93 [email protected] "<"
94 [email protected]
95 [email protected] "\'a"
96 [email protected] ":"
97 [email protected] ">"
98 [email protected] ";"
99 [email protected] "\n"
100 [email protected]
101 [email protected] "struct"
102 [email protected] " "
103 [email protected]
104 [email protected] "S7"
105 [email protected]
106 [email protected] "<"
107 [email protected]
108 [email protected] "\'a"
109 [email protected] ":"
110 [email protected] " "
111 [email protected] "\'b"
112 [email protected] ">"
113 [email protected] ";"
114 [email protected] "\n"
115 [email protected]
116 [email protected] "struct"
117 [email protected] " "
118 [email protected]
119 [email protected] "S8"
120 [email protected]
121 [email protected] "<"
122 [email protected]
123 [email protected] "\'a"
124 [email protected] ":"
125 [email protected] " "
126 [email protected] "\'b"
127 [email protected] " "
128 [email protected] "+"
129 [email protected] " "
130 [email protected] ">"
131 [email protected] ";"
132 [email protected] "\n"
133 [email protected]
134 [email protected] "struct"
135 [email protected] " "
136 [email protected]
137 [email protected] "S9"
138 [email protected]
139 [email protected] "<"
140 [email protected]
141 [email protected] "\'a"
142 [email protected] ":"
143 [email protected] " "
144 [email protected] "\'b"
145 [email protected] " "
146 [email protected] "+"
147 [email protected] " "
148 [email protected] "\'c"
149 [email protected] ">"
150 [email protected] ";"
151 [email protected] "\n"
152 [email protected]
153 [email protected] "struct"
154 [email protected] " "
155 [email protected]
156 [email protected] "S10"
157 [email protected]
158 [email protected] "<"
159 [email protected]
160 [email protected] "\'a"
161 [email protected] ","
162 [email protected] ">"
163 [email protected] ";"
164 [email protected] "\n"
165 [email protected]
166 [email protected] "struct"
167 [email protected] " "
168 [email protected]
169 [email protected] "S11"
170 [email protected]
171 [email protected] "<"
172 [email protected]
173 [email protected] "\'a"
174 [email protected] ","
175 [email protected] " "
176 [email protected]
177 [email protected] "\'b"
178 [email protected] ">"
179 [email protected] ";"
180 [email protected] "\n"
181 [email protected]
182 [email protected] "struct"
183 [email protected] " "
184 [email protected]
185 [email protected] "S12"
186 [email protected]
187 [email protected] "<"
188 [email protected]
189 [email protected] "\'a"
190 [email protected] ":"
191 [email protected] " "
192 [email protected] "\'b"
193 [email protected] "+"
194 [email protected] ","
195 [email protected] " "
196 [email protected]
197 [email protected] "\'b"
198 [email protected] ":"
199 [email protected] " "
200 [email protected] "\'c"
201 [email protected] ","
202 [email protected] ">"
203 [email protected] ";"
204 [email protected] "\n\n"
205 [email protected]
206 [email protected] "struct"
207 [email protected] " "
208 [email protected]
209 [email protected] "S13"
210 [email protected]
211 [email protected] "<"
212 [email protected]
213 [email protected]
214 [email protected] "T"
215 [email protected] ">"
216 [email protected] ";"
217 [email protected] "\n"
218 [email protected]
219 [email protected] "struct"
220 [email protected] " "
221 [email protected]
222 [email protected] "S14"
223 [email protected]
224 [email protected] "<"
225 [email protected]
226 [email protected]
227 [email protected] "T"
228 [email protected] ","
229 [email protected] " "
230 [email protected]
231 [email protected]
232 [email protected] "U"
233 [email protected] ">"
234 [email protected] ";"
235 [email protected] "\n"
236 [email protected]
237 [email protected] "struct"
238 [email protected] " "
239 [email protected]
240 [email protected] "S15"
241 [email protected]
242 [email protected] "<"
243 [email protected]
244 [email protected] "\'a"
245 [email protected] ","
246 [email protected] " "
247 [email protected]
248 [email protected]
249 [email protected] "T"
250 [email protected] ","
251 [email protected] " "
252 [email protected]
253 [email protected]
254 [email protected] "U"
255 [email protected] ">"
256 [email protected] ";"
257 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0018_struct_type_params.rs b/crates/syntax/test_data/parser/ok/0018_struct_type_params.rs
new file mode 100644
index 000000000..88c544923
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0018_struct_type_params.rs
@@ -0,0 +1,17 @@
1struct S1<T>;
2struct S2<T>(u32);
3struct S3<T> { u: u32 }
4
5struct S4<>;
6struct S5<'a>;
7struct S6<'a:>;
8struct S7<'a: 'b>;
9struct S8<'a: 'b + >;
10struct S9<'a: 'b + 'c>;
11struct S10<'a,>;
12struct S11<'a, 'b>;
13struct S12<'a: 'b+, 'b: 'c,>;
14
15struct S13<T>;
16struct S14<T, U>;
17struct S15<'a, T, U>;
diff --git a/crates/syntax/test_data/parser/ok/0019_enums.rast b/crates/syntax/test_data/parser/ok/0019_enums.rast
new file mode 100644
index 000000000..c3df00814
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0019_enums.rast
@@ -0,0 +1,155 @@
1[email protected]
2 [email protected]
3 [email protected] "enum"
4 [email protected] " "
5 [email protected]
6 [email protected] "E1"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n"
11 [email protected] "}"
12 [email protected] "\n\n"
13 [email protected]
14 [email protected] "enum"
15 [email protected] " "
16 [email protected]
17 [email protected] "E2"
18 [email protected]
19 [email protected] "<"
20 [email protected]
21 [email protected]
22 [email protected] "T"
23 [email protected] ">"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "\n"
28 [email protected] "}"
29 [email protected] "\n\n"
30 [email protected]
31 [email protected] "enum"
32 [email protected] " "
33 [email protected]
34 [email protected] "E3"
35 [email protected] " "
36 [email protected]
37 [email protected] "{"
38 [email protected] "\n "
39 [email protected]
40 [email protected]
41 [email protected] "X"
42 [email protected] "\n"
43 [email protected] "}"
44 [email protected] "\n\n"
45 [email protected]
46 [email protected] "enum"
47 [email protected] " "
48 [email protected]
49 [email protected] "E4"
50 [email protected] " "
51 [email protected]
52 [email protected] "{"
53 [email protected] "\n "
54 [email protected]
55 [email protected]
56 [email protected] "X"
57 [email protected] ","
58 [email protected] "\n"
59 [email protected] "}"
60 [email protected] "\n\n"
61 [email protected]
62 [email protected] "enum"
63 [email protected] " "
64 [email protected]
65 [email protected] "E5"
66 [email protected] " "
67 [email protected]
68 [email protected] "{"
69 [email protected] "\n "
70 [email protected]
71 [email protected]
72 [email protected] "A"
73 [email protected] ","
74 [email protected] "\n "
75 [email protected]
76 [email protected]
77 [email protected] "B"
78 [email protected] " "
79 [email protected] "="
80 [email protected] " "
81 [email protected]
82 [email protected] "92"
83 [email protected] ","
84 [email protected] "\n "
85 [email protected]
86 [email protected]
87 [email protected] "C"
88 [email protected] " "
89 [email protected]
90 [email protected] "{"
91 [email protected] "\n "
92 [email protected]
93 [email protected]
94 [email protected] "a"
95 [email protected] ":"
96 [email protected] " "
97 [email protected]
98 [email protected]
99 [email protected]
100 [email protected]
101 [email protected] "u32"
102 [email protected] ","
103 [email protected] "\n "
104 [email protected]
105 [email protected]
106 [email protected] "pub"
107 [email protected] " "
108 [email protected]
109 [email protected] "b"
110 [email protected] ":"
111 [email protected] " "
112 [email protected]
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected] "f64"
117 [email protected] ","
118 [email protected] "\n "
119 [email protected] "}"
120 [email protected] ","
121 [email protected] "\n "
122 [email protected]
123 [email protected]
124 [email protected] "F"
125 [email protected] " "
126 [email protected]
127 [email protected] "{"
128 [email protected] "}"
129 [email protected] ","
130 [email protected] "\n "
131 [email protected]
132 [email protected]
133 [email protected] "D"
134 [email protected]
135 [email protected] "("
136 [email protected]
137 [email protected]
138 [email protected]
139 [email protected]
140 [email protected]
141 [email protected] "u32"
142 [email protected] ","
143 [email protected] ")"
144 [email protected] ","
145 [email protected] "\n "
146 [email protected]
147 [email protected]
148 [email protected] "E"
149 [email protected]
150 [email protected] "("
151 [email protected] ")"
152 [email protected] ","
153 [email protected] "\n"
154 [email protected] "}"
155 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0019_enums.rs b/crates/syntax/test_data/parser/ok/0019_enums.rs
new file mode 100644
index 000000000..7a1afa0e6
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0019_enums.rs
@@ -0,0 +1,25 @@
1enum E1 {
2}
3
4enum E2<T> {
5}
6
7enum E3 {
8 X
9}
10
11enum E4 {
12 X,
13}
14
15enum E5 {
16 A,
17 B = 92,
18 C {
19 a: u32,
20 pub b: f64,
21 },
22 F {},
23 D(u32,),
24 E(),
25}
diff --git a/crates/syntax/test_data/parser/ok/0020_type_param_bounds.rast b/crates/syntax/test_data/parser/ok/0020_type_param_bounds.rast
new file mode 100644
index 000000000..9bdc50e1e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0020_type_param_bounds.rast
@@ -0,0 +1,268 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ">"
13 [email protected] ";"
14 [email protected] "\n"
15 [email protected]
16 [email protected] "struct"
17 [email protected] " "
18 [email protected]
19 [email protected] "B"
20 [email protected]
21 [email protected] "<"
22 [email protected]
23 [email protected]
24 [email protected] "T"
25 [email protected] ":"
26 [email protected]
27 [email protected] ">"
28 [email protected] ";"
29 [email protected] "\n"
30 [email protected]
31 [email protected] "struct"
32 [email protected] " "
33 [email protected]
34 [email protected] "C"
35 [email protected]
36 [email protected] "<"
37 [email protected]
38 [email protected]
39 [email protected] "T"
40 [email protected] ":"
41 [email protected] " "
42 [email protected]
43 [email protected]
44 [email protected] "\'a"
45 [email protected] ">"
46 [email protected] ";"
47 [email protected] "\n"
48 [email protected]
49 [email protected] "struct"
50 [email protected] " "
51 [email protected]
52 [email protected] "D"
53 [email protected]
54 [email protected] "<"
55 [email protected]
56 [email protected]
57 [email protected] "T"
58 [email protected] ":"
59 [email protected] " "
60 [email protected]
61 [email protected]
62 [email protected] "\'a"
63 [email protected] " "
64 [email protected] "+"
65 [email protected] " "
66 [email protected] ">"
67 [email protected] ";"
68 [email protected] "\n"
69 [email protected]
70 [email protected] "struct"
71 [email protected] " "
72 [email protected]
73 [email protected] "E"
74 [email protected]
75 [email protected] "<"
76 [email protected]
77 [email protected]
78 [email protected] "T"
79 [email protected] ":"
80 [email protected] " "
81 [email protected]
82 [email protected]
83 [email protected] "\'a"
84 [email protected] " "
85 [email protected] "+"
86 [email protected] " "
87 [email protected]
88 [email protected] "\'d"
89 [email protected] " "
90 [email protected] ">"
91 [email protected] ";"
92 [email protected] "\n"
93 [email protected]
94 [email protected] "struct"
95 [email protected] " "
96 [email protected]
97 [email protected] "F"
98 [email protected]
99 [email protected] "<"
100 [email protected]
101 [email protected]
102 [email protected] "T"
103 [email protected] ":"
104 [email protected] " "
105 [email protected]
106 [email protected]
107 [email protected] "\'a"
108 [email protected] " "
109 [email protected] "+"
110 [email protected] " "
111 [email protected]
112 [email protected] "\'d"
113 [email protected] " "
114 [email protected] "+"
115 [email protected] " "
116 [email protected]
117 [email protected]
118 [email protected]
119 [email protected]
120 [email protected]
121 [email protected] "Clone"
122 [email protected] ">"
123 [email protected] ";"
124 [email protected] "\n"
125 [email protected]
126 [email protected] "struct"
127 [email protected] " "
128 [email protected]
129 [email protected] "G"
130 [email protected]
131 [email protected] "<"
132 [email protected]
133 [email protected]
134 [email protected] "T"
135 [email protected] ":"
136 [email protected] " "
137 [email protected]
138 [email protected]
139 [email protected]
140 [email protected]
141 [email protected]
142 [email protected]
143 [email protected] "Clone"
144 [email protected] " "
145 [email protected] "+"
146 [email protected] " "
147 [email protected]
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected]
152 [email protected] "Copy"
153 [email protected] ">"
154 [email protected] ";"
155 [email protected] "\n"
156 [email protected]
157 [email protected] "struct"
158 [email protected] " "
159 [email protected]
160 [email protected] "H"
161 [email protected]
162 [email protected] "<"
163 [email protected]
164 [email protected]
165 [email protected] "T"
166 [email protected] ":"
167 [email protected] " "
168 [email protected]
169 [email protected]
170 [email protected]
171 [email protected]
172 [email protected]
173 [email protected] "::"
174 [email protected]
175 [email protected] "Foo"
176 [email protected] " "
177 [email protected] "+"
178 [email protected] " "
179 [email protected]
180 [email protected]
181 [email protected]
182 [email protected]
183 [email protected]
184 [email protected] "self"
185 [email protected] "::"
186 [email protected]
187 [email protected]
188 [email protected] "Bar"
189 [email protected] " "
190 [email protected] "+"
191 [email protected] " "
192 [email protected]
193 [email protected] "\'a"
194 [email protected] ">"
195 [email protected] ";"
196 [email protected] "\n"
197 [email protected]
198 [email protected] "struct"
199 [email protected] " "
200 [email protected]
201 [email protected] "I"
202 [email protected]
203 [email protected] "<"
204 [email protected]
205 [email protected]
206 [email protected] "T"
207 [email protected] ":"
208 [email protected]
209 [email protected] ","
210 [email protected] " "
211 [email protected]
212 [email protected]
213 [email protected] "U"
214 [email protected] ":"
215 [email protected]
216 [email protected] ","
217 [email protected] ">"
218 [email protected] ";"
219 [email protected] "\n"
220 [email protected]
221 [email protected] "struct"
222 [email protected] " "
223 [email protected]
224 [email protected] "K"
225 [email protected]
226 [email protected] "<"
227 [email protected]
228 [email protected] "\'a"
229 [email protected] ":"
230 [email protected] " "
231 [email protected] "\'d"
232 [email protected] ","
233 [email protected] " "
234 [email protected]
235 [email protected] "\'d"
236 [email protected] ":"
237 [email protected] " "
238 [email protected] "\'a"
239 [email protected] " "
240 [email protected] "+"
241 [email protected] " "
242 [email protected] "\'b"
243 [email protected] ","
244 [email protected] " "
245 [email protected]
246 [email protected]
247 [email protected] "T"
248 [email protected] ":"
249 [email protected] " "
250 [email protected]
251 [email protected]
252 [email protected] "\'a"
253 [email protected] " "
254 [email protected] "+"
255 [email protected] " "
256 [email protected]
257 [email protected] "\'d"
258 [email protected] " "
259 [email protected] "+"
260 [email protected] " "
261 [email protected]
262 [email protected]
263 [email protected]
264 [email protected]
265 [email protected]
266 [email protected] "Clone"
267 [email protected] ">"
268 [email protected] ";"
diff --git a/crates/syntax/test_data/parser/ok/0020_type_param_bounds.rs b/crates/syntax/test_data/parser/ok/0020_type_param_bounds.rs
new file mode 100644
index 000000000..712898978
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0020_type_param_bounds.rs
@@ -0,0 +1,10 @@
1struct A<T>;
2struct B<T:>;
3struct C<T: 'a>;
4struct D<T: 'a + >;
5struct E<T: 'a + 'd >;
6struct F<T: 'a + 'd + Clone>;
7struct G<T: Clone + Copy>;
8struct H<T: ::Foo + self::Bar + 'a>;
9struct I<T:, U:,>;
10struct K<'a: 'd, 'd: 'a + 'b, T: 'a + 'd + Clone>; \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0022_empty_extern_block.rast b/crates/syntax/test_data/parser/ok/0022_empty_extern_block.rast
new file mode 100644
index 000000000..26abae3b2
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0022_empty_extern_block.rast
@@ -0,0 +1,21 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "extern"
5 [email protected] " "
6 [email protected]
7 [email protected] "{"
8 [email protected] "\n"
9 [email protected] "}"
10 [email protected] "\n\n"
11 [email protected]
12 [email protected]
13 [email protected] "extern"
14 [email protected] " "
15 [email protected] "\"C\""
16 [email protected] " "
17 [email protected]
18 [email protected] "{"
19 [email protected] "\n"
20 [email protected] "}"
21 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0022_empty_extern_block.rs b/crates/syntax/test_data/parser/ok/0022_empty_extern_block.rs
new file mode 100644
index 000000000..f5fe0e6ef
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0022_empty_extern_block.rs
@@ -0,0 +1,5 @@
1extern {
2}
3
4extern "C" {
5}
diff --git a/crates/syntax/test_data/parser/ok/0023_static_items.rast b/crates/syntax/test_data/parser/ok/0023_static_items.rast
new file mode 100644
index 000000000..9374cf5e9
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0023_static_items.rast
@@ -0,0 +1,41 @@
1[email protected]
2 [email protected]
3 [email protected] "static"
4 [email protected] " "
5 [email protected]
6 [email protected] "FOO"
7 [email protected] ":"
8 [email protected] " "
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected] "u32"
14 [email protected] " "
15 [email protected] "="
16 [email protected] " "
17 [email protected]
18 [email protected] "1"
19 [email protected] ";"
20 [email protected] "\n"
21 [email protected]
22 [email protected] "static"
23 [email protected] " "
24 [email protected] "mut"
25 [email protected] " "
26 [email protected]
27 [email protected] "BAR"
28 [email protected] ":"
29 [email protected] " "
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "i32"
35 [email protected] " "
36 [email protected] "="
37 [email protected] " "
38 [email protected]
39 [email protected] "92"
40 [email protected] ";"
41 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0023_static_items.rs b/crates/syntax/test_data/parser/ok/0023_static_items.rs
new file mode 100644
index 000000000..5fb92ce33
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0023_static_items.rs
@@ -0,0 +1,2 @@
1static FOO: u32 = 1;
2static mut BAR: i32 = 92;
diff --git a/crates/syntax/test_data/parser/ok/0024_const_item.rast b/crates/syntax/test_data/parser/ok/0024_const_item.rast
new file mode 100644
index 000000000..dd1b9c9a0
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0024_const_item.rast
@@ -0,0 +1,59 @@
1[email protected]
2 [email protected]
3 [email protected] "const"
4 [email protected] " "
5 [email protected] "_"
6 [email protected] ":"
7 [email protected] " "
8 [email protected]
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected] "u32"
13 [email protected] " "
14 [email protected] "="
15 [email protected] " "
16 [email protected]
17 [email protected] "0"
18 [email protected] ";"
19 [email protected] "\n"
20 [email protected]
21 [email protected] "const"
22 [email protected] " "
23 [email protected]
24 [email protected] "FOO"
25 [email protected] ":"
26 [email protected] " "
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "u32"
32 [email protected] " "
33 [email protected] "="
34 [email protected] " "
35 [email protected]
36 [email protected] "92"
37 [email protected] ";"
38 [email protected] "\n"
39 [email protected]
40 [email protected] "const"
41 [email protected] " "
42 [email protected] "mut"
43 [email protected] " "
44 [email protected]
45 [email protected] "BAR"
46 [email protected] ":"
47 [email protected] " "
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected] "u32"
53 [email protected] " "
54 [email protected] "="
55 [email protected] " "
56 [email protected]
57 [email protected] "62"
58 [email protected] ";"
59 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0024_const_item.rs b/crates/syntax/test_data/parser/ok/0024_const_item.rs
new file mode 100644
index 000000000..a806a209d
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0024_const_item.rs
@@ -0,0 +1,3 @@
1const _: u32 = 0;
2const FOO: u32 = 92;
3const mut BAR: u32 = 62;
diff --git a/crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rast b/crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rast
new file mode 100644
index 000000000..bb6527b48
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rast
@@ -0,0 +1,31 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "extern"
17 [email protected] " "
18 [email protected] "fn"
19 [email protected] " "
20 [email protected]
21 [email protected] "f"
22 [email protected]
23 [email protected] "("
24 [email protected] ")"
25 [email protected] " "
26 [email protected]
27 [email protected] "{"
28 [email protected] "}"
29 [email protected] "\n"
30 [email protected] "}"
31 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rs b/crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rs
new file mode 100644
index 000000000..289809809
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rs
@@ -0,0 +1,3 @@
1fn main() {
2 extern fn f() {}
3}
diff --git a/crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rast b/crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rast
new file mode 100644
index 000000000..5bcf54deb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rast
@@ -0,0 +1,30 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "const"
16 [email protected] " "
17 [email protected] "fn"
18 [email protected] " "
19 [email protected]
20 [email protected] "f"
21 [email protected]
22 [email protected] "("
23 [email protected] ")"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "}"
28 [email protected] "\n"
29 [email protected] "}"
30 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rs b/crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rs
new file mode 100644
index 000000000..7641a3d28
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rs
@@ -0,0 +1,3 @@
1fn main() {
2 const fn f() {}
3}
diff --git a/crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast b/crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast
new file mode 100644
index 000000000..a7cc12295
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast
@@ -0,0 +1,41 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "unsafe"
16 [email protected] " "
17 [email protected] "fn"
18 [email protected] " "
19 [email protected]
20 [email protected] "f"
21 [email protected]
22 [email protected] "("
23 [email protected] ")"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "}"
28 [email protected] "\n "
29 [email protected]
30 [email protected] "unsafe"
31 [email protected] " "
32 [email protected]
33 [email protected] "{"
34 [email protected] " "
35 [email protected]
36 [email protected] "92"
37 [email protected] " "
38 [email protected] "}"
39 [email protected] "\n"
40 [email protected] "}"
41 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rs b/crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rs
new file mode 100644
index 000000000..f3c5ff938
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rs
@@ -0,0 +1,4 @@
1fn main() {
2 unsafe fn f() {}
3 unsafe { 92 }
4}
diff --git a/crates/syntax/test_data/parser/ok/0028_operator_binding_power.rast b/crates/syntax/test_data/parser/ok/0028_operator_binding_power.rast
new file mode 100644
index 000000000..3271a4695
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0028_operator_binding_power.rast
@@ -0,0 +1,185 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "binding_power"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "x"
20 [email protected] " "
21 [email protected] "="
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "1"
27 [email protected] " "
28 [email protected] "+"
29 [email protected] " "
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "2"
34 [email protected] " "
35 [email protected] "*"
36 [email protected] " "
37 [email protected]
38 [email protected] "3"
39 [email protected] " "
40 [email protected] "%"
41 [email protected] " "
42 [email protected]
43 [email protected] "4"
44 [email protected] " "
45 [email protected] "-"
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected] "5"
50 [email protected] " "
51 [email protected] "/"
52 [email protected] " "
53 [email protected]
54 [email protected] "6"
55 [email protected] ";"
56 [email protected] "\n "
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected] "1"
61 [email protected] " "
62 [email protected] "+"
63 [email protected] " "
64 [email protected]
65 [email protected]
66 [email protected] "2"
67 [email protected] " "
68 [email protected] "*"
69 [email protected] " "
70 [email protected]
71 [email protected] "3"
72 [email protected] ";"
73 [email protected] "\n "
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected] "1"
78 [email protected] " "
79 [email protected] "<<"
80 [email protected] " "
81 [email protected]
82 [email protected]
83 [email protected] "2"
84 [email protected] " "
85 [email protected] "+"
86 [email protected] " "
87 [email protected]
88 [email protected] "3"
89 [email protected] ";"
90 [email protected] "\n "
91 [email protected]
92 [email protected]
93 [email protected]
94 [email protected] "1"
95 [email protected] " "
96 [email protected] "&"
97 [email protected] " "
98 [email protected]
99 [email protected]
100 [email protected] "2"
101 [email protected] " "
102 [email protected] ">>"
103 [email protected] " "
104 [email protected]
105 [email protected] "3"
106 [email protected] ";"
107 [email protected] "\n "
108 [email protected]
109 [email protected]
110 [email protected]
111 [email protected] "1"
112 [email protected] " "
113 [email protected] "^"
114 [email protected] " "
115 [email protected]
116 [email protected]
117 [email protected] "2"
118 [email protected] " "
119 [email protected] "&"
120 [email protected] " "
121 [email protected]
122 [email protected] "3"
123 [email protected] ";"
124 [email protected] "\n "
125 [email protected]
126 [email protected]
127 [email protected]
128 [email protected] "1"
129 [email protected] " "
130 [email protected] "|"
131 [email protected] " "
132 [email protected]
133 [email protected]
134 [email protected] "2"
135 [email protected] " "
136 [email protected] "^"
137 [email protected] " "
138 [email protected]
139 [email protected] "3"
140 [email protected] ";"
141 [email protected] "\n "
142 [email protected]
143 [email protected]
144 [email protected]
145 [email protected] "1"
146 [email protected] " "
147 [email protected] "=="
148 [email protected] " "
149 [email protected]
150 [email protected]
151 [email protected] "2"
152 [email protected] " "
153 [email protected] "|"
154 [email protected] " "
155 [email protected]
156 [email protected] "3"
157 [email protected] ";"
158 [email protected] "\n "
159 [email protected]
160 [email protected]
161 [email protected]
162 [email protected] "1"
163 [email protected] " "
164 [email protected] "&&"
165 [email protected] " "
166 [email protected]
167 [email protected]
168 [email protected] "2"
169 [email protected] " "
170 [email protected] "=="
171 [email protected] " "
172 [email protected]
173 [email protected] "3"
174 [email protected] ";"
175 [email protected] "\n "
176 [email protected] "//1 || 2 && 2;"
177 [email protected] "\n "
178 [email protected] "//1 .. 2 || 3;"
179 [email protected] "\n "
180 [email protected] "//1 = 2 .. 3;"
181 [email protected] "\n "
182 [email protected] "//---&*1 - --2 * 9;"
183 [email protected] "\n"
184 [email protected] "}"
185 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0028_operator_binding_power.rs b/crates/syntax/test_data/parser/ok/0028_operator_binding_power.rs
new file mode 100644
index 000000000..cc9598470
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0028_operator_binding_power.rs
@@ -0,0 +1,14 @@
1fn binding_power() {
2 let x = 1 + 2 * 3 % 4 - 5 / 6;
3 1 + 2 * 3;
4 1 << 2 + 3;
5 1 & 2 >> 3;
6 1 ^ 2 & 3;
7 1 | 2 ^ 3;
8 1 == 2 | 3;
9 1 && 2 == 3;
10 //1 || 2 && 2;
11 //1 .. 2 || 3;
12 //1 = 2 .. 3;
13 //---&*1 - --2 * 9;
14}
diff --git a/crates/syntax/test_data/parser/ok/0029_range_forms.rast b/crates/syntax/test_data/parser/ok/0029_range_forms.rast
new file mode 100644
index 000000000..a732f11c4
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0029_range_forms.rast
@@ -0,0 +1,151 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] ".."
17 [email protected]
18 [email protected]
19 [email protected] "1"
20 [email protected] " "
21 [email protected] "+"
22 [email protected] " "
23 [email protected]
24 [email protected] "1"
25 [email protected] ";"
26 [email protected] "\n "
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] ".."
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected] "z"
36 [email protected] " "
37 [email protected] "="
38 [email protected] " "
39 [email protected]
40 [email protected] "2"
41 [email protected] ";"
42 [email protected] "\n "
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "x"
50 [email protected] " "
51 [email protected] "="
52 [email protected] " "
53 [email protected]
54 [email protected]
55 [email protected] "false"
56 [email protected] ".."
57 [email protected]
58 [email protected]
59 [email protected] "1"
60 [email protected] " "
61 [email protected] "=="
62 [email protected] " "
63 [email protected]
64 [email protected] "1"
65 [email protected] ";"
66 [email protected] "\n "
67 [email protected]
68 [email protected] "let"
69 [email protected] " "
70 [email protected]
71 [email protected]
72 [email protected] "x"
73 [email protected] " "
74 [email protected] "="
75 [email protected] " "
76 [email protected]
77 [email protected]
78 [email protected] "1"
79 [email protected] ".."
80 [email protected] ";"
81 [email protected] "\n \n "
82 [email protected]
83 [email protected]
84 [email protected] "..="
85 [email protected]
86 [email protected]
87 [email protected] "1"
88 [email protected] " "
89 [email protected] "+"
90 [email protected] " "
91 [email protected]
92 [email protected] "1"
93 [email protected] ";"
94 [email protected] "\n "
95 [email protected]
96 [email protected]
97 [email protected]
98 [email protected] "..="
99 [email protected]
100 [email protected]
101 [email protected]
102 [email protected]
103 [email protected] "z"
104 [email protected] " "
105 [email protected] "="
106 [email protected] " "
107 [email protected]
108 [email protected] "2"
109 [email protected] ";"
110 [email protected] "\n "
111 [email protected]
112 [email protected]
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected]
117 [email protected] "x"
118 [email protected] " "
119 [email protected] "="
120 [email protected] " "
121 [email protected]
122 [email protected]
123 [email protected] "false"
124 [email protected] "..="
125 [email protected]
126 [email protected]
127 [email protected] "1"
128 [email protected] " "
129 [email protected] "=="
130 [email protected] " "
131 [email protected]
132 [email protected] "1"
133 [email protected] ";"
134 [email protected] "\n "
135 [email protected]
136 [email protected] "let"
137 [email protected] " "
138 [email protected]
139 [email protected]
140 [email protected] "x"
141 [email protected] " "
142 [email protected] "="
143 [email protected] " "
144 [email protected]
145 [email protected]
146 [email protected] "1"
147 [email protected] ".."
148 [email protected] ";"
149 [email protected] "\n"
150 [email protected] "}"
151 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0029_range_forms.rs b/crates/syntax/test_data/parser/ok/0029_range_forms.rs
new file mode 100644
index 000000000..f9ff444d4
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0029_range_forms.rs
@@ -0,0 +1,11 @@
1fn foo() {
2 ..1 + 1;
3 ..z = 2;
4 x = false..1 == 1;
5 let x = 1..;
6
7 ..=1 + 1;
8 ..=z = 2;
9 x = false..=1 == 1;
10 let x = 1..;
11}
diff --git a/crates/syntax/test_data/parser/ok/0030_string_suffixes.rast b/crates/syntax/test_data/parser/ok/0030_string_suffixes.rast
new file mode 100644
index 000000000..80f7f5942
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0030_string_suffixes.rast
@@ -0,0 +1,63 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "_"
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected] "\'c\'u32"
24 [email protected] ";"
25 [email protected] "\n "
26 [email protected]
27 [email protected] "let"
28 [email protected] " "
29 [email protected]
30 [email protected] "_"
31 [email protected] " "
32 [email protected] "="
33 [email protected] " "
34 [email protected]
35 [email protected] "\"string\"invalid"
36 [email protected] ";"
37 [email protected] "\n "
38 [email protected]
39 [email protected] "let"
40 [email protected] " "
41 [email protected]
42 [email protected] "_"
43 [email protected] " "
44 [email protected] "="
45 [email protected] " "
46 [email protected]
47 [email protected] "b\'b\'_suff"
48 [email protected] ";"
49 [email protected] "\n "
50 [email protected]
51 [email protected] "let"
52 [email protected] " "
53 [email protected]
54 [email protected] "_"
55 [email protected] " "
56 [email protected] "="
57 [email protected] " "
58 [email protected]
59 [email protected] "b\"bs\"invalid"
60 [email protected] ";"
61 [email protected] "\n"
62 [email protected] "}"
63 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0030_string_suffixes.rs b/crates/syntax/test_data/parser/ok/0030_string_suffixes.rs
new file mode 100644
index 000000000..261aad1fb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0030_string_suffixes.rs
@@ -0,0 +1,6 @@
1fn main() {
2 let _ = 'c'u32;
3 let _ = "string"invalid;
4 let _ = b'b'_suff;
5 let _ = b"bs"invalid;
6}
diff --git a/crates/syntax/test_data/parser/ok/0030_traits.rast b/crates/syntax/test_data/parser/ok/0030_traits.rast
new file mode 100644
index 000000000..d07c6683a
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0030_traits.rast
@@ -0,0 +1,61 @@
1[email protected]
2 [email protected]
3 [email protected] "trait"
4 [email protected] " "
5 [email protected]
6 [email protected] "Runnable"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected] "fn"
13 [email protected] " "
14 [email protected]
15 [email protected] "handler"
16 [email protected]
17 [email protected] "("
18 [email protected] ")"
19 [email protected] ";"
20 [email protected] "\n"
21 [email protected] "}"
22 [email protected] "\n\n"
23 [email protected]
24 [email protected] "trait"
25 [email protected] " "
26 [email protected]
27 [email protected] "TraitWithExpr"
28 [email protected] " "
29 [email protected]
30 [email protected] "{"
31 [email protected] "\n "
32 [email protected]
33 [email protected] "fn"
34 [email protected] " "
35 [email protected]
36 [email protected] "fn_with_expr"
37 [email protected]
38 [email protected] "("
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected] "x"
43 [email protected] ":"
44 [email protected] " "
45 [email protected]
46 [email protected] "["
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected] "i32"
52 [email protected] ";"
53 [email protected] " "
54 [email protected]
55 [email protected] "1"
56 [email protected] "]"
57 [email protected] ")"
58 [email protected] ";"
59 [email protected] "\n"
60 [email protected] "}"
61 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0030_traits.rs b/crates/syntax/test_data/parser/ok/0030_traits.rs
new file mode 100644
index 000000000..ac30843ef
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0030_traits.rs
@@ -0,0 +1,7 @@
1trait Runnable {
2 fn handler();
3}
4
5trait TraitWithExpr {
6 fn fn_with_expr(x: [i32; 1]);
7}
diff --git a/crates/syntax/test_data/parser/ok/0031_extern.rast b/crates/syntax/test_data/parser/ok/0031_extern.rast
new file mode 100644
index 000000000..8150d445f
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0031_extern.rast
@@ -0,0 +1,973 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "extern"
5 [email protected] " "
6 [email protected]
7 [email protected] "{"
8 [email protected] "\n "
9 [email protected]
10 [email protected]
11 [email protected] "pub"
12 [email protected] " "
13 [email protected] "fn"
14 [email protected] " "
15 [email protected]
16 [email protected] "socket"
17 [email protected]
18 [email protected] "("
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "domain"
23 [email protected] ":"
24 [email protected] " "
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "::"
29 [email protected]
30 [email protected] "c_int"
31 [email protected] ","
32 [email protected] " "
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected] "ty"
37 [email protected] ":"
38 [email protected] " "
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected] "::"
43 [email protected]
44 [email protected] "c_int"
45 [email protected] ","
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected] "protocol"
51 [email protected] ":"
52 [email protected] " "
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected] "::"
57 [email protected]
58 [email protected] "c_int"
59 [email protected] ")"
60 [email protected] " "
61 [email protected]
62 [email protected] "->"
63 [email protected] " "
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected] "::"
68 [email protected]
69 [email protected] "c_int"
70 [email protected] ";"
71 [email protected] "\n "
72 [email protected]
73 [email protected]
74 [email protected] "pub"
75 [email protected] " "
76 [email protected] "fn"
77 [email protected] " "
78 [email protected]
79 [email protected] "bind"
80 [email protected]
81 [email protected] "("
82 [email protected]
83 [email protected]
84 [email protected]
85 [email protected] "fd"
86 [email protected] ":"
87 [email protected] " "
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected] "::"
92 [email protected]
93 [email protected] "c_int"
94 [email protected] ","
95 [email protected] " "
96 [email protected]
97 [email protected]
98 [email protected]
99 [email protected] "addr"
100 [email protected] ":"
101 [email protected] " "
102 [email protected]
103 [email protected] "*"
104 [email protected] "const"
105 [email protected] " "
106 [email protected]
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected] "sockaddr"
111 [email protected] ","
112 [email protected] " "
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected] "len"
117 [email protected] ":"
118 [email protected] " "
119 [email protected]
120 [email protected]
121 [email protected]
122 [email protected]
123 [email protected] "socklen_t"
124 [email protected] ")"
125 [email protected] " "
126 [email protected]
127 [email protected] "->"
128 [email protected] " "
129 [email protected]
130 [email protected]
131 [email protected]
132 [email protected] "::"
133 [email protected]
134 [email protected] "c_int"
135 [email protected] ";"
136 [email protected] "\n "
137 [email protected]
138 [email protected]
139 [email protected] "pub"
140 [email protected] " "
141 [email protected] "fn"
142 [email protected] " "
143 [email protected]
144 [email protected] "connect"
145 [email protected]
146 [email protected] "("
147 [email protected]
148 [email protected]
149 [email protected]
150 [email protected] "socket"
151 [email protected] ":"
152 [email protected] " "
153 [email protected]
154 [email protected]
155 [email protected]
156 [email protected] "::"
157 [email protected]
158 [email protected] "c_int"
159 [email protected] ","
160 [email protected] " "
161 [email protected]
162 [email protected]
163 [email protected]
164 [email protected] "address"
165 [email protected] ":"
166 [email protected] " "
167 [email protected]
168 [email protected] "*"
169 [email protected] "const"
170 [email protected] " "
171 [email protected]
172 [email protected]
173 [email protected]
174 [email protected]
175 [email protected] "sockaddr"
176 [email protected] ","
177 [email protected] "\n "
178 [email protected]
179 [email protected]
180 [email protected]
181 [email protected] "len"
182 [email protected] ":"
183 [email protected] " "
184 [email protected]
185 [email protected]
186 [email protected]
187 [email protected]
188 [email protected] "socklen_t"
189 [email protected] ")"
190 [email protected] " "
191 [email protected]
192 [email protected] "->"
193 [email protected] " "
194 [email protected]
195 [email protected]
196 [email protected]
197 [email protected] "::"
198 [email protected]
199 [email protected] "c_int"
200 [email protected] ";"
201 [email protected] "\n "
202 [email protected]
203 [email protected]
204 [email protected] "pub"
205 [email protected] " "
206 [email protected] "fn"
207 [email protected] " "
208 [email protected]
209 [email protected] "listen"
210 [email protected]
211 [email protected] "("
212 [email protected]
213 [email protected]
214 [email protected]
215 [email protected] "socket"
216 [email protected] ":"
217 [email protected] " "
218 [email protected]
219 [email protected]
220 [email protected]
221 [email protected] "::"
222 [email protected]
223 [email protected] "c_int"
224 [email protected] ","
225 [email protected] " "
226 [email protected]
227 [email protected]
228 [email protected]
229 [email protected] "backlog"
230 [email protected] ":"
231 [email protected] " "
232 [email protected]
233 [email protected]
234 [email protected]
235 [email protected] "::"
236 [email protected]
237 [email protected] "c_int"
238 [email protected] ")"
239 [email protected] " "
240 [email protected]
241 [email protected] "->"
242 [email protected] " "
243 [email protected]
244 [email protected]
245 [email protected]
246 [email protected] "::"
247 [email protected]
248 [email protected] "c_int"
249 [email protected] ";"
250 [email protected] "\n "
251 [email protected]
252 [email protected]
253 [email protected] "pub"
254 [email protected] " "
255 [email protected] "fn"
256 [email protected] " "
257 [email protected]
258 [email protected] "getsockname"
259 [email protected]
260 [email protected] "("
261 [email protected]
262 [email protected]
263 [email protected]
264 [email protected] "socket"
265 [email protected] ":"
266 [email protected] " "
267 [email protected]
268 [email protected]
269 [email protected]
270 [email protected] "::"
271 [email protected]
272 [email protected] "c_int"
273 [email protected] ","
274 [email protected] " "
275 [email protected]
276 [email protected]
277 [email protected]
278 [email protected] "address"
279 [email protected] ":"
280 [email protected] " "
281 [email protected]
282 [email protected] "*"
283 [email protected] "mut"
284 [email protected] " "
285 [email protected]
286 [email protected]
287 [email protected]
288 [email protected]
289 [email protected] "sockaddr"
290 [email protected] ","
291 [email protected] "\n "
292 [email protected]
293 [email protected]
294 [email protected]
295 [email protected] "address_len"
296 [email protected] ":"
297 [email protected] " "
298 [email protected]
299 [email protected] "*"
300 [email protected] "mut"
301 [email protected] " "
302 [email protected]
303 [email protected]
304 [email protected]
305 [email protected]
306 [email protected] "socklen_t"
307 [email protected] ")"
308 [email protected] " "
309 [email protected]
310 [email protected] "->"
311 [email protected] " "
312 [email protected]
313 [email protected]
314 [email protected]
315 [email protected] "::"
316 [email protected]
317 [email protected] "c_int"
318 [email protected] ";"
319 [email protected] "\n "
320 [email protected]
321 [email protected]
322 [email protected] "pub"
323 [email protected] " "
324 [email protected] "fn"
325 [email protected] " "
326 [email protected]
327 [email protected] "getsockopt"
328 [email protected]
329 [email protected] "("
330 [email protected]
331 [email protected]
332 [email protected]
333 [email protected] "sockfd"
334 [email protected] ":"
335 [email protected] " "
336 [email protected]
337 [email protected]
338 [email protected]
339 [email protected] "::"
340 [email protected]
341 [email protected] "c_int"
342 [email protected] ","
343 [email protected] "\n "
344 [email protected]
345 [email protected]
346 [email protected]
347 [email protected] "level"
348 [email protected] ":"
349 [email protected] " "
350 [email protected]
351 [email protected]
352 [email protected]
353 [email protected] "::"
354 [email protected]
355 [email protected] "c_int"
356 [email protected] ","
357 [email protected] "\n "
358 [email protected]
359 [email protected]
360 [email protected]
361 [email protected] "optname"
362 [email protected] ":"
363 [email protected] " "
364 [email protected]
365 [email protected]
366 [email protected]
367 [email protected] "::"
368 [email protected]
369 [email protected] "c_int"
370 [email protected] ","
371 [email protected] "\n "
372 [email protected]
373 [email protected]
374 [email protected]
375 [email protected] "optval"
376 [email protected] ":"
377 [email protected] " "
378 [email protected]
379 [email protected] "*"
380 [email protected] "mut"
381 [email protected] " "
382 [email protected]
383 [email protected]
384 [email protected]
385 [email protected] "::"
386 [email protected]
387 [email protected] "c_void"
388 [email protected] ","
389 [email protected] "\n "
390 [email protected]
391 [email protected]
392 [email protected]
393 [email protected] "optlen"
394 [email protected] ":"
395 [email protected] " "
396 [email protected]
397 [email protected] "*"
398 [email protected] "mut"
399 [email protected] " "
400 [email protected]
401 [email protected]
402 [email protected]
403 [email protected] "::"
404 [email protected]
405 [email protected] "socklen_t"
406 [email protected] ")"
407 [email protected] " "
408 [email protected]
409 [email protected] "->"
410 [email protected] " "
411 [email protected]
412 [email protected]
413 [email protected]
414 [email protected] "::"
415 [email protected]
416 [email protected] "c_int"
417 [email protected] ";"
418 [email protected] "\n "
419 [email protected]
420 [email protected]
421 [email protected] "pub"
422 [email protected] " "
423 [email protected] "fn"
424 [email protected] " "
425 [email protected]
426 [email protected] "setsockopt"
427 [email protected]
428 [email protected] "("
429 [email protected]
430 [email protected]
431 [email protected]
432 [email protected] "socket"
433 [email protected] ":"
434 [email protected] " "
435 [email protected]
436 [email protected]
437 [email protected]
438 [email protected] "::"
439 [email protected]
440 [email protected] "c_int"
441 [email protected] ","
442 [email protected] " "
443 [email protected]
444 [email protected]
445 [email protected]
446 [email protected] "level"
447 [email protected] ":"
448 [email protected] " "
449 [email protected]
450 [email protected]
451 [email protected]
452 [email protected] "::"
453 [email protected]
454 [email protected] "c_int"
455 [email protected] ","
456 [email protected] " "
457 [email protected]
458 [email protected]
459 [email protected]
460 [email protected] "name"
461 [email protected] ":"
462 [email protected] " "
463 [email protected]
464 [email protected]
465 [email protected]
466 [email protected] "::"
467 [email protected]
468 [email protected] "c_int"
469 [email protected] ","
470 [email protected] "\n "
471 [email protected]
472 [email protected]
473 [email protected]
474 [email protected] "value"
475 [email protected] ":"
476 [email protected] " "
477 [email protected]
478 [email protected] "*"
479 [email protected] "const"
480 [email protected] " "
481 [email protected]
482 [email protected]
483 [email protected]
484 [email protected] "::"
485 [email protected]
486 [email protected] "c_void"
487 [email protected] ","
488 [email protected] "\n "
489 [email protected]
490 [email protected]
491 [email protected]
492 [email protected] "option_len"
493 [email protected] ":"
494 [email protected] " "
495 [email protected]
496 [email protected]
497 [email protected]
498 [email protected]
499 [email protected] "socklen_t"
500 [email protected] ")"
501 [email protected] " "
502 [email protected]
503 [email protected] "->"
504 [email protected] " "
505 [email protected]
506 [email protected]
507 [email protected]
508 [email protected] "::"
509 [email protected]
510 [email protected] "c_int"
511 [email protected] ";"
512 [email protected] "\n "
513 [email protected]
514 [email protected]
515 [email protected] "pub"
516 [email protected] " "
517 [email protected] "fn"
518 [email protected] " "
519 [email protected]
520 [email protected] "getpeername"
521 [email protected]
522 [email protected] "("
523 [email protected]
524 [email protected]
525 [email protected]
526 [email protected] "socket"
527 [email protected] ":"
528 [email protected] " "
529 [email protected]
530 [email protected]
531 [email protected]
532 [email protected] "::"
533 [email protected]
534 [email protected] "c_int"
535 [email protected] ","
536 [email protected] " "
537 [email protected]
538 [email protected]
539 [email protected]
540 [email protected] "address"
541 [email protected] ":"
542 [email protected] " "
543 [email protected]
544 [email protected] "*"
545 [email protected] "mut"
546 [email protected] " "
547 [email protected]
548 [email protected]
549 [email protected]
550 [email protected]
551 [email protected] "sockaddr"
552 [email protected] ","
553 [email protected] "\n "
554 [email protected]
555 [email protected]
556 [email protected]
557 [email protected] "address_len"
558 [email protected] ":"
559 [email protected] " "
560 [email protected]
561 [email protected] "*"
562 [email protected] "mut"
563 [email protected] " "
564 [email protected]
565 [email protected]
566 [email protected]
567 [email protected]
568 [email protected] "socklen_t"
569 [email protected] ")"
570 [email protected] " "
571 [email protected]
572 [email protected] "->"
573 [email protected] " "
574 [email protected]
575 [email protected]
576 [email protected]
577 [email protected] "::"
578 [email protected]
579 [email protected] "c_int"
580 [email protected] ";"
581 [email protected] "\n "
582 [email protected]
583 [email protected]
584 [email protected] "pub"
585 [email protected] " "
586 [email protected] "fn"
587 [email protected] " "
588 [email protected]
589 [email protected] "sendto"
590 [email protected]
591 [email protected] "("
592 [email protected]
593 [email protected]
594 [email protected]
595 [email protected] "socket"
596 [email protected] ":"
597 [email protected] " "
598 [email protected]
599 [email protected]
600 [email protected]
601 [email protected] "::"
602 [email protected]
603 [email protected] "c_int"
604 [email protected] ","
605 [email protected] " "
606 [email protected]
607 [email protected]
608 [email protected]
609 [email protected] "buf"
610 [email protected] ":"
611 [email protected] " "
612 [email protected]
613 [email protected] "*"
614 [email protected] "const"
615 [email protected] " "
616 [email protected]
617 [email protected]
618 [email protected]
619 [email protected] "::"
620 [email protected]
621 [email protected] "c_void"
622 [email protected] ","
623 [email protected] " "
624 [email protected]
625 [email protected]
626 [email protected]
627 [email protected] "len"
628 [email protected] ":"
629 [email protected] " "
630 [email protected]
631 [email protected]
632 [email protected]
633 [email protected] "::"
634 [email protected]
635 [email protected] "size_t"
636 [email protected] ","
637 [email protected] "\n "
638 [email protected]
639 [email protected]
640 [email protected]
641 [email protected] "flags"
642 [email protected] ":"
643 [email protected] " "
644 [email protected]
645 [email protected]
646 [email protected]
647 [email protected] "::"
648 [email protected]
649 [email protected] "c_int"
650 [email protected] ","
651 [email protected] " "
652 [email protected]
653 [email protected]
654 [email protected]
655 [email protected] "addr"
656 [email protected] ":"
657 [email protected] " "
658 [email protected]
659 [email protected] "*"
660 [email protected] "const"
661 [email protected] " "
662 [email protected]
663 [email protected]
664 [email protected]
665 [email protected]
666 [email protected] "sockaddr"
667 [email protected] ","
668 [email protected] "\n "
669 [email protected]
670 [email protected]
671 [email protected]
672 [email protected] "addrlen"
673 [email protected] ":"
674 [email protected] " "
675 [email protected]
676 [email protected]
677 [email protected]
678 [email protected]
679 [email protected] "socklen_t"
680 [email protected] ")"
681 [email protected] " "
682 [email protected]
683 [email protected] "->"
684 [email protected] " "
685 [email protected]
686 [email protected]
687 [email protected]
688 [email protected] "::"
689 [email protected]
690 [email protected] "ssize_t"
691 [email protected] ";"
692 [email protected] "\n "
693 [email protected]
694 [email protected]
695 [email protected] "pub"
696 [email protected] " "
697 [email protected] "fn"
698 [email protected] " "
699 [email protected]
700 [email protected] "send"
701 [email protected]
702 [email protected] "("
703 [email protected]
704 [email protected]
705 [email protected]
706 [email protected] "socket"
707 [email protected] ":"
708 [email protected] " "
709 [email protected]
710 [email protected]
711 [email protected]
712 [email protected] "::"
713 [email protected]
714 [email protected] "c_int"
715 [email protected] ","
716 [email protected] " "
717 [email protected]
718 [email protected]
719 [email protected]
720 [email protected] "buf"
721 [email protected] ":"
722 [email protected] " "
723 [email protected]
724 [email protected] "*"
725 [email protected] "const"
726 [email protected] " "
727 [email protected]
728 [email protected]
729 [email protected]
730 [email protected] "::"
731 [email protected]
732 [email protected] "c_void"
733 [email protected] ","
734 [email protected] " "
735 [email protected]
736 [email protected]
737 [email protected]
738 [email protected] "len"
739 [email protected] ":"
740 [email protected] " "
741 [email protected]
742 [email protected]
743 [email protected]
744 [email protected] "::"
745 [email protected]
746 [email protected] "size_t"
747 [email protected] ","
748 [email protected] "\n "
749 [email protected]
750 [email protected]
751 [email protected]
752 [email protected] "flags"
753 [email protected] ":"
754 [email protected] " "
755 [email protected]
756 [email protected]
757 [email protected]
758 [email protected] "::"
759 [email protected]
760 [email protected] "c_int"
761 [email protected] ")"
762 [email protected] " "
763 [email protected]
764 [email protected] "->"
765 [email protected] " "
766 [email protected]
767 [email protected]
768 [email protected]
769 [email protected] "::"
770 [email protected]
771 [email protected] "ssize_t"
772 [email protected] ";"
773 [email protected] "\n "
774 [email protected]
775 [email protected]
776 [email protected] "pub"
777 [email protected] " "
778 [email protected] "fn"
779 [email protected] " "
780 [email protected]
781 [email protected] "recvfrom"
782 [email protected]
783 [email protected] "("
784 [email protected]
785 [email protected]
786 [email protected]
787 [email protected] "socket"
788 [email protected] ":"
789 [email protected] " "
790 [email protected]
791 [email protected]
792 [email protected]
793 [email protected] "::"
794 [email protected]
795 [email protected] "c_int"
796 [email protected] ","
797 [email protected] " "
798 [email protected]
799 [email protected]
800 [email protected]
801 [email protected] "buf"
802 [email protected] ":"
803 [email protected] " "
804 [email protected]
805 [email protected] "*"
806 [email protected] "mut"
807 [email protected] " "
808 [email protected]
809 [email protected]
810 [email protected]
811 [email protected] "::"
812 [email protected]
813 [email protected] "c_void"
814 [email protected] ","
815 [email protected] " "
816 [email protected]
817 [email protected]
818 [email protected]
819 [email protected] "len"
820 [email protected] ":"
821 [email protected] " "
822 [email protected]
823 [email protected]
824 [email protected]
825 [email protected] "::"
826 [email protected]
827 [email protected] "size_t"
828 [email protected] ","
829 [email protected] "\n "
830 [email protected]
831 [email protected]
832 [email protected]
833 [email protected] "flags"
834 [email protected] ":"
835 [email protected] " "
836 [email protected]
837 [email protected]
838 [email protected]
839 [email protected] "::"
840 [email protected]
841 [email protected] "c_int"
842 [email protected] ","
843 [email protected] " "
844 [email protected]
845 [email protected]
846 [email protected]
847 [email protected] "addr"
848 [email protected] ":"
849 [email protected] " "
850 [email protected]
851 [email protected] "*"
852 [email protected] "mut"
853 [email protected] " "
854 [email protected]
855 [email protected]
856 [email protected]
857 [email protected] "::"
858 [email protected]
859 [email protected] "sockaddr"
860 [email protected] ","
861 [email protected] "\n "
862 [email protected]
863 [email protected]
864 [email protected]
865 [email protected] "addrlen"
866 [email protected] ":"
867 [email protected] " "
868 [email protected]
869 [email protected] "*"
870 [email protected] "mut"
871 [email protected] " "
872 [email protected]
873 [email protected]
874 [email protected]
875 [email protected] "::"
876 [email protected]
877 [email protected] "socklen_t"
878 [email protected] ")"
879 [email protected] " "
880 [email protected]
881 [email protected] "->"
882 [email protected] " "
883 [email protected]
884 [email protected]
885 [email protected]
886 [email protected] "::"
887 [email protected]
888 [email protected] "ssize_t"
889 [email protected] ";"
890 [email protected] "\n "
891 [email protected]
892 [email protected]
893 [email protected] "pub"
894 [email protected] " "
895 [email protected] "fn"
896 [email protected] " "
897 [email protected]
898 [email protected] "recv"
899 [email protected]
900 [email protected] "("
901 [email protected]
902 [email protected]
903 [email protected]
904 [email protected] "socket"
905 [email protected] ":"
906 [email protected] " "
907 [email protected]
908 [email protected]
909 [email protected]
910 [email protected] "::"
911 [email protected]
912 [email protected] "c_int"
913 [email protected] ","
914 [email protected] " "
915 [email protected]
916 [email protected]
917 [email protected]
918 [email protected] "buf"
919 [email protected] ":"
920 [email protected] " "
921 [email protected]
922 [email protected] "*"
923 [email protected] "mut"
924 [email protected] " "
925 [email protected]
926 [email protected]
927 [email protected]
928 [email protected] "::"
929 [email protected]
930 [email protected] "c_void"
931 [email protected] ","
932 [email protected] " "
933 [email protected]
934 [email protected]
935 [email protected]
936 [email protected] "len"
937 [email protected] ":"
938 [email protected] " "
939 [email protected]
940 [email protected]
941 [email protected]
942 [email protected] "::"
943 [email protected]
944 [email protected] "size_t"
945 [email protected] ","
946 [email protected] "\n "
947 [email protected]
948 [email protected]
949 [email protected]
950 [email protected] "flags"
951 [email protected] ":"
952 [email protected] " "
953 [email protected]
954 [email protected]
955 [email protected]
956 [email protected] "::"
957 [email protected]
958 [email protected] "c_int"
959 [email protected] ")"
960 [email protected] " "
961 [email protected]
962 [email protected] "->"
963 [email protected] " "
964 [email protected]
965 [email protected]
966 [email protected]
967 [email protected] "::"
968 [email protected]
969 [email protected] "ssize_t"
970 [email protected] ";"
971 [email protected] "\n"
972 [email protected] "}"
973 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0031_extern.rs b/crates/syntax/test_data/parser/ok/0031_extern.rs
new file mode 100644
index 000000000..b33ac273c
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0031_extern.rs
@@ -0,0 +1,29 @@
1extern {
2 pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int;
3 pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) -> ::c_int;
4 pub fn connect(socket: ::c_int, address: *const sockaddr,
5 len: socklen_t) -> ::c_int;
6 pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int;
7 pub fn getsockname(socket: ::c_int, address: *mut sockaddr,
8 address_len: *mut socklen_t) -> ::c_int;
9 pub fn getsockopt(sockfd: ::c_int,
10 level: ::c_int,
11 optname: ::c_int,
12 optval: *mut ::c_void,
13 optlen: *mut ::socklen_t) -> ::c_int;
14 pub fn setsockopt(socket: ::c_int, level: ::c_int, name: ::c_int,
15 value: *const ::c_void,
16 option_len: socklen_t) -> ::c_int;
17 pub fn getpeername(socket: ::c_int, address: *mut sockaddr,
18 address_len: *mut socklen_t) -> ::c_int;
19 pub fn sendto(socket: ::c_int, buf: *const ::c_void, len: ::size_t,
20 flags: ::c_int, addr: *const sockaddr,
21 addrlen: socklen_t) -> ::ssize_t;
22 pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t,
23 flags: ::c_int) -> ::ssize_t;
24 pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t,
25 flags: ::c_int, addr: *mut ::sockaddr,
26 addrlen: *mut ::socklen_t) -> ::ssize_t;
27 pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t,
28 flags: ::c_int) -> ::ssize_t;
29}
diff --git a/crates/syntax/test_data/parser/ok/0032_where_for.rast b/crates/syntax/test_data/parser/ok/0032_where_for.rast
new file mode 100644
index 000000000..d59548f21
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0032_where_for.rast
@@ -0,0 +1,90 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "test_serialization"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "SER"
12 [email protected] ">"
13 [email protected]
14 [email protected] "("
15 [email protected] ")"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "where"
19 [email protected] "\n "
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "SER"
26 [email protected] ":"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "Serialize"
35 [email protected] " "
36 [email protected] "+"
37 [email protected] " "
38 [email protected]
39 [email protected]
40 [email protected] "for"
41 [email protected]
42 [email protected] "<"
43 [email protected]
44 [email protected] "\'de"
45 [email protected] ">"
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected] "Deserialize"
52 [email protected]
53 [email protected] "<"
54 [email protected]
55 [email protected] "\'de"
56 [email protected] ">"
57 [email protected] " "
58 [email protected] "+"
59 [email protected] " "
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected] "PartialEq"
66 [email protected] " "
67 [email protected] "+"
68 [email protected] " "
69 [email protected]
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected] "std"
77 [email protected] "::"
78 [email protected]
79 [email protected]
80 [email protected] "fmt"
81 [email protected] "::"
82 [email protected]
83 [email protected]
84 [email protected] "Debug"
85 [email protected] ","
86 [email protected] "\n"
87 [email protected]
88 [email protected] "{"
89 [email protected] "}"
90 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0032_where_for.rs b/crates/syntax/test_data/parser/ok/0032_where_for.rs
new file mode 100644
index 000000000..588170fbe
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0032_where_for.rs
@@ -0,0 +1,4 @@
1fn test_serialization<SER>()
2where
3 SER: Serialize + for<'de> Deserialize<'de> + PartialEq + std::fmt::Debug,
4{}
diff --git a/crates/syntax/test_data/parser/ok/0033_label_break.rast b/crates/syntax/test_data/parser/ok/0033_label_break.rast
new file mode 100644
index 000000000..88800ca7a
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0033_label_break.rast
@@ -0,0 +1,215 @@
1[email protected]
2 [email protected]
3 [email protected] "// format with label ..."
4 [email protected] "\n"
5 [email protected] "fn"
6 [email protected] " "
7 [email protected]
8 [email protected] "main"
9 [email protected]
10 [email protected] "("
11 [email protected] ")"
12 [email protected] " "
13 [email protected]
14 [email protected] "{"
15 [email protected] "\n "
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "\'empty_block"
20 [email protected] ":"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] "\n\n "
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected] "\'block"
30 [email protected] ":"
31 [email protected] " "
32 [email protected]
33 [email protected] "{"
34 [email protected] "\n "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "do_thing"
42 [email protected]
43 [email protected] "("
44 [email protected] ")"
45 [email protected] ";"
46 [email protected] "\n "
47 [email protected]
48 [email protected]
49 [email protected] "if"
50 [email protected] " "
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected] "condition_not_met"
58 [email protected]
59 [email protected] "("
60 [email protected] ")"
61 [email protected] " "
62 [email protected]
63 [email protected] "{"
64 [email protected] "\n "
65 [email protected]
66 [email protected]
67 [email protected] "break"
68 [email protected] " "
69 [email protected] "\'block"
70 [email protected] ";"
71 [email protected] "\n "
72 [email protected] "}"
73 [email protected] "\n "
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected] "do_next_thing"
81 [email protected]
82 [email protected] "("
83 [email protected] ")"
84 [email protected] ";"
85 [email protected] "\n "
86 [email protected]
87 [email protected]
88 [email protected] "if"
89 [email protected] " "
90 [email protected]
91 [email protected]
92 [email protected]
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected] "condition_not_met"
97 [email protected]
98 [email protected] "("
99 [email protected] ")"
100 [email protected] " "
101 [email protected]
102 [email protected] "{"
103 [email protected] "\n "
104 [email protected]
105 [email protected]
106 [email protected] "break"
107 [email protected] " "
108 [email protected] "\'block"
109 [email protected] ";"
110 [email protected] "\n "
111 [email protected] "}"
112 [email protected] "\n "
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected]
117 [email protected]
118 [email protected]
119 [email protected] "do_last_thing"
120 [email protected]
121 [email protected] "("
122 [email protected] ")"
123 [email protected] ";"
124 [email protected] "\n "
125 [email protected] "}"
126 [email protected] "\n\n "
127 [email protected]
128 [email protected] "let"
129 [email protected] " "
130 [email protected]
131 [email protected]
132 [email protected] "result"
133 [email protected] " "
134 [email protected] "="
135 [email protected] " "
136 [email protected]
137 [email protected]
138 [email protected] "\'block"
139 [email protected] ":"
140 [email protected] " "
141 [email protected]
142 [email protected] "{"
143 [email protected] "\n "
144 [email protected]
145 [email protected]
146 [email protected] "if"
147 [email protected] " "
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected]
152 [email protected]
153 [email protected]
154 [email protected] "foo"
155 [email protected]
156 [email protected] "("
157 [email protected] ")"
158 [email protected] " "
159 [email protected]
160 [email protected] "{"
161 [email protected] "\n "
162 [email protected] "// comment"
163 [email protected] "\n "
164 [email protected]
165 [email protected]
166 [email protected] "break"
167 [email protected] " "
168 [email protected] "\'block"
169 [email protected] " "
170 [email protected]
171 [email protected] "1"
172 [email protected] ";"
173 [email protected] "\n "
174 [email protected] "}"
175 [email protected] "\n "
176 [email protected]
177 [email protected]
178 [email protected] "if"
179 [email protected] " "
180 [email protected]
181 [email protected]
182 [email protected]
183 [email protected]
184 [email protected]
185 [email protected]
186 [email protected] "bar"
187 [email protected]
188 [email protected] "("
189 [email protected] ")"
190 [email protected] " "
191 [email protected]
192 [email protected] "{"
193 [email protected] "\n "
194 [email protected] "/* comment */"
195 [email protected] "\n "
196 [email protected]
197 [email protected]
198 [email protected] "break"
199 [email protected] " "
200 [email protected] "\'block"
201 [email protected] " "
202 [email protected]
203 [email protected] "2"
204 [email protected] ";"
205 [email protected] "\n "
206 [email protected] "}"
207 [email protected] "\n "
208 [email protected]
209 [email protected] "3"
210 [email protected] "\n "
211 [email protected] "}"
212 [email protected] ";"
213 [email protected] "\n"
214 [email protected] "}"
215 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0033_label_break.rs b/crates/syntax/test_data/parser/ok/0033_label_break.rs
new file mode 100644
index 000000000..728d78137
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0033_label_break.rs
@@ -0,0 +1,28 @@
1// format with label break value.
2fn main() {
3 'empty_block: {}
4
5 'block: {
6 do_thing();
7 if condition_not_met() {
8 break 'block;
9 }
10 do_next_thing();
11 if condition_not_met() {
12 break 'block;
13 }
14 do_last_thing();
15 }
16
17 let result = 'block: {
18 if foo() {
19 // comment
20 break 'block 1;
21 }
22 if bar() {
23 /* comment */
24 break 'block 2;
25 }
26 3
27 };
28}
diff --git a/crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rast b/crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rast
new file mode 100644
index 000000000..5ad8c570d
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rast
@@ -0,0 +1,41 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "make_query"
21 [email protected]
22 [email protected] "("
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "crate"
29 [email protected] "::"
30 [email protected]
31 [email protected]
32 [email protected] "module_map"
33 [email protected] "::"
34 [email protected]
35 [email protected]
36 [email protected] "module_tree"
37 [email protected] ")"
38 [email protected] ";"
39 [email protected] "\n"
40 [email protected] "}"
41 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rs b/crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rs
new file mode 100644
index 000000000..f1ed30220
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rs
@@ -0,0 +1,3 @@
1fn main() {
2 make_query(crate::module_map::module_tree);
3}
diff --git a/crates/syntax/test_data/parser/ok/0035_weird_exprs.rast b/crates/syntax/test_data/parser/ok/0035_weird_exprs.rast
new file mode 100644
index 000000000..7c61b5006
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0035_weird_exprs.rast
@@ -0,0 +1,2291 @@
1[email protected]
2 [email protected] "//! Adapted from a `r ..."
3 [email protected] "\n"
4 [email protected] "//! https://github.co ..."
5 [email protected] "\n"
6 [email protected] "//! "
7 [email protected] "\n"
8 [email protected] "//! Reported to rust- ..."
9 [email protected] "\n\n"
10 [email protected]
11 [email protected] "#"
12 [email protected] "!"
13 [email protected] "["
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "allow"
18 [email protected]
19 [email protected] "("
20 [email protected] "non_camel_case_types"
21 [email protected] ")"
22 [email protected] "]"
23 [email protected] "\n"
24 [email protected]
25 [email protected] "#"
26 [email protected] "!"
27 [email protected] "["
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "allow"
32 [email protected]
33 [email protected] "("
34 [email protected] "dead_code"
35 [email protected] ")"
36 [email protected] "]"
37 [email protected] "\n"
38 [email protected]
39 [email protected] "#"
40 [email protected] "!"
41 [email protected] "["
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected] "allow"
46 [email protected]
47 [email protected] "("
48 [email protected] "unreachable_code"
49 [email protected] ")"
50 [email protected] "]"
51 [email protected] "\n"
52 [email protected]
53 [email protected] "#"
54 [email protected] "!"
55 [email protected] "["
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected] "allow"
60 [email protected]
61 [email protected] "("
62 [email protected] "unused_parens"
63 [email protected] ")"
64 [email protected] "]"
65 [email protected] "\n\n"
66 [email protected]
67 [email protected] "#"
68 [email protected] "!"
69 [email protected] "["
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected] "recursion_limit"
74 [email protected] " "
75 [email protected] "="
76 [email protected] " "
77 [email protected]
78 [email protected] "\"128\""
79 [email protected] "]"
80 [email protected] "\n\n"
81 [email protected]
82 [email protected] "use"
83 [email protected] " "
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected] "std"
91 [email protected] "::"
92 [email protected]
93 [email protected]
94 [email protected] "cell"
95 [email protected] "::"
96 [email protected]
97 [email protected]
98 [email protected] "Cell"
99 [email protected] ";"
100 [email protected] "\n"
101 [email protected]
102 [email protected] "use"
103 [email protected] " "
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected] "std"
111 [email protected] "::"
112 [email protected]
113 [email protected]
114 [email protected] "mem"
115 [email protected] "::"
116 [email protected]
117 [email protected]
118 [email protected] "swap"
119 [email protected] ";"
120 [email protected] "\n\n"
121 [email protected] "// Just a grab bag of ..."
122 [email protected] "\n\n"
123 [email protected]
124 [email protected] "fn"
125 [email protected] " "
126 [email protected]
127 [email protected] "strange"
128 [email protected]
129 [email protected] "("
130 [email protected] ")"
131 [email protected] " "
132 [email protected]
133 [email protected] "->"
134 [email protected] " "
135 [email protected]
136 [email protected]
137 [email protected]
138 [email protected]
139 [email protected] "bool"
140 [email protected] " "
141 [email protected]
142 [email protected] "{"
143 [email protected] " "
144 [email protected]
145 [email protected] "let"
146 [email protected] " "
147 [email protected]
148 [email protected]
149 [email protected] "_x"
150 [email protected] ":"
151 [email protected] " "
152 [email protected]
153 [email protected]
154 [email protected]
155 [email protected]
156 [email protected] "bool"
157 [email protected] " "
158 [email protected] "="
159 [email protected] " "
160 [email protected]
161 [email protected] "return"
162 [email protected] " "
163 [email protected]
164 [email protected] "true"
165 [email protected] ";"
166 [email protected] " "
167 [email protected] "}"
168 [email protected] "\n\n"
169 [email protected]
170 [email protected] "fn"
171 [email protected] " "
172 [email protected]
173 [email protected] "funny"
174 [email protected]
175 [email protected] "("
176 [email protected] ")"
177 [email protected] " "
178 [email protected]
179 [email protected] "{"
180 [email protected] "\n "
181 [email protected]
182 [email protected] "fn"
183 [email protected] " "
184 [email protected]
185 [email protected] "f"
186 [email protected]
187 [email protected] "("
188 [email protected]
189 [email protected]
190 [email protected]
191 [email protected] "_x"
192 [email protected] ":"
193 [email protected] " "
194 [email protected]
195 [email protected] "("
196 [email protected] ")"
197 [email protected] ")"
198 [email protected] " "
199 [email protected]
200 [email protected] "{"
201 [email protected] " "
202 [email protected] "}"
203 [email protected] "\n "
204 [email protected]
205 [email protected]
206 [email protected]
207 [email protected]
208 [email protected]
209 [email protected]
210 [email protected] "f"
211 [email protected]
212 [email protected] "("
213 [email protected]
214 [email protected] "return"
215 [email protected] ")"
216 [email protected] ";"
217 [email protected] "\n"
218 [email protected] "}"
219 [email protected] "\n\n"
220 [email protected]
221 [email protected] "fn"
222 [email protected] " "
223 [email protected]
224 [email protected] "what"
225 [email protected]
226 [email protected] "("
227 [email protected] ")"
228 [email protected] " "
229 [email protected]
230 [email protected] "{"
231 [email protected] "\n "
232 [email protected]
233 [email protected] "fn"
234 [email protected] " "
235 [email protected]
236 [email protected] "the"
237 [email protected]
238 [email protected] "("
239 [email protected]
240 [email protected]
241 [email protected]
242 [email protected] "x"
243 [email protected] ":"
244 [email protected] " "
245 [email protected]
246 [email protected] "&"
247 [email protected]
248 [email protected]
249 [email protected]
250 [email protected]
251 [email protected] "Cell"
252 [email protected]
253 [email protected] "<"
254 [email protected]
255 [email protected]
256 [email protected]
257 [email protected]
258 [email protected]
259 [email protected] "bool"
260 [email protected] ">"
261 [email protected] ")"
262 [email protected] " "
263 [email protected]
264 [email protected] "{"
265 [email protected] "\n "
266 [email protected]
267 [email protected]
268 [email protected] "return"
269 [email protected] " "
270 [email protected]
271 [email protected] "while"
272 [email protected] " "
273 [email protected]
274 [email protected]
275 [email protected] "!"
276 [email protected]
277 [email protected]
278 [email protected]
279 [email protected]
280 [email protected]
281 [email protected] "x"
282 [email protected] "."
283 [email protected]
284 [email protected] "get"
285 [email protected]
286 [email protected] "("
287 [email protected] ")"
288 [email protected] " "
289 [email protected]
290 [email protected] "{"
291 [email protected] " "
292 [email protected]
293 [email protected]
294 [email protected]
295 [email protected]
296 [email protected]
297 [email protected]
298 [email protected] "x"
299 [email protected] "."
300 [email protected]
301 [email protected] "set"
302 [email protected]
303 [email protected] "("
304 [email protected]
305 [email protected] "true"
306 [email protected] ")"
307 [email protected] ";"
308 [email protected] " "
309 [email protected] "}"
310 [email protected] ";"
311 [email protected] "\n "
312 [email protected] "}"
313 [email protected] "\n "
314 [email protected]
315 [email protected] "let"
316 [email protected] " "
317 [email protected]
318 [email protected]
319 [email protected] "i"
320 [email protected] " "
321 [email protected] "="
322 [email protected] " "
323 [email protected]
324 [email protected] "&"
325 [email protected]
326 [email protected]
327 [email protected]
328 [email protected]
329 [email protected]
330 [email protected]
331 [email protected] "Cell"
332 [email protected] "::"
333 [email protected]
334 [email protected]
335 [email protected] "new"
336 [email protected]
337 [email protected] "("
338 [email protected]
339 [email protected] "false"
340 [email protected] ")"
341 [email protected] ";"
342 [email protected] "\n "
343 [email protected]
344 [email protected] "let"
345 [email protected] " "
346 [email protected]
347 [email protected]
348 [email protected] "dont"
349 [email protected] " "
350 [email protected] "="
351 [email protected] " "
352 [email protected]
353 [email protected] "{"
354 [email protected]
355 [email protected]
356 [email protected] "|"
357 [email protected] "|"
358 [email protected]
359 [email protected]
360 [email protected]
361 [email protected]
362 [email protected]
363 [email protected] "the"
364 [email protected]
365 [email protected] "("
366 [email protected]
367 [email protected]
368 [email protected]
369 [email protected]
370 [email protected] "i"
371 [email protected] ")"
372 [email protected] "}"
373 [email protected] ";"
374 [email protected] "\n "
375 [email protected]
376 [email protected]
377 [email protected]
378 [email protected]
379 [email protected]
380 [email protected]
381 [email protected] "dont"
382 [email protected]
383 [email protected] "("
384 [email protected] ")"
385 [email protected] ";"
386 [email protected] "\n "
387 [email protected]
388 [email protected]
389 [email protected]
390 [email protected]
391 [email protected]
392 [email protected] "assert"
393 [email protected] "!"
394 [email protected]
395 [email protected] "("
396 [email protected]
397 [email protected] "("
398 [email protected] "i"
399 [email protected] "."
400 [email protected] "get"
401 [email protected]
402 [email protected] "("
403 [email protected] ")"
404 [email protected] ")"
405 [email protected] ")"
406 [email protected] ";"
407 [email protected] "\n"
408 [email protected] "}"
409 [email protected] "\n\n"
410 [email protected]
411 [email protected] "fn"
412 [email protected] " "
413 [email protected]
414 [email protected] "zombiejesus"
415 [email protected]
416 [email protected] "("
417 [email protected] ")"
418 [email protected] " "
419 [email protected]
420 [email protected] "{"
421 [email protected] "\n "
422 [email protected]
423 [email protected] "loop"
424 [email protected] " "
425 [email protected]
426 [email protected] "{"
427 [email protected] "\n "
428 [email protected]
429 [email protected]
430 [email protected] "while"
431 [email protected] " "
432 [email protected]
433 [email protected]
434 [email protected] "("
435 [email protected]
436 [email protected] "return"
437 [email protected] ")"
438 [email protected] " "
439 [email protected]
440 [email protected] "{"
441 [email protected] "\n "
442 [email protected]
443 [email protected] "if"
444 [email protected] " "
445 [email protected]
446 [email protected]
447 [email protected] "("
448 [email protected]
449 [email protected] "return"
450 [email protected] ")"
451 [email protected] " "
452 [email protected]
453 [email protected] "{"
454 [email protected] "\n "
455 [email protected]
456 [email protected]
457 [email protected] "match"
458 [email protected] " "
459 [email protected]
460 [email protected] "("
461 [email protected]
462 [email protected] "return"
463 [email protected] ")"
464 [email protected] " "
465 [email protected]
466 [email protected] "{"
467 [email protected] "\n "
468 [email protected]
469 [email protected]
470 [email protected]
471 [email protected] "1"
472 [email protected] " "
473 [email protected] "=>"
474 [email protected] " "
475 [email protected]
476 [email protected] "{"
477 [email protected] "\n ..."
478 [email protected]
479 [email protected] "if"
480 [email protected] " "
481 [email protected]
482 [email protected]
483 [email protected] "("
484 [email protected]
485 [email protected] "return"
486 [email protected] ")"
487 [email protected] " "
488 [email protected]
489 [email protected] "{"
490 [email protected] "\n ..."
491 [email protected]
492 [email protected] "return"
493 [email protected] "\n ..."
494 [email protected] "}"
495 [email protected] " "
496 [email protected] "else"
497 [email protected] " "
498 [email protected]
499 [email protected] "{"
500 [email protected] "\n ..."
501 [email protected]
502 [email protected] "return"
503 [email protected] "\n ..."
504 [email protected] "}"
505 [email protected] "\n "
506 [email protected] "}"
507 [email protected] "\n "
508 [email protected]
509 [email protected]
510 [email protected] "_"
511 [email protected] " "
512 [email protected] "=>"
513 [email protected] " "
514 [email protected]
515 [email protected] "{"
516 [email protected] " "
517 [email protected]
518 [email protected] "return"
519 [email protected] " "
520 [email protected] "}"
521 [email protected] "\n "
522 [email protected] "}"
523 [email protected] ";"
524 [email protected] "\n "
525 [email protected] "}"
526 [email protected] " "
527 [email protected] "else"
528 [email protected] " "
529 [email protected]
530 [email protected] "if"
531 [email protected] " "
532 [email protected]
533 [email protected]
534 [email protected] "("
535 [email protected]
536 [email protected] "return"
537 [email protected] ")"
538 [email protected] " "
539 [email protected]
540 [email protected] "{"
541 [email protected] "\n "
542 [email protected]
543 [email protected]
544 [email protected] "return"
545 [email protected] ";"
546 [email protected] "\n "
547 [email protected] "}"
548 [email protected] "\n "
549 [email protected] "}"
550 [email protected] "\n "
551 [email protected]
552 [email protected] "if"
553 [email protected] " "
554 [email protected]
555 [email protected]
556 [email protected] "("
557 [email protected]
558 [email protected] "return"
559 [email protected] ")"
560 [email protected] " "
561 [email protected]
562 [email protected] "{"
563 [email protected] " "
564 [email protected]
565 [email protected]
566 [email protected] "break"
567 [email protected] ";"
568 [email protected] " "
569 [email protected] "}"
570 [email protected] "\n "
571 [email protected] "}"
572 [email protected] "\n"
573 [email protected] "}"
574 [email protected] "\n\n"
575 [email protected]
576 [email protected] "fn"
577 [email protected] " "
578 [email protected]
579 [email protected] "notsure"
580 [email protected]
581 [email protected] "("
582 [email protected] ")"
583 [email protected] " "
584 [email protected]
585 [email protected] "{"
586 [email protected] "\n "
587 [email protected]
588 [email protected] "let"
589 [email protected] " "
590 [email protected]
591 [email protected] "mut"
592 [email protected] " "
593 [email protected]
594 [email protected] "_x"
595 [email protected] ":"
596 [email protected] " "
597 [email protected]
598 [email protected]
599 [email protected]
600 [email protected]
601 [email protected] "isize"
602 [email protected] ";"
603 [email protected] "\n "
604 [email protected]
605 [email protected] "let"
606 [email protected] " "
607 [email protected]
608 [email protected] "mut"
609 [email protected] " "
610 [email protected]
611 [email protected] "_y"
612 [email protected] " "
613 [email protected] "="
614 [email protected] " "
615 [email protected]
616 [email protected]
617 [email protected] "("
618 [email protected]
619 [email protected]
620 [email protected]
621 [email protected]
622 [email protected]
623 [email protected] "_x"
624 [email protected] " "
625 [email protected] "="
626 [email protected] " "
627 [email protected]
628 [email protected] "0"
629 [email protected] ")"
630 [email protected] " "
631 [email protected] "=="
632 [email protected] " "
633 [email protected]
634 [email protected] "("
635 [email protected]
636 [email protected]
637 [email protected]
638 [email protected]
639 [email protected]
640 [email protected] "_x"
641 [email protected] " "
642 [email protected] "="
643 [email protected] " "
644 [email protected]
645 [email protected] "0"
646 [email protected] ")"
647 [email protected] ";"
648 [email protected] "\n "
649 [email protected]
650 [email protected] "let"
651 [email protected] " "
652 [email protected]
653 [email protected] "mut"
654 [email protected] " "
655 [email protected]
656 [email protected] "_z"
657 [email protected] " "
658 [email protected] "="
659 [email protected] " "
660 [email protected]
661 [email protected]
662 [email protected] "("
663 [email protected]
664 [email protected]
665 [email protected]
666 [email protected]
667 [email protected]
668 [email protected] "_x"
669 [email protected] " "
670 [email protected] "="
671 [email protected] " "
672 [email protected]
673 [email protected] "0"
674 [email protected] ")"
675 [email protected] " "
676 [email protected] "<"
677 [email protected] " "
678 [email protected]
679 [email protected] "("
680 [email protected]
681 [email protected]
682 [email protected]
683 [email protected]
684 [email protected]
685 [email protected] "_x"
686 [email protected] " "
687 [email protected] "="
688 [email protected] " "
689 [email protected]
690 [email protected] "0"
691 [email protected] ")"
692 [email protected] ";"
693 [email protected] "\n "
694 [email protected]
695 [email protected] "let"
696 [email protected] " "
697 [email protected]
698 [email protected]
699 [email protected] "_a"
700 [email protected] " "
701 [email protected] "="
702 [email protected] " "
703 [email protected]
704 [email protected]
705 [email protected] "("
706 [email protected]
707 [email protected]
708 [email protected]
709 [email protected]
710 [email protected]
711 [email protected] "_x"
712 [email protected] " "
713 [email protected] "+="
714 [email protected] " "
715 [email protected]
716 [email protected] "0"
717 [email protected] ")"
718 [email protected] " "
719 [email protected] "=="
720 [email protected] " "
721 [email protected]
722 [email protected] "("
723 [email protected]
724 [email protected]
725 [email protected]
726 [email protected]
727 [email protected]
728 [email protected] "_x"
729 [email protected] " "
730 [email protected] "="
731 [email protected] " "
732 [email protected]
733 [email protected] "0"
734 [email protected] ")"
735 [email protected] ";"
736 [email protected] "\n "
737 [email protected]
738 [email protected] "let"
739 [email protected] " "
740 [email protected]
741 [email protected]
742 [email protected] "_b"
743 [email protected] " "
744 [email protected] "="
745 [email protected] " "
746 [email protected]
747 [email protected]
748 [email protected]
749 [email protected]
750 [email protected]
751 [email protected]
752 [email protected] "swap"
753 [email protected]
754 [email protected] "("
755 [email protected]
756 [email protected] "&"
757 [email protected] "mut"
758 [email protected] " "
759 [email protected]
760 [email protected]
761 [email protected]
762 [email protected]
763 [email protected] "_y"
764 [email protected] ","
765 [email protected] " "
766 [email protected]
767 [email protected] "&"
768 [email protected] "mut"
769 [email protected] " "
770 [email protected]
771 [email protected]
772 [email protected]
773 [email protected]
774 [email protected] "_z"
775 [email protected] ")"
776 [email protected] " "
777 [email protected] "=="
778 [email protected] " "
779 [email protected]
780 [email protected]
781 [email protected]
782 [email protected]
783 [email protected]
784 [email protected] "swap"
785 [email protected]
786 [email protected] "("
787 [email protected]
788 [email protected] "&"
789 [email protected] "mut"
790 [email protected] " "
791 [email protected]
792 [email protected]
793 [email protected]
794 [email protected]
795 [email protected] "_y"
796 [email protected] ","
797 [email protected] " "
798 [email protected]
799 [email protected] "&"
800 [email protected] "mut"
801 [email protected] " "
802 [email protected]
803 [email protected]
804 [email protected]
805 [email protected]
806 [email protected] "_z"
807 [email protected] ")"
808 [email protected] ";"
809 [email protected] "\n"
810 [email protected] "}"
811 [email protected] "\n\n"
812 [email protected]
813 [email protected] "fn"
814 [email protected] " "
815 [email protected]
816 [email protected] "canttouchthis"
817 [email protected]
818 [email protected] "("
819 [email protected] ")"
820 [email protected] " "
821 [email protected]
822 [email protected] "->"
823 [email protected] " "
824 [email protected]
825 [email protected]
826 [email protected]
827 [email protected]
828 [email protected] "usize"
829 [email protected] " "
830 [email protected]
831 [email protected] "{"
832 [email protected] "\n "
833 [email protected]
834 [email protected] "fn"
835 [email protected] " "
836 [email protected]
837 [email protected] "p"
838 [email protected]
839 [email protected] "("
840 [email protected] ")"
841 [email protected] " "
842 [email protected]
843 [email protected] "->"
844 [email protected] " "
845 [email protected]
846 [email protected]
847 [email protected]
848 [email protected]
849 [email protected] "bool"
850 [email protected] " "
851 [email protected]
852 [email protected] "{"
853 [email protected] " "
854 [email protected]
855 [email protected] "true"
856 [email protected] " "
857 [email protected] "}"
858 [email protected] "\n "
859 [email protected]
860 [email protected] "let"
861 [email protected] " "
862 [email protected]
863 [email protected]
864 [email protected] "_a"
865 [email protected] " "
866 [email protected] "="
867 [email protected] " "
868 [email protected]
869 [email protected] "("
870 [email protected]
871 [email protected]
872 [email protected]
873 [email protected]
874 [email protected]
875 [email protected] "assert"
876 [email protected] "!"
877 [email protected]
878 [email protected] "("
879 [email protected]
880 [email protected] "("
881 [email protected] "true"
882 [email protected] ")"
883 [email protected] ")"
884 [email protected] " "
885 [email protected] "=="
886 [email protected] " "
887 [email protected]
888 [email protected] "("
889 [email protected]
890 [email protected]
891 [email protected]
892 [email protected]
893 [email protected] "assert"
894 [email protected] "!"
895 [email protected]
896 [email protected] "("
897 [email protected] "p"
898 [email protected]
899 [email protected] "("
900 [email protected] ")"
901 [email protected] ")"
902 [email protected] ")"
903 [email protected] ")"
904 [email protected] ";"
905 [email protected] "\n "
906 [email protected]
907 [email protected] "let"
908 [email protected] " "
909 [email protected]
910 [email protected]
911 [email protected] "_c"
912 [email protected] " "
913 [email protected] "="
914 [email protected] " "
915 [email protected]
916 [email protected] "("
917 [email protected]
918 [email protected]
919 [email protected]
920 [email protected]
921 [email protected]
922 [email protected] "assert"
923 [email protected] "!"
924 [email protected]
925 [email protected] "("
926 [email protected]
927 [email protected] "("
928 [email protected] "p"
929 [email protected]
930 [email protected] "("
931 [email protected] ")"
932 [email protected] ")"
933 [email protected] ")"
934 [email protected] " "
935 [email protected] "=="
936 [email protected] " "
937 [email protected]
938 [email protected] "("
939 [email protected] ")"
940 [email protected] ")"
941 [email protected] ";"
942 [email protected] "\n "
943 [email protected]
944 [email protected] "let"
945 [email protected] " "
946 [email protected]
947 [email protected]
948 [email protected] "_b"
949 [email protected] ":"
950 [email protected] " "
951 [email protected]
952 [email protected]
953 [email protected]
954 [email protected]
955 [email protected] "bool"
956 [email protected] " "
957 [email protected] "="
958 [email protected] " "
959 [email protected]
960 [email protected] "("
961 [email protected]
962 [email protected]
963 [email protected]
964 [email protected]
965 [email protected]
966 [email protected] "println"
967 [email protected] "!"
968 [email protected]
969 [email protected] "("
970 [email protected] "\"{}\""
971 [email protected] ","
972 [email protected] " "
973 [email protected] "0"
974 [email protected] ")"
975 [email protected] " "
976 [email protected] "=="
977 [email protected] " "
978 [email protected]
979 [email protected] "("
980 [email protected]
981 [email protected] "return"
982 [email protected] " "
983 [email protected]
984 [email protected] "0"
985 [email protected] ")"
986 [email protected] ")"
987 [email protected] ";"
988 [email protected] "\n"
989 [email protected] "}"
990 [email protected] "\n\n"
991 [email protected]
992 [email protected] "fn"
993 [email protected] " "
994 [email protected]
995 [email protected] "angrydome"
996 [email protected]
997 [email protected] "("
998 [email protected] ")"
999 [email protected] " "
1000 [email protected]
1001 [email protected] "{"
1002 [email protected] "\n "
1003 [email protected]
1004 [email protected]
1005 [email protected] "loop"
1006 [email protected] " "
1007 [email protected]
1008 [email protected] "{"
1009 [email protected] " "
1010 [email protected]
1011 [email protected] "if"
1012 [email protected] " "
1013 [email protected]
1014 [email protected]
1015 [email protected] "break"
1016 [email protected] " "
1017 [email protected]
1018 [email protected] "{"
1019 [email protected] " "
1020 [email protected] "}"
1021 [email protected] " "
1022 [email protected] "}"
1023 [email protected] "\n "
1024 [email protected]
1025 [email protected] "let"
1026 [email protected] " "
1027 [email protected]
1028 [email protected] "mut"
1029 [email protected] " "
1030 [email protected]
1031 [email protected] "i"
1032 [email protected] " "
1033 [email protected] "="
1034 [email protected] " "
1035 [email protected]
1036 [email protected] "0"
1037 [email protected] ";"
1038 [email protected] "\n "
1039 [email protected]
1040 [email protected] "loop"
1041 [email protected] " "
1042 [email protected]
1043 [email protected] "{"
1044 [email protected] " "
1045 [email protected]
1046 [email protected]
1047 [email protected]
1048 [email protected]
1049 [email protected]
1050 [email protected]
1051 [email protected] "i"
1052 [email protected] " "
1053 [email protected] "+="
1054 [email protected] " "
1055 [email protected]
1056 [email protected] "1"
1057 [email protected] ";"
1058 [email protected] " "
1059 [email protected]
1060 [email protected]
1061 [email protected] "if"
1062 [email protected] " "
1063 [email protected]
1064 [email protected]
1065 [email protected]
1066 [email protected]
1067 [email protected]
1068 [email protected]
1069 [email protected] "i"
1070 [email protected] " "
1071 [email protected] "=="
1072 [email protected] " "
1073 [email protected]
1074 [email protected] "1"
1075 [email protected] " "
1076 [email protected]
1077 [email protected] "{"
1078 [email protected] " "
1079 [email protected]
1080 [email protected] "match"
1081 [email protected] " "
1082 [email protected]
1083 [email protected] "("
1084 [email protected]
1085 [email protected] "continue"
1086 [email protected] ")"
1087 [email protected] " "
1088 [email protected]
1089 [email protected] "{"
1090 [email protected] " "
1091 [email protected]
1092 [email protected]
1093 [email protected]
1094 [email protected] "1"
1095 [email protected] " "
1096 [email protected] "=>"
1097 [email protected] " "
1098 [email protected]
1099 [email protected] "{"
1100 [email protected] " "
1101 [email protected] "}"
1102 [email protected] ","
1103 [email protected] " "
1104 [email protected]
1105 [email protected]
1106 [email protected] "_"
1107 [email protected] " "
1108 [email protected] "=>"
1109 [email protected] " "
1110 [email protected]
1111 [email protected]
1112 [email protected]
1113 [email protected]
1114 [email protected] "panic"
1115 [email protected] "!"
1116 [email protected]
1117 [email protected] "("
1118 [email protected] "\"wat\""
1119 [email protected] ")"
1120 [email protected] " "
1121 [email protected] "}"
1122 [email protected] " "
1123 [email protected] "}"
1124 [email protected] "\n "
1125 [email protected]
1126 [email protected]
1127 [email protected] "break"
1128 [email protected] ";"
1129 [email protected] " "
1130 [email protected] "}"
1131 [email protected] "\n"
1132 [email protected] "}"
1133 [email protected] "\n\n"
1134 [email protected]
1135 [email protected] "fn"
1136 [email protected] " "
1137 [email protected]
1138 [email protected] "evil_lincoln"
1139 [email protected]
1140 [email protected] "("
1141 [email protected] ")"
1142 [email protected] " "
1143 [email protected]
1144 [email protected] "{"
1145 [email protected] " "
1146 [email protected]
1147 [email protected] "let"
1148 [email protected] " "
1149 [email protected]
1150 [email protected]
1151 [email protected] "_evil"
1152 [email protected] " "
1153 [email protected] "="
1154 [email protected] " "
1155 [email protected]
1156 [email protected]
1157 [email protected]
1158 [email protected]
1159 [email protected] "println"
1160 [email protected] "!"
1161 [email protected]
1162 [email protected] "("
1163 [email protected] "\"lincoln\""
1164 [email protected] ")"
1165 [email protected] ";"
1166 [email protected] " "
1167 [email protected] "}"
1168 [email protected] "\n\n"
1169 [email protected]
1170 [email protected] "fn"
1171 [email protected] " "
1172 [email protected]
1173 [email protected] "dots"
1174 [email protected]
1175 [email protected] "("
1176 [email protected] ")"
1177 [email protected] " "
1178 [email protected]
1179 [email protected] "{"
1180 [email protected] "\n "
1181 [email protected]
1182 [email protected]
1183 [email protected]
1184 [email protected]
1185 [email protected]
1186 [email protected] "assert_eq"
1187 [email protected] "!"
1188 [email protected]
1189 [email protected] "("
1190 [email protected] "String"
1191 [email protected] ":"
1192 [email protected] ":"
1193 [email protected] "from"
1194 [email protected]
1195 [email protected] "("
1196 [email protected] "\".................... ..."
1197 [email protected] ")"
1198 [email protected] ","
1199 [email protected] "\n "
1200 [email protected] "format"
1201 [email protected] "!"
1202 [email protected]
1203 [email protected] "("
1204 [email protected] "\"{:?}\""
1205 [email protected] ","
1206 [email protected] " "
1207 [email protected] "."
1208 [email protected] "."
1209 [email protected] " "
1210 [email protected] "."
1211 [email protected] "."
1212 [email protected] " "
1213 [email protected] "."
1214 [email protected] "."
1215 [email protected] " "
1216 [email protected] "."
1217 [email protected] "."
1218 [email protected] " "
1219 [email protected] "."
1220 [email protected] "."
1221 [email protected] " "
1222 [email protected] "."
1223 [email protected] "."
1224 [email protected] " "
1225 [email protected] "."
1226 [email protected] "."
1227 [email protected] " "
1228 [email protected] "."
1229 [email protected] "."
1230 [email protected] " "
1231 [email protected] "."
1232 [email protected] "."
1233 [email protected] " "
1234 [email protected] "."
1235 [email protected] "."
1236 [email protected] " "
1237 [email protected] "."
1238 [email protected] "."
1239 [email protected] " "
1240 [email protected] "."
1241 [email protected] "."
1242 [email protected] " "
1243 [email protected] "."
1244 [email protected] "."
1245 [email protected] "\n ..."
1246 [email protected] "."
1247 [email protected] "."
1248 [email protected] " "
1249 [email protected] "."
1250 [email protected] "."
1251 [email protected] " "
1252 [email protected] "."
1253 [email protected] "."
1254 [email protected] " "
1255 [email protected] "."
1256 [email protected] "."
1257 [email protected] " "
1258 [email protected] "."
1259 [email protected] "."
1260 [email protected] " "
1261 [email protected] "."
1262 [email protected] "."
1263 [email protected] " "
1264 [email protected] "."
1265 [email protected] "."
1266 [email protected] " "
1267 [email protected] "."
1268 [email protected] "."
1269 [email protected] " "
1270 [email protected] "."
1271 [email protected] "."
1272 [email protected] " "
1273 [email protected] "."
1274 [email protected] "."
1275 [email protected] " "
1276 [email protected] "."
1277 [email protected] "."
1278 [email protected] " "
1279 [email protected] "."
1280 [email protected] "."
1281 [email protected] ")"
1282 [email protected] ")"
1283 [email protected] ";"
1284 [email protected] "\n"
1285 [email protected] "}"
1286 [email protected] "\n\n"
1287 [email protected]
1288 [email protected] "fn"
1289 [email protected] " "
1290 [email protected]
1291 [email protected] "u8"
1292 [email protected]
1293 [email protected] "("
1294 [email protected]
1295 [email protected]
1296 [email protected]
1297 [email protected] "u8"
1298 [email protected] ":"
1299 [email protected] " "
1300 [email protected]
1301 [email protected]
1302 [email protected]
1303 [email protected]
1304 [email protected] "u8"
1305 [email protected] ")"
1306 [email protected] " "
1307 [email protected]
1308 [email protected] "{"
1309 [email protected] "\n "
1310 [email protected]
1311 [email protected] "if"
1312 [email protected] " "
1313 [email protected]
1314 [email protected]
1315 [email protected]
1316 [email protected]
1317 [email protected]
1318 [email protected]
1319 [email protected] "u8"
1320 [email protected] " "
1321 [email protected] "!="
1322 [email protected] " "
1323 [email protected]
1324 [email protected] "0u8"
1325 [email protected] " "
1326 [email protected]
1327 [email protected] "{"
1328 [email protected] "\n "
1329 [email protected]
1330 [email protected]
1331 [email protected]
1332 [email protected]
1333 [email protected]
1334 [email protected] "assert_eq"
1335 [email protected] "!"
1336 [email protected]
1337 [email protected] "("
1338 [email protected] "8u8"
1339 [email protected] ","
1340 [email protected] " "
1341 [email protected]
1342 [email protected] "{"
1343 [email protected] "\n "
1344 [email protected] "macro_rules"
1345 [email protected] "!"
1346 [email protected] " "
1347 [email protected] "u8"
1348 [email protected] " "
1349 [email protected]
1350 [email protected] "{"
1351 [email protected] "\n "
1352 [email protected]
1353 [email protected] "("
1354 [email protected] "u8"
1355 [email protected] ")"
1356 [email protected] " "
1357 [email protected] "="
1358 [email protected] ">"
1359 [email protected] " "
1360 [email protected]
1361 [email protected] "{"
1362 [email protected] "\n "
1363 [email protected] "mod"
1364 [email protected] " "
1365 [email protected] "u8"
1366 [email protected] " "
1367 [email protected]
1368 [email protected] "{"
1369 [email protected] "\n ..."
1370 [email protected] "pub"
1371 [email protected] " "
1372 [email protected] "fn"
1373 [email protected] " "
1374 [email protected] "u8"
1375 [email protected] "<"
1376 [email protected] "\'u8"
1377 [email protected] ":"
1378 [email protected] " "
1379 [email protected] "\'u8"
1380 [email protected] " "
1381 [email protected] "+"
1382 [email protected] " "
1383 [email protected] "\'u8"
1384 [email protected] ">"
1385 [email protected]
1386 [email protected] "("
1387 [email protected] "u8"
1388 [email protected] ":"
1389 [email protected] " "
1390 [email protected] "&"
1391 [email protected] "\'u8"
1392 [email protected] " "
1393 [email protected] "u8"
1394 [email protected] ")"
1395 [email protected] " "
1396 [email protected] "-"
1397 [email protected] ">"
1398 [email protected] " "
1399 [email protected] "&"
1400 [email protected] "\'u8"
1401 [email protected] " "
1402 [email protected] "u8"
1403 [email protected] " "
1404 [email protected]
1405 [email protected] "{"
1406 [email protected] "\n ..."
1407 [email protected] "\"u8\""
1408 [email protected] ";"
1409 [email protected] "\n ..."
1410 [email protected] "u8"
1411 [email protected] "\n ..."
1412 [email protected] "}"
1413 [email protected] "\n "
1414 [email protected] "}"
1415 [email protected] "\n "
1416 [email protected] "}"
1417 [email protected] ";"
1418 [email protected] "\n "
1419 [email protected] "}"
1420 [email protected] "\n\n "
1421 [email protected] "u8"
1422 [email protected] "!"
1423 [email protected]
1424 [email protected] "("
1425 [email protected] "u8"
1426 [email protected] ")"
1427 [email protected] ";"
1428 [email protected] "\n "
1429 [email protected] "let"
1430 [email protected] " "
1431 [email protected] "&"
1432 [email protected] "u8"
1433 [email protected] ":"
1434 [email protected] " "
1435 [email protected] "&"
1436 [email protected] "u8"
1437 [email protected] " "
1438 [email protected] "="
1439 [email protected] " "
1440 [email protected] "u8"
1441 [email protected] ":"
1442 [email protected] ":"
1443 [email protected] "u8"
1444 [email protected]
1445 [email protected] "("
1446 [email protected] "&"
1447 [email protected] "8u8"
1448 [email protected] ")"
1449 [email protected] ";"
1450 [email protected] "\n "
1451 [email protected] "crate"
1452 [email protected] ":"
1453 [email protected] ":"
1454 [email protected] "u8"
1455 [email protected]
1456 [email protected] "("
1457 [email protected] "0u8"
1458 [email protected] ")"
1459 [email protected] ";"
1460 [email protected] "\n "
1461 [email protected] "u8"
1462 [email protected] "\n "
1463 [email protected] "}"
1464 [email protected] ")"
1465 [email protected] ";"
1466 [email protected] "\n "
1467 [email protected] "}"
1468 [email protected] "\n"
1469 [email protected] "}"
1470 [email protected] "\n\n"
1471 [email protected]
1472 [email protected] "fn"
1473 [email protected] " "
1474 [email protected]
1475 [email protected] "fishy"
1476 [email protected]
1477 [email protected] "("
1478 [email protected] ")"
1479 [email protected] " "
1480 [email protected]
1481 [email protected] "{"
1482 [email protected] "\n "
1483 [email protected]
1484 [email protected]
1485 [email protected]
1486 [email protected]
1487 [email protected]
1488 [email protected] "assert_eq"
1489 [email protected] "!"
1490 [email protected]
1491 [email protected] "("
1492 [email protected] "String"
1493 [email protected] ":"
1494 [email protected] ":"
1495 [email protected] "from"
1496 [email protected]
1497 [email protected] "("
1498 [email protected] "\"><>\""
1499 [email protected] ")"
1500 [email protected] ","
1501 [email protected] "\n "
1502 [email protected] "String"
1503 [email protected] ":"
1504 [email protected] ":"
1505 [email protected] "<"
1506 [email protected] ">"
1507 [email protected] ":"
1508 [email protected] ":"
1509 [email protected] "from"
1510 [email protected] ":"
1511 [email protected] ":"
1512 [email protected] "<"
1513 [email protected] ">"
1514 [email protected]
1515 [email protected] "("
1516 [email protected] "\"><>\""
1517 [email protected] ")"
1518 [email protected] "."
1519 [email protected] "chars"
1520 [email protected] ":"
1521 [email protected] ":"
1522 [email protected] "<"
1523 [email protected] ">"
1524 [email protected]
1525 [email protected] "("
1526 [email protected] ")"
1527 [email protected] "."
1528 [email protected] "rev"
1529 [email protected] ":"
1530 [email protected] ":"
1531 [email protected] "<"
1532 [email protected] ">"
1533 [email protected]
1534 [email protected] "("
1535 [email protected] ")"
1536 [email protected] "."
1537 [email protected] "collect"
1538 [email protected] ":"
1539 [email protected] ":"
1540 [email protected] "<"
1541 [email protected] "String"
1542 [email protected] ">"
1543 [email protected]
1544 [email protected] "("
1545 [email protected] ")"
1546 [email protected] ")"
1547 [email protected] ";"
1548 [email protected] "\n"
1549 [email protected] "}"
1550 [email protected] "\n\n"
1551 [email protected]
1552 [email protected] "fn"
1553 [email protected] " "
1554 [email protected]
1555 [email protected] "union"
1556 [email protected]
1557 [email protected] "("
1558 [email protected] ")"
1559 [email protected] " "
1560 [email protected]
1561 [email protected] "{"
1562 [email protected] "\n "
1563 [email protected]
1564 [email protected] "union"
1565 [email protected] " "
1566 [email protected]
1567 [email protected] "union"
1568 [email protected]
1569 [email protected] "<"
1570 [email protected]
1571 [email protected] "\'union"
1572 [email protected] ">"
1573 [email protected] " "
1574 [email protected]
1575 [email protected] "{"
1576 [email protected] " "
1577 [email protected]
1578 [email protected]
1579 [email protected] "union"
1580 [email protected] ":"
1581 [email protected] " "
1582 [email protected]
1583 [email protected] "&"
1584 [email protected] "\'union"
1585 [email protected] " "
1586 [email protected]
1587 [email protected]
1588 [email protected]
1589 [email protected]
1590 [email protected] "union"
1591 [email protected]
1592 [email protected] "<"
1593 [email protected]
1594 [email protected] "\'union"
1595 [email protected] ">"
1596 [email protected] ","
1597 [email protected] " "
1598 [email protected] "}"
1599 [email protected] "\n"
1600 [email protected] "}"
1601 [email protected] "\n\n"
1602 [email protected]
1603 [email protected] "fn"
1604 [email protected] " "
1605 [email protected]
1606 [email protected] "special_characters"
1607 [email protected]
1608 [email protected] "("
1609 [email protected] ")"
1610 [email protected] " "
1611 [email protected]
1612 [email protected] "{"
1613 [email protected] "\n "
1614 [email protected]
1615 [email protected] "let"
1616 [email protected] " "
1617 [email protected]
1618 [email protected]
1619 [email protected] "val"
1620 [email protected] " "
1621 [email protected] "="
1622 [email protected] " "
1623 [email protected]
1624 [email protected] "!"
1625 [email protected]
1626 [email protected] "("
1627 [email protected]
1628 [email protected]
1629 [email protected]
1630 [email protected] "("
1631 [email protected]
1632 [email protected]
1633 [email protected] "|"
1634 [email protected]
1635 [email protected]
1636 [email protected] "("
1637 [email protected]
1638 [email protected] ".."
1639 [email protected] ")"
1640 [email protected] ":"
1641 [email protected]
1642 [email protected] "("
1643 [email protected]
1644 [email protected] "_"
1645 [email protected] ","
1646 [email protected]
1647 [email protected] "_"
1648 [email protected] ")"
1649 [email protected] ","
1650 [email protected]
1651 [email protected]
1652 [email protected]
1653 [email protected] "__"
1654 [email protected] "@"
1655 [email protected]
1656 [email protected] "_"
1657 [email protected] "|"
1658 [email protected]
1659 [email protected]
1660 [email protected]
1661 [email protected]
1662 [email protected] "__"
1663 [email protected] ")"
1664 [email protected]
1665 [email protected] "("
1666 [email protected]
1667 [email protected] "("
1668 [email protected]
1669 [email protected] "&"
1670 [email protected]
1671 [email protected] "*"
1672 [email protected]
1673 [email protected] "\"\\\\\""
1674 [email protected] ","
1675 [email protected]
1676 [email protected] "\'🤔\'"
1677 [email protected] ")"
1678 [email protected] "/**/"
1679 [email protected] ","
1680 [email protected]
1681 [email protected] "{"
1682 [email protected] "}"
1683 [email protected] ")"
1684 [email protected] "=="
1685 [email protected]
1686 [email protected] "{"
1687 [email protected]
1688 [email protected]
1689 [email protected] "&"
1690 [email protected]
1691 [email protected]
1692 [email protected] "["
1693 [email protected]
1694 [email protected] "..="
1695 [email protected]
1696 [email protected] ".."
1697 [email protected] "]"
1698 [email protected] "["
1699 [email protected]
1700 [email protected] ".."
1701 [email protected] "]"
1702 [email protected] ";"
1703 [email protected] "}"
1704 [email protected] ")"
1705 [email protected] "//"
1706 [email protected] "\n "
1707 [email protected] ";"
1708 [email protected] "\n "
1709 [email protected]
1710 [email protected]
1711 [email protected]
1712 [email protected]
1713 [email protected]
1714 [email protected] "assert"
1715 [email protected] "!"
1716 [email protected]
1717 [email protected] "("
1718 [email protected] "!"
1719 [email protected] "val"
1720 [email protected] ")"
1721 [email protected] ";"
1722 [email protected] "\n"
1723 [email protected] "}"
1724 [email protected] "\n\n"
1725 [email protected]
1726 [email protected] "fn"
1727 [email protected] " "
1728 [email protected]
1729 [email protected] "punch_card"
1730 [email protected]
1731 [email protected] "("
1732 [email protected] ")"
1733 [email protected] " "
1734 [email protected]
1735 [email protected] "->"
1736 [email protected] " "
1737 [email protected]
1738 [email protected] "impl"
1739 [email protected] " "
1740 [email protected]
1741 [email protected]
1742 [email protected]
1743 [email protected]
1744 [email protected]
1745 [email protected]
1746 [email protected]
1747 [email protected]
1748 [email protected] "std"
1749 [email protected] "::"
1750 [email protected]
1751 [email protected]
1752 [email protected] "fmt"
1753 [email protected] "::"
1754 [email protected]
1755 [email protected]
1756 [email protected] "Debug"
1757 [email protected] " "
1758 [email protected]
1759 [email protected] "{"
1760 [email protected] "\n "
1761 [email protected]
1762 [email protected] "..="
1763 [email protected]
1764 [email protected] "..="
1765 [email protected]
1766 [email protected] ".."
1767 [email protected] " "
1768 [email protected]
1769 [email protected] ".."
1770 [email protected] " "
1771 [email protected]
1772 [email protected] ".."
1773 [email protected] " "
1774 [email protected]
1775 [email protected] ".."
1776 [email protected] " "
1777 [email protected]
1778 [email protected] ".."
1779 [email protected] " "
1780 [email protected]
1781 [email protected] ".."
1782 [email protected] " "
1783 [email protected]
1784 [email protected] ".."
1785 [email protected] " "
1786 [email protected]
1787 [email protected] ".."
1788 [email protected] " "
1789 [email protected]
1790 [email protected] ".."
1791 [email protected] " "
1792 [email protected]
1793 [email protected] ".."
1794 [email protected] " "
1795 [email protected]
1796 [email protected] ".."
1797 [email protected] " "
1798 [email protected]
1799 [email protected] "..="
1800 [email protected]
1801 [email protected] ".."
1802 [email protected] " "
1803 [email protected]
1804 [email protected] ".."
1805 [email protected] "\n "
1806 [email protected]
1807 [email protected] "..="
1808 [email protected]
1809 [email protected] ".."
1810 [email protected] " "
1811 [email protected]
1812 [email protected] "..="
1813 [email protected]
1814 [email protected] ".."
1815 [email protected] " "
1816 [email protected]
1817 [email protected] ".."
1818 [email protected] " "
1819 [email protected]
1820 [email protected] ".."
1821 [email protected] " "
1822 [email protected]
1823 [email protected] ".."
1824 [email protected] " "
1825 [email protected]
1826 [email protected] ".."
1827 [email protected] " "
1828 [email protected]
1829 [email protected] ".."
1830 [email protected] " "
1831 [email protected]
1832 [email protected] ".."
1833 [email protected] " "
1834 [email protected]
1835 [email protected] ".."
1836 [email protected] " "
1837 [email protected]
1838 [email protected] ".."
1839 [email protected] " "
1840 [email protected]
1841 [email protected] "..="
1842 [email protected]
1843 [email protected] "..="
1844 [email protected]
1845 [email protected] "..="
1846 [email protected]
1847 [email protected] ".."
1848 [email protected] "\n "
1849 [email protected]
1850 [email protected] "..="
1851 [email protected]
1852 [email protected] ".."
1853 [email protected] " "
1854 [email protected]
1855 [email protected] "..="
1856 [email protected]
1857 [email protected] ".."
1858 [email protected] " "
1859 [email protected]
1860 [email protected] "..="
1861 [email protected]
1862 [email protected] ".."
1863 [email protected] " "
1864 [email protected]
1865 [email protected] "..="
1866 [email protected]
1867 [email protected] ".."
1868 [email protected] " "
1869 [email protected]
1870 [email protected] ".."
1871 [email protected] " "
1872 [email protected]
1873 [email protected] "..="
1874 [email protected]
1875 [email protected] "..="
1876 [email protected]
1877 [email protected] ".."
1878 [email protected] " "
1879 [email protected]
1880 [email protected] ".."
1881 [email protected] " "
1882 [email protected]
1883 [email protected] "..="
1884 [email protected]
1885 [email protected] ".."
1886 [email protected] " "
1887 [email protected]
1888 [email protected] ".."
1889 [email protected] "\n "
1890 [email protected]
1891 [email protected] "..="
1892 [email protected]
1893 [email protected] "..="
1894 [email protected]
1895 [email protected] ".."
1896 [email protected] " "
1897 [email protected]
1898 [email protected] ".."
1899 [email protected] " "
1900 [email protected]
1901 [email protected] "..="
1902 [email protected]
1903 [email protected] ".."
1904 [email protected] " "
1905 [email protected]
1906 [email protected] "..="
1907 [email protected]
1908 [email protected] ".."
1909 [email protected] " "
1910 [email protected]
1911 [email protected] "..="
1912 [email protected]
1913 [email protected] ".."
1914 [email protected] " "
1915 [email protected]
1916 [email protected] ".."
1917 [email protected] " "
1918 [email protected]
1919 [email protected] ".."
1920 [email protected] " "
1921 [email protected]
1922 [email protected] ".."
1923 [email protected] " "
1924 [email protected]
1925 [email protected] "..="
1926 [email protected]
1927 [email protected] ".."
1928 [email protected] " "
1929 [email protected]
1930 [email protected] ".."
1931 [email protected] "\n "
1932 [email protected]
1933 [email protected] "..="
1934 [email protected]
1935 [email protected] ".."
1936 [email protected] " "
1937 [email protected]
1938 [email protected] "..="
1939 [email protected]
1940 [email protected] ".."
1941 [email protected] " "
1942 [email protected]
1943 [email protected] "..="
1944 [email protected]
1945 [email protected] ".."
1946 [email protected] " "
1947 [email protected]
1948 [email protected] "..="
1949 [email protected]
1950 [email protected] ".."
1951 [email protected] " "
1952 [email protected]
1953 [email protected] ".."
1954 [email protected] " "
1955 [email protected]
1956 [email protected] "..="
1957 [email protected]
1958 [email protected] ".."
1959 [email protected] " "
1960 [email protected]
1961 [email protected] ".."
1962 [email protected] " "
1963 [email protected]
1964 [email protected] ".."
1965 [email protected] " "
1966 [email protected]
1967 [email protected] "..="
1968 [email protected]
1969 [email protected] ".."
1970 [email protected] " "
1971 [email protected]
1972 [email protected] ".."
1973 [email protected] "\n "
1974 [email protected]
1975 [email protected] "..="
1976 [email protected]
1977 [email protected] ".."
1978 [email protected] " "
1979 [email protected]
1980 [email protected] "..="
1981 [email protected]
1982 [email protected] ".."
1983 [email protected] " "
1984 [email protected]
1985 [email protected] "..="
1986 [email protected]
1987 [email protected] ".."
1988 [email protected] " "
1989 [email protected]
1990 [email protected] "..="
1991 [email protected]
1992 [email protected] ".."
1993 [email protected] " "
1994 [email protected]
1995 [email protected] ".."
1996 [email protected] " "
1997 [email protected]
1998 [email protected] ".."
1999 [email protected] " "
2000 [email protected]
2001 [email protected] "..="
2002 [email protected]
2003 [email protected] ".."
2004 [email protected] " "
2005 [email protected]
2006 [email protected] ".."
2007 [email protected] " "
2008 [email protected]
2009 [email protected] "..="
2010 [email protected]
2011 [email protected] ".."
2012 [email protected] " "
2013 [email protected]
2014 [email protected] ".."
2015 [email protected] "\n "
2016 [email protected]
2017 [email protected] "..="
2018 [email protected]
2019 [email protected] ".."
2020 [email protected] " "
2021 [email protected]
2022 [email protected] "..="
2023 [email protected]
2024 [email protected] ".."
2025 [email protected] " "
2026 [email protected]
2027 [email protected] ".."
2028 [email protected] " "
2029 [email protected]
2030 [email protected] "..="
2031 [email protected]
2032 [email protected] "..="
2033 [email protected]
2034 [email protected] ".."
2035 [email protected] " "
2036 [email protected]
2037 [email protected] "..="
2038 [email protected]
2039 [email protected] "..="
2040 [email protected]
2041 [email protected] ".."
2042 [email protected] " "
2043 [email protected]
2044 [email protected] ".."
2045 [email protected] " "
2046 [email protected]
2047 [email protected] ".."
2048 [email protected] " "
2049 [email protected]
2050 [email protected] "..="
2051 [email protected]
2052 [email protected] ".."
2053 [email protected] " "
2054 [email protected]
2055 [email protected] ".."
2056 [email protected] "\n"
2057 [email protected] "}"
2058 [email protected] "\n\n"
2059 [email protected]
2060 [email protected] "fn"
2061 [email protected] " "
2062 [email protected]
2063 [email protected] "ktulhu"
2064 [email protected]
2065 [email protected] "("
2066 [email protected] ")"
2067 [email protected] " "
2068 [email protected]
2069 [email protected] "{"
2070 [email protected] "\n "
2071 [email protected] ";"
2072 [email protected] ";"
2073 [email protected] ";"
2074 [email protected]
2075 [email protected]
2076 [email protected] "("
2077 [email protected] ")"
2078 [email protected] ";"
2079 [email protected] ";"
2080 [email protected] ";"
2081 [email protected] ";"
2082 [email protected] ";"
2083 [email protected] ";"
2084 [email protected] ";"
2085 [email protected] ";"
2086 [email protected] ";"
2087 [email protected]
2088 [email protected] "("
2089 [email protected] ")"
2090 [email protected] "\n"
2091 [email protected] "}"
2092 [email protected] "\n\n"
2093 [email protected]
2094 [email protected]
2095 [email protected] "pub"
2096 [email protected] " "
2097 [email protected] "fn"
2098 [email protected] " "
2099 [email protected]
2100 [email protected] "main"
2101 [email protected]
2102 [email protected] "("
2103 [email protected] ")"
2104 [email protected] " "
2105 [email protected]
2106 [email protected] "{"
2107 [email protected] "\n "
2108 [email protected]
2109 [email protected]
2110 [email protected]
2111 [email protected]
2112 [email protected]
2113 [email protected]
2114 [email protected] "strange"
2115 [email protected]
2116 [email protected] "("
2117 [email protected] ")"
2118 [email protected] ";"
2119 [email protected] "\n "
2120 [email protected]
2121 [email protected]
2122 [email protected]
2123 [email protected]
2124 [email protected]
2125 [email protected]
2126 [email protected] "funny"
2127 [email protected]
2128 [email protected] "("
2129 [email protected] ")"
2130 [email protected] ";"
2131 [email protected] "\n "
2132 [email protected]
2133 [email protected]
2134 [email protected]
2135 [email protected]
2136 [email protected]
2137 [email protected]
2138 [email protected] "what"
2139 [email protected]
2140 [email protected] "("
2141 [email protected] ")"
2142 [email protected] ";"
2143 [email protected] "\n "
2144 [email protected]
2145 [email protected]
2146 [email protected]
2147 [email protected]
2148 [email protected]
2149 [email protected]
2150 [email protected] "zombiejesus"
2151 [email protected]
2152 [email protected] "("
2153 [email protected] ")"
2154 [email protected] ";"
2155 [email protected] "\n "
2156 [email protected]
2157 [email protected]
2158 [email protected]
2159 [email protected]
2160 [email protected]
2161 [email protected]
2162 [email protected] "notsure"
2163 [email protected]
2164 [email protected] "("
2165 [email protected] ")"
2166 [email protected] ";"
2167 [email protected] "\n "
2168 [email protected]
2169 [email protected]
2170 [email protected]
2171 [email protected]
2172 [email protected]
2173 [email protected]
2174 [email protected] "canttouchthis"
2175 [email protected]
2176 [email protected] "("
2177 [email protected] ")"
2178 [email protected] ";"
2179 [email protected] "\n "
2180 [email protected]
2181 [email protected]
2182 [email protected]
2183 [email protected]
2184 [email protected]
2185 [email protected]
2186 [email protected] "angrydome"
2187 [email protected]
2188 [email protected] "("
2189 [email protected] ")"
2190 [email protected] ";"
2191 [email protected] "\n "
2192 [email protected]
2193 [email protected]
2194 [email protected]
2195 [email protected]
2196 [email protected]
2197 [email protected]
2198 [email protected] "evil_lincoln"
2199 [email protected]
2200 [email protected] "("
2201 [email protected] ")"
2202 [email protected] ";"
2203 [email protected] "\n "
2204 [email protected]
2205 [email protected]
2206 [email protected]
2207 [email protected]
2208 [email protected]
2209 [email protected]
2210 [email protected] "dots"
2211 [email protected]
2212 [email protected] "("
2213 [email protected] ")"
2214 [email protected] ";"
2215 [email protected] "\n "
2216 [email protected]
2217 [email protected]
2218 [email protected]
2219 [email protected]
2220 [email protected]
2221 [email protected]
2222 [email protected] "u8"
2223 [email protected]
2224 [email protected] "("
2225 [email protected]
2226 [email protected] "8u8"
2227 [email protected] ")"
2228 [email protected] ";"
2229 [email protected] "\n "
2230 [email protected]
2231 [email protected]
2232 [email protected]
2233 [email protected]
2234 [email protected]
2235 [email protected]
2236 [email protected] "fishy"
2237 [email protected]
2238 [email protected] "("
2239 [email protected] ")"
2240 [email protected] ";"
2241 [email protected] "\n "
2242 [email protected]
2243 [email protected]
2244 [email protected]
2245 [email protected]
2246 [email protected]
2247 [email protected]
2248 [email protected] "union"
2249 [email protected]
2250 [email protected] "("
2251 [email protected] ")"
2252 [email protected] ";"
2253 [email protected] "\n "
2254 [email protected]
2255 [email protected]
2256 [email protected]
2257 [email protected]
2258 [email protected]
2259 [email protected]
2260 [email protected] "special_characters"
2261 [email protected]
2262 [email protected] "("
2263 [email protected] ")"
2264 [email protected] ";"
2265 [email protected] "\n "
2266 [email protected]
2267 [email protected]
2268 [email protected]
2269 [email protected]
2270 [email protected]
2271 [email protected]
2272 [email protected] "punch_card"
2273 [email protected]
2274 [email protected] "("
2275 [email protected] ")"
2276 [email protected] ";"
2277 [email protected] "\n "
2278 [email protected]
2279 [email protected]
2280 [email protected]
2281 [email protected]
2282 [email protected]
2283 [email protected]
2284 [email protected] "ktulhu"
2285 [email protected]
2286 [email protected] "("
2287 [email protected] ")"
2288 [email protected] ";"
2289 [email protected] "\n"
2290 [email protected] "}"
2291 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0035_weird_exprs.rs b/crates/syntax/test_data/parser/ok/0035_weird_exprs.rs
new file mode 100644
index 000000000..8c1323163
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0035_weird_exprs.rs
@@ -0,0 +1,154 @@
1//! Adapted from a `rustc` test, which can be found at
2//! https://github.com/rust-lang/rust/blob/6d34ec18c7d7e574553f6347ecf08e1e1c45c13d/src/test/run-pass/weird-exprs.rs.
3//!
4//! Reported to rust-analyzer in https://github.com/rust-analyzer/rust-analyzer/issues/290
5
6#![allow(non_camel_case_types)]
7#![allow(dead_code)]
8#![allow(unreachable_code)]
9#![allow(unused_parens)]
10
11#![recursion_limit = "128"]
12
13use std::cell::Cell;
14use std::mem::swap;
15
16// Just a grab bag of stuff that you wouldn't want to actually write.
17
18fn strange() -> bool { let _x: bool = return true; }
19
20fn funny() {
21 fn f(_x: ()) { }
22 f(return);
23}
24
25fn what() {
26 fn the(x: &Cell<bool>) {
27 return while !x.get() { x.set(true); };
28 }
29 let i = &Cell::new(false);
30 let dont = {||the(i)};
31 dont();
32 assert!((i.get()));
33}
34
35fn zombiejesus() {
36 loop {
37 while (return) {
38 if (return) {
39 match (return) {
40 1 => {
41 if (return) {
42 return
43 } else {
44 return
45 }
46 }
47 _ => { return }
48 };
49 } else if (return) {
50 return;
51 }
52 }
53 if (return) { break; }
54 }
55}
56
57fn notsure() {
58 let mut _x: isize;
59 let mut _y = (_x = 0) == (_x = 0);
60 let mut _z = (_x = 0) < (_x = 0);
61 let _a = (_x += 0) == (_x = 0);
62 let _b = swap(&mut _y, &mut _z) == swap(&mut _y, &mut _z);
63}
64
65fn canttouchthis() -> usize {
66 fn p() -> bool { true }
67 let _a = (assert!((true)) == (assert!(p())));
68 let _c = (assert!((p())) == ());
69 let _b: bool = (println!("{}", 0) == (return 0));
70}
71
72fn angrydome() {
73 loop { if break { } }
74 let mut i = 0;
75 loop { i += 1; if i == 1 { match (continue) { 1 => { }, _ => panic!("wat") } }
76 break; }
77}
78
79fn evil_lincoln() { let _evil = println!("lincoln"); }
80
81fn dots() {
82 assert_eq!(String::from(".................................................."),
83 format!("{:?}", .. .. .. .. .. .. .. .. .. .. .. .. ..
84 .. .. .. .. .. .. .. .. .. .. .. ..));
85}
86
87fn u8(u8: u8) {
88 if u8 != 0u8 {
89 assert_eq!(8u8, {
90 macro_rules! u8 {
91 (u8) => {
92 mod u8 {
93 pub fn u8<'u8: 'u8 + 'u8>(u8: &'u8 u8) -> &'u8 u8 {
94 "u8";
95 u8
96 }
97 }
98 };
99 }
100
101 u8!(u8);
102 let &u8: &u8 = u8::u8(&8u8);
103 crate::u8(0u8);
104 u8
105 });
106 }
107}
108
109fn fishy() {
110 assert_eq!(String::from("><>"),
111 String::<>::from::<>("><>").chars::<>().rev::<>().collect::<String>());
112}
113
114fn union() {
115 union union<'union> { union: &'union union<'union>, }
116}
117
118fn special_characters() {
119 let val = !((|(..):(_,_),__@_|__)((&*"\\",'🤔')/**/,{})=={&[..=..][..];})//
120 ;
121 assert!(!val);
122}
123
124fn punch_card() -> impl std::fmt::Debug {
125 ..=..=.. .. .. .. .. .. .. .. .. .. .. ..=.. ..
126 ..=.. ..=.. .. .. .. .. .. .. .. .. ..=..=..=..
127 ..=.. ..=.. ..=.. ..=.. .. ..=..=.. .. ..=.. ..
128 ..=..=.. .. ..=.. ..=.. ..=.. .. .. .. ..=.. ..
129 ..=.. ..=.. ..=.. ..=.. .. ..=.. .. .. ..=.. ..
130 ..=.. ..=.. ..=.. ..=.. .. .. ..=.. .. ..=.. ..
131 ..=.. ..=.. .. ..=..=.. ..=..=.. .. .. ..=.. ..
132}
133
134fn ktulhu() {
135 ;;;();;;;;;;;;()
136}
137
138pub fn main() {
139 strange();
140 funny();
141 what();
142 zombiejesus();
143 notsure();
144 canttouchthis();
145 angrydome();
146 evil_lincoln();
147 dots();
148 u8(8u8);
149 fishy();
150 union();
151 special_characters();
152 punch_card();
153 ktulhu();
154}
diff --git a/crates/syntax/test_data/parser/ok/0036_fully_qualified.rast b/crates/syntax/test_data/parser/ok/0036_fully_qualified.rast
new file mode 100644
index 000000000..c4da317b9
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0036_fully_qualified.rast
@@ -0,0 +1,92 @@
1[email protected]
2 [email protected] "// https://github.com ..."
3 [email protected] "\n\n"
4 [email protected]
5 [email protected]
6 [email protected] "pub"
7 [email protected] " "
8 [email protected] "fn"
9 [email protected] " "
10 [email protected]
11 [email protected] "foo"
12 [email protected]
13 [email protected] "<"
14 [email protected]
15 [email protected]
16 [email protected] "S"
17 [email protected] ":"
18 [email protected] " "
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "Iterator"
26 [email protected] ">"
27 [email protected]
28 [email protected] "("
29 [email protected] ")"
30 [email protected] " "
31 [email protected]
32 [email protected] "->"
33 [email protected] " "
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "String"
39 [email protected] "\n"
40 [email protected]
41 [email protected] "where"
42 [email protected] "\n "
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "<"
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected] "S"
54 [email protected] " "
55 [email protected] "as"
56 [email protected] " "
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "Iterator"
62 [email protected] ">"
63 [email protected] "::"
64 [email protected]
65 [email protected]
66 [email protected] "Item"
67 [email protected] ":"
68 [email protected] " "
69 [email protected]
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected]
74 [email protected]
75 [email protected] "Eq"
76 [email protected] ","
77 [email protected] "\n"
78 [email protected]
79 [email protected] "{"
80 [email protected] "\n "
81 [email protected]
82 [email protected]
83 [email protected] "\"\""
84 [email protected] "."
85 [email protected]
86 [email protected] "to_owned"
87 [email protected]
88 [email protected] "("
89 [email protected] ")"
90 [email protected] "\n"
91 [email protected] "}"
92 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0036_fully_qualified.rs b/crates/syntax/test_data/parser/ok/0036_fully_qualified.rs
new file mode 100644
index 000000000..6da27933e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0036_fully_qualified.rs
@@ -0,0 +1,8 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/311
2
3pub fn foo<S: Iterator>() -> String
4where
5 <S as Iterator>::Item: Eq,
6{
7 "".to_owned()
8}
diff --git a/crates/syntax/test_data/parser/ok/0037_mod.rast b/crates/syntax/test_data/parser/ok/0037_mod.rast
new file mode 100644
index 000000000..1d5d94bde
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0037_mod.rast
@@ -0,0 +1,16 @@
1[email protected]
2 [email protected] "// https://github.com ..."
3 [email protected] "\n\n"
4 [email protected]
5 [email protected] "//! docs"
6 [email protected] "\n"
7 [email protected] "// non-docs"
8 [email protected] "\n"
9 [email protected] "mod"
10 [email protected] " "
11 [email protected]
12 [email protected] "foo"
13 [email protected] " "
14 [email protected]
15 [email protected] "{"
16 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0037_mod.rs b/crates/syntax/test_data/parser/ok/0037_mod.rs
new file mode 100644
index 000000000..7e5a1b835
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0037_mod.rs
@@ -0,0 +1,5 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/357
2
3//! docs
4// non-docs
5mod foo {} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0038_where_pred_type.rast b/crates/syntax/test_data/parser/ok/0038_where_pred_type.rast
new file mode 100644
index 000000000..22168eaf1
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0038_where_pred_type.rast
@@ -0,0 +1,42 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "test"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "where"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected] "("
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "u64"
22 [email protected] ","
23 [email protected] " "
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "u64"
29 [email protected] ")"
30 [email protected] ":"
31 [email protected] " "
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "Foo"
39 [email protected] " "
40 [email protected]
41 [email protected] "{"
42 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0038_where_pred_type.rs b/crates/syntax/test_data/parser/ok/0038_where_pred_type.rs
new file mode 100644
index 000000000..8bfc341a5
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0038_where_pred_type.rs
@@ -0,0 +1 @@
fn test() where (u64, u64): Foo {} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0039_raw_fn_item.rast b/crates/syntax/test_data/parser/ok/0039_raw_fn_item.rast
new file mode 100644
index 000000000..68a366354
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0039_raw_fn_item.rast
@@ -0,0 +1,15 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "r#foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n"
14 [email protected] "}"
15 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0039_raw_fn_item.rs b/crates/syntax/test_data/parser/ok/0039_raw_fn_item.rs
new file mode 100644
index 000000000..8380d1e79
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0039_raw_fn_item.rs
@@ -0,0 +1,2 @@
1fn r#foo() {
2}
diff --git a/crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rast b/crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rast
new file mode 100644
index 000000000..8cfc14f49
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rast
@@ -0,0 +1,22 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected]
13 [email protected] "r#foo"
14 [email protected] ":"
15 [email protected] " "
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "u32"
21 [email protected] "\n"
22 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rs b/crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rs
new file mode 100644
index 000000000..098a60a72
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rs
@@ -0,0 +1,3 @@
1struct S {
2 r#foo: u32
3} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0041_raw_keywords.rast b/crates/syntax/test_data/parser/ok/0041_raw_keywords.rast
new file mode 100644
index 000000000..4035aef6f
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0041_raw_keywords.rast
@@ -0,0 +1,49 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "r#struct"
20 [email protected] " "
21 [email protected] "="
22 [email protected] " "
23 [email protected]
24 [email protected] "92"
25 [email protected] ";"
26 [email protected] " "
27 [email protected]
28 [email protected] "let"
29 [email protected] " "
30 [email protected]
31 [email protected]
32 [email protected] "r#trait"
33 [email protected] " "
34 [email protected] "="
35 [email protected] " "
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "r#struct"
42 [email protected] " "
43 [email protected] "*"
44 [email protected] " "
45 [email protected]
46 [email protected] "2"
47 [email protected] ";"
48 [email protected] " "
49 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0041_raw_keywords.rs b/crates/syntax/test_data/parser/ok/0041_raw_keywords.rs
new file mode 100644
index 000000000..d59a6d347
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0041_raw_keywords.rs
@@ -0,0 +1 @@
fn foo() { let r#struct = 92; let r#trait = r#struct * 2; } \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rast b/crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rast
new file mode 100644
index 000000000..e71e069f1
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rast
@@ -0,0 +1,123 @@
1[email protected]
2 [email protected] "// https://github.com ..."
3 [email protected] "\n\n"
4 [email protected]
5 [email protected] "struct"
6 [email protected] " "
7 [email protected]
8 [email protected] "Foo"
9 [email protected] ";"
10 [email protected] "\n\n"
11 [email protected]
12 [email protected] "impl"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "Foo"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "\n "
23 [email protected]
24 [email protected] "fn"
25 [email protected] " "
26 [email protected]
27 [email protected] "bar"
28 [email protected]
29 [email protected] "("
30 [email protected] ")"
31 [email protected] " "
32 [email protected]
33 [email protected] "->"
34 [email protected] " "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected] "bool"
40 [email protected] " "
41 [email protected]
42 [email protected] "{"
43 [email protected] "\n "
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "unimplemented"
49 [email protected] "!"
50 [email protected]
51 [email protected] "("
52 [email protected] ")"
53 [email protected] "\n "
54 [email protected] "}"
55 [email protected] "\n"
56 [email protected] "}"
57 [email protected] "\n\n"
58 [email protected]
59 [email protected] "fn"
60 [email protected] " "
61 [email protected]
62 [email protected] "baz"
63 [email protected]
64 [email protected] "("
65 [email protected]
66 [email protected]
67 [email protected] "_"
68 [email protected] ":"
69 [email protected] " "
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected]
74 [email protected] "bool"
75 [email protected] ")"
76 [email protected] " "
77 [email protected]
78 [email protected] "{"
79 [email protected] "}"
80 [email protected] "\n\n"
81 [email protected]
82 [email protected] "fn"
83 [email protected] " "
84 [email protected]
85 [email protected] "main"
86 [email protected]
87 [email protected] "("
88 [email protected] ")"
89 [email protected] " "
90 [email protected]
91 [email protected] "{"
92 [email protected] "\n "
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected]
97 [email protected]
98 [email protected] "baz"
99 [email protected]
100 [email protected] "("
101 [email protected]
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected]
106 [email protected] "<"
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected]
111 [email protected] "Foo"
112 [email protected] ">"
113 [email protected] "::"
114 [email protected]
115 [email protected]
116 [email protected] "bar"
117 [email protected]
118 [email protected] "("
119 [email protected] ")"
120 [email protected] ")"
121 [email protected] "\n"
122 [email protected] "}"
123 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rs b/crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rs
new file mode 100644
index 000000000..6c02e65ed
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rs
@@ -0,0 +1,15 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/596
2
3struct Foo;
4
5impl Foo {
6 fn bar() -> bool {
7 unimplemented!()
8 }
9}
10
11fn baz(_: bool) {}
12
13fn main() {
14 baz(<Foo>::bar())
15}
diff --git a/crates/syntax/test_data/parser/ok/0043_complex_assignment.rast b/crates/syntax/test_data/parser/ok/0043_complex_assignment.rast
new file mode 100644
index 000000000..adc4a22e9
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0043_complex_assignment.rast
@@ -0,0 +1,109 @@
1[email protected]
2 [email protected] "// https://github.com ..."
3 [email protected] "\n\n"
4 [email protected]
5 [email protected] "struct"
6 [email protected] " "
7 [email protected]
8 [email protected] "Repr"
9 [email protected] " "
10 [email protected]
11 [email protected] "{"
12 [email protected] " "
13 [email protected]
14 [email protected]
15 [email protected] "raw"
16 [email protected] ":"
17 [email protected] " "
18 [email protected]
19 [email protected] "["
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected] "u8"
25 [email protected] ";"
26 [email protected] " "
27 [email protected]
28 [email protected] "1"
29 [email protected] "]"
30 [email protected] " "
31 [email protected] "}"
32 [email protected] "\n\n"
33 [email protected]
34 [email protected] "fn"
35 [email protected] " "
36 [email protected]
37 [email protected] "abc"
38 [email protected]
39 [email protected] "("
40 [email protected] ")"
41 [email protected] " "
42 [email protected]
43 [email protected] "{"
44 [email protected] "\n "
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected] "Repr"
54 [email protected] " "
55 [email protected]
56 [email protected] "{"
57 [email protected] " "
58 [email protected]
59 [email protected]
60 [email protected] "raw"
61 [email protected] ":"
62 [email protected] " "
63 [email protected]
64 [email protected] "["
65 [email protected]
66 [email protected] "0"
67 [email protected] "]"
68 [email protected] " "
69 [email protected] "}"
70 [email protected] "."
71 [email protected]
72 [email protected] "raw"
73 [email protected] "["
74 [email protected]
75 [email protected] "0"
76 [email protected] "]"
77 [email protected] " "
78 [email protected] "="
79 [email protected] " "
80 [email protected]
81 [email protected] "0"
82 [email protected] ";"
83 [email protected] "\n "
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected] "Repr"
91 [email protected]
92 [email protected] "{"
93 [email protected]
94 [email protected]
95 [email protected] "raw"
96 [email protected] ":"
97 [email protected]
98 [email protected] "["
99 [email protected]
100 [email protected] "0"
101 [email protected] "]"
102 [email protected] "}"
103 [email protected]
104 [email protected] "("
105 [email protected] ")"
106 [email protected] ";"
107 [email protected] "\n"
108 [email protected] "}"
109 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0043_complex_assignment.rs b/crates/syntax/test_data/parser/ok/0043_complex_assignment.rs
new file mode 100644
index 000000000..7e4a28bf7
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0043_complex_assignment.rs
@@ -0,0 +1,8 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/674
2
3struct Repr { raw: [u8; 1] }
4
5fn abc() {
6 Repr { raw: [0] }.raw[0] = 0;
7 Repr{raw:[0]}();
8}
diff --git a/crates/syntax/test_data/parser/ok/0044_let_attrs.rast b/crates/syntax/test_data/parser/ok/0044_let_attrs.rast
new file mode 100644
index 000000000..af44a4dbe
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0044_let_attrs.rast
@@ -0,0 +1,75 @@
1[email protected]
2 [email protected]
3 [email protected] "// https://github.com ..."
4 [email protected] "\n"
5 [email protected] "fn"
6 [email protected] " "
7 [email protected]
8 [email protected] "main"
9 [email protected]
10 [email protected] "("
11 [email protected] ")"
12 [email protected] " "
13 [email protected]
14 [email protected] "{"
15 [email protected] "\n "
16 [email protected]
17 [email protected]
18 [email protected] "#"
19 [email protected] "["
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected] "cfg"
24 [email protected]
25 [email protected] "("
26 [email protected] "feature"
27 [email protected] " "
28 [email protected] "="
29 [email protected] " "
30 [email protected] "\"backtrace\""
31 [email protected] ")"
32 [email protected] "]"
33 [email protected] "\n "
34 [email protected] "let"
35 [email protected] " "
36 [email protected]
37 [email protected]
38 [email protected] "exit_code"
39 [email protected] " "
40 [email protected] "="
41 [email protected] " "
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "panic"
49 [email protected] "::"
50 [email protected]
51 [email protected]
52 [email protected] "catch_unwind"
53 [email protected]
54 [email protected] "("
55 [email protected]
56 [email protected] "move"
57 [email protected] " "
58 [email protected]
59 [email protected] "|"
60 [email protected] "|"
61 [email protected] " "
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected] "main"
68 [email protected]
69 [email protected] "("
70 [email protected] ")"
71 [email protected] ")"
72 [email protected] ";"
73 [email protected] "\n"
74 [email protected] "}"
75 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0044_let_attrs.rs b/crates/syntax/test_data/parser/ok/0044_let_attrs.rs
new file mode 100644
index 000000000..325a97aeb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0044_let_attrs.rs
@@ -0,0 +1,5 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/677
2fn main() {
3 #[cfg(feature = "backtrace")]
4 let exit_code = panic::catch_unwind(move || main());
5}
diff --git a/crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rast b/crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rast
new file mode 100644
index 000000000..0ac56df6d
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rast
@@ -0,0 +1,177 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "block"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "#"
16 [email protected] "!"
17 [email protected] "["
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "doc"
22 [email protected]
23 [email protected] "("
24 [email protected] "\"Inner attributes all ..."
25 [email protected] ")"
26 [email protected] "]"
27 [email protected] "\n "
28 [email protected] "//! As are ModuleDoc ..."
29 [email protected] "\n "
30 [email protected]
31 [email protected]
32 [email protected] "{"
33 [email protected] "\n "
34 [email protected]
35 [email protected] "#"
36 [email protected] "!"
37 [email protected] "["
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "doc"
42 [email protected]
43 [email protected] "("
44 [email protected] "\"Inner attributes are ..."
45 [email protected] ")"
46 [email protected] "]"
47 [email protected] "\n "
48 [email protected]
49 [email protected] "#"
50 [email protected] "!"
51 [email protected] "["
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected] "doc"
56 [email protected]
57 [email protected] "("
58 [email protected] "\"Being validated is n ..."
59 [email protected] ")"
60 [email protected] "]"
61 [email protected] "\n "
62 [email protected] "//! As are ModuleDoc ..."
63 [email protected] "\n "
64 [email protected] "}"
65 [email protected] ";"
66 [email protected] "\n "
67 [email protected]
68 [email protected] "{"
69 [email protected] "\n "
70 [email protected]
71 [email protected] "#"
72 [email protected] "!"
73 [email protected] "["
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected] "doc"
78 [email protected]
79 [email protected] "("
80 [email protected] "\"Inner attributes are ..."
81 [email protected] ")"
82 [email protected] "]"
83 [email protected] "\n "
84 [email protected] "//! As are ModuleDoc ..."
85 [email protected] "\n "
86 [email protected] "}"
87 [email protected] "\n"
88 [email protected] "}"
89 [email protected] "\n\n"
90 [email protected] "// https://github.com ..."
91 [email protected] "\n"
92 [email protected]
93 [email protected] "impl"
94 [email protected] " "
95 [email protected]
96 [email protected]
97 [email protected]
98 [email protected]
99 [email protected] "Whatever"
100 [email protected] " "
101 [email protected]
102 [email protected] "{"
103 [email protected] "\n "
104 [email protected]
105 [email protected] "fn"
106 [email protected] " "
107 [email protected]
108 [email protected] "salsa_event"
109 [email protected]
110 [email protected] "("
111 [email protected]
112 [email protected] "&"
113 [email protected] "self"
114 [email protected] ","
115 [email protected] " "
116 [email protected]
117 [email protected]
118 [email protected]
119 [email protected] "event_fn"
120 [email protected] ":"
121 [email protected] " "
122 [email protected]
123 [email protected] "impl"
124 [email protected] " "
125 [email protected]
126 [email protected]
127 [email protected]
128 [email protected]
129 [email protected]
130 [email protected]
131 [email protected] "Fn"
132 [email protected]
133 [email protected] "("
134 [email protected] ")"
135 [email protected] " "
136 [email protected]
137 [email protected] "->"
138 [email protected] " "
139 [email protected]
140 [email protected]
141 [email protected]
142 [email protected]
143 [email protected] "Event"
144 [email protected]
145 [email protected] "<"
146 [email protected]
147 [email protected]
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected] "Self"
152 [email protected] ">"
153 [email protected] ")"
154 [email protected] " "
155 [email protected]
156 [email protected] "{"
157 [email protected] "\n "
158 [email protected]
159 [email protected] "#"
160 [email protected] "!"
161 [email protected] "["
162 [email protected]
163 [email protected]
164 [email protected]
165 [email protected] "allow"
166 [email protected]
167 [email protected] "("
168 [email protected] "unused_variables"
169 [email protected] ")"
170 [email protected] "]"
171 [email protected] " "
172 [email protected] "// this is `inner_at ..."
173 [email protected] "\n "
174 [email protected] "}"
175 [email protected] "\n"
176 [email protected] "}"
177 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rs b/crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rs
new file mode 100644
index 000000000..88df8138e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rs
@@ -0,0 +1,20 @@
1fn block() {
2 #![doc("Inner attributes allowed here")]
3 //! As are ModuleDoc style comments
4 {
5 #![doc("Inner attributes are allowed in blocks used as statements")]
6 #![doc("Being validated is not affected by duplcates")]
7 //! As are ModuleDoc style comments
8 };
9 {
10 #![doc("Inner attributes are allowed in blocks when they are the last statement of another block")]
11 //! As are ModuleDoc style comments
12 }
13}
14
15// https://github.com/rust-analyzer/rust-analyzer/issues/689
16impl Whatever {
17 fn salsa_event(&self, event_fn: impl Fn() -> Event<Self>) {
18 #![allow(unused_variables)] // this is `inner_attr` of the block
19 }
20}
diff --git a/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast b/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast
new file mode 100644
index 000000000..37594769a
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast
@@ -0,0 +1,28 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "extern"
5 [email protected] " "
6 [email protected] "\"C\""
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected] "//! This is a doc com ..."
12 [email protected] "\n "
13 [email protected]
14 [email protected] "#"
15 [email protected] "!"
16 [email protected] "["
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "doc"
21 [email protected]
22 [email protected] "("
23 [email protected] "\"This is also a doc c ..."
24 [email protected] ")"
25 [email protected] "]"
26 [email protected] "\n"
27 [email protected] "}"
28 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rs b/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rs
new file mode 100644
index 000000000..fe67e2df4
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rs
@@ -0,0 +1,4 @@
1extern "C" {
2 //! This is a doc comment
3 #![doc("This is also a doc comment")]
4}
diff --git a/crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast b/crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast
new file mode 100644
index 000000000..4f8dff909
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast
@@ -0,0 +1,320 @@
1[email protected]
2 [email protected] "// https://github.com ..."
3 [email protected] "\n\n"
4 [email protected]
5 [email protected] "fn"
6 [email protected] " "
7 [email protected]
8 [email protected] "main"
9 [email protected]
10 [email protected] "("
11 [email protected] ")"
12 [email protected] " "
13 [email protected]
14 [email protected] "{"
15 [email protected] "\n "
16 [email protected]
17 [email protected]
18 [email protected] "match"
19 [email protected] " "
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "Some"
26 [email protected]
27 [email protected] "("
28 [email protected]
29 [email protected] "-"
30 [email protected]
31 [email protected] "1"
32 [email protected] ")"
33 [email protected] " "
34 [email protected]
35 [email protected] "{"
36 [email protected] "\n "
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected] "Some"
43 [email protected] "("
44 [email protected]
45 [email protected] "-"
46 [email protected]
47 [email protected] "1"
48 [email protected] ")"
49 [email protected] " "
50 [email protected] "=>"
51 [email protected] " "
52 [email protected]
53 [email protected] "("
54 [email protected] ")"
55 [email protected] ","
56 [email protected] "\n "
57 [email protected]
58 [email protected]
59 [email protected] "_"
60 [email protected] " "
61 [email protected] "=>"
62 [email protected] " "
63 [email protected]
64 [email protected] "("
65 [email protected] ")"
66 [email protected] ","
67 [email protected] "\n "
68 [email protected] "}"
69 [email protected] "\n\n "
70 [email protected]
71 [email protected]
72 [email protected] "match"
73 [email protected] " "
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected] "Some"
80 [email protected]
81 [email protected] "("
82 [email protected]
83 [email protected] "("
84 [email protected]
85 [email protected] "-"
86 [email protected]
87 [email protected] "1"
88 [email protected] ","
89 [email protected] " "
90 [email protected]
91 [email protected] "-"
92 [email protected]
93 [email protected] "1"
94 [email protected] ")"
95 [email protected] ")"
96 [email protected] " "
97 [email protected]
98 [email protected] "{"
99 [email protected] "\n "
100 [email protected]
101 [email protected]
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected] "Some"
106 [email protected] "("
107 [email protected]
108 [email protected] "("
109 [email protected]
110 [email protected] "-"
111 [email protected]
112 [email protected] "1"
113 [email protected] ","
114 [email protected] " "
115 [email protected]
116 [email protected] "-"
117 [email protected]
118 [email protected] "1"
119 [email protected] ")"
120 [email protected] ")"
121 [email protected] " "
122 [email protected] "=>"
123 [email protected] " "
124 [email protected]
125 [email protected] "("
126 [email protected] ")"
127 [email protected] ","
128 [email protected] "\n "
129 [email protected]
130 [email protected]
131 [email protected] "_"
132 [email protected] " "
133 [email protected] "=>"
134 [email protected] " "
135 [email protected]
136 [email protected] "("
137 [email protected] ")"
138 [email protected] ","
139 [email protected] "\n "
140 [email protected] "}"
141 [email protected] "\n\n "
142 [email protected]
143 [email protected]
144 [email protected] "match"
145 [email protected] " "
146 [email protected]
147 [email protected]
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected]
152 [email protected] "A"
153 [email protected] "::"
154 [email protected]
155 [email protected]
156 [email protected] "B"
157 [email protected]
158 [email protected] "("
159 [email protected]
160 [email protected] "-"
161 [email protected]
162 [email protected] "1"
163 [email protected] ","
164 [email protected] " "
165 [email protected]
166 [email protected] "-"
167 [email protected]
168 [email protected] "1"
169 [email protected] ")"
170 [email protected] " "
171 [email protected]
172 [email protected] "{"
173 [email protected] "\n "
174 [email protected]
175 [email protected]
176 [email protected]
177 [email protected]
178 [email protected]
179 [email protected]
180 [email protected] "A"
181 [email protected] "::"
182 [email protected]
183 [email protected]
184 [email protected] "B"
185 [email protected] "("
186 [email protected]
187 [email protected] "-"
188 [email protected]
189 [email protected] "1"
190 [email protected] ","
191 [email protected] " "
192 [email protected]
193 [email protected] "-"
194 [email protected]
195 [email protected] "1"
196 [email protected] ")"
197 [email protected] " "
198 [email protected] "=>"
199 [email protected] " "
200 [email protected]
201 [email protected] "("
202 [email protected] ")"
203 [email protected] ","
204 [email protected] "\n "
205 [email protected]
206 [email protected]
207 [email protected] "_"
208 [email protected] " "
209 [email protected] "=>"
210 [email protected] " "
211 [email protected]
212 [email protected] "("
213 [email protected] ")"
214 [email protected] ","
215 [email protected] "\n "
216 [email protected] "}"
217 [email protected] "\n\n "
218 [email protected]
219 [email protected] "if"
220 [email protected] " "
221 [email protected]
222 [email protected] "let"
223 [email protected] " "
224 [email protected]
225 [email protected]
226 [email protected]
227 [email protected]
228 [email protected] "Some"
229 [email protected] "("
230 [email protected]
231 [email protected] "-"
232 [email protected]
233 [email protected] "1"
234 [email protected] ")"
235 [email protected] " "
236 [email protected] "="
237 [email protected] " "
238 [email protected]
239 [email protected]
240 [email protected]
241 [email protected]
242 [email protected]
243 [email protected] "Some"
244 [email protected]
245 [email protected] "("
246 [email protected]
247 [email protected] "-"
248 [email protected]
249 [email protected] "1"
250 [email protected] ")"
251 [email protected] " "
252 [email protected]
253 [email protected] "{"
254 [email protected] "\n "
255 [email protected] "}"
256 [email protected] "\n"
257 [email protected] "}"
258 [email protected] "\n\n"
259 [email protected]
260 [email protected] "enum"
261 [email protected] " "
262 [email protected]
263 [email protected] "A"
264 [email protected] " "
265 [email protected]
266 [email protected] "{"
267 [email protected] "\n "
268 [email protected]
269 [email protected]
270 [email protected] "B"
271 [email protected]
272 [email protected] "("
273 [email protected]
274 [email protected]
275 [email protected]
276 [email protected]
277 [email protected]
278 [email protected] "i8"
279 [email protected] ","
280 [email protected] " "
281 [email protected]
282 [email protected]
283 [email protected]
284 [email protected]
285 [email protected]
286 [email protected] "i8"
287 [email protected] ")"
288 [email protected] "\n"
289 [email protected] "}"
290 [email protected] "\n\n"
291 [email protected]
292 [email protected] "fn"
293 [email protected] " "
294 [email protected]
295 [email protected] "foo"
296 [email protected]
297 [email protected] "("
298 [email protected]
299 [email protected]
300 [email protected]
301 [email protected] "-"
302 [email protected]
303 [email protected] "128"
304 [email protected] "..="
305 [email protected]
306 [email protected]
307 [email protected] "127"
308 [email protected] ":"
309 [email protected] " "
310 [email protected]
311 [email protected]
312 [email protected]
313 [email protected]
314 [email protected] "i8"
315 [email protected] ")"
316 [email protected] " "
317 [email protected]
318 [email protected] "{"
319 [email protected] "}"
320 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rs b/crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rs
new file mode 100644
index 000000000..bbd6b0f6e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rs
@@ -0,0 +1,27 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/972
2
3fn main() {
4 match Some(-1) {
5 Some(-1) => (),
6 _ => (),
7 }
8
9 match Some((-1, -1)) {
10 Some((-1, -1)) => (),
11 _ => (),
12 }
13
14 match A::B(-1, -1) {
15 A::B(-1, -1) => (),
16 _ => (),
17 }
18
19 if let Some(-1) = Some(-1) {
20 }
21}
22
23enum A {
24 B(i8, i8)
25}
26
27fn foo(-128..=127: i8) {}
diff --git a/crates/syntax/test_data/parser/ok/0048_compound_assignment.rast b/crates/syntax/test_data/parser/ok/0048_compound_assignment.rast
new file mode 100644
index 000000000..eaab47843
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0048_compound_assignment.rast
@@ -0,0 +1,200 @@
1[email protected]
2 [email protected] "// https://github.com ..."
3 [email protected] "\n\n"
4 [email protected]
5 [email protected] "fn"
6 [email protected] " "
7 [email protected]
8 [email protected] "compound_assignment"
9 [email protected]
10 [email protected] "("
11 [email protected] ")"
12 [email protected] " "
13 [email protected]
14 [email protected] "{"
15 [email protected] "\n "
16 [email protected]
17 [email protected] "let"
18 [email protected] " "
19 [email protected]
20 [email protected] "mut"
21 [email protected] " "
22 [email protected]
23 [email protected] "a"
24 [email protected] " "
25 [email protected] "="
26 [email protected] " "
27 [email protected]
28 [email protected] "0"
29 [email protected] ";"
30 [email protected] "\n "
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected] "a"
38 [email protected] " "
39 [email protected] "+="
40 [email protected] " "
41 [email protected]
42 [email protected] "1"
43 [email protected] ";"
44 [email protected] "\n "
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected] "a"
52 [email protected] " "
53 [email protected] "-="
54 [email protected] " "
55 [email protected]
56 [email protected] "2"
57 [email protected] ";"
58 [email protected] "\n "
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected] "a"
66 [email protected] " "
67 [email protected] "*="
68 [email protected] " "
69 [email protected]
70 [email protected] "3"
71 [email protected] ";"
72 [email protected] "\n "
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected] "a"
80 [email protected] " "
81 [email protected] "%="
82 [email protected] " "
83 [email protected]
84 [email protected] "4"
85 [email protected] ";"
86 [email protected] "\n "
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected]
92 [email protected]
93 [email protected] "a"
94 [email protected] " "
95 [email protected] "/="
96 [email protected] " "
97 [email protected]
98 [email protected] "5"
99 [email protected] ";"
100 [email protected] "\n "
101 [email protected]
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected] "a"
108 [email protected] " "
109 [email protected] "|="
110 [email protected] " "
111 [email protected]
112 [email protected] "6"
113 [email protected] ";"
114 [email protected] "\n "
115 [email protected]
116 [email protected]
117 [email protected]
118 [email protected]
119 [email protected]
120 [email protected]
121 [email protected] "a"
122 [email protected] " "
123 [email protected] "&="
124 [email protected] " "
125 [email protected]
126 [email protected] "7"
127 [email protected] ";"
128 [email protected] "\n "
129 [email protected]
130 [email protected]
131 [email protected]
132 [email protected]
133 [email protected]
134 [email protected]
135 [email protected] "a"
136 [email protected] " "
137 [email protected] "^="
138 [email protected] " "
139 [email protected]
140 [email protected] "8"
141 [email protected] ";"
142 [email protected] "\n "
143 [email protected]
144 [email protected]
145 [email protected]
146 [email protected]
147 [email protected]
148 [email protected]
149 [email protected] "a"
150 [email protected] " "
151 [email protected] "<="
152 [email protected] " "
153 [email protected]
154 [email protected] "9"
155 [email protected] ";"
156 [email protected] "\n "
157 [email protected]
158 [email protected]
159 [email protected]
160 [email protected]
161 [email protected]
162 [email protected]
163 [email protected] "a"
164 [email protected] " "
165 [email protected] ">="
166 [email protected] " "
167 [email protected]
168 [email protected] "10"
169 [email protected] ";"
170 [email protected] "\n "
171 [email protected]
172 [email protected]
173 [email protected]
174 [email protected]
175 [email protected]
176 [email protected]
177 [email protected] "a"
178 [email protected] " "
179 [email protected] ">>="
180 [email protected] " "
181 [email protected]
182 [email protected] "11"
183 [email protected] ";"
184 [email protected] "\n "
185 [email protected]
186 [email protected]
187 [email protected]
188 [email protected]
189 [email protected]
190 [email protected]
191 [email protected] "a"
192 [email protected] " "
193 [email protected] "<<="
194 [email protected] " "
195 [email protected]
196 [email protected] "12"
197 [email protected] ";"
198 [email protected] "\n"
199 [email protected] "}"
200 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0048_compound_assignment.rs b/crates/syntax/test_data/parser/ok/0048_compound_assignment.rs
new file mode 100644
index 000000000..871720a49
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0048_compound_assignment.rs
@@ -0,0 +1,17 @@
1// https://github.com/rust-analyzer/rust-analyzer/pull/983
2
3fn compound_assignment() {
4 let mut a = 0;
5 a += 1;
6 a -= 2;
7 a *= 3;
8 a %= 4;
9 a /= 5;
10 a |= 6;
11 a &= 7;
12 a ^= 8;
13 a <= 9;
14 a >= 10;
15 a >>= 11;
16 a <<= 12;
17}
diff --git a/crates/syntax/test_data/parser/ok/0049_async_block.rast b/crates/syntax/test_data/parser/ok/0049_async_block.rast
new file mode 100644
index 000000000..57ecad3cf
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0049_async_block.rast
@@ -0,0 +1,35 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "async"
17 [email protected] " "
18 [email protected]
19 [email protected] "{"
20 [email protected] "}"
21 [email protected] ";"
22 [email protected] "\n "
23 [email protected]
24 [email protected]
25 [email protected] "async"
26 [email protected] " "
27 [email protected] "move"
28 [email protected] " "
29 [email protected]
30 [email protected] "{"
31 [email protected] "}"
32 [email protected] ";"
33 [email protected] "\n"
34 [email protected] "}"
35 [email protected] "\n\n"
diff --git a/crates/syntax/test_data/parser/ok/0049_async_block.rs b/crates/syntax/test_data/parser/ok/0049_async_block.rs
new file mode 100644
index 000000000..4781b3225
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0049_async_block.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 async {};
3 async move {};
4}
5
diff --git a/crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rast b/crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rast
new file mode 100644
index 000000000..c7ce12e93
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rast
@@ -0,0 +1,90 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected] "x"
13 [email protected] ":"
14 [email protected] " "
15 [email protected]
16 [email protected] "impl"
17 [email protected] " "
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "std"
27 [email protected] "::"
28 [email protected]
29 [email protected]
30 [email protected] "future"
31 [email protected] "::"
32 [email protected]
33 [email protected]
34 [email protected] "Future"
35 [email protected]
36 [email protected] "<"
37 [email protected]
38 [email protected]
39 [email protected] "Output"
40 [email protected] " "
41 [email protected] "="
42 [email protected] " "
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected] "i32"
48 [email protected] ">"
49 [email protected] ")"
50 [email protected] " "
51 [email protected]
52 [email protected] "{"
53 [email protected] "}"
54 [email protected] "\n\n"
55 [email protected]
56 [email protected] "fn"
57 [email protected] " "
58 [email protected]
59 [email protected] "main"
60 [email protected]
61 [email protected] "("
62 [email protected] ")"
63 [email protected] " "
64 [email protected]
65 [email protected] "{"
66 [email protected] "\n "
67 [email protected]
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected]
72 [email protected] "foo"
73 [email protected]
74 [email protected] "("
75 [email protected]
76 [email protected] "async"
77 [email protected] " "
78 [email protected] "move"
79 [email protected] " "
80 [email protected]
81 [email protected] "{"
82 [email protected] " "
83 [email protected]
84 [email protected] "12"
85 [email protected] " "
86 [email protected] "}"
87 [email protected] ")"
88 [email protected] "\n"
89 [email protected] "}"
90 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rs b/crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rs
new file mode 100644
index 000000000..ec4612cff
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rs
@@ -0,0 +1,5 @@
1fn foo(x: impl std::future::Future<Output = i32>) {}
2
3fn main() {
4 foo(async move { 12 })
5}
diff --git a/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast b/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast
new file mode 100644
index 000000000..d4f05f279
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast
@@ -0,0 +1,508 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "g1"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected] "#"
11 [email protected] "["
12 [email protected]
13 [email protected]
14 [email protected]
15 [email protected] "attr1"
16 [email protected] "]"
17 [email protected] " "
18 [email protected]
19 [email protected] "#"
20 [email protected] "["
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected] "attr2"
25 [email protected] "]"
26 [email protected] " "
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "pat"
31 [email protected] ":"
32 [email protected] " "
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected] "Type"
38 [email protected] ")"
39 [email protected] " "
40 [email protected]
41 [email protected] "{"
42 [email protected] "}"
43 [email protected] "\n"
44 [email protected]
45 [email protected] "fn"
46 [email protected] " "
47 [email protected]
48 [email protected] "g2"
49 [email protected]
50 [email protected] "("
51 [email protected]
52 [email protected] "#"
53 [email protected] "["
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected] "attr1"
58 [email protected] "]"
59 [email protected] " "
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected] "x"
64 [email protected] ":"
65 [email protected] " "
66 [email protected]
67 [email protected]
68 [email protected]
69 [email protected]
70 [email protected] "u8"
71 [email protected] ")"
72 [email protected] " "
73 [email protected]
74 [email protected] "{"
75 [email protected] "}"
76 [email protected] "\n\n"
77 [email protected]
78 [email protected]
79 [email protected] "extern"
80 [email protected] " "
81 [email protected] "\"C\""
82 [email protected] " "
83 [email protected]
84 [email protected] "{"
85 [email protected] " "
86 [email protected]
87 [email protected] "fn"
88 [email protected] " "
89 [email protected]
90 [email protected] "printf"
91 [email protected]
92 [email protected] "("
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected] "format"
97 [email protected] ":"
98 [email protected] " "
99 [email protected]
100 [email protected] "*"
101 [email protected] "const"
102 [email protected] " "
103 [email protected]
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected] "i8"
108 [email protected] ","
109 [email protected] " "
110 [email protected]
111 [email protected] "#"
112 [email protected] "["
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected] "attr"
117 [email protected] "]"
118 [email protected] " "
119 [email protected]
120 [email protected] "..."
121 [email protected] ")"
122 [email protected] " "
123 [email protected]
124 [email protected] "->"
125 [email protected] " "
126 [email protected]
127 [email protected]
128 [email protected]
129 [email protected]
130 [email protected] "i32"
131 [email protected] ";"
132 [email protected] " "
133 [email protected] "}"
134 [email protected] "\n\n"
135 [email protected]
136 [email protected] "fn"
137 [email protected] " "
138 [email protected]
139 [email protected] "foo"
140 [email protected]
141 [email protected] "<"
142 [email protected]
143 [email protected]
144 [email protected] "F"
145 [email protected] ":"
146 [email protected] " "
147 [email protected]
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected]
152 [email protected]
153 [email protected] "FnMut"
154 [email protected]
155 [email protected] "("
156 [email protected]
157 [email protected] "#"
158 [email protected] "["
159 [email protected]
160 [email protected]
161 [email protected]
162 [email protected] "attr"
163 [email protected] "]"
164 [email protected] " "
165 [email protected]
166 [email protected]
167 [email protected] "&"
168 [email protected] "mut"
169 [email protected] " "
170 [email protected]
171 [email protected]
172 [email protected]
173 [email protected]
174 [email protected] "Foo"
175 [email protected]
176 [email protected] "<"
177 [email protected]
178 [email protected] "\'a"
179 [email protected] ">"
180 [email protected] ")"
181 [email protected] ">"
182 [email protected]
183 [email protected] "("
184 [email protected] ")"
185 [email protected]
186 [email protected] "{"
187 [email protected] "}"
188 [email protected] "\n\n"
189 [email protected]
190 [email protected] "trait"
191 [email protected] " "
192 [email protected]
193 [email protected] "Foo"
194 [email protected] " "
195 [email protected]
196 [email protected] "{"
197 [email protected] "\n "
198 [email protected]
199 [email protected] "fn"
200 [email protected] " "
201 [email protected]
202 [email protected] "bar"
203 [email protected]
204 [email protected] "("
205 [email protected]
206 [email protected] "#"
207 [email protected] "["
208 [email protected]
209 [email protected]
210 [email protected]
211 [email protected] "attr"
212 [email protected] "]"
213 [email protected] " "
214 [email protected]
215 [email protected]
216 [email protected] "_"
217 [email protected] ":"
218 [email protected] " "
219 [email protected]
220 [email protected]
221 [email protected]
222 [email protected]
223 [email protected] "u64"
224 [email protected] ","
225 [email protected] " "
226 [email protected]
227 [email protected] "#"
228 [email protected] " "
229 [email protected] "["
230 [email protected]
231 [email protected]
232 [email protected]
233 [email protected] "attr"
234 [email protected] "]"
235 [email protected] " "
236 [email protected]
237 [email protected]
238 [email protected] "mut"
239 [email protected] " "
240 [email protected]
241 [email protected] "x"
242 [email protected] ":"
243 [email protected] " "
244 [email protected]
245 [email protected]
246 [email protected]
247 [email protected]
248 [email protected] "i32"
249 [email protected] ")"
250 [email protected] ";"
251 [email protected] "\n"
252 [email protected] "}"
253 [email protected] "\n\n"
254 [email protected]
255 [email protected] "impl"
256 [email protected] " "
257 [email protected]
258 [email protected]
259 [email protected]
260 [email protected]
261 [email protected] "S"
262 [email protected] " "
263 [email protected]
264 [email protected] "{"
265 [email protected] "\n "
266 [email protected]
267 [email protected] "fn"
268 [email protected] " "
269 [email protected]
270 [email protected] "f"
271 [email protected]
272 [email protected] "("
273 [email protected]
274 [email protected] "#"
275 [email protected] "["
276 [email protected]
277 [email protected]
278 [email protected]
279 [email protected] "must_use"
280 [email protected] "]"
281 [email protected] " "
282 [email protected]
283 [email protected] "self"
284 [email protected] ")"
285 [email protected] " "
286 [email protected]
287 [email protected] "{"
288 [email protected] "}"
289 [email protected] "\n "
290 [email protected]
291 [email protected] "fn"
292 [email protected] " "
293 [email protected]
294 [email protected] "g1"
295 [email protected]
296 [email protected] "("
297 [email protected]
298 [email protected] "#"
299 [email protected] "["
300 [email protected]
301 [email protected]
302 [email protected]
303 [email protected] "attr"
304 [email protected] "]"
305 [email protected] " "
306 [email protected]
307 [email protected] "self"
308 [email protected] ")"
309 [email protected] " "
310 [email protected]
311 [email protected] "{"
312 [email protected] "}"
313 [email protected] "\n "
314 [email protected]
315 [email protected] "fn"
316 [email protected] " "
317 [email protected]
318 [email protected] "g2"
319 [email protected]
320 [email protected] "("
321 [email protected]
322 [email protected] "#"
323 [email protected] "["
324 [email protected]
325 [email protected]
326 [email protected]
327 [email protected] "attr"
328 [email protected] "]"
329 [email protected] " "
330 [email protected]
331 [email protected] "&"
332 [email protected] "self"
333 [email protected] ")"
334 [email protected] " "
335 [email protected]
336 [email protected] "{"
337 [email protected] "}"
338 [email protected] "\n "
339 [email protected]
340 [email protected] "fn"
341 [email protected] " "
342 [email protected]
343 [email protected] "g3"
344 [email protected]
345 [email protected] "<"
346 [email protected]
347 [email protected] "\'a"
348 [email protected] ">"
349 [email protected]
350 [email protected] "("
351 [email protected]
352 [email protected] "#"
353 [email protected] "["
354 [email protected]
355 [email protected]
356 [email protected]
357 [email protected] "attr"
358 [email protected] "]"
359 [email protected] " "
360 [email protected]
361 [email protected] "&"
362 [email protected] "mut"
363 [email protected] " "
364 [email protected] "self"
365 [email protected] ")"
366 [email protected] " "
367 [email protected]
368 [email protected] "{"
369 [email protected] "}"
370 [email protected] "\n "
371 [email protected]
372 [email protected] "fn"
373 [email protected] " "
374 [email protected]
375 [email protected] "g4"
376 [email protected]
377 [email protected] "<"
378 [email protected]
379 [email protected] "\'a"
380 [email protected] ">"
381 [email protected]
382 [email protected] "("
383 [email protected]
384 [email protected] "#"
385 [email protected] "["
386 [email protected]
387 [email protected]
388 [email protected]
389 [email protected] "attr"
390 [email protected] "]"
391 [email protected] " "
392 [email protected]
393 [email protected] "&"
394 [email protected] "\'a"
395 [email protected] " "
396 [email protected] "self"
397 [email protected] ")"
398 [email protected] " "
399 [email protected]
400 [email protected] "{"
401 [email protected] "}"
402 [email protected] "\n "
403 [email protected]
404 [email protected] "fn"
405 [email protected] " "
406 [email protected]
407 [email protected] "g5"
408 [email protected]
409 [email protected] "<"
410 [email protected]
411 [email protected] "\'a"
412 [email protected] ">"
413 [email protected]
414 [email protected] "("
415 [email protected]
416 [email protected] "#"
417 [email protected] "["
418 [email protected]
419 [email protected]
420 [email protected]
421 [email protected] "attr"
422 [email protected] "]"
423 [email protected] " "
424 [email protected]
425 [email protected] "&"
426 [email protected] "\'a"
427 [email protected] " "
428 [email protected] "mut"
429 [email protected] " "
430 [email protected] "self"
431 [email protected] ")"
432 [email protected] " "
433 [email protected]
434 [email protected] "{"
435 [email protected] "}"
436 [email protected] "\n "
437 [email protected]
438 [email protected] "fn"
439 [email protected] " "
440 [email protected]
441 [email protected] "c"
442 [email protected]
443 [email protected] "("
444 [email protected]
445 [email protected] "#"
446 [email protected] "["
447 [email protected]
448 [email protected]
449 [email protected]
450 [email protected] "attr"
451 [email protected] "]"
452 [email protected] " "
453 [email protected]
454 [email protected] "self"
455 [email protected] ":"
456 [email protected] " "
457 [email protected]
458 [email protected]
459 [email protected]
460 [email protected]
461 [email protected] "Self"
462 [email protected] ")"
463 [email protected] " "
464 [email protected]
465 [email protected] "{"
466 [email protected] "}"
467 [email protected] "\n "
468 [email protected]
469 [email protected] "fn"
470 [email protected] " "
471 [email protected]
472 [email protected] "d"
473 [email protected]
474 [email protected] "("
475 [email protected]
476 [email protected] "#"
477 [email protected] "["
478 [email protected]
479 [email protected]
480 [email protected]
481 [email protected] "attr"
482 [email protected] "]"
483 [email protected] " "
484 [email protected]
485 [email protected] "self"
486 [email protected] ":"
487 [email protected] " "
488 [email protected]
489 [email protected]
490 [email protected]
491 [email protected]
492 [email protected] "Rc"
493 [email protected]
494 [email protected] "<"
495 [email protected]
496 [email protected]
497 [email protected]
498 [email protected]
499 [email protected]
500 [email protected] "Self"
501 [email protected] ">"
502 [email protected] ")"
503 [email protected] " "
504 [email protected]
505 [email protected] "{"
506 [email protected] "}"
507 [email protected] "\n"
508 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rs b/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rs
new file mode 100644
index 000000000..de350d858
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rs
@@ -0,0 +1,21 @@
1fn g1(#[attr1] #[attr2] pat: Type) {}
2fn g2(#[attr1] x: u8) {}
3
4extern "C" { fn printf(format: *const i8, #[attr] ...) -> i32; }
5
6fn foo<F: FnMut(#[attr] &mut Foo<'a>)>(){}
7
8trait Foo {
9 fn bar(#[attr] _: u64, # [attr] mut x: i32);
10}
11
12impl S {
13 fn f(#[must_use] self) {}
14 fn g1(#[attr] self) {}
15 fn g2(#[attr] &self) {}
16 fn g3<'a>(#[attr] &mut self) {}
17 fn g4<'a>(#[attr] &'a self) {}
18 fn g5<'a>(#[attr] &'a mut self) {}
19 fn c(#[attr] self: Self) {}
20 fn d(#[attr] self: Rc<Self>) {}
21} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0052_for_range_block.rast b/crates/syntax/test_data/parser/ok/0052_for_range_block.rast
new file mode 100644
index 000000000..350823ba3
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0052_for_range_block.rast
@@ -0,0 +1,78 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "for"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "_x"
20 [email protected] " "
21 [email protected] "in"
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected] "0"
26 [email protected] " "
27 [email protected] ".."
28 [email protected] " "
29 [email protected]
30 [email protected]
31 [email protected] "("
32 [email protected]
33 [email protected]
34 [email protected] "0"
35 [email protected] " "
36 [email protected] ".."
37 [email protected] " "
38 [email protected]
39 [email protected] "{"
40 [email protected]
41 [email protected]
42 [email protected] "1"
43 [email protected] " "
44 [email protected] "+"
45 [email protected] " "
46 [email protected]
47 [email protected] "2"
48 [email protected] "}"
49 [email protected] ")"
50 [email protected] "."
51 [email protected]
52 [email protected] "sum"
53 [email protected]
54 [email protected] "::"
55 [email protected] "<"
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "u32"
62 [email protected] ">"
63 [email protected]
64 [email protected] "("
65 [email protected] ")"
66 [email protected] " "
67 [email protected]
68 [email protected] "{"
69 [email protected] "\n "
70 [email protected]
71 [email protected]
72 [email protected] "break"
73 [email protected] ";"
74 [email protected] "\n "
75 [email protected] "}"
76 [email protected] "\n"
77 [email protected] "}"
78 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0052_for_range_block.rs b/crates/syntax/test_data/parser/ok/0052_for_range_block.rs
new file mode 100644
index 000000000..b51b19630
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0052_for_range_block.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 for _x in 0 .. (0 .. {1 + 2}).sum::<u32>() {
3 break;
4 }
5}
diff --git a/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast b/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast
new file mode 100644
index 000000000..be60f7a8e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast
@@ -0,0 +1,39 @@
1[email protected]
2 [email protected]
3 [email protected] "/// Some docs"
4 [email protected] "\n"
5 [email protected]
6 [email protected] "#"
7 [email protected] "["
8 [email protected]
9 [email protected]
10 [email protected]
11 [email protected] "macro_export"
12 [email protected] "]"
13 [email protected] "\n"
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "macro_rules"
18 [email protected] "!"
19 [email protected] " "
20 [email protected]
21 [email protected] "foo"
22 [email protected] " "
23 [email protected]
24 [email protected] "{"
25 [email protected] "\n "
26 [email protected]
27 [email protected] "("
28 [email protected] ")"
29 [email protected] " "
30 [email protected] "="
31 [email protected] ">"
32 [email protected] " "
33 [email protected]
34 [email protected] "{"
35 [email protected] "}"
36 [email protected] ";"
37 [email protected] "\n"
38 [email protected] "}"
39 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs b/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs
new file mode 100644
index 000000000..b59c23c56
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs
@@ -0,0 +1,5 @@
1/// Some docs
2#[macro_export]
3macro_rules! foo {
4 () => {};
5}
diff --git a/crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast b/crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast
new file mode 100644
index 000000000..f25c9ac36
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast
@@ -0,0 +1,123 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "a"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "->"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "Foo"
19 [email protected]
20 [email protected] "<"
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected] "bar"
28 [email protected] "::"
29 [email protected]
30 [email protected]
31 [email protected] "Baz"
32 [email protected] ">"
33 [email protected] " "
34 [email protected]
35 [email protected] "{"
36 [email protected] "}"
37 [email protected] "\n\n"
38 [email protected]
39 [email protected] "fn"
40 [email protected] " "
41 [email protected]
42 [email protected] "b"
43 [email protected]
44 [email protected] "("
45 [email protected]
46 [email protected]
47 [email protected] "_"
48 [email protected] ":"
49 [email protected] " "
50 [email protected]
51 [email protected] "impl"
52 [email protected] " "
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected] "FnMut"
60 [email protected]
61 [email protected] "("
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected]
68 [email protected] "x"
69 [email protected] "::"
70 [email protected]
71 [email protected]
72 [email protected] "Y"
73 [email protected] ")"
74 [email protected] ")"
75 [email protected] " "
76 [email protected]
77 [email protected] "{"
78 [email protected] "}"
79 [email protected] "\n\n"
80 [email protected]
81 [email protected] "fn"
82 [email protected] " "
83 [email protected]
84 [email protected] "c"
85 [email protected]
86 [email protected] "("
87 [email protected]
88 [email protected]
89 [email protected] "_"
90 [email protected] ":"
91 [email protected] " "
92 [email protected]
93 [email protected] "impl"
94 [email protected] " "
95 [email protected]
96 [email protected]
97 [email protected]
98 [email protected]
99 [email protected]
100 [email protected]
101 [email protected] "FnMut"
102 [email protected]
103 [email protected] "("
104 [email protected]
105 [email protected]
106 [email protected] "&"
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected]
111 [email protected]
112 [email protected] "x"
113 [email protected] "::"
114 [email protected]
115 [email protected]
116 [email protected] "Y"
117 [email protected] ")"
118 [email protected] ")"
119 [email protected] " "
120 [email protected]
121 [email protected] "{"
122 [email protected] "}"
123 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rs b/crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rs
new file mode 100644
index 000000000..0d3f5722a
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rs
@@ -0,0 +1,5 @@
1fn a() -> Foo<bar::Baz> {}
2
3fn b(_: impl FnMut(x::Y)) {}
4
5fn c(_: impl FnMut(&x::Y)) {}
diff --git a/crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rast b/crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rast
new file mode 100644
index 000000000..7447d516e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rast
@@ -0,0 +1,49 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "X"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "("
12 [email protected] ")"
13 [email protected] ";"
14 [email protected] "\n\n"
15 [email protected]
16 [email protected] "fn"
17 [email protected] " "
18 [email protected]
19 [email protected] "main"
20 [email protected]
21 [email protected] "("
22 [email protected] ")"
23 [email protected] " "
24 [email protected]
25 [email protected] "{"
26 [email protected] "\n "
27 [email protected]
28 [email protected] "let"
29 [email protected] " "
30 [email protected]
31 [email protected] "("
32 [email protected] ")"
33 [email protected] ":"
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected] "::"
38 [email protected]
39 [email protected] "X"
40 [email protected] " "
41 [email protected] "="
42 [email protected] " "
43 [email protected]
44 [email protected] "("
45 [email protected] ")"
46 [email protected] ";"
47 [email protected] "\n"
48 [email protected] "}"
49 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rs b/crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rs
new file mode 100644
index 000000000..cd204f65e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rs
@@ -0,0 +1,5 @@
1type X = ();
2
3fn main() {
4 let ():::X = ();
5}
diff --git a/crates/syntax/test_data/parser/ok/0056_neq_in_type.rast b/crates/syntax/test_data/parser/ok/0056_neq_in_type.rast
new file mode 100644
index 000000000..3ef916e55
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0056_neq_in_type.rast
@@ -0,0 +1,64 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "if"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "1.0f32"
23 [email protected] "."
24 [email protected]
25 [email protected] "floor"
26 [email protected]
27 [email protected] "("
28 [email protected] ")"
29 [email protected] " "
30 [email protected] "as"
31 [email protected] " "
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected] "i64"
37 [email protected] " "
38 [email protected] "!="
39 [email protected] " "
40 [email protected]
41 [email protected]
42 [email protected]
43 [email protected] "1.0f32"
44 [email protected] "."
45 [email protected]
46 [email protected] "floor"
47 [email protected]
48 [email protected] "("
49 [email protected] ")"
50 [email protected] " "
51 [email protected] "as"
52 [email protected] " "
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected] "i64"
58 [email protected] " "
59 [email protected]
60 [email protected] "{"
61 [email protected] "}"
62 [email protected] "\n"
63 [email protected] "}"
64 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0056_neq_in_type.rs b/crates/syntax/test_data/parser/ok/0056_neq_in_type.rs
new file mode 100644
index 000000000..6210683ce
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0056_neq_in_type.rs
@@ -0,0 +1,3 @@
1fn main() {
2 if 1.0f32.floor() as i64 != 1.0f32.floor() as i64 {}
3}
diff --git a/crates/syntax/test_data/parser/ok/0057_loop_in_call.rast b/crates/syntax/test_data/parser/ok/0057_loop_in_call.rast
new file mode 100644
index 000000000..76301004a
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0057_loop_in_call.rast
@@ -0,0 +1,56 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected] "x"
13 [email protected] ":"
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "i32"
20 [email protected] ")"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] "\n\n"
26 [email protected]
27 [email protected] "fn"
28 [email protected] " "
29 [email protected]
30 [email protected] "main"
31 [email protected]
32 [email protected] "("
33 [email protected] ")"
34 [email protected] " "
35 [email protected]
36 [email protected] "{"
37 [email protected] "\n "
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected]
43 [email protected]
44 [email protected] "foo"
45 [email protected]
46 [email protected] "("
47 [email protected]
48 [email protected] "loop"
49 [email protected] " "
50 [email protected]
51 [email protected] "{"
52 [email protected] "}"
53 [email protected] ")"
54 [email protected] ";"
55 [email protected] "\n"
56 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0057_loop_in_call.rs b/crates/syntax/test_data/parser/ok/0057_loop_in_call.rs
new file mode 100644
index 000000000..31c12522f
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0057_loop_in_call.rs
@@ -0,0 +1,5 @@
1fn foo(x: i32) {}
2
3fn main() {
4 foo(loop {});
5} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rast b/crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rast
new file mode 100644
index 000000000..a1dfd58f2
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rast
@@ -0,0 +1,96 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "1"
19 [email protected] " "
20 [email protected] "+"
21 [email protected] " "
22 [email protected]
23 [email protected] "*"
24 [email protected]
25 [email protected] "&"
26 [email protected]
27 [email protected] "2"
28 [email protected] " "
29 [email protected] "+"
30 [email protected] " "
31 [email protected]
32 [email protected] "3"
33 [email protected] ";"
34 [email protected] "\n "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "*"
39 [email protected]
40 [email protected] "&"
41 [email protected]
42 [email protected] "1"
43 [email protected] " "
44 [email protected] "as"
45 [email protected] " "
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected] "u64"
51 [email protected] ";"
52 [email protected] "\n "
53 [email protected]
54 [email protected]
55 [email protected] "*"
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "x"
62 [email protected]
63 [email protected] "("
64 [email protected]
65 [email protected] "1"
66 [email protected] ")"
67 [email protected] ";"
68 [email protected] "\n "
69 [email protected]
70 [email protected]
71 [email protected] "&"
72 [email protected]
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected] "x"
78 [email protected] "["
79 [email protected]
80 [email protected] "1"
81 [email protected] "]"
82 [email protected] ";"
83 [email protected] "\n "
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected] "-"
88 [email protected]
89 [email protected] "1"
90 [email protected] ".."
91 [email protected]
92 [email protected] "2"
93 [email protected] ";"
94 [email protected] "\n"
95 [email protected] "}"
96 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rs b/crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rs
new file mode 100644
index 000000000..100fccc64
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rs
@@ -0,0 +1,7 @@
1fn foo() {
2 1 + *&2 + 3;
3 *&1 as u64;
4 *x(1);
5 &x[1];
6 -1..2;
7}
diff --git a/crates/syntax/test_data/parser/ok/0059_loops_in_parens.rast b/crates/syntax/test_data/parser/ok/0059_loops_in_parens.rast
new file mode 100644
index 000000000..213f7b381
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0059_loops_in_parens.rast
@@ -0,0 +1,97 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "Some"
21 [email protected]
22 [email protected] "("
23 [email protected]
24 [email protected] "for"
25 [email protected] " "
26 [email protected]
27 [email protected] "_"
28 [email protected] " "
29 [email protected] "in"
30 [email protected] " "
31 [email protected]
32 [email protected]
33 [email protected] "["
34 [email protected]
35 [email protected] "1"
36 [email protected] "]"
37 [email protected] "."
38 [email protected]
39 [email protected] "into_iter"
40 [email protected]
41 [email protected] "("
42 [email protected] ")"
43 [email protected] " "
44 [email protected]
45 [email protected] "{"
46 [email protected] "}"
47 [email protected] ")"
48 [email protected] ";"
49 [email protected] "\n "
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected] "Some"
57 [email protected]
58 [email protected] "("
59 [email protected]
60 [email protected] "loop"
61 [email protected] " "
62 [email protected]
63 [email protected] "{"
64 [email protected] " "
65 [email protected]
66 [email protected]
67 [email protected] "break"
68 [email protected] ";"
69 [email protected] " "
70 [email protected] "}"
71 [email protected] ")"
72 [email protected] ";"
73 [email protected] "\n "
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected] "Some"
81 [email protected]
82 [email protected] "("
83 [email protected]
84 [email protected] "while"
85 [email protected] " "
86 [email protected]
87 [email protected]
88 [email protected] "true"
89 [email protected] " "
90 [email protected]
91 [email protected] "{"
92 [email protected] "}"
93 [email protected] ")"
94 [email protected] ";"
95 [email protected] "\n"
96 [email protected] "}"
97 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0059_loops_in_parens.rs b/crates/syntax/test_data/parser/ok/0059_loops_in_parens.rs
new file mode 100644
index 000000000..6e8b718aa
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0059_loops_in_parens.rs
@@ -0,0 +1,5 @@
1fn main() {
2 Some(for _ in [1].into_iter() {});
3 Some(loop { break; });
4 Some(while true {});
5}
diff --git a/crates/syntax/test_data/parser/ok/0060_as_range.rast b/crates/syntax/test_data/parser/ok/0060_as_range.rast
new file mode 100644
index 000000000..1fd1a2888
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0060_as_range.rast
@@ -0,0 +1,55 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "0"
19 [email protected] " "
20 [email protected] "as"
21 [email protected] " "
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "usize"
27 [email protected] " "
28 [email protected] ".."
29 [email protected] ";"
30 [email protected] "\n "
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected] "1"
36 [email protected] " "
37 [email protected] "+"
38 [email protected] " "
39 [email protected]
40 [email protected]
41 [email protected] "2"
42 [email protected] " "
43 [email protected] "as"
44 [email protected] " "
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "usize"
50 [email protected] " "
51 [email protected] ".."
52 [email protected] ";"
53 [email protected] "\n"
54 [email protected] "}"
55 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0060_as_range.rs b/crates/syntax/test_data/parser/ok/0060_as_range.rs
new file mode 100644
index 000000000..f063ffadb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0060_as_range.rs
@@ -0,0 +1,4 @@
1fn main() {
2 0 as usize ..;
3 1 + 2 as usize ..;
4}
diff --git a/crates/syntax/test_data/parser/ok/0061_match_full_range.rast b/crates/syntax/test_data/parser/ok/0061_match_full_range.rast
new file mode 100644
index 000000000..ba49c115b
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0061_match_full_range.rast
@@ -0,0 +1,26 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "match"
16 [email protected] " "
17 [email protected]
18 [email protected] ".."
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "\n "
23 [email protected] "}"
24 [email protected] "\n"
25 [email protected] "}"
26 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0061_match_full_range.rs b/crates/syntax/test_data/parser/ok/0061_match_full_range.rs
new file mode 100644
index 000000000..2c4ed11e1
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0061_match_full_range.rs
@@ -0,0 +1,4 @@
1fn main() {
2 match .. {
3 }
4}
diff --git a/crates/syntax/test_data/parser/ok/0062_macro_2.0.rast b/crates/syntax/test_data/parser/ok/0062_macro_2.0.rast
new file mode 100644
index 000000000..0c22c31a4
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0062_macro_2.0.rast
@@ -0,0 +1,175 @@
1[email protected]
2 [email protected]
3 [email protected] "macro"
4 [email protected] " "
5 [email protected]
6 [email protected] "parse_use_trees"
7 [email protected]
8 [email protected]
9 [email protected] "("
10 [email protected] "$"
11 [email protected]
12 [email protected] "("
13 [email protected] "$"
14 [email protected] "s"
15 [email protected] ":"
16 [email protected] "expr"
17 [email protected] ")"
18 [email protected] ","
19 [email protected] "*"
20 [email protected] " "
21 [email protected] "$"
22 [email protected]
23 [email protected] "("
24 [email protected] ","
25 [email protected] ")"
26 [email protected] "*"
27 [email protected] ")"
28 [email protected] " "
29 [email protected]
30 [email protected] "{"
31 [email protected] "\n "
32 [email protected] "vec"
33 [email protected] "!"
34 [email protected]
35 [email protected] "["
36 [email protected] "\n "
37 [email protected] "$"
38 [email protected]
39 [email protected] "("
40 [email protected] "parse_use_tree"
41 [email protected]
42 [email protected] "("
43 [email protected] "$"
44 [email protected] "s"
45 [email protected] ")"
46 [email protected] ","
47 [email protected] ")"
48 [email protected] "*"
49 [email protected] "\n "
50 [email protected] "]"
51 [email protected] "\n"
52 [email protected] "}"
53 [email protected] "\n\n"
54 [email protected]
55 [email protected]
56 [email protected] "#"
57 [email protected] "["
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "test"
62 [email protected] "]"
63 [email protected] "\n"
64 [email protected] "fn"
65 [email protected] " "
66 [email protected]
67 [email protected] "test_use_tree_merge"
68 [email protected]
69 [email protected] "("
70 [email protected] ")"
71 [email protected] " "
72 [email protected]
73 [email protected] "{"
74 [email protected] "\n "
75 [email protected]
76 [email protected] "macro"
77 [email protected] " "
78 [email protected]
79 [email protected] "test_merge"
80 [email protected]
81 [email protected]
82 [email protected] "("
83 [email protected]
84 [email protected] "["
85 [email protected] "$"
86 [email protected]
87 [email protected] "("
88 [email protected] "$"
89 [email protected] "input"
90 [email protected] ":"
91 [email protected] "expr"
92 [email protected] ")"
93 [email protected] ","
94 [email protected] "*"
95 [email protected] " "
96 [email protected] "$"
97 [email protected]
98 [email protected] "("
99 [email protected] ","
100 [email protected] ")"
101 [email protected] "*"
102 [email protected] "]"
103 [email protected] ","
104 [email protected] " "
105 [email protected]
106 [email protected] "["
107 [email protected] "$"
108 [email protected]
109 [email protected] "("
110 [email protected] "$"
111 [email protected] "output"
112 [email protected] ":"
113 [email protected] "expr"
114 [email protected] ")"
115 [email protected] ","
116 [email protected] "*"
117 [email protected] " "
118 [email protected] "$"
119 [email protected]
120 [email protected] "("
121 [email protected] ","
122 [email protected] ")"
123 [email protected] "*"
124 [email protected] "]"
125 [email protected] ")"
126 [email protected] " "
127 [email protected]
128 [email protected] "{"
129 [email protected] "\n "
130 [email protected] "assert_eq"
131 [email protected] "!"
132 [email protected]
133 [email protected] "("
134 [email protected] "\n "
135 [email protected] "merge_use_trees"
136 [email protected]
137 [email protected] "("
138 [email protected] "parse_use_trees"
139 [email protected] "!"
140 [email protected]
141 [email protected] "("
142 [email protected] "$"
143 [email protected]
144 [email protected] "("
145 [email protected] "$"
146 [email protected] "input"
147 [email protected] ","
148 [email protected] ")"
149 [email protected] "*"
150 [email protected] ")"
151 [email protected] ")"
152 [email protected] ","
153 [email protected] "\n "
154 [email protected] "parse_use_trees"
155 [email protected] "!"
156 [email protected]
157 [email protected] "("
158 [email protected] "$"
159 [email protected]
160 [email protected] "("
161 [email protected] "$"
162 [email protected] "output"
163 [email protected] ","
164 [email protected] ")"
165 [email protected] "*"
166 [email protected] ")"
167 [email protected] ","
168 [email protected] "\n "
169 [email protected] ")"
170 [email protected] ";"
171 [email protected] "\n "
172 [email protected] "}"
173 [email protected] "\n"
174 [email protected] "}"
175 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0062_macro_2.0.rs b/crates/syntax/test_data/parser/ok/0062_macro_2.0.rs
new file mode 100644
index 000000000..781047ba1
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0062_macro_2.0.rs
@@ -0,0 +1,15 @@
1macro parse_use_trees($($s:expr),* $(,)*) {
2 vec![
3 $(parse_use_tree($s),)*
4 ]
5}
6
7#[test]
8fn test_use_tree_merge() {
9 macro test_merge([$($input:expr),* $(,)*], [$($output:expr),* $(,)*]) {
10 assert_eq!(
11 merge_use_trees(parse_use_trees!($($input,)*)),
12 parse_use_trees!($($output,)*),
13 );
14 }
15}
diff --git a/crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rast b/crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rast
new file mode 100644
index 000000000..8eda59976
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rast
@@ -0,0 +1,194 @@
1[email protected]
2 [email protected]
3 [email protected] "trait"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected] "fn"
13 [email protected] " "
14 [email protected]
15 [email protected] "f1"
16 [email protected]
17 [email protected] "("
18 [email protected]
19 [email protected]
20 [email protected] "("
21 [email protected]
22 [email protected]
23 [email protected] "a"
24 [email protected] ","
25 [email protected] " "
26 [email protected]
27 [email protected]
28 [email protected] "b"
29 [email protected] ")"
30 [email protected] ":"
31 [email protected] " "
32 [email protected]
33 [email protected] "("
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "usize"
39 [email protected] ","
40 [email protected] " "
41 [email protected]
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected] "usize"
46 [email protected] ")"
47 [email protected] ")"
48 [email protected] " "
49 [email protected]
50 [email protected] "{"
51 [email protected] "}"
52 [email protected] "\n "
53 [email protected]
54 [email protected] "fn"
55 [email protected] " "
56 [email protected]
57 [email protected] "f2"
58 [email protected]
59 [email protected] "("
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected] "S"
66 [email protected] " "
67 [email protected]
68 [email protected] "{"
69 [email protected] " "
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected] "a"
74 [email protected] ","
75 [email protected] " "
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected] "b"
80 [email protected] " "
81 [email protected] "}"
82 [email protected] ":"
83 [email protected] " "
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected] "S"
89 [email protected] ")"
90 [email protected] " "
91 [email protected]
92 [email protected] "{"
93 [email protected] "}"
94 [email protected] "\n "
95 [email protected]
96 [email protected] "fn"
97 [email protected] " "
98 [email protected]
99 [email protected] "f3"
100 [email protected]
101 [email protected] "("
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected] "NewType"
108 [email protected] "("
109 [email protected]
110 [email protected]
111 [email protected] "a"
112 [email protected] ")"
113 [email protected] ":"
114 [email protected] " "
115 [email protected]
116 [email protected]
117 [email protected]
118 [email protected]
119 [email protected] "NewType"
120 [email protected] ")"
121 [email protected] " "
122 [email protected]
123 [email protected] "{"
124 [email protected] "}"
125 [email protected] "\n "
126 [email protected]
127 [email protected] "fn"
128 [email protected] " "
129 [email protected]
130 [email protected] "f4"
131 [email protected]
132 [email protected] "("
133 [email protected]
134 [email protected]
135 [email protected] "&"
136 [email protected]
137 [email protected] "&"
138 [email protected]
139 [email protected]
140 [email protected] "a"
141 [email protected] ":"
142 [email protected] " "
143 [email protected]
144 [email protected] "&"
145 [email protected]
146 [email protected] "&"
147 [email protected]
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected] "usize"
152 [email protected] ")"
153 [email protected] " "
154 [email protected]
155 [email protected] "{"
156 [email protected] "}"
157 [email protected] "\n "
158 [email protected]
159 [email protected] "fn"
160 [email protected] " "
161 [email protected]
162 [email protected] "bar"
163 [email protected]
164 [email protected] "("
165 [email protected]
166 [email protected]
167 [email protected] "_"
168 [email protected] ":"
169 [email protected] " "
170 [email protected]
171 [email protected]
172 [email protected]
173 [email protected]
174 [email protected] "u64"
175 [email protected] ","
176 [email protected] " "
177 [email protected]
178 [email protected]
179 [email protected] "mut"
180 [email protected] " "
181 [email protected]
182 [email protected] "x"
183 [email protected] ":"
184 [email protected] " "
185 [email protected]
186 [email protected]
187 [email protected]
188 [email protected]
189 [email protected] "i32"
190 [email protected] ")"
191 [email protected] ";"
192 [email protected] "\n"
193 [email protected] "}"
194 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rs b/crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rs
new file mode 100644
index 000000000..3b666af8e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rs
@@ -0,0 +1,7 @@
1trait T {
2 fn f1((a, b): (usize, usize)) {}
3 fn f2(S { a, b }: S) {}
4 fn f3(NewType(a): NewType) {}
5 fn f4(&&a: &&usize) {}
6 fn bar(_: u64, mut x: i32);
7}
diff --git a/crates/syntax/test_data/parser/ok/0063_variadic_fun.rast b/crates/syntax/test_data/parser/ok/0063_variadic_fun.rast
new file mode 100644
index 000000000..4009b3ff8
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0063_variadic_fun.rast
@@ -0,0 +1,133 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "extern"
5 [email protected] " "
6 [email protected] "\"C\""
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected] "fn"
13 [email protected] " "
14 [email protected]
15 [email protected] "a"
16 [email protected]
17 [email protected] "("
18 [email protected]
19 [email protected]
20 [email protected] "_"
21 [email protected] ":"
22 [email protected] " "
23 [email protected]
24 [email protected] "*"
25 [email protected] "mut"
26 [email protected] " "
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "u8"
32 [email protected] ","
33 [email protected] " "
34 [email protected]
35 [email protected] "..."
36 [email protected] ","
37 [email protected] ")"
38 [email protected] ";"
39 [email protected] "\n "
40 [email protected]
41 [email protected] "fn"
42 [email protected] " "
43 [email protected]
44 [email protected] "b"
45 [email protected]
46 [email protected] "("
47 [email protected]
48 [email protected]
49 [email protected] "_"
50 [email protected] ":"
51 [email protected] " "
52 [email protected]
53 [email protected] "*"
54 [email protected] "mut"
55 [email protected] " "
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected] "u8"
61 [email protected] ","
62 [email protected] " "
63 [email protected]
64 [email protected]
65 [email protected] "_"
66 [email protected] ":"
67 [email protected] " "
68 [email protected] "..."
69 [email protected] ")"
70 [email protected] ";"
71 [email protected] "\n "
72 [email protected]
73 [email protected] "fn"
74 [email protected] " "
75 [email protected]
76 [email protected] "c"
77 [email protected]
78 [email protected] "("
79 [email protected]
80 [email protected]
81 [email protected] "_"
82 [email protected] ":"
83 [email protected] " "
84 [email protected]
85 [email protected] "*"
86 [email protected] "mut"
87 [email protected] " "
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected]
92 [email protected] "u8"
93 [email protected] ","
94 [email protected] " "
95 [email protected]
96 [email protected] "#"
97 [email protected] "["
98 [email protected]
99 [email protected]
100 [email protected]
101 [email protected] "cfg"
102 [email protected]
103 [email protected] "("
104 [email protected] "never"
105 [email protected] ")"
106 [email protected] "]"
107 [email protected] " "
108 [email protected]
109 [email protected]
110 [email protected] "["
111 [email protected]
112 [email protected]
113 [email protected] "w"
114 [email protected] ","
115 [email protected] " "
116 [email protected]
117 [email protected]
118 [email protected] "t"
119 [email protected] ","
120 [email protected] " "
121 [email protected]
122 [email protected]
123 [email protected] "f"
124 [email protected] "]"
125 [email protected] ":"
126 [email protected] " "
127 [email protected] "..."
128 [email protected] ","
129 [email protected] ")"
130 [email protected] ";"
131 [email protected] "\n"
132 [email protected] "}"
133 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0063_variadic_fun.rs b/crates/syntax/test_data/parser/ok/0063_variadic_fun.rs
new file mode 100644
index 000000000..a16afbaf3
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0063_variadic_fun.rs
@@ -0,0 +1,5 @@
1extern "C" {
2 fn a(_: *mut u8, ...,);
3 fn b(_: *mut u8, _: ...);
4 fn c(_: *mut u8, #[cfg(never)] [w, t, f]: ...,);
5}
diff --git a/crates/syntax/test_data/parser/ok/0064_impl_fn_params.rast b/crates/syntax/test_data/parser/ok/0064_impl_fn_params.rast
new file mode 100644
index 000000000..a3c6ed82e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0064_impl_fn_params.rast
@@ -0,0 +1,162 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "U"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "fn"
16 [email protected] " "
17 [email protected]
18 [email protected] "f1"
19 [email protected]
20 [email protected] "("
21 [email protected]
22 [email protected]
23 [email protected] "("
24 [email protected]
25 [email protected]
26 [email protected] "a"
27 [email protected] ","
28 [email protected] " "
29 [email protected]
30 [email protected]
31 [email protected] "b"
32 [email protected] ")"
33 [email protected] ":"
34 [email protected] " "
35 [email protected]
36 [email protected] "("
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "usize"
42 [email protected] ","
43 [email protected] " "
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "usize"
49 [email protected] ")"
50 [email protected] ")"
51 [email protected] " "
52 [email protected]
53 [email protected] "{"
54 [email protected] "}"
55 [email protected] "\n "
56 [email protected]
57 [email protected] "fn"
58 [email protected] " "
59 [email protected]
60 [email protected] "f2"
61 [email protected]
62 [email protected] "("
63 [email protected]
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected]
68 [email protected] "S"
69 [email protected] " "
70 [email protected]
71 [email protected] "{"
72 [email protected] " "
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected] "a"
77 [email protected] ","
78 [email protected] " "
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected] "b"
83 [email protected] " "
84 [email protected] "}"
85 [email protected] ":"
86 [email protected] " "
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected] "S"
92 [email protected] ")"
93 [email protected] " "
94 [email protected]
95 [email protected] "{"
96 [email protected] "}"
97 [email protected] "\n "
98 [email protected]
99 [email protected] "fn"
100 [email protected] " "
101 [email protected]
102 [email protected] "f3"
103 [email protected]
104 [email protected] "("
105 [email protected]
106 [email protected]
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected] "NewType"
111 [email protected] "("
112 [email protected]
113 [email protected]
114 [email protected] "a"
115 [email protected] ")"
116 [email protected] ":"
117 [email protected] " "
118 [email protected]
119 [email protected]
120 [email protected]
121 [email protected]
122 [email protected] "NewType"
123 [email protected] ")"
124 [email protected] " "
125 [email protected]
126 [email protected] "{"
127 [email protected] "}"
128 [email protected] "\n "
129 [email protected]
130 [email protected] "fn"
131 [email protected] " "
132 [email protected]
133 [email protected] "f4"
134 [email protected]
135 [email protected] "("
136 [email protected]
137 [email protected]
138 [email protected] "&"
139 [email protected]
140 [email protected] "&"
141 [email protected]
142 [email protected]
143 [email protected] "a"
144 [email protected] ":"
145 [email protected] " "
146 [email protected]
147 [email protected] "&"
148 [email protected]
149 [email protected] "&"
150 [email protected]
151 [email protected]
152 [email protected]
153 [email protected]
154 [email protected] "usize"
155 [email protected] ")"
156 [email protected] " "
157 [email protected]
158 [email protected] "{"
159 [email protected] "}"
160 [email protected] "\n"
161 [email protected] "}"
162 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0064_impl_fn_params.rs b/crates/syntax/test_data/parser/ok/0064_impl_fn_params.rs
new file mode 100644
index 000000000..b49e872d7
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0064_impl_fn_params.rs
@@ -0,0 +1,6 @@
1impl U {
2 fn f1((a, b): (usize, usize)) {}
3 fn f2(S { a, b }: S) {}
4 fn f3(NewType(a): NewType) {}
5 fn f4(&&a: &&usize) {}
6}
diff --git a/crates/syntax/test_data/parser/ok/0065_comment_newline.rast b/crates/syntax/test_data/parser/ok/0065_comment_newline.rast
new file mode 100644
index 000000000..29bd38c05
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0065_comment_newline.rast
@@ -0,0 +1,16 @@
1[email protected]
2 [email protected]
3 [email protected] "/// Example"
4 [email protected] "\n\n"
5 [email protected] "fn"
6 [email protected] " "
7 [email protected]
8 [email protected] "test"
9 [email protected]
10 [email protected] "("
11 [email protected] ")"
12 [email protected] " "
13 [email protected]
14 [email protected] "{"
15 [email protected] "}"
16 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0065_comment_newline.rs b/crates/syntax/test_data/parser/ok/0065_comment_newline.rs
new file mode 100644
index 000000000..1fafe216b
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0065_comment_newline.rs
@@ -0,0 +1,3 @@
1/// Example
2
3fn test() {}
diff --git a/crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast b/crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
new file mode 100644
index 000000000..2c699ffcb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
@@ -0,0 +1,60 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "f"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ">"
13 [email protected]
14 [email protected] "("
15 [email protected] ")"
16 [email protected] " "
17 [email protected]
18 [email protected] "where"
19 [email protected] " "
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "T"
26 [email protected] ":"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "Fn"
35 [email protected]
36 [email protected] "("
37 [email protected] ")"
38 [email protected] " "
39 [email protected]
40 [email protected] "->"
41 [email protected] " "
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected] "u8"
47 [email protected] " "
48 [email protected] "+"
49 [email protected] " "
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected] "Send"
56 [email protected] " "
57 [email protected]
58 [email protected] "{"
59 [email protected] "}"
60 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rs b/crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rs
new file mode 100644
index 000000000..29f3655e0
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rs
@@ -0,0 +1 @@
fn f<T>() where T: Fn() -> u8 + Send {}
diff --git a/crates/syntax/test_data/parser/ok/0066_default_modifier.rast b/crates/syntax/test_data/parser/ok/0066_default_modifier.rast
new file mode 100644
index 000000000..e9b57ec3b
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0066_default_modifier.rast
@@ -0,0 +1,218 @@
1[email protected]
2 [email protected]
3 [email protected] "trait"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected] "default"
13 [email protected] " "
14 [email protected] "type"
15 [email protected] " "
16 [email protected]
17 [email protected] "T"
18 [email protected] " "
19 [email protected] "="
20 [email protected] " "
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "Bar"
26 [email protected] ";"
27 [email protected] "\n "
28 [email protected]
29 [email protected] "default"
30 [email protected] " "
31 [email protected] "const"
32 [email protected] " "
33 [email protected]
34 [email protected] "f"
35 [email protected] ":"
36 [email protected] " "
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "u8"
42 [email protected] " "
43 [email protected] "="
44 [email protected] " "
45 [email protected]
46 [email protected] "0"
47 [email protected] ";"
48 [email protected] "\n "
49 [email protected]
50 [email protected] "default"
51 [email protected] " "
52 [email protected] "fn"
53 [email protected] " "
54 [email protected]
55 [email protected] "foo"
56 [email protected]
57 [email protected] "("
58 [email protected] ")"
59 [email protected] " "
60 [email protected]
61 [email protected] "{"
62 [email protected] "}"
63 [email protected] "\n "
64 [email protected]
65 [email protected] "default"
66 [email protected] " "
67 [email protected] "unsafe"
68 [email protected] " "
69 [email protected] "fn"
70 [email protected] " "
71 [email protected]
72 [email protected] "bar"
73 [email protected]
74 [email protected] "("
75 [email protected] ")"
76 [email protected] " "
77 [email protected]
78 [email protected] "{"
79 [email protected] "}"
80 [email protected] "\n"
81 [email protected] "}"
82 [email protected] "\n\n"
83 [email protected]
84 [email protected] "impl"
85 [email protected] " "
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected] "T"
91 [email protected] " "
92 [email protected] "for"
93 [email protected] " "
94 [email protected]
95 [email protected]
96 [email protected]
97 [email protected]
98 [email protected] "Foo"
99 [email protected] " "
100 [email protected]
101 [email protected] "{"
102 [email protected] "\n "
103 [email protected]
104 [email protected] "default"
105 [email protected] " "
106 [email protected] "type"
107 [email protected] " "
108 [email protected]
109 [email protected] "T"
110 [email protected] " "
111 [email protected] "="
112 [email protected] " "
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected]
117 [email protected] "Bar"
118 [email protected] ";"
119 [email protected] "\n "
120 [email protected]
121 [email protected] "default"
122 [email protected] " "
123 [email protected] "const"
124 [email protected] " "
125 [email protected]
126 [email protected] "f"
127 [email protected] ":"
128 [email protected] " "
129 [email protected]
130 [email protected]
131 [email protected]
132 [email protected]
133 [email protected] "u8"
134 [email protected] " "
135 [email protected] "="
136 [email protected] " "
137 [email protected]
138 [email protected] "0"
139 [email protected] ";"
140 [email protected] "\n "
141 [email protected]
142 [email protected] "default"
143 [email protected] " "
144 [email protected] "fn"
145 [email protected] " "
146 [email protected]
147 [email protected] "foo"
148 [email protected]
149 [email protected] "("
150 [email protected] ")"
151 [email protected] " "
152 [email protected]
153 [email protected] "{"
154 [email protected] "}"
155 [email protected] "\n "
156 [email protected]
157 [email protected] "default"
158 [email protected] " "
159 [email protected] "unsafe"
160 [email protected] " "
161 [email protected] "fn"
162 [email protected] " "
163 [email protected]
164 [email protected] "bar"
165 [email protected]
166 [email protected] "("
167 [email protected] ")"
168 [email protected] " "
169 [email protected]
170 [email protected] "{"
171 [email protected] "}"
172 [email protected] "\n"
173 [email protected] "}"
174 [email protected] "\n\n"
175 [email protected]
176 [email protected] "default"
177 [email protected] " "
178 [email protected] "impl"
179 [email protected] " "
180 [email protected]
181 [email protected]
182 [email protected]
183 [email protected]
184 [email protected] "T"
185 [email protected] " "
186 [email protected] "for"
187 [email protected] " "
188 [email protected]
189 [email protected] "("
190 [email protected] ")"
191 [email protected] " "
192 [email protected]
193 [email protected] "{"
194 [email protected] "}"
195 [email protected] "\n"
196 [email protected]
197 [email protected] "default"
198 [email protected] " "
199 [email protected] "unsafe"
200 [email protected] " "
201 [email protected] "impl"
202 [email protected] " "
203 [email protected]
204 [email protected]
205 [email protected]
206 [email protected]
207 [email protected] "T"
208 [email protected] " "
209 [email protected] "for"
210 [email protected] " "
211 [email protected]
212 [email protected] "("
213 [email protected] ")"
214 [email protected] " "
215 [email protected]
216 [email protected] "{"
217 [email protected] "}"
218 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0066_default_modifier.rs b/crates/syntax/test_data/parser/ok/0066_default_modifier.rs
new file mode 100644
index 000000000..e443e3495
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0066_default_modifier.rs
@@ -0,0 +1,16 @@
1trait T {
2 default type T = Bar;
3 default const f: u8 = 0;
4 default fn foo() {}
5 default unsafe fn bar() {}
6}
7
8impl T for Foo {
9 default type T = Bar;
10 default const f: u8 = 0;
11 default fn foo() {}
12 default unsafe fn bar() {}
13}
14
15default impl T for () {}
16default unsafe impl T for () {}
diff --git a/crates/syntax/test_data/parser/ok/0067_where_for_pred.rast b/crates/syntax/test_data/parser/ok/0067_where_for_pred.rast
new file mode 100644
index 000000000..8f8639a37
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0067_where_for_pred.rast
@@ -0,0 +1,392 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "for_trait"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "F"
12 [email protected] ">"
13 [email protected]
14 [email protected] "("
15 [email protected] ")"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "where"
19 [email protected] "\n "
20 [email protected]
21 [email protected] "for"
22 [email protected]
23 [email protected] "<"
24 [email protected]
25 [email protected] "\'a"
26 [email protected] ">"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "F"
33 [email protected] ":"
34 [email protected] " "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "Fn"
42 [email protected]
43 [email protected] "("
44 [email protected]
45 [email protected]
46 [email protected] "&"
47 [email protected] "\'a"
48 [email protected] " "
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected] "str"
54 [email protected] ")"
55 [email protected] ","
56 [email protected] "\n"
57 [email protected]
58 [email protected] "{"
59 [email protected] "\n"
60 [email protected] "}"
61 [email protected] "\n"
62 [email protected]
63 [email protected] "fn"
64 [email protected] " "
65 [email protected]
66 [email protected] "for_ref"
67 [email protected]
68 [email protected] "<"
69 [email protected]
70 [email protected]
71 [email protected] "F"
72 [email protected] ">"
73 [email protected]
74 [email protected] "("
75 [email protected] ")"
76 [email protected] "\n"
77 [email protected]
78 [email protected] "where"
79 [email protected] "\n "
80 [email protected]
81 [email protected] "for"
82 [email protected]
83 [email protected] "<"
84 [email protected]
85 [email protected] "\'a"
86 [email protected] ">"
87 [email protected] " "
88 [email protected]
89 [email protected] "&"
90 [email protected] "\'a"
91 [email protected] " "
92 [email protected]
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected] "F"
97 [email protected] ":"
98 [email protected] " "
99 [email protected]
100 [email protected]
101 [email protected]
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected] "Debug"
106 [email protected] ","
107 [email protected] "\n"
108 [email protected]
109 [email protected] "{"
110 [email protected] "\n"
111 [email protected] "}"
112 [email protected] "\n"
113 [email protected]
114 [email protected] "fn"
115 [email protected] " "
116 [email protected]
117 [email protected] "for_parens"
118 [email protected]
119 [email protected] "<"
120 [email protected]
121 [email protected]
122 [email protected] "F"
123 [email protected] ">"
124 [email protected]
125 [email protected] "("
126 [email protected] ")"
127 [email protected] "\n"
128 [email protected]
129 [email protected] "where"
130 [email protected] "\n "
131 [email protected]
132 [email protected] "for"
133 [email protected]
134 [email protected] "<"
135 [email protected]
136 [email protected] "\'a"
137 [email protected] ">"
138 [email protected] " "
139 [email protected]
140 [email protected] "("
141 [email protected]
142 [email protected] "&"
143 [email protected] "\'a"
144 [email protected] " "
145 [email protected]
146 [email protected]
147 [email protected]
148 [email protected]
149 [email protected] "F"
150 [email protected] ")"
151 [email protected] ":"
152 [email protected] " "
153 [email protected]
154 [email protected]
155 [email protected]
156 [email protected]
157 [email protected]
158 [email protected]
159 [email protected] "Fn"
160 [email protected]
161 [email protected] "("
162 [email protected]
163 [email protected]
164 [email protected] "&"
165 [email protected] "\'a"
166 [email protected] " "
167 [email protected]
168 [email protected]
169 [email protected]
170 [email protected]
171 [email protected] "str"
172 [email protected] ")"
173 [email protected] ","
174 [email protected] "\n"
175 [email protected]
176 [email protected] "{"
177 [email protected] "\n"
178 [email protected] "}"
179 [email protected] "\n"
180 [email protected]
181 [email protected] "fn"
182 [email protected] " "
183 [email protected]
184 [email protected] "for_slice"
185 [email protected]
186 [email protected] "<"
187 [email protected]
188 [email protected]
189 [email protected] "F"
190 [email protected] ">"
191 [email protected]
192 [email protected] "("
193 [email protected] ")"
194 [email protected] "\n"
195 [email protected]
196 [email protected] "where"
197 [email protected] "\n "
198 [email protected]
199 [email protected] "for"
200 [email protected]
201 [email protected] "<"
202 [email protected]
203 [email protected] "\'a"
204 [email protected] ">"
205 [email protected] " "
206 [email protected]
207 [email protected] "["
208 [email protected]
209 [email protected] "&"
210 [email protected] "\'a"
211 [email protected] " "
212 [email protected]
213 [email protected]
214 [email protected]
215 [email protected]
216 [email protected] "F"
217 [email protected] "]"
218 [email protected] ":"
219 [email protected] " "
220 [email protected]
221 [email protected]
222 [email protected]
223 [email protected]
224 [email protected]
225 [email protected]
226 [email protected] "Eq"
227 [email protected] ","
228 [email protected] "\n"
229 [email protected]
230 [email protected] "{"
231 [email protected] "\n"
232 [email protected] "}"
233 [email protected] "\n"
234 [email protected]
235 [email protected] "fn"
236 [email protected] " "
237 [email protected]
238 [email protected] "for_qpath"
239 [email protected]
240 [email protected] "<"
241 [email protected]
242 [email protected]
243 [email protected] "T"
244 [email protected] ">"
245 [email protected]
246 [email protected] "("
247 [email protected]
248 [email protected]
249 [email protected]
250 [email protected] "_t"
251 [email protected] ":"
252 [email protected] " "
253 [email protected]
254 [email protected] "&"
255 [email protected]
256 [email protected]
257 [email protected]
258 [email protected]
259 [email protected] "T"
260 [email protected] ")"
261 [email protected] "\n"
262 [email protected]
263 [email protected] "where"
264 [email protected] "\n "
265 [email protected]
266 [email protected] "for"
267 [email protected]
268 [email protected] "<"
269 [email protected]
270 [email protected] "\'a"
271 [email protected] ">"
272 [email protected] " "
273 [email protected]
274 [email protected]
275 [email protected]
276 [email protected]
277 [email protected] "<"
278 [email protected]
279 [email protected] "&"
280 [email protected] "\'a"
281 [email protected] " "
282 [email protected]
283 [email protected]
284 [email protected]
285 [email protected]
286 [email protected] "T"
287 [email protected] " "
288 [email protected] "as"
289 [email protected] " "
290 [email protected]
291 [email protected]
292 [email protected]
293 [email protected]
294 [email protected] "Baz"
295 [email protected] ">"
296 [email protected] "::"
297 [email protected]
298 [email protected]
299 [email protected] "Foo"
300 [email protected] ":"
301 [email protected] " "
302 [email protected]
303 [email protected]
304 [email protected]
305 [email protected]
306 [email protected]
307 [email protected]
308 [email protected] "Iterator"
309 [email protected] ","
310 [email protected] "\n"
311 [email protected]
312 [email protected] "{"
313 [email protected] "\n"
314 [email protected] "}"
315 [email protected] "\n"
316 [email protected]
317 [email protected] "fn"
318 [email protected] " "
319 [email protected]
320 [email protected] "for_for_fn"
321 [email protected]
322 [email protected] "<"
323 [email protected]
324 [email protected]
325 [email protected] "T"
326 [email protected] ">"
327 [email protected]
328 [email protected] "("
329 [email protected] ")"
330 [email protected] "\n"
331 [email protected]
332 [email protected] "where"
333 [email protected] "\n "
334 [email protected]
335 [email protected] "for"
336 [email protected]
337 [email protected] "<"
338 [email protected]
339 [email protected] "\'a"
340 [email protected] ">"
341 [email protected] " "
342 [email protected]
343 [email protected] "for"
344 [email protected]
345 [email protected] "<"
346 [email protected]
347 [email protected] "\'b"
348 [email protected] ">"
349 [email protected] " "
350 [email protected]
351 [email protected] "fn"
352 [email protected]
353 [email protected] "("
354 [email protected]
355 [email protected]
356 [email protected] "&"
357 [email protected] "\'a"
358 [email protected] " "
359 [email protected]
360 [email protected]
361 [email protected]
362 [email protected]
363 [email protected] "T"
364 [email protected] ","
365 [email protected] " "
366 [email protected]
367 [email protected]
368 [email protected] "&"
369 [email protected] "\'b"
370 [email protected] " "
371 [email protected]
372 [email protected]
373 [email protected]
374 [email protected]
375 [email protected] "T"
376 [email protected] ")"
377 [email protected] ":"
378 [email protected] " "
379 [email protected]
380 [email protected]
381 [email protected]
382 [email protected]
383 [email protected]
384 [email protected]
385 [email protected] "Copy"
386 [email protected] ","
387 [email protected] "\n"
388 [email protected]
389 [email protected] "{"
390 [email protected] "\n"
391 [email protected] "}"
392 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0067_where_for_pred.rs b/crates/syntax/test_data/parser/ok/0067_where_for_pred.rs
new file mode 100644
index 000000000..9058c4619
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0067_where_for_pred.rs
@@ -0,0 +1,30 @@
1fn for_trait<F>()
2where
3 for<'a> F: Fn(&'a str),
4{
5}
6fn for_ref<F>()
7where
8 for<'a> &'a F: Debug,
9{
10}
11fn for_parens<F>()
12where
13 for<'a> (&'a F): Fn(&'a str),
14{
15}
16fn for_slice<F>()
17where
18 for<'a> [&'a F]: Eq,
19{
20}
21fn for_qpath<T>(_t: &T)
22where
23 for<'a> <&'a T as Baz>::Foo: Iterator,
24{
25}
26fn for_for_fn<T>()
27where
28 for<'a> for<'b> fn(&'a T, &'b T): Copy,
29{
30}
diff --git a/crates/syntax/test_data/parser/ok/0068_item_modifiers.rast b/crates/syntax/test_data/parser/ok/0068_item_modifiers.rast
new file mode 100644
index 000000000..50a6d8ee9
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0068_item_modifiers.rast
@@ -0,0 +1,218 @@
1[email protected]
2 [email protected]
3 [email protected] "async"
4 [email protected] " "
5 [email protected] "fn"
6 [email protected] " "
7 [email protected]
8 [email protected] "foo"
9 [email protected]
10 [email protected] "("
11 [email protected] ")"
12 [email protected] " "
13 [email protected]
14 [email protected] "{"
15 [email protected] "}"
16 [email protected] "\n"
17 [email protected]
18 [email protected]
19 [email protected] "extern"
20 [email protected] " "
21 [email protected] "fn"
22 [email protected] " "
23 [email protected]
24 [email protected] "foo"
25 [email protected]
26 [email protected] "("
27 [email protected] ")"
28 [email protected] " "
29 [email protected]
30 [email protected] "{"
31 [email protected] "}"
32 [email protected] "\n"
33 [email protected]
34 [email protected] "const"
35 [email protected] " "
36 [email protected] "fn"
37 [email protected] " "
38 [email protected]
39 [email protected] "foo"
40 [email protected]
41 [email protected] "("
42 [email protected] ")"
43 [email protected] " "
44 [email protected]
45 [email protected] "{"
46 [email protected] "}"
47 [email protected] "\n"
48 [email protected]
49 [email protected] "const"
50 [email protected] " "
51 [email protected] "unsafe"
52 [email protected] " "
53 [email protected] "fn"
54 [email protected] " "
55 [email protected]
56 [email protected] "foo"
57 [email protected]
58 [email protected] "("
59 [email protected] ")"
60 [email protected] " "
61 [email protected]
62 [email protected] "{"
63 [email protected] "}"
64 [email protected] "\n"
65 [email protected]
66 [email protected] "unsafe"
67 [email protected] " "
68 [email protected]
69 [email protected] "extern"
70 [email protected] " "
71 [email protected] "\"C\""
72 [email protected] " "
73 [email protected] "fn"
74 [email protected] " "
75 [email protected]
76 [email protected] "foo"
77 [email protected]
78 [email protected] "("
79 [email protected] ")"
80 [email protected] " "
81 [email protected]
82 [email protected] "{"
83 [email protected] "}"
84 [email protected] "\n"
85 [email protected]
86 [email protected] "unsafe"
87 [email protected] " "
88 [email protected] "fn"
89 [email protected] " "
90 [email protected]
91 [email protected] "foo"
92 [email protected]
93 [email protected] "("
94 [email protected] ")"
95 [email protected] " "
96 [email protected]
97 [email protected] "{"
98 [email protected] "}"
99 [email protected] "\n"
100 [email protected]
101 [email protected] "async"
102 [email protected] " "
103 [email protected] "unsafe"
104 [email protected] " "
105 [email protected] "fn"
106 [email protected] " "
107 [email protected]
108 [email protected] "foo"
109 [email protected]
110 [email protected] "("
111 [email protected] ")"
112 [email protected] " "
113 [email protected]
114 [email protected] "{"
115 [email protected] "}"
116 [email protected] "\n"
117 [email protected]
118 [email protected] "const"
119 [email protected] " "
120 [email protected] "unsafe"
121 [email protected] " "
122 [email protected] "fn"
123 [email protected] " "
124 [email protected]
125 [email protected] "bar"
126 [email protected]
127 [email protected] "("
128 [email protected] ")"
129 [email protected] " "
130 [email protected]
131 [email protected] "{"
132 [email protected] "}"
133 [email protected] "\n\n"
134 [email protected]
135 [email protected] "unsafe"
136 [email protected] " "
137 [email protected] "trait"
138 [email protected] " "
139 [email protected]
140 [email protected] "T"
141 [email protected] " "
142 [email protected]
143 [email protected] "{"
144 [email protected] "}"
145 [email protected] "\n"
146 [email protected]
147 [email protected] "auto"
148 [email protected] " "
149 [email protected] "trait"
150 [email protected] " "
151 [email protected]
152 [email protected] "T"
153 [email protected] " "
154 [email protected]
155 [email protected] "{"
156 [email protected] "}"
157 [email protected] "\n"
158 [email protected]
159 [email protected] "unsafe"
160 [email protected] " "
161 [email protected] "auto"
162 [email protected] " "
163 [email protected] "trait"
164 [email protected] " "
165 [email protected]
166 [email protected] "T"
167 [email protected] " "
168 [email protected]
169 [email protected] "{"
170 [email protected] "}"
171 [email protected] "\n\n"
172 [email protected]
173 [email protected] "unsafe"
174 [email protected] " "
175 [email protected] "impl"
176 [email protected] " "
177 [email protected]
178 [email protected]
179 [email protected]
180 [email protected]
181 [email protected] "Foo"
182 [email protected] " "
183 [email protected]
184 [email protected] "{"
185 [email protected] "}"
186 [email protected] "\n"
187 [email protected]
188 [email protected] "default"
189 [email protected] " "
190 [email protected] "impl"
191 [email protected] " "
192 [email protected]
193 [email protected]
194 [email protected]
195 [email protected]
196 [email protected] "Foo"
197 [email protected] " "
198 [email protected]
199 [email protected] "{"
200 [email protected] "}"
201 [email protected] "\n"
202 [email protected]
203 [email protected] "unsafe"
204 [email protected] " "
205 [email protected] "default"
206 [email protected] " "
207 [email protected] "impl"
208 [email protected] " "
209 [email protected]
210 [email protected]
211 [email protected]
212 [email protected]
213 [email protected] "Foo"
214 [email protected] " "
215 [email protected]
216 [email protected] "{"
217 [email protected] "}"
218 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0068_item_modifiers.rs b/crates/syntax/test_data/parser/ok/0068_item_modifiers.rs
new file mode 100644
index 000000000..8d697c04b
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0068_item_modifiers.rs
@@ -0,0 +1,16 @@
1async fn foo() {}
2extern fn foo() {}
3const fn foo() {}
4const unsafe fn foo() {}
5unsafe extern "C" fn foo() {}
6unsafe fn foo() {}
7async unsafe fn foo() {}
8const unsafe fn bar() {}
9
10unsafe trait T {}
11auto trait T {}
12unsafe auto trait T {}
13
14unsafe impl Foo {}
15default impl Foo {}
16unsafe default impl Foo {}