aboutsummaryrefslogtreecommitdiff
path: root/crates/syntax/test_data/parser
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-08-12 17:31:42 +0100
committerGitHub <[email protected]>2020-08-12 17:31:42 +0100
commitd583f2c46d22cf8d643ebf98be9cb7059a304431 (patch)
tree9d898eb9600b0c36a74e4f95238f679c683fa566 /crates/syntax/test_data/parser
parent3d6889cba72a9d02199f7adaa2ecc69bc30af834 (diff)
parenta1c187eef3ba08076aedb5154929f7eda8d1b424 (diff)
Merge #5729
5729: Rename ra_syntax -> syntax r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
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]