aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/ra_assists/src/ast_transform.rs2
-rw-r--r--crates/ra_assists/src/doc_tests/generated.rs23
-rw-r--r--crates/ra_assists/src/handlers/add_missing_impl_members.rs194
-rw-r--r--crates/ra_assists/src/handlers/early_return.rs16
-rw-r--r--crates/ra_assists/src/handlers/inline_local_variable.rs1
-rw-r--r--crates/ra_assists/src/handlers/introduce_variable.rs2
-rw-r--r--crates/ra_assists/src/handlers/move_guard.rs4
-rw-r--r--crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs2
-rw-r--r--crates/ra_assists/src/handlers/unwrap_block.rs348
-rw-r--r--crates/ra_assists/src/lib.rs2
-rw-r--r--crates/ra_fmt/src/lib.rs1
-rw-r--r--crates/ra_hir/src/code_model.rs15
-rw-r--r--crates/ra_hir/src/lib.rs3
-rw-r--r--crates/ra_hir/src/semantics.rs7
-rw-r--r--crates/ra_hir/src/semantics/source_to_def.rs2
-rw-r--r--crates/ra_hir/src/source_analyzer.rs3
-rw-r--r--crates/ra_hir_def/src/adt.rs18
-rw-r--r--crates/ra_hir_def/src/attr.rs1
-rw-r--r--crates/ra_hir_def/src/body.rs2
-rw-r--r--crates/ra_hir_def/src/body/lower.rs63
-rw-r--r--crates/ra_hir_def/src/data.rs21
-rw-r--r--crates/ra_hir_def/src/expr.rs4
-rw-r--r--crates/ra_hir_def/src/generics.rs68
-rw-r--r--crates/ra_hir_def/src/nameres/collector.rs2
-rw-r--r--crates/ra_hir_def/src/nameres/raw.rs29
-rw-r--r--crates/ra_hir_def/src/nameres/tests/macros.rs37
-rw-r--r--crates/ra_hir_def/src/path.rs5
-rw-r--r--crates/ra_hir_def/src/path/lower.rs38
-rw-r--r--crates/ra_hir_def/src/type_ref.rs52
-rw-r--r--crates/ra_hir_expand/src/builtin_derive.rs2
-rw-r--r--crates/ra_hir_expand/src/builtin_macro.rs4
-rw-r--r--crates/ra_hir_expand/src/db.rs3
-rw-r--r--crates/ra_hir_expand/src/hygiene.rs33
-rw-r--r--crates/ra_hir_expand/src/lib.rs2
-rw-r--r--crates/ra_hir_ty/src/infer/expr.rs5
-rw-r--r--crates/ra_hir_ty/src/tests/macros.rs66
-rw-r--r--crates/ra_hir_ty/src/tests/simple.rs32
-rw-r--r--crates/ra_ide/src/completion.rs32
-rw-r--r--crates/ra_ide/src/completion/complete_attribute.rs293
-rw-r--r--crates/ra_ide/src/completion/completion_context.rs8
-rw-r--r--crates/ra_ide/src/display/short_label.rs6
-rw-r--r--crates/ra_ide/src/folding_ranges.rs2
-rw-r--r--crates/ra_ide/src/hover.rs11
-rw-r--r--crates/ra_ide/src/join_lines.rs3
-rw-r--r--crates/ra_ide/src/syntax_tree.rs77
-rw-r--r--crates/ra_mbe/src/tests.rs152
-rw-r--r--crates/ra_parser/src/grammar.rs4
-rw-r--r--crates/ra_parser/src/grammar/expressions.rs26
-rw-r--r--crates/ra_parser/src/grammar/expressions/atom.rs74
-rw-r--r--crates/ra_parser/src/grammar/items.rs2
-rw-r--r--crates/ra_parser/src/grammar/type_args.rs2
-rw-r--r--crates/ra_parser/src/lib.rs2
-rw-r--r--crates/ra_parser/src/syntax_kind/generated.rs2
-rw-r--r--crates/ra_syntax/src/ast.rs4
-rw-r--r--crates/ra_syntax/src/ast/edit.rs2
-rw-r--r--crates/ra_syntax/src/ast/expr_extensions.rs33
-rw-r--r--crates/ra_syntax/src/ast/extensions.rs8
-rw-r--r--crates/ra_syntax/src/ast/generated/nodes.rs83
-rw-r--r--crates/ra_syntax/src/ast/make.rs8
-rw-r--r--crates/ra_syntax/src/lib.rs7
-rw-r--r--crates/ra_syntax/src/validation.rs119
-rw-r--r--crates/ra_syntax/src/validation/block.rs20
-rw-r--r--crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast7
-rw-r--r--crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast52
-rw-r--r--crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast63
-rw-r--r--crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast61
-rw-r--r--crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast45
-rw-r--r--crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast165
-rw-r--r--crates/ra_syntax/test_data/parser/err/0019_let_recover.rast166
-rw-r--r--crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast7
-rw-r--r--crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast229
-rw-r--r--crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast49
-rw-r--r--crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast430
-rw-r--r--crates/ra_syntax/test_data/parser/err/0025_nope.rast360
-rw-r--r--crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/err/0029_field_completion.rast23
-rw-r--r--crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast214
-rw-r--r--crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast361
-rw-r--r--crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast103
-rw-r--r--crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast155
-rw-r--r--crates/ra_syntax/test_data/parser/err/0035_use_recover.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast31
-rw-r--r--crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast121
-rw-r--r--crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast70
-rw-r--r--crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast27
-rw-r--r--crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rast71
-rw-r--r--crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rs6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast25
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast37
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast25
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast92
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast77
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast71
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast25
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast169
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast26
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast95
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast48
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast65
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast59
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast185
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast75
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast155
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast365
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast149
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast84
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast67
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast33
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast13
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast271
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast34
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast167
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast129
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast141
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast94
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast225
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast229
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast279
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast79
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast165
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast33
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast98
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast86
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast27
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast167
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast15
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast85
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast247
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast112
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast43
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast33
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast229
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast20
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast46
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast241
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast85
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast43
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rs5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast251
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast101
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast53
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast108
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast155
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast231
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast90
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast71
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast137
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast267
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast39
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast71
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast172
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast92
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast49
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast231
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast40
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast155
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast102
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast115
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast106
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast58
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast197
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast887
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast127
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast61
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast49
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast115
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast199
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast50
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast64
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rast45
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rast26
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rs1
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rast23
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rs1
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast7
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast7
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0012_visibility.rast25
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast26
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rs1
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast21
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast40
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast38
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast60
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast347
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast279
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast103
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0032_where_for.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0033_label_break.rast407
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast59
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast3912
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast27
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast7
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast77
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast97
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast133
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast123
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast196
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast495
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast373
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0049_async_block.rast47
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast56
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast55
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast135
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast15
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast49
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast106
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast49
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast169
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast174
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0060_as_range.rast87
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast29
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast205
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast20
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast20
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast5
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast5
-rw-r--r--crates/rust-analyzer/src/caps.rs29
-rw-r--r--crates/rust-analyzer/src/config.rs13
-rw-r--r--crates/rust-analyzer/src/main_loop.rs3
-rw-r--r--crates/rust-analyzer/src/main_loop/handlers.rs38
-rw-r--r--crates/rust-analyzer/tests/heavy_tests/main.rs4
-rw-r--r--crates/rust-analyzer/tests/heavy_tests/support.rs6
259 files changed, 12034 insertions, 11202 deletions
diff --git a/crates/ra_assists/src/ast_transform.rs b/crates/ra_assists/src/ast_transform.rs
index 52b4c82db..9ac65ab39 100644
--- a/crates/ra_assists/src/ast_transform.rs
+++ b/crates/ra_assists/src/ast_transform.rs
@@ -85,6 +85,7 @@ impl<'a> SubstituteTypeParams<'a> {
85 ast::TypeRef::PathType(path_type) => path_type.path()?, 85 ast::TypeRef::PathType(path_type) => path_type.path()?,
86 _ => return None, 86 _ => return None,
87 }; 87 };
88 // FIXME: use `hir::Path::from_src` instead.
88 let path = hir::Path::from_ast(path)?; 89 let path = hir::Path::from_ast(path)?;
89 let resolution = self.source_scope.resolve_hir_path(&path)?; 90 let resolution = self.source_scope.resolve_hir_path(&path)?;
90 match resolution { 91 match resolution {
@@ -128,6 +129,7 @@ impl<'a> QualifyPaths<'a> {
128 // don't try to qualify `Fn(Foo) -> Bar` paths, they are in prelude anyway 129 // don't try to qualify `Fn(Foo) -> Bar` paths, they are in prelude anyway
129 return None; 130 return None;
130 } 131 }
132 // FIXME: use `hir::Path::from_src` instead.
131 let hir_path = hir::Path::from_ast(p.clone()); 133 let hir_path = hir::Path::from_ast(p.clone());
132 let resolution = self.source_scope.resolve_hir_path(&hir_path?)?; 134 let resolution = self.source_scope.resolve_hir_path(&hir_path?)?;
133 match resolution { 135 match resolution {
diff --git a/crates/ra_assists/src/doc_tests/generated.rs b/crates/ra_assists/src/doc_tests/generated.rs
index e4fa9ee36..6696cc832 100644
--- a/crates/ra_assists/src/doc_tests/generated.rs
+++ b/crates/ra_assists/src/doc_tests/generated.rs
@@ -180,7 +180,9 @@ trait Trait<T> {
180} 180}
181 181
182impl Trait<u32> for () { 182impl Trait<u32> for () {
183 fn foo(&self) -> u32 { todo!() } 183 fn foo(&self) -> u32 {
184 todo!()
185 }
184 186
185} 187}
186"#####, 188"#####,
@@ -726,3 +728,22 @@ use std::{collections::HashMap};
726"#####, 728"#####,
727 ) 729 )
728} 730}
731
732#[test]
733fn doctest_unwrap_block() {
734 check(
735 "unwrap_block",
736 r#####"
737fn foo() {
738 if true {<|>
739 println!("foo");
740 }
741}
742"#####,
743 r#####"
744fn foo() {
745 println!("foo");
746}
747"#####,
748 )
749}
diff --git a/crates/ra_assists/src/handlers/add_missing_impl_members.rs b/crates/ra_assists/src/handlers/add_missing_impl_members.rs
index 2d6d44980..e466c9a86 100644
--- a/crates/ra_assists/src/handlers/add_missing_impl_members.rs
+++ b/crates/ra_assists/src/handlers/add_missing_impl_members.rs
@@ -1,6 +1,10 @@
1use hir::HasSource; 1use hir::HasSource;
2use ra_syntax::{ 2use ra_syntax::{
3 ast::{self, edit, make, AstNode, NameOwner}, 3 ast::{
4 self,
5 edit::{self, IndentLevel},
6 make, AstNode, NameOwner,
7 },
4 SmolStr, 8 SmolStr,
5}; 9};
6 10
@@ -40,7 +44,9 @@ enum AddMissingImplMembersMode {
40// } 44// }
41// 45//
42// impl Trait<u32> for () { 46// impl Trait<u32> for () {
43// fn foo(&self) -> u32 { todo!() } 47// fn foo(&self) -> u32 {
48// todo!()
49// }
44// 50//
45// } 51// }
46// ``` 52// ```
@@ -165,7 +171,9 @@ fn add_missing_impl_members_inner(
165 171
166fn add_body(fn_def: ast::FnDef) -> ast::FnDef { 172fn add_body(fn_def: ast::FnDef) -> ast::FnDef {
167 if fn_def.body().is_none() { 173 if fn_def.body().is_none() {
168 fn_def.with_body(make::block_from_expr(make::expr_todo())) 174 let body = make::block_expr(None, Some(make::expr_todo()));
175 let body = IndentLevel(1).increase_indent(body);
176 fn_def.with_body(body)
169 } else { 177 } else {
170 fn_def 178 fn_def
171 } 179 }
@@ -181,7 +189,7 @@ mod tests {
181 fn test_add_missing_impl_members() { 189 fn test_add_missing_impl_members() {
182 check_assist( 190 check_assist(
183 add_missing_impl_members, 191 add_missing_impl_members,
184 " 192 r#"
185trait Foo { 193trait Foo {
186 type Output; 194 type Output;
187 195
@@ -197,8 +205,8 @@ struct S;
197impl Foo for S { 205impl Foo for S {
198 fn bar(&self) {} 206 fn bar(&self) {}
199<|> 207<|>
200}", 208}"#,
201 " 209 r#"
202trait Foo { 210trait Foo {
203 type Output; 211 type Output;
204 212
@@ -215,10 +223,14 @@ impl Foo for S {
215 fn bar(&self) {} 223 fn bar(&self) {}
216 <|>type Output; 224 <|>type Output;
217 const CONST: usize = 42; 225 const CONST: usize = 42;
218 fn foo(&self) { todo!() } 226 fn foo(&self) {
219 fn baz(&self) { todo!() } 227 todo!()
228 }
229 fn baz(&self) {
230 todo!()
231 }
220 232
221}", 233}"#,
222 ); 234 );
223 } 235 }
224 236
@@ -226,7 +238,7 @@ impl Foo for S {
226 fn test_copied_overriden_members() { 238 fn test_copied_overriden_members() {
227 check_assist( 239 check_assist(
228 add_missing_impl_members, 240 add_missing_impl_members,
229 " 241 r#"
230trait Foo { 242trait Foo {
231 fn foo(&self); 243 fn foo(&self);
232 fn bar(&self) -> bool { true } 244 fn bar(&self) -> bool { true }
@@ -238,8 +250,8 @@ struct S;
238impl Foo for S { 250impl Foo for S {
239 fn bar(&self) {} 251 fn bar(&self) {}
240<|> 252<|>
241}", 253}"#,
242 " 254 r#"
243trait Foo { 255trait Foo {
244 fn foo(&self); 256 fn foo(&self);
245 fn bar(&self) -> bool { true } 257 fn bar(&self) -> bool { true }
@@ -250,9 +262,11 @@ struct S;
250 262
251impl Foo for S { 263impl Foo for S {
252 fn bar(&self) {} 264 fn bar(&self) {}
253 <|>fn foo(&self) { todo!() } 265 <|>fn foo(&self) {
266 todo!()
267 }
254 268
255}", 269}"#,
256 ); 270 );
257 } 271 }
258 272
@@ -260,16 +274,18 @@ impl Foo for S {
260 fn test_empty_impl_def() { 274 fn test_empty_impl_def() {
261 check_assist( 275 check_assist(
262 add_missing_impl_members, 276 add_missing_impl_members,
263 " 277 r#"
264trait Foo { fn foo(&self); } 278trait Foo { fn foo(&self); }
265struct S; 279struct S;
266impl Foo for S { <|> }", 280impl Foo for S { <|> }"#,
267 " 281 r#"
268trait Foo { fn foo(&self); } 282trait Foo { fn foo(&self); }
269struct S; 283struct S;
270impl Foo for S { 284impl Foo for S {
271 <|>fn foo(&self) { todo!() } 285 <|>fn foo(&self) {
272}", 286 todo!()
287 }
288}"#,
273 ); 289 );
274 } 290 }
275 291
@@ -277,16 +293,18 @@ impl Foo for S {
277 fn fill_in_type_params_1() { 293 fn fill_in_type_params_1() {
278 check_assist( 294 check_assist(
279 add_missing_impl_members, 295 add_missing_impl_members,
280 " 296 r#"
281trait Foo<T> { fn foo(&self, t: T) -> &T; } 297trait Foo<T> { fn foo(&self, t: T) -> &T; }
282struct S; 298struct S;
283impl Foo<u32> for S { <|> }", 299impl Foo<u32> for S { <|> }"#,
284 " 300 r#"
285trait Foo<T> { fn foo(&self, t: T) -> &T; } 301trait Foo<T> { fn foo(&self, t: T) -> &T; }
286struct S; 302struct S;
287impl Foo<u32> for S { 303impl Foo<u32> for S {
288 <|>fn foo(&self, t: u32) -> &u32 { todo!() } 304 <|>fn foo(&self, t: u32) -> &u32 {
289}", 305 todo!()
306 }
307}"#,
290 ); 308 );
291 } 309 }
292 310
@@ -294,16 +312,18 @@ impl Foo<u32> for S {
294 fn fill_in_type_params_2() { 312 fn fill_in_type_params_2() {
295 check_assist( 313 check_assist(
296 add_missing_impl_members, 314 add_missing_impl_members,
297 " 315 r#"
298trait Foo<T> { fn foo(&self, t: T) -> &T; } 316trait Foo<T> { fn foo(&self, t: T) -> &T; }
299struct S; 317struct S;
300impl<U> Foo<U> for S { <|> }", 318impl<U> Foo<U> for S { <|> }"#,
301 " 319 r#"
302trait Foo<T> { fn foo(&self, t: T) -> &T; } 320trait Foo<T> { fn foo(&self, t: T) -> &T; }
303struct S; 321struct S;
304impl<U> Foo<U> for S { 322impl<U> Foo<U> for S {
305 <|>fn foo(&self, t: U) -> &U { todo!() } 323 <|>fn foo(&self, t: U) -> &U {
306}", 324 todo!()
325 }
326}"#,
307 ); 327 );
308 } 328 }
309 329
@@ -311,16 +331,18 @@ impl<U> Foo<U> for S {
311 fn test_cursor_after_empty_impl_def() { 331 fn test_cursor_after_empty_impl_def() {
312 check_assist( 332 check_assist(
313 add_missing_impl_members, 333 add_missing_impl_members,
314 " 334 r#"
315trait Foo { fn foo(&self); } 335trait Foo { fn foo(&self); }
316struct S; 336struct S;
317impl Foo for S {}<|>", 337impl Foo for S {}<|>"#,
318 " 338 r#"
319trait Foo { fn foo(&self); } 339trait Foo { fn foo(&self); }
320struct S; 340struct S;
321impl Foo for S { 341impl Foo for S {
322 <|>fn foo(&self) { todo!() } 342 <|>fn foo(&self) {
323}", 343 todo!()
344 }
345}"#,
324 ) 346 )
325 } 347 }
326 348
@@ -328,22 +350,24 @@ impl Foo for S {
328 fn test_qualify_path_1() { 350 fn test_qualify_path_1() {
329 check_assist( 351 check_assist(
330 add_missing_impl_members, 352 add_missing_impl_members,
331 " 353 r#"
332mod foo { 354mod foo {
333 pub struct Bar; 355 pub struct Bar;
334 trait Foo { fn foo(&self, bar: Bar); } 356 trait Foo { fn foo(&self, bar: Bar); }
335} 357}
336struct S; 358struct S;
337impl foo::Foo for S { <|> }", 359impl foo::Foo for S { <|> }"#,
338 " 360 r#"
339mod foo { 361mod foo {
340 pub struct Bar; 362 pub struct Bar;
341 trait Foo { fn foo(&self, bar: Bar); } 363 trait Foo { fn foo(&self, bar: Bar); }
342} 364}
343struct S; 365struct S;
344impl foo::Foo for S { 366impl foo::Foo for S {
345 <|>fn foo(&self, bar: foo::Bar) { todo!() } 367 <|>fn foo(&self, bar: foo::Bar) {
346}", 368 todo!()
369 }
370}"#,
347 ); 371 );
348 } 372 }
349 373
@@ -351,22 +375,24 @@ impl foo::Foo for S {
351 fn test_qualify_path_generic() { 375 fn test_qualify_path_generic() {
352 check_assist( 376 check_assist(
353 add_missing_impl_members, 377 add_missing_impl_members,
354 " 378 r#"
355mod foo { 379mod foo {
356 pub struct Bar<T>; 380 pub struct Bar<T>;
357 trait Foo { fn foo(&self, bar: Bar<u32>); } 381 trait Foo { fn foo(&self, bar: Bar<u32>); }
358} 382}
359struct S; 383struct S;
360impl foo::Foo for S { <|> }", 384impl foo::Foo for S { <|> }"#,
361 " 385 r#"
362mod foo { 386mod foo {
363 pub struct Bar<T>; 387 pub struct Bar<T>;
364 trait Foo { fn foo(&self, bar: Bar<u32>); } 388 trait Foo { fn foo(&self, bar: Bar<u32>); }
365} 389}
366struct S; 390struct S;
367impl foo::Foo for S { 391impl foo::Foo for S {
368 <|>fn foo(&self, bar: foo::Bar<u32>) { todo!() } 392 <|>fn foo(&self, bar: foo::Bar<u32>) {
369}", 393 todo!()
394 }
395}"#,
370 ); 396 );
371 } 397 }
372 398
@@ -374,22 +400,24 @@ impl foo::Foo for S {
374 fn test_qualify_path_and_substitute_param() { 400 fn test_qualify_path_and_substitute_param() {
375 check_assist( 401 check_assist(
376 add_missing_impl_members, 402 add_missing_impl_members,
377 " 403 r#"
378mod foo { 404mod foo {
379 pub struct Bar<T>; 405 pub struct Bar<T>;
380 trait Foo<T> { fn foo(&self, bar: Bar<T>); } 406 trait Foo<T> { fn foo(&self, bar: Bar<T>); }
381} 407}
382struct S; 408struct S;
383impl foo::Foo<u32> for S { <|> }", 409impl foo::Foo<u32> for S { <|> }"#,
384 " 410 r#"
385mod foo { 411mod foo {
386 pub struct Bar<T>; 412 pub struct Bar<T>;
387 trait Foo<T> { fn foo(&self, bar: Bar<T>); } 413 trait Foo<T> { fn foo(&self, bar: Bar<T>); }
388} 414}
389struct S; 415struct S;
390impl foo::Foo<u32> for S { 416impl foo::Foo<u32> for S {
391 <|>fn foo(&self, bar: foo::Bar<u32>) { todo!() } 417 <|>fn foo(&self, bar: foo::Bar<u32>) {
392}", 418 todo!()
419 }
420}"#,
393 ); 421 );
394 } 422 }
395 423
@@ -398,15 +426,15 @@ impl foo::Foo<u32> for S {
398 // when substituting params, the substituted param should not be qualified! 426 // when substituting params, the substituted param should not be qualified!
399 check_assist( 427 check_assist(
400 add_missing_impl_members, 428 add_missing_impl_members,
401 " 429 r#"
402mod foo { 430mod foo {
403 trait Foo<T> { fn foo(&self, bar: T); } 431 trait Foo<T> { fn foo(&self, bar: T); }
404 pub struct Param; 432 pub struct Param;
405} 433}
406struct Param; 434struct Param;
407struct S; 435struct S;
408impl foo::Foo<Param> for S { <|> }", 436impl foo::Foo<Param> for S { <|> }"#,
409 " 437 r#"
410mod foo { 438mod foo {
411 trait Foo<T> { fn foo(&self, bar: T); } 439 trait Foo<T> { fn foo(&self, bar: T); }
412 pub struct Param; 440 pub struct Param;
@@ -414,8 +442,10 @@ mod foo {
414struct Param; 442struct Param;
415struct S; 443struct S;
416impl foo::Foo<Param> for S { 444impl foo::Foo<Param> for S {
417 <|>fn foo(&self, bar: Param) { todo!() } 445 <|>fn foo(&self, bar: Param) {
418}", 446 todo!()
447 }
448}"#,
419 ); 449 );
420 } 450 }
421 451
@@ -423,15 +453,15 @@ impl foo::Foo<Param> for S {
423 fn test_qualify_path_associated_item() { 453 fn test_qualify_path_associated_item() {
424 check_assist( 454 check_assist(
425 add_missing_impl_members, 455 add_missing_impl_members,
426 " 456 r#"
427mod foo { 457mod foo {
428 pub struct Bar<T>; 458 pub struct Bar<T>;
429 impl Bar<T> { type Assoc = u32; } 459 impl Bar<T> { type Assoc = u32; }
430 trait Foo { fn foo(&self, bar: Bar<u32>::Assoc); } 460 trait Foo { fn foo(&self, bar: Bar<u32>::Assoc); }
431} 461}
432struct S; 462struct S;
433impl foo::Foo for S { <|> }", 463impl foo::Foo for S { <|> }"#,
434 " 464 r#"
435mod foo { 465mod foo {
436 pub struct Bar<T>; 466 pub struct Bar<T>;
437 impl Bar<T> { type Assoc = u32; } 467 impl Bar<T> { type Assoc = u32; }
@@ -439,8 +469,10 @@ mod foo {
439} 469}
440struct S; 470struct S;
441impl foo::Foo for S { 471impl foo::Foo for S {
442 <|>fn foo(&self, bar: foo::Bar<u32>::Assoc) { todo!() } 472 <|>fn foo(&self, bar: foo::Bar<u32>::Assoc) {
443}", 473 todo!()
474 }
475}"#,
444 ); 476 );
445 } 477 }
446 478
@@ -448,15 +480,15 @@ impl foo::Foo for S {
448 fn test_qualify_path_nested() { 480 fn test_qualify_path_nested() {
449 check_assist( 481 check_assist(
450 add_missing_impl_members, 482 add_missing_impl_members,
451 " 483 r#"
452mod foo { 484mod foo {
453 pub struct Bar<T>; 485 pub struct Bar<T>;
454 pub struct Baz; 486 pub struct Baz;
455 trait Foo { fn foo(&self, bar: Bar<Baz>); } 487 trait Foo { fn foo(&self, bar: Bar<Baz>); }
456} 488}
457struct S; 489struct S;
458impl foo::Foo for S { <|> }", 490impl foo::Foo for S { <|> }"#,
459 " 491 r#"
460mod foo { 492mod foo {
461 pub struct Bar<T>; 493 pub struct Bar<T>;
462 pub struct Baz; 494 pub struct Baz;
@@ -464,8 +496,10 @@ mod foo {
464} 496}
465struct S; 497struct S;
466impl foo::Foo for S { 498impl foo::Foo for S {
467 <|>fn foo(&self, bar: foo::Bar<foo::Baz>) { todo!() } 499 <|>fn foo(&self, bar: foo::Bar<foo::Baz>) {
468}", 500 todo!()
501 }
502}"#,
469 ); 503 );
470 } 504 }
471 505
@@ -473,22 +507,24 @@ impl foo::Foo for S {
473 fn test_qualify_path_fn_trait_notation() { 507 fn test_qualify_path_fn_trait_notation() {
474 check_assist( 508 check_assist(
475 add_missing_impl_members, 509 add_missing_impl_members,
476 " 510 r#"
477mod foo { 511mod foo {
478 pub trait Fn<Args> { type Output; } 512 pub trait Fn<Args> { type Output; }
479 trait Foo { fn foo(&self, bar: dyn Fn(u32) -> i32); } 513 trait Foo { fn foo(&self, bar: dyn Fn(u32) -> i32); }
480} 514}
481struct S; 515struct S;
482impl foo::Foo for S { <|> }", 516impl foo::Foo for S { <|> }"#,
483 " 517 r#"
484mod foo { 518mod foo {
485 pub trait Fn<Args> { type Output; } 519 pub trait Fn<Args> { type Output; }
486 trait Foo { fn foo(&self, bar: dyn Fn(u32) -> i32); } 520 trait Foo { fn foo(&self, bar: dyn Fn(u32) -> i32); }
487} 521}
488struct S; 522struct S;
489impl foo::Foo for S { 523impl foo::Foo for S {
490 <|>fn foo(&self, bar: dyn Fn(u32) -> i32) { todo!() } 524 <|>fn foo(&self, bar: dyn Fn(u32) -> i32) {
491}", 525 todo!()
526 }
527}"#,
492 ); 528 );
493 } 529 }
494 530
@@ -496,10 +532,10 @@ impl foo::Foo for S {
496 fn test_empty_trait() { 532 fn test_empty_trait() {
497 check_assist_not_applicable( 533 check_assist_not_applicable(
498 add_missing_impl_members, 534 add_missing_impl_members,
499 " 535 r#"
500trait Foo; 536trait Foo;
501struct S; 537struct S;
502impl Foo for S { <|> }", 538impl Foo for S { <|> }"#,
503 ) 539 )
504 } 540 }
505 541
@@ -507,13 +543,13 @@ impl Foo for S { <|> }",
507 fn test_ignore_unnamed_trait_members_and_default_methods() { 543 fn test_ignore_unnamed_trait_members_and_default_methods() {
508 check_assist_not_applicable( 544 check_assist_not_applicable(
509 add_missing_impl_members, 545 add_missing_impl_members,
510 " 546 r#"
511trait Foo { 547trait Foo {
512 fn (arg: u32); 548 fn (arg: u32);
513 fn valid(some: u32) -> bool { false } 549 fn valid(some: u32) -> bool { false }
514} 550}
515struct S; 551struct S;
516impl Foo for S { <|> }", 552impl Foo for S { <|> }"#,
517 ) 553 )
518 } 554 }
519 555
@@ -544,7 +580,9 @@ trait Foo {
544struct S; 580struct S;
545impl Foo for S { 581impl Foo for S {
546 <|>type Output; 582 <|>type Output;
547 fn foo(&self) { todo!() } 583 fn foo(&self) {
584 todo!()
585 }
548}"#, 586}"#,
549 ) 587 )
550 } 588 }
@@ -553,7 +591,7 @@ impl Foo for S {
553 fn test_default_methods() { 591 fn test_default_methods() {
554 check_assist( 592 check_assist(
555 add_missing_default_members, 593 add_missing_default_members,
556 " 594 r#"
557trait Foo { 595trait Foo {
558 type Output; 596 type Output;
559 597
@@ -563,8 +601,8 @@ trait Foo {
563 fn foo(some: u32) -> bool; 601 fn foo(some: u32) -> bool;
564} 602}
565struct S; 603struct S;
566impl Foo for S { <|> }", 604impl Foo for S { <|> }"#,
567 " 605 r#"
568trait Foo { 606trait Foo {
569 type Output; 607 type Output;
570 608
@@ -576,7 +614,7 @@ trait Foo {
576struct S; 614struct S;
577impl Foo for S { 615impl Foo for S {
578 <|>fn valid(some: u32) -> bool { false } 616 <|>fn valid(some: u32) -> bool { false }
579}", 617}"#,
580 ) 618 )
581 } 619 }
582} 620}
diff --git a/crates/ra_assists/src/handlers/early_return.rs b/crates/ra_assists/src/handlers/early_return.rs
index ea6c56f8c..eede2fe91 100644
--- a/crates/ra_assists/src/handlers/early_return.rs
+++ b/crates/ra_assists/src/handlers/early_return.rs
@@ -2,7 +2,7 @@ use std::{iter::once, ops::RangeInclusive};
2 2
3use ra_syntax::{ 3use ra_syntax::{
4 algo::replace_children, 4 algo::replace_children,
5 ast::{self, edit::IndentLevel, make, Block, Pat::TupleStructPat}, 5 ast::{self, edit::IndentLevel, make},
6 AstNode, 6 AstNode,
7 SyntaxKind::{FN_DEF, LOOP_EXPR, L_CURLY, R_CURLY, WHILE_EXPR, WHITESPACE}, 7 SyntaxKind::{FN_DEF, LOOP_EXPR, L_CURLY, R_CURLY, WHILE_EXPR, WHITESPACE},
8 SyntaxNode, 8 SyntaxNode,
@@ -47,7 +47,7 @@ pub(crate) fn convert_to_guarded_return(ctx: AssistCtx) -> Option<Assist> {
47 // Check if there is an IfLet that we can handle. 47 // Check if there is an IfLet that we can handle.
48 let if_let_pat = match cond.pat() { 48 let if_let_pat = match cond.pat() {
49 None => None, // No IfLet, supported. 49 None => None, // No IfLet, supported.
50 Some(TupleStructPat(pat)) if pat.args().count() == 1 => { 50 Some(ast::Pat::TupleStructPat(pat)) if pat.args().count() == 1 => {
51 let path = pat.path()?; 51 let path = pat.path()?;
52 match path.qualifier() { 52 match path.qualifier() {
53 None => { 53 None => {
@@ -61,9 +61,9 @@ pub(crate) fn convert_to_guarded_return(ctx: AssistCtx) -> Option<Assist> {
61 }; 61 };
62 62
63 let cond_expr = cond.expr()?; 63 let cond_expr = cond.expr()?;
64 let then_block = if_expr.then_branch()?.block()?; 64 let then_block = if_expr.then_branch()?;
65 65
66 let parent_block = if_expr.syntax().parent()?.ancestors().find_map(ast::Block::cast)?; 66 let parent_block = if_expr.syntax().parent()?.ancestors().find_map(ast::BlockExpr::cast)?;
67 67
68 if parent_block.expr()? != if_expr.clone().into() { 68 if parent_block.expr()? != if_expr.clone().into() {
69 return None; 69 return None;
@@ -80,7 +80,7 @@ pub(crate) fn convert_to_guarded_return(ctx: AssistCtx) -> Option<Assist> {
80 return None; 80 return None;
81 } 81 }
82 82
83 let parent_container = parent_block.syntax().parent()?.parent()?; 83 let parent_container = parent_block.syntax().parent()?;
84 84
85 let early_expression: ast::Expr = match parent_container.kind() { 85 let early_expression: ast::Expr = match parent_container.kind() {
86 WHILE_EXPR | LOOP_EXPR => make::expr_continue(), 86 WHILE_EXPR | LOOP_EXPR => make::expr_continue(),
@@ -144,13 +144,13 @@ pub(crate) fn convert_to_guarded_return(ctx: AssistCtx) -> Option<Assist> {
144 } 144 }
145 }; 145 };
146 edit.target(if_expr.syntax().text_range()); 146 edit.target(if_expr.syntax().text_range());
147 edit.replace_ast(parent_block, ast::Block::cast(new_block).unwrap()); 147 edit.replace_ast(parent_block, ast::BlockExpr::cast(new_block).unwrap());
148 edit.set_cursor(cursor_position); 148 edit.set_cursor(cursor_position);
149 149
150 fn replace( 150 fn replace(
151 new_expr: &SyntaxNode, 151 new_expr: &SyntaxNode,
152 then_block: &Block, 152 then_block: &ast::BlockExpr,
153 parent_block: &Block, 153 parent_block: &ast::BlockExpr,
154 if_expr: &ast::IfExpr, 154 if_expr: &ast::IfExpr,
155 ) -> SyntaxNode { 155 ) -> SyntaxNode {
156 let then_block_items = IndentLevel::from(1).decrease_indent(then_block.clone()); 156 let then_block_items = IndentLevel::from(1).decrease_indent(then_block.clone());
diff --git a/crates/ra_assists/src/handlers/inline_local_variable.rs b/crates/ra_assists/src/handlers/inline_local_variable.rs
index f5702f6e0..60ec536a7 100644
--- a/crates/ra_assists/src/handlers/inline_local_variable.rs
+++ b/crates/ra_assists/src/handlers/inline_local_variable.rs
@@ -89,6 +89,7 @@ pub(crate) fn inline_local_variable(ctx: AssistCtx) -> Option<Assist> {
89 | (ast::Expr::ParenExpr(_), _) 89 | (ast::Expr::ParenExpr(_), _)
90 | (ast::Expr::PathExpr(_), _) 90 | (ast::Expr::PathExpr(_), _)
91 | (ast::Expr::BlockExpr(_), _) 91 | (ast::Expr::BlockExpr(_), _)
92 | (ast::Expr::EffectExpr(_), _)
92 | (_, ast::Expr::CallExpr(_)) 93 | (_, ast::Expr::CallExpr(_))
93 | (_, ast::Expr::TupleExpr(_)) 94 | (_, ast::Expr::TupleExpr(_))
94 | (_, ast::Expr::ArrayExpr(_)) 95 | (_, ast::Expr::ArrayExpr(_))
diff --git a/crates/ra_assists/src/handlers/introduce_variable.rs b/crates/ra_assists/src/handlers/introduce_variable.rs
index eda9ac296..39c656305 100644
--- a/crates/ra_assists/src/handlers/introduce_variable.rs
+++ b/crates/ra_assists/src/handlers/introduce_variable.rs
@@ -111,7 +111,7 @@ fn valid_target_expr(node: SyntaxNode) -> Option<ast::Expr> {
111/// expression like a lambda or match arm. 111/// expression like a lambda or match arm.
112fn anchor_stmt(expr: ast::Expr) -> Option<(SyntaxNode, bool)> { 112fn anchor_stmt(expr: ast::Expr) -> Option<(SyntaxNode, bool)> {
113 expr.syntax().ancestors().find_map(|node| { 113 expr.syntax().ancestors().find_map(|node| {
114 if let Some(expr) = node.parent().and_then(ast::Block::cast).and_then(|it| it.expr()) { 114 if let Some(expr) = node.parent().and_then(ast::BlockExpr::cast).and_then(|it| it.expr()) {
115 if expr.syntax() == &node { 115 if expr.syntax() == &node {
116 tested_by!(test_introduce_var_last_expr); 116 tested_by!(test_introduce_var_last_expr);
117 return Some((node, false)); 117 return Some((node, false));
diff --git a/crates/ra_assists/src/handlers/move_guard.rs b/crates/ra_assists/src/handlers/move_guard.rs
index d5ccdd91c..b084dd9ee 100644
--- a/crates/ra_assists/src/handlers/move_guard.rs
+++ b/crates/ra_assists/src/handlers/move_guard.rs
@@ -113,9 +113,9 @@ pub(crate) fn move_arm_cond_to_match_guard(ctx: AssistCtx) -> Option<Assist> {
113 "Move condition to match guard", 113 "Move condition to match guard",
114 |edit| { 114 |edit| {
115 edit.target(if_expr.syntax().text_range()); 115 edit.target(if_expr.syntax().text_range());
116 let then_only_expr = then_block.block().and_then(|it| it.statements().next()).is_none(); 116 let then_only_expr = then_block.statements().next().is_none();
117 117
118 match &then_block.block().and_then(|it| it.expr()) { 118 match &then_block.expr() {
119 Some(then_expr) if then_only_expr => { 119 Some(then_expr) if then_only_expr => {
120 edit.replace(if_expr.syntax().text_range(), then_expr.syntax().text()) 120 edit.replace(if_expr.syntax().text_range(), then_expr.syntax().text())
121 } 121 }
diff --git a/crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs b/crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs
index 2f02df303..918e8dd8d 100644
--- a/crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs
+++ b/crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs
@@ -27,7 +27,7 @@ pub(crate) fn replace_qualified_name_with_use(ctx: AssistCtx) -> Option<Assist>
27 return None; 27 return None;
28 } 28 }
29 29
30 let hir_path = hir::Path::from_ast(path.clone())?; 30 let hir_path = ctx.sema.lower_path(&path)?;
31 let segments = collect_hir_path_segments(&hir_path)?; 31 let segments = collect_hir_path_segments(&hir_path)?;
32 if segments.len() < 2 { 32 if segments.len() < 2 {
33 return None; 33 return None;
diff --git a/crates/ra_assists/src/handlers/unwrap_block.rs b/crates/ra_assists/src/handlers/unwrap_block.rs
new file mode 100644
index 000000000..58649c47e
--- /dev/null
+++ b/crates/ra_assists/src/handlers/unwrap_block.rs
@@ -0,0 +1,348 @@
1use crate::{Assist, AssistCtx, AssistId};
2
3use ast::{BlockExpr, Expr, ForExpr, IfExpr, LoopBodyOwner, LoopExpr, WhileExpr};
4use ra_fmt::unwrap_trivial_block;
5use ra_syntax::{ast, AstNode, TextRange, T};
6
7// Assist: unwrap_block
8//
9// This assist removes if...else, for, while and loop control statements to just keep the body.
10//
11// ```
12// fn foo() {
13// if true {<|>
14// println!("foo");
15// }
16// }
17// ```
18// ->
19// ```
20// fn foo() {
21// println!("foo");
22// }
23// ```
24pub(crate) fn unwrap_block(ctx: AssistCtx) -> Option<Assist> {
25 let l_curly_token = ctx.find_token_at_offset(T!['{'])?;
26
27 let res = if let Some(if_expr) = l_curly_token.ancestors().find_map(IfExpr::cast) {
28 // if expression
29 let expr_to_unwrap = if_expr.blocks().find_map(|expr| extract_expr(ctx.frange.range, expr));
30 let expr_to_unwrap = expr_to_unwrap?;
31 // Find if we are in a else if block
32 let ancestor = if_expr.syntax().ancestors().skip(1).find_map(ast::IfExpr::cast);
33
34 if let Some(ancestor) = ancestor {
35 Some((ast::Expr::IfExpr(ancestor), expr_to_unwrap))
36 } else {
37 Some((ast::Expr::IfExpr(if_expr), expr_to_unwrap))
38 }
39 } else if let Some(for_expr) = l_curly_token.ancestors().find_map(ForExpr::cast) {
40 // for expression
41 let block_expr = for_expr.loop_body()?;
42 extract_expr(ctx.frange.range, block_expr)
43 .map(|expr_to_unwrap| (ast::Expr::ForExpr(for_expr), expr_to_unwrap))
44 } else if let Some(while_expr) = l_curly_token.ancestors().find_map(WhileExpr::cast) {
45 // while expression
46 let block_expr = while_expr.loop_body()?;
47 extract_expr(ctx.frange.range, block_expr)
48 .map(|expr_to_unwrap| (ast::Expr::WhileExpr(while_expr), expr_to_unwrap))
49 } else if let Some(loop_expr) = l_curly_token.ancestors().find_map(LoopExpr::cast) {
50 // loop expression
51 let block_expr = loop_expr.loop_body()?;
52 extract_expr(ctx.frange.range, block_expr)
53 .map(|expr_to_unwrap| (ast::Expr::LoopExpr(loop_expr), expr_to_unwrap))
54 } else {
55 None
56 };
57
58 let (expr, expr_to_unwrap) = res?;
59 ctx.add_assist(AssistId("unwrap_block"), "Unwrap block", |edit| {
60 edit.set_cursor(expr.syntax().text_range().start());
61 edit.target(expr_to_unwrap.syntax().text_range());
62
63 let pat_start: &[_] = &[' ', '{', '\n'];
64 let expr_to_unwrap = expr_to_unwrap.to_string();
65 let expr_string = expr_to_unwrap.trim_start_matches(pat_start);
66 let mut expr_string_lines: Vec<&str> = expr_string.lines().collect();
67 expr_string_lines.pop(); // Delete last line
68
69 let expr_string = expr_string_lines
70 .into_iter()
71 .map(|line| line.replacen(" ", "", 1)) // Delete indentation
72 .collect::<Vec<String>>()
73 .join("\n");
74
75 edit.replace(expr.syntax().text_range(), expr_string);
76 })
77}
78
79fn extract_expr(cursor_range: TextRange, block: BlockExpr) -> Option<Expr> {
80 let cursor_in_range = block.l_curly_token()?.text_range().contains_range(cursor_range);
81
82 if cursor_in_range {
83 Some(unwrap_trivial_block(block))
84 } else {
85 None
86 }
87}
88
89#[cfg(test)]
90mod tests {
91 use crate::helpers::{check_assist, check_assist_not_applicable};
92
93 use super::*;
94
95 #[test]
96 fn simple_if() {
97 check_assist(
98 unwrap_block,
99 r#"
100 fn main() {
101 bar();
102 if true {<|>
103 foo();
104
105 //comment
106 bar();
107 } else {
108 println!("bar");
109 }
110 }
111 "#,
112 r#"
113 fn main() {
114 bar();
115 <|>foo();
116
117 //comment
118 bar();
119 }
120 "#,
121 );
122 }
123
124 #[test]
125 fn simple_if_else() {
126 check_assist(
127 unwrap_block,
128 r#"
129 fn main() {
130 bar();
131 if true {
132 foo();
133
134 //comment
135 bar();
136 } else {<|>
137 println!("bar");
138 }
139 }
140 "#,
141 r#"
142 fn main() {
143 bar();
144 <|>println!("bar");
145 }
146 "#,
147 );
148 }
149
150 #[test]
151 fn simple_if_else_if() {
152 check_assist(
153 unwrap_block,
154 r#"
155 fn main() {
156 //bar();
157 if true {
158 println!("true");
159
160 //comment
161 //bar();
162 } else if false {<|>
163 println!("bar");
164 } else {
165 println!("foo");
166 }
167 }
168 "#,
169 r#"
170 fn main() {
171 //bar();
172 <|>println!("bar");
173 }
174 "#,
175 );
176 }
177
178 #[test]
179 fn simple_if_bad_cursor_position() {
180 check_assist_not_applicable(
181 unwrap_block,
182 r#"
183 fn main() {
184 bar();<|>
185 if true {
186 foo();
187
188 //comment
189 bar();
190 } else {
191 println!("bar");
192 }
193 }
194 "#,
195 );
196 }
197
198 #[test]
199 fn simple_for() {
200 check_assist(
201 unwrap_block,
202 r#"
203 fn main() {
204 for i in 0..5 {<|>
205 if true {
206 foo();
207
208 //comment
209 bar();
210 } else {
211 println!("bar");
212 }
213 }
214 }
215 "#,
216 r#"
217 fn main() {
218 <|>if true {
219 foo();
220
221 //comment
222 bar();
223 } else {
224 println!("bar");
225 }
226 }
227 "#,
228 );
229 }
230
231 #[test]
232 fn simple_if_in_for() {
233 check_assist(
234 unwrap_block,
235 r#"
236 fn main() {
237 for i in 0..5 {
238 if true {<|>
239 foo();
240
241 //comment
242 bar();
243 } else {
244 println!("bar");
245 }
246 }
247 }
248 "#,
249 r#"
250 fn main() {
251 for i in 0..5 {
252 <|>foo();
253
254 //comment
255 bar();
256 }
257 }
258 "#,
259 );
260 }
261
262 #[test]
263 fn simple_loop() {
264 check_assist(
265 unwrap_block,
266 r#"
267 fn main() {
268 loop {<|>
269 if true {
270 foo();
271
272 //comment
273 bar();
274 } else {
275 println!("bar");
276 }
277 }
278 }
279 "#,
280 r#"
281 fn main() {
282 <|>if true {
283 foo();
284
285 //comment
286 bar();
287 } else {
288 println!("bar");
289 }
290 }
291 "#,
292 );
293 }
294
295 #[test]
296 fn simple_while() {
297 check_assist(
298 unwrap_block,
299 r#"
300 fn main() {
301 while true {<|>
302 if true {
303 foo();
304
305 //comment
306 bar();
307 } else {
308 println!("bar");
309 }
310 }
311 }
312 "#,
313 r#"
314 fn main() {
315 <|>if true {
316 foo();
317
318 //comment
319 bar();
320 } else {
321 println!("bar");
322 }
323 }
324 "#,
325 );
326 }
327
328 #[test]
329 fn simple_if_in_while_bad_cursor_position() {
330 check_assist_not_applicable(
331 unwrap_block,
332 r#"
333 fn main() {
334 while true {
335 if true {
336 foo();<|>
337
338 //comment
339 bar();
340 } else {
341 println!("bar");
342 }
343 }
344 }
345 "#,
346 );
347 }
348}
diff --git a/crates/ra_assists/src/lib.rs b/crates/ra_assists/src/lib.rs
index 64bd87afb..c5df86600 100644
--- a/crates/ra_assists/src/lib.rs
+++ b/crates/ra_assists/src/lib.rs
@@ -143,6 +143,7 @@ mod handlers {
143 mod split_import; 143 mod split_import;
144 mod add_from_impl_for_enum; 144 mod add_from_impl_for_enum;
145 mod reorder_fields; 145 mod reorder_fields;
146 mod unwrap_block;
146 147
147 pub(crate) fn all() -> &'static [AssistHandler] { 148 pub(crate) fn all() -> &'static [AssistHandler] {
148 &[ 149 &[
@@ -181,6 +182,7 @@ mod handlers {
181 replace_unwrap_with_match::replace_unwrap_with_match, 182 replace_unwrap_with_match::replace_unwrap_with_match,
182 split_import::split_import, 183 split_import::split_import,
183 add_from_impl_for_enum::add_from_impl_for_enum, 184 add_from_impl_for_enum::add_from_impl_for_enum,
185 unwrap_block::unwrap_block,
184 // These are manually sorted for better priorities 186 // These are manually sorted for better priorities
185 add_missing_impl_members::add_missing_impl_members, 187 add_missing_impl_members::add_missing_impl_members,
186 add_missing_impl_members::add_missing_default_members, 188 add_missing_impl_members::add_missing_default_members,
diff --git a/crates/ra_fmt/src/lib.rs b/crates/ra_fmt/src/lib.rs
index 1a30b2b3a..f910ded9d 100644
--- a/crates/ra_fmt/src/lib.rs
+++ b/crates/ra_fmt/src/lib.rs
@@ -42,7 +42,6 @@ pub fn unwrap_trivial_block(block: ast::BlockExpr) -> ast::Expr {
42} 42}
43 43
44pub fn extract_trivial_expression(block: &ast::BlockExpr) -> Option<ast::Expr> { 44pub fn extract_trivial_expression(block: &ast::BlockExpr) -> Option<ast::Expr> {
45 let block = block.block()?;
46 let has_anything_else = |thing: &SyntaxNode| -> bool { 45 let has_anything_else = |thing: &SyntaxNode| -> bool {
47 let mut non_trivial_children = 46 let mut non_trivial_children =
48 block.syntax().children_with_tokens().filter(|it| match it.kind() { 47 block.syntax().children_with_tokens().filter(|it| match it.kind() {
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs
index af59aa1b6..a004363ee 100644
--- a/crates/ra_hir/src/code_model.rs
+++ b/crates/ra_hir/src/code_model.rs
@@ -19,7 +19,7 @@ use hir_def::{
19use hir_expand::{ 19use hir_expand::{
20 diagnostics::DiagnosticSink, 20 diagnostics::DiagnosticSink,
21 name::{name, AsName}, 21 name::{name, AsName},
22 MacroDefId, 22 MacroDefId, MacroDefKind,
23}; 23};
24use hir_ty::{ 24use hir_ty::{
25 autoderef, display::HirFormatter, expr::ExprValidator, method_resolution, ApplicationTy, 25 autoderef, display::HirFormatter, expr::ExprValidator, method_resolution, ApplicationTy,
@@ -762,13 +762,12 @@ impl MacroDef {
762 762
763 /// Indicate it is a proc-macro 763 /// Indicate it is a proc-macro
764 pub fn is_proc_macro(&self) -> bool { 764 pub fn is_proc_macro(&self) -> bool {
765 match self.id.kind { 765 matches!(self.id.kind, MacroDefKind::CustomDerive(_))
766 hir_expand::MacroDefKind::Declarative => false, 766 }
767 hir_expand::MacroDefKind::BuiltIn(_) => false, 767
768 hir_expand::MacroDefKind::BuiltInDerive(_) => false, 768 /// Indicate it is a derive macro
769 hir_expand::MacroDefKind::BuiltInEager(_) => false, 769 pub fn is_derive_macro(&self) -> bool {
770 hir_expand::MacroDefKind::CustomDerive(_) => true, 770 matches!(self.id.kind, MacroDefKind::CustomDerive(_) | MacroDefKind::BuiltInDerive(_))
771 }
772 } 771 }
773} 772}
774 773
diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs
index 312ef3814..c5df4ac24 100644
--- a/crates/ra_hir/src/lib.rs
+++ b/crates/ra_hir/src/lib.rs
@@ -70,6 +70,7 @@ pub use hir_def::{
70 type_ref::Mutability, 70 type_ref::Mutability,
71}; 71};
72pub use hir_expand::{ 72pub use hir_expand::{
73 name::Name, HirFileId, InFile, MacroCallId, MacroCallLoc, MacroDefId, MacroFile, Origin, 73 hygiene::Hygiene, name::Name, HirFileId, InFile, MacroCallId, MacroCallLoc, MacroDefId,
74 MacroFile, Origin,
74}; 75};
75pub use hir_ty::{display::HirDisplay, CallableDef}; 76pub use hir_ty::{display::HirDisplay, CallableDef};
diff --git a/crates/ra_hir/src/semantics.rs b/crates/ra_hir/src/semantics.rs
index a0a0f234b..515e5eb17 100644
--- a/crates/ra_hir/src/semantics.rs
+++ b/crates/ra_hir/src/semantics.rs
@@ -8,7 +8,7 @@ use hir_def::{
8 resolver::{self, HasResolver, Resolver}, 8 resolver::{self, HasResolver, Resolver},
9 AsMacroCall, TraitId, 9 AsMacroCall, TraitId,
10}; 10};
11use hir_expand::ExpansionInfo; 11use hir_expand::{hygiene::Hygiene, ExpansionInfo};
12use hir_ty::associated_type_shorthand_candidates; 12use hir_ty::associated_type_shorthand_candidates;
13use itertools::Itertools; 13use itertools::Itertools;
14use ra_db::{FileId, FileRange}; 14use ra_db::{FileId, FileRange};
@@ -246,6 +246,11 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> {
246 self.analyze(path.syntax()).resolve_path(self.db, path) 246 self.analyze(path.syntax()).resolve_path(self.db, path)
247 } 247 }
248 248
249 pub fn lower_path(&self, path: &ast::Path) -> Option<Path> {
250 let src = self.find_file(path.syntax().clone());
251 Path::from_src(path.clone(), &Hygiene::new(self.db.upcast(), src.file_id.into()))
252 }
253
249 pub fn resolve_bind_pat_to_const(&self, pat: &ast::BindPat) -> Option<ModuleDef> { 254 pub fn resolve_bind_pat_to_const(&self, pat: &ast::BindPat) -> Option<ModuleDef> {
250 self.analyze(pat.syntax()).resolve_bind_pat_to_const(self.db, pat) 255 self.analyze(pat.syntax()).resolve_bind_pat_to_const(self.db, pat)
251 } 256 }
diff --git a/crates/ra_hir/src/semantics/source_to_def.rs b/crates/ra_hir/src/semantics/source_to_def.rs
index 6f3b5b2da..8af64fdc1 100644
--- a/crates/ra_hir/src/semantics/source_to_def.rs
+++ b/crates/ra_hir/src/semantics/source_to_def.rs
@@ -151,7 +151,7 @@ impl SourceToDefCtx<'_, '_> {
151 let krate = self.file_to_def(file_id)?.krate; 151 let krate = self.file_to_def(file_id)?.krate;
152 let file_ast_id = self.db.ast_id_map(src.file_id).ast_id(&src.value); 152 let file_ast_id = self.db.ast_id_map(src.file_id).ast_id(&src.value);
153 let ast_id = Some(AstId::new(src.file_id, file_ast_id)); 153 let ast_id = Some(AstId::new(src.file_id, file_ast_id));
154 Some(MacroDefId { krate: Some(krate), ast_id, kind }) 154 Some(MacroDefId { krate: Some(krate), ast_id, kind, local_inner: false })
155 } 155 }
156 156
157 pub(super) fn find_container(&mut self, src: InFile<&SyntaxNode>) -> Option<ChildContainer> { 157 pub(super) fn find_container(&mut self, src: InFile<&SyntaxNode>) -> Option<ChildContainer> {
diff --git a/crates/ra_hir/src/source_analyzer.rs b/crates/ra_hir/src/source_analyzer.rs
index 74d64c97d..c63d1b847 100644
--- a/crates/ra_hir/src/source_analyzer.rs
+++ b/crates/ra_hir/src/source_analyzer.rs
@@ -224,7 +224,8 @@ impl SourceAnalyzer {
224 } 224 }
225 } 225 }
226 // This must be a normal source file rather than macro file. 226 // This must be a normal source file rather than macro file.
227 let hir_path = crate::Path::from_ast(path.clone())?; 227 let hir_path =
228 crate::Path::from_src(path.clone(), &Hygiene::new(db.upcast(), self.file_id))?;
228 resolve_hir_path(db, &self.resolver, &hir_path) 229 resolve_hir_path(db, &self.resolver, &hir_path)
229 } 230 }
230 231
diff --git a/crates/ra_hir_def/src/adt.rs b/crates/ra_hir_def/src/adt.rs
index 753becc3d..8eef51828 100644
--- a/crates/ra_hir_def/src/adt.rs
+++ b/crates/ra_hir_def/src/adt.rs
@@ -12,9 +12,15 @@ use ra_prof::profile;
12use ra_syntax::ast::{self, NameOwner, TypeAscriptionOwner, VisibilityOwner}; 12use ra_syntax::ast::{self, NameOwner, TypeAscriptionOwner, VisibilityOwner};
13 13
14use crate::{ 14use crate::{
15 body::CfgExpander, db::DefDatabase, src::HasChildSource, src::HasSource, trace::Trace, 15 body::{CfgExpander, LowerCtx},
16 type_ref::TypeRef, visibility::RawVisibility, EnumId, HasModule, LocalEnumVariantId, 16 db::DefDatabase,
17 LocalFieldId, Lookup, ModuleId, StructId, UnionId, VariantId, 17 src::HasChildSource,
18 src::HasSource,
19 trace::Trace,
20 type_ref::TypeRef,
21 visibility::RawVisibility,
22 EnumId, HasModule, LocalEnumVariantId, LocalFieldId, Lookup, ModuleId, StructId, UnionId,
23 VariantId,
18}; 24};
19 25
20/// Note that we use `StructData` for unions as well! 26/// Note that we use `StructData` for unions as well!
@@ -198,6 +204,8 @@ fn lower_struct(
198 trace: &mut Trace<FieldData, Either<ast::TupleFieldDef, ast::RecordFieldDef>>, 204 trace: &mut Trace<FieldData, Either<ast::TupleFieldDef, ast::RecordFieldDef>>,
199 ast: &InFile<ast::StructKind>, 205 ast: &InFile<ast::StructKind>,
200) -> StructKind { 206) -> StructKind {
207 let ctx = LowerCtx::new(db, ast.file_id);
208
201 match &ast.value { 209 match &ast.value {
202 ast::StructKind::Tuple(fl) => { 210 ast::StructKind::Tuple(fl) => {
203 for (i, fd) in fl.fields().enumerate() { 211 for (i, fd) in fl.fields().enumerate() {
@@ -210,7 +218,7 @@ fn lower_struct(
210 || Either::Left(fd.clone()), 218 || Either::Left(fd.clone()),
211 || FieldData { 219 || FieldData {
212 name: Name::new_tuple_field(i), 220 name: Name::new_tuple_field(i),
213 type_ref: TypeRef::from_ast_opt(fd.type_ref()), 221 type_ref: TypeRef::from_ast_opt(&ctx, fd.type_ref()),
214 visibility: RawVisibility::from_ast(db, ast.with_value(fd.visibility())), 222 visibility: RawVisibility::from_ast(db, ast.with_value(fd.visibility())),
215 }, 223 },
216 ); 224 );
@@ -228,7 +236,7 @@ fn lower_struct(
228 || Either::Right(fd.clone()), 236 || Either::Right(fd.clone()),
229 || FieldData { 237 || FieldData {
230 name: fd.name().map(|n| n.as_name()).unwrap_or_else(Name::missing), 238 name: fd.name().map(|n| n.as_name()).unwrap_or_else(Name::missing),
231 type_ref: TypeRef::from_ast_opt(fd.ascribed_type()), 239 type_ref: TypeRef::from_ast_opt(&ctx, fd.ascribed_type()),
232 visibility: RawVisibility::from_ast(db, ast.with_value(fd.visibility())), 240 visibility: RawVisibility::from_ast(db, ast.with_value(fd.visibility())),
233 }, 241 },
234 ); 242 );
diff --git a/crates/ra_hir_def/src/attr.rs b/crates/ra_hir_def/src/attr.rs
index 5a86af8ba..576cd0c65 100644
--- a/crates/ra_hir_def/src/attr.rs
+++ b/crates/ra_hir_def/src/attr.rs
@@ -140,6 +140,7 @@ impl Attr {
140 } 140 }
141} 141}
142 142
143#[derive(Debug, Clone, Copy)]
143pub struct AttrQuery<'a> { 144pub struct AttrQuery<'a> {
144 attrs: &'a Attrs, 145 attrs: &'a Attrs,
145 key: &'static str, 146 key: &'static str,
diff --git a/crates/ra_hir_def/src/body.rs b/crates/ra_hir_def/src/body.rs
index 890cefcaf..4edaad960 100644
--- a/crates/ra_hir_def/src/body.rs
+++ b/crates/ra_hir_def/src/body.rs
@@ -15,6 +15,8 @@ use ra_prof::profile;
15use ra_syntax::{ast, AstNode, AstPtr}; 15use ra_syntax::{ast, AstNode, AstPtr};
16use rustc_hash::FxHashMap; 16use rustc_hash::FxHashMap;
17 17
18pub(crate) use lower::LowerCtx;
19
18use crate::{ 20use crate::{
19 attr::Attrs, 21 attr::Attrs,
20 db::DefDatabase, 22 db::DefDatabase,
diff --git a/crates/ra_hir_def/src/body/lower.rs b/crates/ra_hir_def/src/body/lower.rs
index f467ed3fe..687216dc3 100644
--- a/crates/ra_hir_def/src/body/lower.rs
+++ b/crates/ra_hir_def/src/body/lower.rs
@@ -3,8 +3,9 @@
3 3
4use either::Either; 4use either::Either;
5use hir_expand::{ 5use hir_expand::{
6 hygiene::Hygiene,
6 name::{name, AsName, Name}, 7 name::{name, AsName, Name},
7 MacroDefId, MacroDefKind, 8 HirFileId, MacroDefId, MacroDefKind,
8}; 9};
9use ra_arena::Arena; 10use ra_arena::Arena;
10use ra_syntax::{ 11use ra_syntax::{
@@ -26,7 +27,7 @@ use crate::{
26 LogicOp, MatchArm, Ordering, Pat, PatId, RecordFieldPat, RecordLitField, Statement, 27 LogicOp, MatchArm, Ordering, Pat, PatId, RecordFieldPat, RecordLitField, Statement,
27 }, 28 },
28 item_scope::BuiltinShadowMode, 29 item_scope::BuiltinShadowMode,
29 path::GenericArgs, 30 path::{GenericArgs, Path},
30 type_ref::{Mutability, TypeRef}, 31 type_ref::{Mutability, TypeRef},
31 AdtId, ConstLoc, ContainerId, DefWithBodyId, EnumLoc, FunctionLoc, Intern, ModuleDefId, 32 AdtId, ConstLoc, ContainerId, DefWithBodyId, EnumLoc, FunctionLoc, Intern, ModuleDefId,
32 StaticLoc, StructLoc, TraitLoc, TypeAliasLoc, UnionLoc, 33 StaticLoc, StructLoc, TraitLoc, TypeAliasLoc, UnionLoc,
@@ -35,6 +36,23 @@ use crate::{
35use super::{ExprSource, PatSource}; 36use super::{ExprSource, PatSource};
36use ast::AstChildren; 37use ast::AstChildren;
37 38
39pub(crate) struct LowerCtx {
40 hygiene: Hygiene,
41}
42
43impl LowerCtx {
44 pub fn new(db: &dyn DefDatabase, file_id: HirFileId) -> Self {
45 LowerCtx { hygiene: Hygiene::new(db.upcast(), file_id) }
46 }
47 pub fn with_hygiene(hygiene: &Hygiene) -> Self {
48 LowerCtx { hygiene: hygiene.clone() }
49 }
50
51 pub fn lower_path(&self, ast: ast::Path) -> Option<Path> {
52 Path::from_src(ast, &self.hygiene)
53 }
54}
55
38pub(super) fn lower( 56pub(super) fn lower(
39 db: &dyn DefDatabase, 57 db: &dyn DefDatabase,
40 def: DefWithBodyId, 58 def: DefWithBodyId,
@@ -42,10 +60,13 @@ pub(super) fn lower(
42 params: Option<ast::ParamList>, 60 params: Option<ast::ParamList>,
43 body: Option<ast::Expr>, 61 body: Option<ast::Expr>,
44) -> (Body, BodySourceMap) { 62) -> (Body, BodySourceMap) {
63 let ctx = LowerCtx::new(db, expander.current_file_id.clone());
64
45 ExprCollector { 65 ExprCollector {
46 db, 66 db,
47 def, 67 def,
48 expander, 68 expander,
69 ctx,
49 source_map: BodySourceMap::default(), 70 source_map: BodySourceMap::default(),
50 body: Body { 71 body: Body {
51 exprs: Arena::default(), 72 exprs: Arena::default(),
@@ -62,7 +83,7 @@ struct ExprCollector<'a> {
62 db: &'a dyn DefDatabase, 83 db: &'a dyn DefDatabase,
63 def: DefWithBodyId, 84 def: DefWithBodyId,
64 expander: Expander, 85 expander: Expander,
65 86 ctx: LowerCtx,
66 body: Body, 87 body: Body,
67 source_map: BodySourceMap, 88 source_map: BodySourceMap,
68} 89}
@@ -182,6 +203,16 @@ impl ExprCollector<'_> {
182 203
183 self.alloc_expr(Expr::If { condition, then_branch, else_branch }, syntax_ptr) 204 self.alloc_expr(Expr::If { condition, then_branch, else_branch }, syntax_ptr)
184 } 205 }
206 ast::Expr::EffectExpr(e) => match e.effect() {
207 ast::Effect::Try(_) => {
208 let body = self.collect_block_opt(e.block_expr());
209 self.alloc_expr(Expr::TryBlock { body }, syntax_ptr)
210 }
211 // FIXME: we need to record these effects somewhere...
212 ast::Effect::Async(_) | ast::Effect::Label(_) | ast::Effect::Unsafe(_) => {
213 self.collect_block_opt(e.block_expr())
214 }
215 },
185 ast::Expr::BlockExpr(e) => self.collect_block(e), 216 ast::Expr::BlockExpr(e) => self.collect_block(e),
186 ast::Expr::LoopExpr(e) => { 217 ast::Expr::LoopExpr(e) => {
187 let body = self.collect_block_opt(e.loop_body()); 218 let body = self.collect_block_opt(e.loop_body());
@@ -237,7 +268,8 @@ impl ExprCollector<'_> {
237 Vec::new() 268 Vec::new()
238 }; 269 };
239 let method_name = e.name_ref().map(|nr| nr.as_name()).unwrap_or_else(Name::missing); 270 let method_name = e.name_ref().map(|nr| nr.as_name()).unwrap_or_else(Name::missing);
240 let generic_args = e.type_arg_list().and_then(GenericArgs::from_ast); 271 let generic_args =
272 e.type_arg_list().and_then(|it| GenericArgs::from_ast(&self.ctx, it));
241 self.alloc_expr( 273 self.alloc_expr(
242 Expr::MethodCall { receiver, method_name, args, generic_args }, 274 Expr::MethodCall { receiver, method_name, args, generic_args },
243 syntax_ptr, 275 syntax_ptr,
@@ -343,7 +375,7 @@ impl ExprCollector<'_> {
343 } 375 }
344 ast::Expr::CastExpr(e) => { 376 ast::Expr::CastExpr(e) => {
345 let expr = self.collect_expr_opt(e.expr()); 377 let expr = self.collect_expr_opt(e.expr());
346 let type_ref = TypeRef::from_ast_opt(e.type_ref()); 378 let type_ref = TypeRef::from_ast_opt(&self.ctx, e.type_ref());
347 self.alloc_expr(Expr::Cast { expr, type_ref }, syntax_ptr) 379 self.alloc_expr(Expr::Cast { expr, type_ref }, syntax_ptr)
348 } 380 }
349 ast::Expr::RefExpr(e) => { 381 ast::Expr::RefExpr(e) => {
@@ -365,12 +397,16 @@ impl ExprCollector<'_> {
365 if let Some(pl) = e.param_list() { 397 if let Some(pl) = e.param_list() {
366 for param in pl.params() { 398 for param in pl.params() {
367 let pat = self.collect_pat_opt(param.pat()); 399 let pat = self.collect_pat_opt(param.pat());
368 let type_ref = param.ascribed_type().map(TypeRef::from_ast); 400 let type_ref =
401 param.ascribed_type().map(|it| TypeRef::from_ast(&self.ctx, it));
369 args.push(pat); 402 args.push(pat);
370 arg_types.push(type_ref); 403 arg_types.push(type_ref);
371 } 404 }
372 } 405 }
373 let ret_type = e.ret_type().and_then(|r| r.type_ref()).map(TypeRef::from_ast); 406 let ret_type = e
407 .ret_type()
408 .and_then(|r| r.type_ref())
409 .map(|it| TypeRef::from_ast(&self.ctx, it));
374 let body = self.collect_expr_opt(e.body()); 410 let body = self.collect_expr_opt(e.body());
375 self.alloc_expr(Expr::Lambda { args, arg_types, ret_type, body }, syntax_ptr) 411 self.alloc_expr(Expr::Lambda { args, arg_types, ret_type, body }, syntax_ptr)
376 } 412 }
@@ -430,6 +466,7 @@ impl ExprCollector<'_> {
430 krate: Some(self.expander.module.krate), 466 krate: Some(self.expander.module.krate),
431 ast_id: Some(self.expander.ast_id(&e)), 467 ast_id: Some(self.expander.ast_id(&e)),
432 kind: MacroDefKind::Declarative, 468 kind: MacroDefKind::Declarative,
469 local_inner: false,
433 }; 470 };
434 self.body.item_scope.define_legacy_macro(name, mac); 471 self.body.item_scope.define_legacy_macro(name, mac);
435 472
@@ -464,19 +501,15 @@ impl ExprCollector<'_> {
464 } 501 }
465 } 502 }
466 503
467 fn collect_block(&mut self, expr: ast::BlockExpr) -> ExprId { 504 fn collect_block(&mut self, block: ast::BlockExpr) -> ExprId {
468 let syntax_node_ptr = AstPtr::new(&expr.clone().into()); 505 let syntax_node_ptr = AstPtr::new(&block.clone().into());
469 let block = match expr.block() {
470 Some(block) => block,
471 None => return self.alloc_expr(Expr::Missing, syntax_node_ptr),
472 };
473 self.collect_block_items(&block); 506 self.collect_block_items(&block);
474 let statements = block 507 let statements = block
475 .statements() 508 .statements()
476 .map(|s| match s { 509 .map(|s| match s {
477 ast::Stmt::LetStmt(stmt) => { 510 ast::Stmt::LetStmt(stmt) => {
478 let pat = self.collect_pat_opt(stmt.pat()); 511 let pat = self.collect_pat_opt(stmt.pat());
479 let type_ref = stmt.ascribed_type().map(TypeRef::from_ast); 512 let type_ref = stmt.ascribed_type().map(|it| TypeRef::from_ast(&self.ctx, it));
480 let initializer = stmt.initializer().map(|e| self.collect_expr(e)); 513 let initializer = stmt.initializer().map(|e| self.collect_expr(e));
481 Statement::Let { pat, type_ref, initializer } 514 Statement::Let { pat, type_ref, initializer }
482 } 515 }
@@ -487,7 +520,7 @@ impl ExprCollector<'_> {
487 self.alloc_expr(Expr::Block { statements, tail }, syntax_node_ptr) 520 self.alloc_expr(Expr::Block { statements, tail }, syntax_node_ptr)
488 } 521 }
489 522
490 fn collect_block_items(&mut self, block: &ast::Block) { 523 fn collect_block_items(&mut self, block: &ast::BlockExpr) {
491 let container = ContainerId::DefWithBodyId(self.def); 524 let container = ContainerId::DefWithBodyId(self.def);
492 for item in block.items() { 525 for item in block.items() {
493 let (def, name): (ModuleDefId, Option<ast::Name>) = match item { 526 let (def, name): (ModuleDefId, Option<ast::Name>) = match item {
diff --git a/crates/ra_hir_def/src/data.rs b/crates/ra_hir_def/src/data.rs
index ccb682f9a..7a2067e49 100644
--- a/crates/ra_hir_def/src/data.rs
+++ b/crates/ra_hir_def/src/data.rs
@@ -15,6 +15,7 @@ use ra_syntax::ast::{
15 15
16use crate::{ 16use crate::{
17 attr::Attrs, 17 attr::Attrs,
18 body::LowerCtx,
18 db::DefDatabase, 19 db::DefDatabase,
19 path::{path, AssociatedTypeBinding, GenericArgs, Path}, 20 path::{path, AssociatedTypeBinding, GenericArgs, Path},
20 src::HasSource, 21 src::HasSource,
@@ -40,13 +41,14 @@ impl FunctionData {
40 pub(crate) fn fn_data_query(db: &impl DefDatabase, func: FunctionId) -> Arc<FunctionData> { 41 pub(crate) fn fn_data_query(db: &impl DefDatabase, func: FunctionId) -> Arc<FunctionData> {
41 let loc = func.lookup(db); 42 let loc = func.lookup(db);
42 let src = loc.source(db); 43 let src = loc.source(db);
44 let ctx = LowerCtx::new(db, src.file_id);
43 let name = src.value.name().map(|n| n.as_name()).unwrap_or_else(Name::missing); 45 let name = src.value.name().map(|n| n.as_name()).unwrap_or_else(Name::missing);
44 let mut params = Vec::new(); 46 let mut params = Vec::new();
45 let mut has_self_param = false; 47 let mut has_self_param = false;
46 if let Some(param_list) = src.value.param_list() { 48 if let Some(param_list) = src.value.param_list() {
47 if let Some(self_param) = param_list.self_param() { 49 if let Some(self_param) = param_list.self_param() {
48 let self_type = if let Some(type_ref) = self_param.ascribed_type() { 50 let self_type = if let Some(type_ref) = self_param.ascribed_type() {
49 TypeRef::from_ast(type_ref) 51 TypeRef::from_ast(&ctx, type_ref)
50 } else { 52 } else {
51 let self_type = TypeRef::Path(name![Self].into()); 53 let self_type = TypeRef::Path(name![Self].into());
52 match self_param.kind() { 54 match self_param.kind() {
@@ -63,14 +65,14 @@ impl FunctionData {
63 has_self_param = true; 65 has_self_param = true;
64 } 66 }
65 for param in param_list.params() { 67 for param in param_list.params() {
66 let type_ref = TypeRef::from_ast_opt(param.ascribed_type()); 68 let type_ref = TypeRef::from_ast_opt(&ctx, param.ascribed_type());
67 params.push(type_ref); 69 params.push(type_ref);
68 } 70 }
69 } 71 }
70 let attrs = Attrs::new(&src.value, &Hygiene::new(db.upcast(), src.file_id)); 72 let attrs = Attrs::new(&src.value, &Hygiene::new(db.upcast(), src.file_id));
71 73
72 let ret_type = if let Some(type_ref) = src.value.ret_type().and_then(|rt| rt.type_ref()) { 74 let ret_type = if let Some(type_ref) = src.value.ret_type().and_then(|rt| rt.type_ref()) {
73 TypeRef::from_ast(type_ref) 75 TypeRef::from_ast(&ctx, type_ref)
74 } else { 76 } else {
75 TypeRef::unit() 77 TypeRef::unit()
76 }; 78 };
@@ -122,7 +124,8 @@ impl TypeAliasData {
122 let loc = typ.lookup(db); 124 let loc = typ.lookup(db);
123 let node = loc.source(db); 125 let node = loc.source(db);
124 let name = node.value.name().map_or_else(Name::missing, |n| n.as_name()); 126 let name = node.value.name().map_or_else(Name::missing, |n| n.as_name());
125 let type_ref = node.value.type_ref().map(TypeRef::from_ast); 127 let lower_ctx = LowerCtx::new(db, node.file_id);
128 let type_ref = node.value.type_ref().map(|it| TypeRef::from_ast(&lower_ctx, it));
126 let vis_default = RawVisibility::default_for_container(loc.container); 129 let vis_default = RawVisibility::default_for_container(loc.container);
127 let visibility = RawVisibility::from_ast_with_default( 130 let visibility = RawVisibility::from_ast_with_default(
128 db, 131 db,
@@ -130,7 +133,7 @@ impl TypeAliasData {
130 node.as_ref().map(|n| n.visibility()), 133 node.as_ref().map(|n| n.visibility()),
131 ); 134 );
132 let bounds = if let Some(bound_list) = node.value.type_bound_list() { 135 let bounds = if let Some(bound_list) = node.value.type_bound_list() {
133 bound_list.bounds().map(TypeBound::from_ast).collect() 136 bound_list.bounds().map(|it| TypeBound::from_ast(&lower_ctx, it)).collect()
134 } else { 137 } else {
135 Vec::new() 138 Vec::new()
136 }; 139 };
@@ -223,9 +226,10 @@ impl ImplData {
223 let _p = profile("impl_data_query"); 226 let _p = profile("impl_data_query");
224 let impl_loc = id.lookup(db); 227 let impl_loc = id.lookup(db);
225 let src = impl_loc.source(db); 228 let src = impl_loc.source(db);
229 let lower_ctx = LowerCtx::new(db, src.file_id);
226 230
227 let target_trait = src.value.target_trait().map(TypeRef::from_ast); 231 let target_trait = src.value.target_trait().map(|it| TypeRef::from_ast(&lower_ctx, it));
228 let target_type = TypeRef::from_ast_opt(src.value.target_type()); 232 let target_type = TypeRef::from_ast_opt(&lower_ctx, src.value.target_type());
229 let is_negative = src.value.excl_token().is_some(); 233 let is_negative = src.value.excl_token().is_some();
230 let module_id = impl_loc.container.module(db); 234 let module_id = impl_loc.container.module(db);
231 235
@@ -279,8 +283,9 @@ impl ConstData {
279 vis_default: RawVisibility, 283 vis_default: RawVisibility,
280 node: InFile<N>, 284 node: InFile<N>,
281 ) -> ConstData { 285 ) -> ConstData {
286 let ctx = LowerCtx::new(db, node.file_id);
282 let name = node.value.name().map(|n| n.as_name()); 287 let name = node.value.name().map(|n| n.as_name());
283 let type_ref = TypeRef::from_ast_opt(node.value.ascribed_type()); 288 let type_ref = TypeRef::from_ast_opt(&ctx, node.value.ascribed_type());
284 let visibility = 289 let visibility =
285 RawVisibility::from_ast_with_default(db, vis_default, node.map(|n| n.visibility())); 290 RawVisibility::from_ast_with_default(db, vis_default, node.map(|n| n.visibility()));
286 ConstData { name, type_ref, visibility } 291 ConstData { name, type_ref, visibility }
diff --git a/crates/ra_hir_def/src/expr.rs b/crates/ra_hir_def/src/expr.rs
index aad12e123..a0cdad529 100644
--- a/crates/ra_hir_def/src/expr.rs
+++ b/crates/ra_hir_def/src/expr.rs
@@ -101,6 +101,9 @@ pub enum Expr {
101 Try { 101 Try {
102 expr: ExprId, 102 expr: ExprId,
103 }, 103 },
104 TryBlock {
105 body: ExprId,
106 },
104 Cast { 107 Cast {
105 expr: ExprId, 108 expr: ExprId,
106 type_ref: TypeRef, 109 type_ref: TypeRef,
@@ -236,6 +239,7 @@ impl Expr {
236 f(*expr); 239 f(*expr);
237 } 240 }
238 } 241 }
242 Expr::TryBlock { body } => f(*body),
239 Expr::Loop { body } => f(*body), 243 Expr::Loop { body } => f(*body),
240 Expr::While { condition, body } => { 244 Expr::While { condition, body } => {
241 f(*condition); 245 f(*condition);
diff --git a/crates/ra_hir_def/src/generics.rs b/crates/ra_hir_def/src/generics.rs
index d850244c4..09a5241f7 100644
--- a/crates/ra_hir_def/src/generics.rs
+++ b/crates/ra_hir_def/src/generics.rs
@@ -15,6 +15,7 @@ use ra_prof::profile;
15use ra_syntax::ast::{self, NameOwner, TypeBoundsOwner, TypeParamsOwner}; 15use ra_syntax::ast::{self, NameOwner, TypeBoundsOwner, TypeParamsOwner};
16 16
17use crate::{ 17use crate::{
18 body::LowerCtx,
18 child_by_source::ChildBySource, 19 child_by_source::ChildBySource,
19 db::DefDatabase, 20 db::DefDatabase,
20 dyn_map::DynMap, 21 dyn_map::DynMap,
@@ -80,11 +81,13 @@ impl GenericParams {
80 fn new(db: &dyn DefDatabase, def: GenericDefId) -> (GenericParams, InFile<SourceMap>) { 81 fn new(db: &dyn DefDatabase, def: GenericDefId) -> (GenericParams, InFile<SourceMap>) {
81 let mut generics = GenericParams { types: Arena::default(), where_predicates: Vec::new() }; 82 let mut generics = GenericParams { types: Arena::default(), where_predicates: Vec::new() };
82 let mut sm = ArenaMap::default(); 83 let mut sm = ArenaMap::default();
84
83 // FIXME: add `: Sized` bound for everything except for `Self` in traits 85 // FIXME: add `: Sized` bound for everything except for `Self` in traits
84 let file_id = match def { 86 let file_id = match def {
85 GenericDefId::FunctionId(it) => { 87 GenericDefId::FunctionId(it) => {
86 let src = it.lookup(db).source(db); 88 let src = it.lookup(db).source(db);
87 generics.fill(&mut sm, &src.value); 89 let lower_ctx = LowerCtx::new(db, src.file_id);
90 generics.fill(&lower_ctx, &mut sm, &src.value);
88 // lower `impl Trait` in arguments 91 // lower `impl Trait` in arguments
89 let data = db.function_data(it); 92 let data = db.function_data(it);
90 for param in &data.params { 93 for param in &data.params {
@@ -94,21 +97,25 @@ impl GenericParams {
94 } 97 }
95 GenericDefId::AdtId(AdtId::StructId(it)) => { 98 GenericDefId::AdtId(AdtId::StructId(it)) => {
96 let src = it.lookup(db).source(db); 99 let src = it.lookup(db).source(db);
97 generics.fill(&mut sm, &src.value); 100 let lower_ctx = LowerCtx::new(db, src.file_id);
101 generics.fill(&lower_ctx, &mut sm, &src.value);
98 src.file_id 102 src.file_id
99 } 103 }
100 GenericDefId::AdtId(AdtId::UnionId(it)) => { 104 GenericDefId::AdtId(AdtId::UnionId(it)) => {
101 let src = it.lookup(db).source(db); 105 let src = it.lookup(db).source(db);
102 generics.fill(&mut sm, &src.value); 106 let lower_ctx = LowerCtx::new(db, src.file_id);
107 generics.fill(&lower_ctx, &mut sm, &src.value);
103 src.file_id 108 src.file_id
104 } 109 }
105 GenericDefId::AdtId(AdtId::EnumId(it)) => { 110 GenericDefId::AdtId(AdtId::EnumId(it)) => {
106 let src = it.lookup(db).source(db); 111 let src = it.lookup(db).source(db);
107 generics.fill(&mut sm, &src.value); 112 let lower_ctx = LowerCtx::new(db, src.file_id);
113 generics.fill(&lower_ctx, &mut sm, &src.value);
108 src.file_id 114 src.file_id
109 } 115 }
110 GenericDefId::TraitId(it) => { 116 GenericDefId::TraitId(it) => {
111 let src = it.lookup(db).source(db); 117 let src = it.lookup(db).source(db);
118 let lower_ctx = LowerCtx::new(db, src.file_id);
112 119
113 // traits get the Self type as an implicit first type parameter 120 // traits get the Self type as an implicit first type parameter
114 let self_param_id = generics.types.alloc(TypeParamData { 121 let self_param_id = generics.types.alloc(TypeParamData {
@@ -120,14 +127,16 @@ impl GenericParams {
120 // add super traits as bounds on Self 127 // add super traits as bounds on Self
121 // i.e., trait Foo: Bar is equivalent to trait Foo where Self: Bar 128 // i.e., trait Foo: Bar is equivalent to trait Foo where Self: Bar
122 let self_param = TypeRef::Path(name![Self].into()); 129 let self_param = TypeRef::Path(name![Self].into());
123 generics.fill_bounds(&src.value, self_param); 130 generics.fill_bounds(&lower_ctx, &src.value, self_param);
124 131
125 generics.fill(&mut sm, &src.value); 132 generics.fill(&lower_ctx, &mut sm, &src.value);
126 src.file_id 133 src.file_id
127 } 134 }
128 GenericDefId::TypeAliasId(it) => { 135 GenericDefId::TypeAliasId(it) => {
129 let src = it.lookup(db).source(db); 136 let src = it.lookup(db).source(db);
130 generics.fill(&mut sm, &src.value); 137 let lower_ctx = LowerCtx::new(db, src.file_id);
138
139 generics.fill(&lower_ctx, &mut sm, &src.value);
131 src.file_id 140 src.file_id
132 } 141 }
133 // Note that we don't add `Self` here: in `impl`s, `Self` is not a 142 // Note that we don't add `Self` here: in `impl`s, `Self` is not a
@@ -135,7 +144,9 @@ impl GenericParams {
135 // type, so this is handled by the resolver. 144 // type, so this is handled by the resolver.
136 GenericDefId::ImplId(it) => { 145 GenericDefId::ImplId(it) => {
137 let src = it.lookup(db).source(db); 146 let src = it.lookup(db).source(db);
138 generics.fill(&mut sm, &src.value); 147 let lower_ctx = LowerCtx::new(db, src.file_id);
148
149 generics.fill(&lower_ctx, &mut sm, &src.value);
139 src.file_id 150 src.file_id
140 } 151 }
141 // We won't be using this ID anyway 152 // We won't be using this ID anyway
@@ -145,28 +156,38 @@ impl GenericParams {
145 (generics, InFile::new(file_id, sm)) 156 (generics, InFile::new(file_id, sm))
146 } 157 }
147 158
148 fn fill(&mut self, sm: &mut SourceMap, node: &dyn TypeParamsOwner) { 159 fn fill(&mut self, lower_ctx: &LowerCtx, sm: &mut SourceMap, node: &dyn TypeParamsOwner) {
149 if let Some(params) = node.type_param_list() { 160 if let Some(params) = node.type_param_list() {
150 self.fill_params(sm, params) 161 self.fill_params(lower_ctx, sm, params)
151 } 162 }
152 if let Some(where_clause) = node.where_clause() { 163 if let Some(where_clause) = node.where_clause() {
153 self.fill_where_predicates(where_clause); 164 self.fill_where_predicates(lower_ctx, where_clause);
154 } 165 }
155 } 166 }
156 167
157 fn fill_bounds(&mut self, node: &dyn ast::TypeBoundsOwner, type_ref: TypeRef) { 168 fn fill_bounds(
169 &mut self,
170 lower_ctx: &LowerCtx,
171 node: &dyn ast::TypeBoundsOwner,
172 type_ref: TypeRef,
173 ) {
158 for bound in 174 for bound in
159 node.type_bound_list().iter().flat_map(|type_bound_list| type_bound_list.bounds()) 175 node.type_bound_list().iter().flat_map(|type_bound_list| type_bound_list.bounds())
160 { 176 {
161 self.add_where_predicate_from_bound(bound, type_ref.clone()); 177 self.add_where_predicate_from_bound(lower_ctx, bound, type_ref.clone());
162 } 178 }
163 } 179 }
164 180
165 fn fill_params(&mut self, sm: &mut SourceMap, params: ast::TypeParamList) { 181 fn fill_params(
182 &mut self,
183 lower_ctx: &LowerCtx,
184 sm: &mut SourceMap,
185 params: ast::TypeParamList,
186 ) {
166 for type_param in params.type_params() { 187 for type_param in params.type_params() {
167 let name = type_param.name().map_or_else(Name::missing, |it| it.as_name()); 188 let name = type_param.name().map_or_else(Name::missing, |it| it.as_name());
168 // FIXME: Use `Path::from_src` 189 // FIXME: Use `Path::from_src`
169 let default = type_param.default_type().map(TypeRef::from_ast); 190 let default = type_param.default_type().map(|it| TypeRef::from_ast(lower_ctx, it));
170 let param = TypeParamData { 191 let param = TypeParamData {
171 name: Some(name.clone()), 192 name: Some(name.clone()),
172 default, 193 default,
@@ -176,29 +197,34 @@ impl GenericParams {
176 sm.insert(param_id, Either::Right(type_param.clone())); 197 sm.insert(param_id, Either::Right(type_param.clone()));
177 198
178 let type_ref = TypeRef::Path(name.into()); 199 let type_ref = TypeRef::Path(name.into());
179 self.fill_bounds(&type_param, type_ref); 200 self.fill_bounds(&lower_ctx, &type_param, type_ref);
180 } 201 }
181 } 202 }
182 203
183 fn fill_where_predicates(&mut self, where_clause: ast::WhereClause) { 204 fn fill_where_predicates(&mut self, lower_ctx: &LowerCtx, where_clause: ast::WhereClause) {
184 for pred in where_clause.predicates() { 205 for pred in where_clause.predicates() {
185 let type_ref = match pred.type_ref() { 206 let type_ref = match pred.type_ref() {
186 Some(type_ref) => type_ref, 207 Some(type_ref) => type_ref,
187 None => continue, 208 None => continue,
188 }; 209 };
189 let type_ref = TypeRef::from_ast(type_ref); 210 let type_ref = TypeRef::from_ast(lower_ctx, type_ref);
190 for bound in pred.type_bound_list().iter().flat_map(|l| l.bounds()) { 211 for bound in pred.type_bound_list().iter().flat_map(|l| l.bounds()) {
191 self.add_where_predicate_from_bound(bound, type_ref.clone()); 212 self.add_where_predicate_from_bound(lower_ctx, bound, type_ref.clone());
192 } 213 }
193 } 214 }
194 } 215 }
195 216
196 fn add_where_predicate_from_bound(&mut self, bound: ast::TypeBound, type_ref: TypeRef) { 217 fn add_where_predicate_from_bound(
218 &mut self,
219 lower_ctx: &LowerCtx,
220 bound: ast::TypeBound,
221 type_ref: TypeRef,
222 ) {
197 if bound.question_token().is_some() { 223 if bound.question_token().is_some() {
198 // FIXME: remove this bound 224 // FIXME: remove this bound
199 return; 225 return;
200 } 226 }
201 let bound = TypeBound::from_ast(bound); 227 let bound = TypeBound::from_ast(lower_ctx, bound);
202 self.where_predicates 228 self.where_predicates
203 .push(WherePredicate { target: WherePredicateTarget::TypeRef(type_ref), bound }); 229 .push(WherePredicate { target: WherePredicateTarget::TypeRef(type_ref), bound });
204 } 230 }
diff --git a/crates/ra_hir_def/src/nameres/collector.rs b/crates/ra_hir_def/src/nameres/collector.rs
index 98c74fe25..bf3968bd6 100644
--- a/crates/ra_hir_def/src/nameres/collector.rs
+++ b/crates/ra_hir_def/src/nameres/collector.rs
@@ -204,6 +204,7 @@ impl DefCollector<'_> {
204 ast_id: None, 204 ast_id: None,
205 krate: Some(krate), 205 krate: Some(krate),
206 kind: MacroDefKind::CustomDerive(expander), 206 kind: MacroDefKind::CustomDerive(expander),
207 local_inner: false,
207 }; 208 };
208 209
209 self.define_proc_macro(name.clone(), macro_id); 210 self.define_proc_macro(name.clone(), macro_id);
@@ -941,6 +942,7 @@ impl ModCollector<'_, '_> {
941 ast_id: Some(ast_id.ast_id), 942 ast_id: Some(ast_id.ast_id),
942 krate: Some(self.def_collector.def_map.krate), 943 krate: Some(self.def_collector.def_map.krate),
943 kind: MacroDefKind::Declarative, 944 kind: MacroDefKind::Declarative,
945 local_inner: mac.local_inner,
944 }; 946 };
945 self.def_collector.define_macro(self.module_id, name.clone(), macro_id, mac.export); 947 self.def_collector.define_macro(self.module_id, name.clone(), macro_id, mac.export);
946 } 948 }
diff --git a/crates/ra_hir_def/src/nameres/raw.rs b/crates/ra_hir_def/src/nameres/raw.rs
index 39b011ad7..a71503c76 100644
--- a/crates/ra_hir_def/src/nameres/raw.rs
+++ b/crates/ra_hir_def/src/nameres/raw.rs
@@ -188,6 +188,7 @@ pub(super) struct MacroData {
188 pub(super) path: ModPath, 188 pub(super) path: ModPath,
189 pub(super) name: Option<Name>, 189 pub(super) name: Option<Name>,
190 pub(super) export: bool, 190 pub(super) export: bool,
191 pub(super) local_inner: bool,
191 pub(super) builtin: bool, 192 pub(super) builtin: bool,
192} 193}
193 194
@@ -401,14 +402,32 @@ impl RawItemsCollector {
401 402
402 let name = m.name().map(|it| it.as_name()); 403 let name = m.name().map(|it| it.as_name());
403 let ast_id = self.source_ast_id_map.ast_id(&m); 404 let ast_id = self.source_ast_id_map.ast_id(&m);
404 // FIXME: cfg_attr
405 let export = m.attrs().filter_map(|x| x.simple_name()).any(|name| name == "macro_export");
406 405
407 // FIXME: cfg_attr 406 // FIXME: cfg_attr
408 let builtin = 407 let export_attr = attrs.by_key("macro_export");
409 m.attrs().filter_map(|x| x.simple_name()).any(|name| name == "rustc_builtin_macro"); 408
409 let export = export_attr.exists();
410 let local_inner = if export {
411 export_attr.tt_values().map(|it| &it.token_trees).flatten().any(|it| match it {
412 tt::TokenTree::Leaf(tt::Leaf::Ident(ident)) => {
413 ident.text.contains("local_inner_macros")
414 }
415 _ => false,
416 })
417 } else {
418 false
419 };
420
421 let builtin = attrs.by_key("rustc_builtin_macro").exists();
410 422
411 let m = self.raw_items.macros.alloc(MacroData { ast_id, path, name, export, builtin }); 423 let m = self.raw_items.macros.alloc(MacroData {
424 ast_id,
425 path,
426 name,
427 export,
428 local_inner,
429 builtin,
430 });
412 self.push_item(current_module, attrs, RawItemKind::Macro(m)); 431 self.push_item(current_module, attrs, RawItemKind::Macro(m));
413 } 432 }
414 433
diff --git a/crates/ra_hir_def/src/nameres/tests/macros.rs b/crates/ra_hir_def/src/nameres/tests/macros.rs
index b0befdfbd..9bc0e6287 100644
--- a/crates/ra_hir_def/src/nameres/tests/macros.rs
+++ b/crates/ra_hir_def/src/nameres/tests/macros.rs
@@ -136,6 +136,43 @@ fn macro_rules_export_with_local_inner_macros_are_visible() {
136} 136}
137 137
138#[test] 138#[test]
139fn local_inner_macros_makes_local_macros_usable() {
140 let map = def_map(
141 "
142 //- /main.rs crate:main deps:foo
143 foo::structs!(Foo, Bar);
144 mod bar;
145 //- /bar.rs
146 use crate::*;
147 //- /lib.rs crate:foo
148 #[macro_export(local_inner_macros)]
149 macro_rules! structs {
150 ($($i:ident),*) => {
151 inner!($($i),*);
152 }
153 }
154 #[macro_export]
155 macro_rules! inner {
156 ($($i:ident),*) => {
157 $(struct $i { field: u32 } )*
158 }
159 }
160 ",
161 );
162 assert_snapshot!(map, @r###"
163 â‹®crate
164 â‹®Bar: t v
165 â‹®Foo: t v
166 â‹®bar: t
167 â‹®
168 â‹®crate::bar
169 â‹®Bar: t v
170 â‹®Foo: t v
171 â‹®bar: t
172 "###);
173}
174
175#[test]
139fn unexpanded_macro_should_expand_by_fixedpoint_loop() { 176fn unexpanded_macro_should_expand_by_fixedpoint_loop() {
140 let map = def_map( 177 let map = def_map(
141 " 178 "
diff --git a/crates/ra_hir_def/src/path.rs b/crates/ra_hir_def/src/path.rs
index 162b3c8c7..e84efe2ab 100644
--- a/crates/ra_hir_def/src/path.rs
+++ b/crates/ra_hir_def/src/path.rs
@@ -7,6 +7,7 @@ use std::{
7 sync::Arc, 7 sync::Arc,
8}; 8};
9 9
10use crate::body::LowerCtx;
10use hir_expand::{ 11use hir_expand::{
11 hygiene::Hygiene, 12 hygiene::Hygiene,
12 name::{AsName, Name}, 13 name::{AsName, Name},
@@ -244,8 +245,8 @@ impl<'a> PathSegments<'a> {
244} 245}
245 246
246impl GenericArgs { 247impl GenericArgs {
247 pub(crate) fn from_ast(node: ast::TypeArgList) -> Option<GenericArgs> { 248 pub(crate) fn from_ast(lower_ctx: &LowerCtx, node: ast::TypeArgList) -> Option<GenericArgs> {
248 lower::lower_generic_args(node) 249 lower::lower_generic_args(lower_ctx, node)
249 } 250 }
250 251
251 pub(crate) fn empty() -> GenericArgs { 252 pub(crate) fn empty() -> GenericArgs {
diff --git a/crates/ra_hir_def/src/path/lower.rs b/crates/ra_hir_def/src/path/lower.rs
index 9ec2e0dcd..6a0c019fd 100644
--- a/crates/ra_hir_def/src/path/lower.rs
+++ b/crates/ra_hir_def/src/path/lower.rs
@@ -13,6 +13,7 @@ use ra_syntax::ast::{self, AstNode, TypeAscriptionOwner, TypeBoundsOwner};
13 13
14use super::AssociatedTypeBinding; 14use super::AssociatedTypeBinding;
15use crate::{ 15use crate::{
16 body::LowerCtx,
16 path::{GenericArg, GenericArgs, ModPath, Path, PathKind}, 17 path::{GenericArg, GenericArgs, ModPath, Path, PathKind},
17 type_ref::{TypeBound, TypeRef}, 18 type_ref::{TypeBound, TypeRef},
18}; 19};
@@ -26,6 +27,7 @@ pub(super) fn lower_path(mut path: ast::Path, hygiene: &Hygiene) -> Option<Path>
26 let mut type_anchor = None; 27 let mut type_anchor = None;
27 let mut segments = Vec::new(); 28 let mut segments = Vec::new();
28 let mut generic_args = Vec::new(); 29 let mut generic_args = Vec::new();
30 let ctx = LowerCtx::with_hygiene(hygiene);
29 loop { 31 loop {
30 let segment = path.segment()?; 32 let segment = path.segment()?;
31 33
@@ -40,9 +42,10 @@ pub(super) fn lower_path(mut path: ast::Path, hygiene: &Hygiene) -> Option<Path>
40 Either::Left(name) => { 42 Either::Left(name) => {
41 let args = segment 43 let args = segment
42 .type_arg_list() 44 .type_arg_list()
43 .and_then(lower_generic_args) 45 .and_then(|it| lower_generic_args(&ctx, it))
44 .or_else(|| { 46 .or_else(|| {
45 lower_generic_args_from_fn_path( 47 lower_generic_args_from_fn_path(
48 &ctx,
46 segment.param_list(), 49 segment.param_list(),
47 segment.ret_type(), 50 segment.ret_type(),
48 ) 51 )
@@ -60,7 +63,7 @@ pub(super) fn lower_path(mut path: ast::Path, hygiene: &Hygiene) -> Option<Path>
60 ast::PathSegmentKind::Type { type_ref, trait_ref } => { 63 ast::PathSegmentKind::Type { type_ref, trait_ref } => {
61 assert!(path.qualifier().is_none()); // this can only occur at the first segment 64 assert!(path.qualifier().is_none()); // this can only occur at the first segment
62 65
63 let self_type = TypeRef::from_ast(type_ref?); 66 let self_type = TypeRef::from_ast(&ctx, type_ref?);
64 67
65 match trait_ref { 68 match trait_ref {
66 // <T>::foo 69 // <T>::foo
@@ -113,6 +116,21 @@ pub(super) fn lower_path(mut path: ast::Path, hygiene: &Hygiene) -> Option<Path>
113 } 116 }
114 segments.reverse(); 117 segments.reverse();
115 generic_args.reverse(); 118 generic_args.reverse();
119
120 // handle local_inner_macros :
121 // Basically, even in rustc it is quite hacky:
122 // https://github.com/rust-lang/rust/blob/614f273e9388ddd7804d5cbc80b8865068a3744e/src/librustc_resolve/macros.rs#L456
123 // We follow what it did anyway :)
124 if segments.len() == 1 && kind == PathKind::Plain {
125 if let Some(macro_call) = path.syntax().parent().and_then(ast::MacroCall::cast) {
126 if macro_call.is_bang() {
127 if let Some(crate_id) = hygiene.local_inner_macros() {
128 kind = PathKind::DollarCrate(crate_id);
129 }
130 }
131 }
132 }
133
116 let mod_path = ModPath { kind, segments }; 134 let mod_path = ModPath { kind, segments };
117 return Some(Path { type_anchor, mod_path, generic_args }); 135 return Some(Path { type_anchor, mod_path, generic_args });
118 136
@@ -128,10 +146,13 @@ pub(super) fn lower_path(mut path: ast::Path, hygiene: &Hygiene) -> Option<Path>
128 } 146 }
129} 147}
130 148
131pub(super) fn lower_generic_args(node: ast::TypeArgList) -> Option<GenericArgs> { 149pub(super) fn lower_generic_args(
150 lower_ctx: &LowerCtx,
151 node: ast::TypeArgList,
152) -> Option<GenericArgs> {
132 let mut args = Vec::new(); 153 let mut args = Vec::new();
133 for type_arg in node.type_args() { 154 for type_arg in node.type_args() {
134 let type_ref = TypeRef::from_ast_opt(type_arg.type_ref()); 155 let type_ref = TypeRef::from_ast_opt(lower_ctx, type_arg.type_ref());
135 args.push(GenericArg::Type(type_ref)); 156 args.push(GenericArg::Type(type_ref));
136 } 157 }
137 // lifetimes ignored for now 158 // lifetimes ignored for now
@@ -140,9 +161,9 @@ pub(super) fn lower_generic_args(node: ast::TypeArgList) -> Option<GenericArgs>
140 let assoc_type_arg: ast::AssocTypeArg = assoc_type_arg; 161 let assoc_type_arg: ast::AssocTypeArg = assoc_type_arg;
141 if let Some(name_ref) = assoc_type_arg.name_ref() { 162 if let Some(name_ref) = assoc_type_arg.name_ref() {
142 let name = name_ref.as_name(); 163 let name = name_ref.as_name();
143 let type_ref = assoc_type_arg.type_ref().map(TypeRef::from_ast); 164 let type_ref = assoc_type_arg.type_ref().map(|it| TypeRef::from_ast(lower_ctx, it));
144 let bounds = if let Some(l) = assoc_type_arg.type_bound_list() { 165 let bounds = if let Some(l) = assoc_type_arg.type_bound_list() {
145 l.bounds().map(TypeBound::from_ast).collect() 166 l.bounds().map(|it| TypeBound::from_ast(lower_ctx, it)).collect()
146 } else { 167 } else {
147 Vec::new() 168 Vec::new()
148 }; 169 };
@@ -159,6 +180,7 @@ pub(super) fn lower_generic_args(node: ast::TypeArgList) -> Option<GenericArgs>
159/// Collect `GenericArgs` from the parts of a fn-like path, i.e. `Fn(X, Y) 180/// Collect `GenericArgs` from the parts of a fn-like path, i.e. `Fn(X, Y)
160/// -> Z` (which desugars to `Fn<(X, Y), Output=Z>`). 181/// -> Z` (which desugars to `Fn<(X, Y), Output=Z>`).
161fn lower_generic_args_from_fn_path( 182fn lower_generic_args_from_fn_path(
183 ctx: &LowerCtx,
162 params: Option<ast::ParamList>, 184 params: Option<ast::ParamList>,
163 ret_type: Option<ast::RetType>, 185 ret_type: Option<ast::RetType>,
164) -> Option<GenericArgs> { 186) -> Option<GenericArgs> {
@@ -167,14 +189,14 @@ fn lower_generic_args_from_fn_path(
167 if let Some(params) = params { 189 if let Some(params) = params {
168 let mut param_types = Vec::new(); 190 let mut param_types = Vec::new();
169 for param in params.params() { 191 for param in params.params() {
170 let type_ref = TypeRef::from_ast_opt(param.ascribed_type()); 192 let type_ref = TypeRef::from_ast_opt(&ctx, param.ascribed_type());
171 param_types.push(type_ref); 193 param_types.push(type_ref);
172 } 194 }
173 let arg = GenericArg::Type(TypeRef::Tuple(param_types)); 195 let arg = GenericArg::Type(TypeRef::Tuple(param_types));
174 args.push(arg); 196 args.push(arg);
175 } 197 }
176 if let Some(ret_type) = ret_type { 198 if let Some(ret_type) = ret_type {
177 let type_ref = TypeRef::from_ast_opt(ret_type.type_ref()); 199 let type_ref = TypeRef::from_ast_opt(&ctx, ret_type.type_ref());
178 bindings.push(AssociatedTypeBinding { 200 bindings.push(AssociatedTypeBinding {
179 name: name![Output], 201 name: name![Output],
180 type_ref: Some(type_ref), 202 type_ref: Some(type_ref),
diff --git a/crates/ra_hir_def/src/type_ref.rs b/crates/ra_hir_def/src/type_ref.rs
index f308c6bdf..5bdad9efd 100644
--- a/crates/ra_hir_def/src/type_ref.rs
+++ b/crates/ra_hir_def/src/type_ref.rs
@@ -3,7 +3,7 @@
3 3
4use ra_syntax::ast::{self, TypeAscriptionOwner, TypeBoundsOwner}; 4use ra_syntax::ast::{self, TypeAscriptionOwner, TypeBoundsOwner};
5 5
6use crate::path::Path; 6use crate::{body::LowerCtx, path::Path};
7 7
8#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)] 8#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)]
9pub enum Mutability { 9pub enum Mutability {
@@ -64,30 +64,34 @@ pub enum TypeBound {
64 64
65impl TypeRef { 65impl TypeRef {
66 /// Converts an `ast::TypeRef` to a `hir::TypeRef`. 66 /// Converts an `ast::TypeRef` to a `hir::TypeRef`.
67 pub(crate) fn from_ast(node: ast::TypeRef) -> Self { 67 pub(crate) fn from_ast(ctx: &LowerCtx, node: ast::TypeRef) -> Self {
68 match node { 68 match node {
69 ast::TypeRef::ParenType(inner) => TypeRef::from_ast_opt(inner.type_ref()), 69 ast::TypeRef::ParenType(inner) => TypeRef::from_ast_opt(&ctx, inner.type_ref()),
70 ast::TypeRef::TupleType(inner) => { 70 ast::TypeRef::TupleType(inner) => {
71 TypeRef::Tuple(inner.fields().map(TypeRef::from_ast).collect()) 71 TypeRef::Tuple(inner.fields().map(|it| TypeRef::from_ast(ctx, it)).collect())
72 } 72 }
73 ast::TypeRef::NeverType(..) => TypeRef::Never, 73 ast::TypeRef::NeverType(..) => TypeRef::Never,
74 ast::TypeRef::PathType(inner) => { 74 ast::TypeRef::PathType(inner) => {
75 // FIXME: Use `Path::from_src` 75 // FIXME: Use `Path::from_src`
76 inner.path().and_then(Path::from_ast).map(TypeRef::Path).unwrap_or(TypeRef::Error) 76 inner
77 .path()
78 .and_then(|it| ctx.lower_path(it))
79 .map(TypeRef::Path)
80 .unwrap_or(TypeRef::Error)
77 } 81 }
78 ast::TypeRef::PointerType(inner) => { 82 ast::TypeRef::PointerType(inner) => {
79 let inner_ty = TypeRef::from_ast_opt(inner.type_ref()); 83 let inner_ty = TypeRef::from_ast_opt(&ctx, inner.type_ref());
80 let mutability = Mutability::from_mutable(inner.mut_token().is_some()); 84 let mutability = Mutability::from_mutable(inner.mut_token().is_some());
81 TypeRef::RawPtr(Box::new(inner_ty), mutability) 85 TypeRef::RawPtr(Box::new(inner_ty), mutability)
82 } 86 }
83 ast::TypeRef::ArrayType(inner) => { 87 ast::TypeRef::ArrayType(inner) => {
84 TypeRef::Array(Box::new(TypeRef::from_ast_opt(inner.type_ref()))) 88 TypeRef::Array(Box::new(TypeRef::from_ast_opt(&ctx, inner.type_ref())))
85 } 89 }
86 ast::TypeRef::SliceType(inner) => { 90 ast::TypeRef::SliceType(inner) => {
87 TypeRef::Slice(Box::new(TypeRef::from_ast_opt(inner.type_ref()))) 91 TypeRef::Slice(Box::new(TypeRef::from_ast_opt(&ctx, inner.type_ref())))
88 } 92 }
89 ast::TypeRef::ReferenceType(inner) => { 93 ast::TypeRef::ReferenceType(inner) => {
90 let inner_ty = TypeRef::from_ast_opt(inner.type_ref()); 94 let inner_ty = TypeRef::from_ast_opt(&ctx, inner.type_ref());
91 let mutability = Mutability::from_mutable(inner.mut_token().is_some()); 95 let mutability = Mutability::from_mutable(inner.mut_token().is_some());
92 TypeRef::Reference(Box::new(inner_ty), mutability) 96 TypeRef::Reference(Box::new(inner_ty), mutability)
93 } 97 }
@@ -96,10 +100,13 @@ impl TypeRef {
96 let ret_ty = inner 100 let ret_ty = inner
97 .ret_type() 101 .ret_type()
98 .and_then(|rt| rt.type_ref()) 102 .and_then(|rt| rt.type_ref())
99 .map(TypeRef::from_ast) 103 .map(|it| TypeRef::from_ast(ctx, it))
100 .unwrap_or_else(|| TypeRef::Tuple(Vec::new())); 104 .unwrap_or_else(|| TypeRef::Tuple(Vec::new()));
101 let mut params = if let Some(pl) = inner.param_list() { 105 let mut params = if let Some(pl) = inner.param_list() {
102 pl.params().map(|p| p.ascribed_type()).map(TypeRef::from_ast_opt).collect() 106 pl.params()
107 .map(|p| p.ascribed_type())
108 .map(|it| TypeRef::from_ast_opt(&ctx, it))
109 .collect()
103 } else { 110 } else {
104 Vec::new() 111 Vec::new()
105 }; 112 };
@@ -107,19 +114,19 @@ impl TypeRef {
107 TypeRef::Fn(params) 114 TypeRef::Fn(params)
108 } 115 }
109 // for types are close enough for our purposes to the inner type for now... 116 // for types are close enough for our purposes to the inner type for now...
110 ast::TypeRef::ForType(inner) => TypeRef::from_ast_opt(inner.type_ref()), 117 ast::TypeRef::ForType(inner) => TypeRef::from_ast_opt(&ctx, inner.type_ref()),
111 ast::TypeRef::ImplTraitType(inner) => { 118 ast::TypeRef::ImplTraitType(inner) => {
112 TypeRef::ImplTrait(type_bounds_from_ast(inner.type_bound_list())) 119 TypeRef::ImplTrait(type_bounds_from_ast(ctx, inner.type_bound_list()))
113 } 120 }
114 ast::TypeRef::DynTraitType(inner) => { 121 ast::TypeRef::DynTraitType(inner) => {
115 TypeRef::DynTrait(type_bounds_from_ast(inner.type_bound_list())) 122 TypeRef::DynTrait(type_bounds_from_ast(ctx, inner.type_bound_list()))
116 } 123 }
117 } 124 }
118 } 125 }
119 126
120 pub(crate) fn from_ast_opt(node: Option<ast::TypeRef>) -> Self { 127 pub(crate) fn from_ast_opt(ctx: &LowerCtx, node: Option<ast::TypeRef>) -> Self {
121 if let Some(node) = node { 128 if let Some(node) = node {
122 TypeRef::from_ast(node) 129 TypeRef::from_ast(ctx, node)
123 } else { 130 } else {
124 TypeRef::Error 131 TypeRef::Error
125 } 132 }
@@ -180,24 +187,27 @@ impl TypeRef {
180 } 187 }
181} 188}
182 189
183pub(crate) fn type_bounds_from_ast(type_bounds_opt: Option<ast::TypeBoundList>) -> Vec<TypeBound> { 190pub(crate) fn type_bounds_from_ast(
191 lower_ctx: &LowerCtx,
192 type_bounds_opt: Option<ast::TypeBoundList>,
193) -> Vec<TypeBound> {
184 if let Some(type_bounds) = type_bounds_opt { 194 if let Some(type_bounds) = type_bounds_opt {
185 type_bounds.bounds().map(TypeBound::from_ast).collect() 195 type_bounds.bounds().map(|it| TypeBound::from_ast(lower_ctx, it)).collect()
186 } else { 196 } else {
187 vec![] 197 vec![]
188 } 198 }
189} 199}
190 200
191impl TypeBound { 201impl TypeBound {
192 pub(crate) fn from_ast(node: ast::TypeBound) -> Self { 202 pub(crate) fn from_ast(ctx: &LowerCtx, node: ast::TypeBound) -> Self {
193 match node.kind() { 203 match node.kind() {
194 ast::TypeBoundKind::PathType(path_type) => { 204 ast::TypeBoundKind::PathType(path_type) => {
195 let path = match path_type.path() { 205 let path = match path_type.path() {
196 Some(p) => p, 206 Some(p) => p,
197 None => return TypeBound::Error, 207 None => return TypeBound::Error,
198 }; 208 };
199 // FIXME: Use `Path::from_src` 209
200 let path = match Path::from_ast(path) { 210 let path = match ctx.lower_path(path) {
201 Some(p) => p, 211 Some(p) => p,
202 None => return TypeBound::Error, 212 None => return TypeBound::Error,
203 }; 213 };
diff --git a/crates/ra_hir_expand/src/builtin_derive.rs b/crates/ra_hir_expand/src/builtin_derive.rs
index e60f879a3..1dc9cac66 100644
--- a/crates/ra_hir_expand/src/builtin_derive.rs
+++ b/crates/ra_hir_expand/src/builtin_derive.rs
@@ -38,7 +38,7 @@ macro_rules! register_builtin {
38 _ => return None, 38 _ => return None,
39 }; 39 };
40 40
41 Some(MacroDefId { krate: None, ast_id: None, kind: MacroDefKind::BuiltInDerive(kind) }) 41 Some(MacroDefId { krate: None, ast_id: None, kind: MacroDefKind::BuiltInDerive(kind), local_inner: false })
42 } 42 }
43 }; 43 };
44} 44}
diff --git a/crates/ra_hir_expand/src/builtin_macro.rs b/crates/ra_hir_expand/src/builtin_macro.rs
index e0fef613d..d8b3d342c 100644
--- a/crates/ra_hir_expand/src/builtin_macro.rs
+++ b/crates/ra_hir_expand/src/builtin_macro.rs
@@ -73,11 +73,13 @@ pub fn find_builtin_macro(
73 krate: Some(krate), 73 krate: Some(krate),
74 ast_id: Some(ast_id), 74 ast_id: Some(ast_id),
75 kind: MacroDefKind::BuiltIn(kind), 75 kind: MacroDefKind::BuiltIn(kind),
76 local_inner: false,
76 }), 77 }),
77 Either::Right(kind) => Some(MacroDefId { 78 Either::Right(kind) => Some(MacroDefId {
78 krate: Some(krate), 79 krate: Some(krate),
79 ast_id: Some(ast_id), 80 ast_id: Some(ast_id),
80 kind: MacroDefKind::BuiltInEager(kind), 81 kind: MacroDefKind::BuiltInEager(kind),
82 local_inner: false,
81 }), 83 }),
82 } 84 }
83} 85}
@@ -406,6 +408,7 @@ mod tests {
406 krate: Some(CrateId(0)), 408 krate: Some(CrateId(0)),
407 ast_id: Some(AstId::new(file_id.into(), ast_id_map.ast_id(&macro_calls[0]))), 409 ast_id: Some(AstId::new(file_id.into(), ast_id_map.ast_id(&macro_calls[0]))),
408 kind: MacroDefKind::BuiltIn(expander), 410 kind: MacroDefKind::BuiltIn(expander),
411 local_inner: false,
409 }; 412 };
410 413
411 let loc = MacroCallLoc { 414 let loc = MacroCallLoc {
@@ -425,6 +428,7 @@ mod tests {
425 krate: Some(CrateId(0)), 428 krate: Some(CrateId(0)),
426 ast_id: Some(AstId::new(file_id.into(), ast_id_map.ast_id(&macro_calls[0]))), 429 ast_id: Some(AstId::new(file_id.into(), ast_id_map.ast_id(&macro_calls[0]))),
427 kind: MacroDefKind::BuiltInEager(expander), 430 kind: MacroDefKind::BuiltInEager(expander),
431 local_inner: false,
428 }; 432 };
429 433
430 let args = macro_calls[1].token_tree().unwrap(); 434 let args = macro_calls[1].token_tree().unwrap();
diff --git a/crates/ra_hir_expand/src/db.rs b/crates/ra_hir_expand/src/db.rs
index 047452306..4c12d0a15 100644
--- a/crates/ra_hir_expand/src/db.rs
+++ b/crates/ra_hir_expand/src/db.rs
@@ -330,7 +330,7 @@ fn to_fragment_kind(db: &dyn AstDatabase, id: MacroCallId) -> FragmentKind {
330 FragmentKind::Expr 330 FragmentKind::Expr
331 } 331 }
332 // FIXME: Expand to statements in appropriate positions; HIR lowering needs to handle that 332 // FIXME: Expand to statements in appropriate positions; HIR lowering needs to handle that
333 EXPR_STMT | BLOCK => FragmentKind::Expr, 333 EXPR_STMT | BLOCK_EXPR => FragmentKind::Expr,
334 ARG_LIST => FragmentKind::Expr, 334 ARG_LIST => FragmentKind::Expr,
335 TRY_EXPR => FragmentKind::Expr, 335 TRY_EXPR => FragmentKind::Expr,
336 TUPLE_EXPR => FragmentKind::Expr, 336 TUPLE_EXPR => FragmentKind::Expr,
@@ -342,7 +342,6 @@ fn to_fragment_kind(db: &dyn AstDatabase, id: MacroCallId) -> FragmentKind {
342 CONDITION => FragmentKind::Expr, 342 CONDITION => FragmentKind::Expr,
343 BREAK_EXPR => FragmentKind::Expr, 343 BREAK_EXPR => FragmentKind::Expr,
344 RETURN_EXPR => FragmentKind::Expr, 344 RETURN_EXPR => FragmentKind::Expr,
345 BLOCK_EXPR => FragmentKind::Expr,
346 MATCH_EXPR => FragmentKind::Expr, 345 MATCH_EXPR => FragmentKind::Expr,
347 MATCH_ARM => FragmentKind::Expr, 346 MATCH_ARM => FragmentKind::Expr,
348 MATCH_GUARD => FragmentKind::Expr, 347 MATCH_GUARD => FragmentKind::Expr,
diff --git a/crates/ra_hir_expand/src/hygiene.rs b/crates/ra_hir_expand/src/hygiene.rs
index 0b41d0e95..6b482a60c 100644
--- a/crates/ra_hir_expand/src/hygiene.rs
+++ b/crates/ra_hir_expand/src/hygiene.rs
@@ -12,35 +12,38 @@ use crate::{
12 HirFileId, HirFileIdRepr, MacroCallId, MacroDefKind, 12 HirFileId, HirFileIdRepr, MacroCallId, MacroDefKind,
13}; 13};
14 14
15#[derive(Debug)] 15#[derive(Clone, Debug)]
16pub struct Hygiene { 16pub struct Hygiene {
17 // This is what `$crate` expands to 17 // This is what `$crate` expands to
18 def_crate: Option<CrateId>, 18 def_crate: Option<CrateId>,
19
20 // Indiciate this is a local inner macro
21 local_inner: bool,
19} 22}
20 23
21impl Hygiene { 24impl Hygiene {
22 pub fn new(db: &dyn AstDatabase, file_id: HirFileId) -> Hygiene { 25 pub fn new(db: &dyn AstDatabase, file_id: HirFileId) -> Hygiene {
23 let def_crate = match file_id.0 { 26 let (def_crate, local_inner) = match file_id.0 {
24 HirFileIdRepr::FileId(_) => None, 27 HirFileIdRepr::FileId(_) => (None, false),
25 HirFileIdRepr::MacroFile(macro_file) => match macro_file.macro_call_id { 28 HirFileIdRepr::MacroFile(macro_file) => match macro_file.macro_call_id {
26 MacroCallId::LazyMacro(id) => { 29 MacroCallId::LazyMacro(id) => {
27 let loc = db.lookup_intern_macro(id); 30 let loc = db.lookup_intern_macro(id);
28 match loc.def.kind { 31 match loc.def.kind {
29 MacroDefKind::Declarative => loc.def.krate, 32 MacroDefKind::Declarative => (loc.def.krate, loc.def.local_inner),
30 MacroDefKind::BuiltIn(_) => None, 33 MacroDefKind::BuiltIn(_) => (None, false),
31 MacroDefKind::BuiltInDerive(_) => None, 34 MacroDefKind::BuiltInDerive(_) => (None, false),
32 MacroDefKind::BuiltInEager(_) => None, 35 MacroDefKind::BuiltInEager(_) => (None, false),
33 MacroDefKind::CustomDerive(_) => None, 36 MacroDefKind::CustomDerive(_) => (None, false),
34 } 37 }
35 } 38 }
36 MacroCallId::EagerMacro(_id) => None, 39 MacroCallId::EagerMacro(_id) => (None, false),
37 }, 40 },
38 }; 41 };
39 Hygiene { def_crate } 42 Hygiene { def_crate, local_inner }
40 } 43 }
41 44
42 pub fn new_unhygienic() -> Hygiene { 45 pub fn new_unhygienic() -> Hygiene {
43 Hygiene { def_crate: None } 46 Hygiene { def_crate: None, local_inner: false }
44 } 47 }
45 48
46 // FIXME: this should just return name 49 // FIXME: this should just return name
@@ -52,4 +55,12 @@ impl Hygiene {
52 } 55 }
53 Either::Left(name_ref.as_name()) 56 Either::Left(name_ref.as_name())
54 } 57 }
58
59 pub fn local_inner_macros(&self) -> Option<CrateId> {
60 if self.local_inner {
61 self.def_crate
62 } else {
63 None
64 }
65 }
55} 66}
diff --git a/crates/ra_hir_expand/src/lib.rs b/crates/ra_hir_expand/src/lib.rs
index 754a0f005..f440c073b 100644
--- a/crates/ra_hir_expand/src/lib.rs
+++ b/crates/ra_hir_expand/src/lib.rs
@@ -204,6 +204,8 @@ pub struct MacroDefId {
204 pub krate: Option<CrateId>, 204 pub krate: Option<CrateId>,
205 pub ast_id: Option<AstId<ast::MacroCall>>, 205 pub ast_id: Option<AstId<ast::MacroCall>>,
206 pub kind: MacroDefKind, 206 pub kind: MacroDefKind,
207
208 pub local_inner: bool,
207} 209}
208 210
209impl MacroDefId { 211impl MacroDefId {
diff --git a/crates/ra_hir_ty/src/infer/expr.rs b/crates/ra_hir_ty/src/infer/expr.rs
index efc60986b..83f946eee 100644
--- a/crates/ra_hir_ty/src/infer/expr.rs
+++ b/crates/ra_hir_ty/src/infer/expr.rs
@@ -73,6 +73,11 @@ impl<'a> InferenceContext<'a> {
73 self.coerce_merge_branch(&then_ty, &else_ty) 73 self.coerce_merge_branch(&then_ty, &else_ty)
74 } 74 }
75 Expr::Block { statements, tail } => self.infer_block(statements, *tail, expected), 75 Expr::Block { statements, tail } => self.infer_block(statements, *tail, expected),
76 Expr::TryBlock { body } => {
77 let _inner = self.infer_expr(*body, expected);
78 // FIXME should be std::result::Result<{inner}, _>
79 Ty::Unknown
80 }
76 Expr::Loop { body } => { 81 Expr::Loop { body } => {
77 self.infer_expr(*body, &Expectation::has_type(Ty::unit())); 82 self.infer_expr(*body, &Expectation::has_type(Ty::unit()));
78 // FIXME handle break with value 83 // FIXME handle break with value
diff --git a/crates/ra_hir_ty/src/tests/macros.rs b/crates/ra_hir_ty/src/tests/macros.rs
index 5ddecbdc6..29e38a06c 100644
--- a/crates/ra_hir_ty/src/tests/macros.rs
+++ b/crates/ra_hir_ty/src/tests/macros.rs
@@ -339,6 +339,46 @@ pub fn baz() -> usize { 31usize }
339} 339}
340 340
341#[test] 341#[test]
342fn infer_macro_with_dollar_crate_is_correct_in_trait_associate_type() {
343 let (db, pos) = TestDB::with_position(
344 r#"
345//- /main.rs crate:main deps:foo
346use foo::Trait;
347
348fn test() {
349 let msg = foo::Message(foo::MessageRef);
350 let r = msg.deref();
351 r<|>;
352}
353
354//- /lib.rs crate:foo
355pub struct MessageRef;
356pub struct Message(MessageRef);
357
358pub trait Trait {
359 type Target;
360 fn deref(&self) -> &Self::Target;
361}
362
363#[macro_export]
364macro_rules! expand {
365 () => {
366 impl Trait for Message {
367 type Target = $crate::MessageRef;
368 fn deref(&self) -> &Self::Target {
369 &self.0
370 }
371 }
372 }
373}
374
375expand!();
376"#,
377 );
378 assert_eq!("&MessageRef", type_at_pos(&db, pos));
379}
380
381#[test]
342fn infer_type_value_non_legacy_macro_use_as() { 382fn infer_type_value_non_legacy_macro_use_as() {
343 assert_snapshot!( 383 assert_snapshot!(
344 infer(r#" 384 infer(r#"
@@ -388,6 +428,32 @@ fn main() {
388} 428}
389 429
390#[test] 430#[test]
431fn infer_local_inner_macros() {
432 let (db, pos) = TestDB::with_position(
433 r#"
434//- /main.rs crate:main deps:foo
435fn test() {
436 let x = foo::foo!(1);
437 x<|>;
438}
439
440//- /lib.rs crate:foo
441#[macro_export(local_inner_macros)]
442macro_rules! foo {
443 (1) => { bar!() };
444}
445
446#[macro_export]
447macro_rules! bar {
448 () => { 42 }
449}
450
451"#,
452 );
453 assert_eq!("i32", type_at_pos(&db, pos));
454}
455
456#[test]
391fn infer_builtin_macros_line() { 457fn infer_builtin_macros_line() {
392 assert_snapshot!( 458 assert_snapshot!(
393 infer(r#" 459 infer(r#"
diff --git a/crates/ra_hir_ty/src/tests/simple.rs b/crates/ra_hir_ty/src/tests/simple.rs
index 56abc65b8..3d3088965 100644
--- a/crates/ra_hir_ty/src/tests/simple.rs
+++ b/crates/ra_hir_ty/src/tests/simple.rs
@@ -1755,3 +1755,35 @@ fn main() {
1755 "### 1755 "###
1756 ); 1756 );
1757} 1757}
1758
1759#[test]
1760fn effects_smoke_test() {
1761 assert_snapshot!(
1762 infer(r#"
1763fn main() {
1764 let x = unsafe { 92 };
1765 let y = async { async { () }.await };
1766 let z = try { () };
1767 let t = 'a: { 92 };
1768}
1769"#),
1770 @r###"
1771 11..131 '{ ...2 }; }': ()
1772 21..22 'x': i32
1773 32..38 '{ 92 }': i32
1774 34..36 '92': i32
1775 48..49 'y': {unknown}
1776 58..80 '{ asyn...wait }': {unknown}
1777 60..78 'async ....await': {unknown}
1778 66..72 '{ () }': ()
1779 68..70 '()': ()
1780 90..91 'z': {unknown}
1781 94..104 'try { () }': {unknown}
1782 98..104 '{ () }': ()
1783 100..102 '()': ()
1784 114..115 't': i32
1785 122..128 '{ 92 }': i32
1786 124..126 '92': i32
1787 "###
1788 )
1789}
diff --git a/crates/ra_ide/src/completion.rs b/crates/ra_ide/src/completion.rs
index 4ca0fdf4f..a0e06faa2 100644
--- a/crates/ra_ide/src/completion.rs
+++ b/crates/ra_ide/src/completion.rs
@@ -65,21 +65,23 @@ pub(crate) fn completions(
65 let ctx = CompletionContext::new(db, position, config)?; 65 let ctx = CompletionContext::new(db, position, config)?;
66 66
67 let mut acc = Completions::default(); 67 let mut acc = Completions::default();
68 68 if ctx.attribute_under_caret.is_some() {
69 complete_fn_param::complete_fn_param(&mut acc, &ctx); 69 complete_attribute::complete_attribute(&mut acc, &ctx);
70 complete_keyword::complete_expr_keyword(&mut acc, &ctx); 70 } else {
71 complete_keyword::complete_use_tree_keyword(&mut acc, &ctx); 71 complete_fn_param::complete_fn_param(&mut acc, &ctx);
72 complete_snippet::complete_expr_snippet(&mut acc, &ctx); 72 complete_keyword::complete_expr_keyword(&mut acc, &ctx);
73 complete_snippet::complete_item_snippet(&mut acc, &ctx); 73 complete_keyword::complete_use_tree_keyword(&mut acc, &ctx);
74 complete_qualified_path::complete_qualified_path(&mut acc, &ctx); 74 complete_snippet::complete_expr_snippet(&mut acc, &ctx);
75 complete_unqualified_path::complete_unqualified_path(&mut acc, &ctx); 75 complete_snippet::complete_item_snippet(&mut acc, &ctx);
76 complete_dot::complete_dot(&mut acc, &ctx); 76 complete_qualified_path::complete_qualified_path(&mut acc, &ctx);
77 complete_record::complete_record(&mut acc, &ctx); 77 complete_unqualified_path::complete_unqualified_path(&mut acc, &ctx);
78 complete_pattern::complete_pattern(&mut acc, &ctx); 78 complete_dot::complete_dot(&mut acc, &ctx);
79 complete_postfix::complete_postfix(&mut acc, &ctx); 79 complete_record::complete_record(&mut acc, &ctx);
80 complete_macro_in_item_position::complete_macro_in_item_position(&mut acc, &ctx); 80 complete_pattern::complete_pattern(&mut acc, &ctx);
81 complete_trait_impl::complete_trait_impl(&mut acc, &ctx); 81 complete_postfix::complete_postfix(&mut acc, &ctx);
82 complete_attribute::complete_attribute(&mut acc, &ctx); 82 complete_macro_in_item_position::complete_macro_in_item_position(&mut acc, &ctx);
83 complete_trait_impl::complete_trait_impl(&mut acc, &ctx);
84 }
83 85
84 Some(acc) 86 Some(acc)
85} 87}
diff --git a/crates/ra_ide/src/completion/complete_attribute.rs b/crates/ra_ide/src/completion/complete_attribute.rs
index 8bf952798..20e6edc17 100644
--- a/crates/ra_ide/src/completion/complete_attribute.rs
+++ b/crates/ra_ide/src/completion/complete_attribute.rs
@@ -5,23 +5,26 @@
5 5
6use super::completion_context::CompletionContext; 6use super::completion_context::CompletionContext;
7use super::completion_item::{CompletionItem, CompletionItemKind, CompletionKind, Completions}; 7use super::completion_item::{CompletionItem, CompletionItemKind, CompletionKind, Completions};
8use ast::AttrInput;
8use ra_syntax::{ 9use ra_syntax::{
9 ast::{Attr, AttrKind}, 10 ast::{self, AttrKind},
10 AstNode, 11 AstNode, SyntaxKind,
11}; 12};
13use rustc_hash::FxHashSet;
12 14
13pub(super) fn complete_attribute(acc: &mut Completions, ctx: &CompletionContext) { 15pub(super) fn complete_attribute(acc: &mut Completions, ctx: &CompletionContext) -> Option<()> {
14 if !ctx.is_attribute { 16 let attribute = ctx.attribute_under_caret.as_ref()?;
15 return;
16 }
17 17
18 let is_inner = ctx 18 match (attribute.path(), attribute.input()) {
19 .original_token 19 (Some(path), Some(AttrInput::TokenTree(token_tree))) if path.to_string() == "derive" => {
20 .ancestors() 20 complete_derive(acc, ctx, token_tree)
21 .find_map(Attr::cast) 21 }
22 .map(|attr| attr.kind() == AttrKind::Inner) 22 _ => complete_attribute_start(acc, ctx, attribute),
23 .unwrap_or(false); 23 }
24 Some(())
25}
24 26
27fn complete_attribute_start(acc: &mut Completions, ctx: &CompletionContext, attribute: &ast::Attr) {
25 for attr_completion in ATTRIBUTES { 28 for attr_completion in ATTRIBUTES {
26 let mut item = CompletionItem::new( 29 let mut item = CompletionItem::new(
27 CompletionKind::Attribute, 30 CompletionKind::Attribute,
@@ -37,7 +40,7 @@ pub(super) fn complete_attribute(acc: &mut Completions, ctx: &CompletionContext)
37 _ => {} 40 _ => {}
38 } 41 }
39 42
40 if is_inner || !attr_completion.should_be_inner { 43 if attribute.kind() == AttrKind::Inner || !attr_completion.should_be_inner {
41 acc.add(item); 44 acc.add(item);
42 } 45 }
43 } 46 }
@@ -126,6 +129,106 @@ const ATTRIBUTES: &[AttrCompletion] = &[
126 }, 129 },
127]; 130];
128 131
132fn complete_derive(acc: &mut Completions, ctx: &CompletionContext, derive_input: ast::TokenTree) {
133 if let Ok(existing_derives) = parse_derive_input(derive_input) {
134 for derive_completion in DEFAULT_DERIVE_COMPLETIONS
135 .into_iter()
136 .filter(|completion| !existing_derives.contains(completion.label))
137 {
138 let mut label = derive_completion.label.to_owned();
139 for dependency in derive_completion
140 .dependencies
141 .into_iter()
142 .filter(|&&dependency| !existing_derives.contains(dependency))
143 {
144 label.push_str(", ");
145 label.push_str(dependency);
146 }
147 acc.add(
148 CompletionItem::new(CompletionKind::Attribute, ctx.source_range(), label)
149 .kind(CompletionItemKind::Attribute),
150 );
151 }
152
153 for custom_derive_name in get_derive_names_in_scope(ctx).difference(&existing_derives) {
154 acc.add(
155 CompletionItem::new(
156 CompletionKind::Attribute,
157 ctx.source_range(),
158 custom_derive_name,
159 )
160 .kind(CompletionItemKind::Attribute),
161 );
162 }
163 }
164}
165
166fn parse_derive_input(derive_input: ast::TokenTree) -> Result<FxHashSet<String>, ()> {
167 match (derive_input.left_delimiter_token(), derive_input.right_delimiter_token()) {
168 (Some(left_paren), Some(right_paren))
169 if left_paren.kind() == SyntaxKind::L_PAREN
170 && right_paren.kind() == SyntaxKind::R_PAREN =>
171 {
172 let mut input_derives = FxHashSet::default();
173 let mut current_derive = String::new();
174 for token in derive_input
175 .syntax()
176 .children_with_tokens()
177 .filter_map(|token| token.into_token())
178 .skip_while(|token| token != &left_paren)
179 .skip(1)
180 .take_while(|token| token != &right_paren)
181 {
182 if SyntaxKind::COMMA == token.kind() {
183 if !current_derive.is_empty() {
184 input_derives.insert(current_derive);
185 current_derive = String::new();
186 }
187 } else {
188 current_derive.push_str(token.to_string().trim());
189 }
190 }
191
192 if !current_derive.is_empty() {
193 input_derives.insert(current_derive);
194 }
195 Ok(input_derives)
196 }
197 _ => Err(()),
198 }
199}
200
201fn get_derive_names_in_scope(ctx: &CompletionContext) -> FxHashSet<String> {
202 let mut result = FxHashSet::default();
203 ctx.scope().process_all_names(&mut |name, scope_def| {
204 if let hir::ScopeDef::MacroDef(mac) = scope_def {
205 if mac.is_derive_macro() {
206 result.insert(name.to_string());
207 }
208 }
209 });
210 result
211}
212
213struct DeriveCompletion {
214 label: &'static str,
215 dependencies: &'static [&'static str],
216}
217
218/// Standard Rust derives and the information about their dependencies
219/// (the dependencies are needed so that the main derive don't break the compilation when added)
220const DEFAULT_DERIVE_COMPLETIONS: &[DeriveCompletion] = &[
221 DeriveCompletion { label: "Clone", dependencies: &[] },
222 DeriveCompletion { label: "Copy", dependencies: &["Clone"] },
223 DeriveCompletion { label: "Debug", dependencies: &[] },
224 DeriveCompletion { label: "Default", dependencies: &[] },
225 DeriveCompletion { label: "Hash", dependencies: &[] },
226 DeriveCompletion { label: "PartialEq", dependencies: &[] },
227 DeriveCompletion { label: "Eq", dependencies: &["PartialEq"] },
228 DeriveCompletion { label: "PartialOrd", dependencies: &["PartialEq"] },
229 DeriveCompletion { label: "Ord", dependencies: &["PartialOrd", "Eq", "PartialEq"] },
230];
231
129#[cfg(test)] 232#[cfg(test)]
130mod tests { 233mod tests {
131 use crate::completion::{test_utils::do_completion, CompletionItem, CompletionKind}; 234 use crate::completion::{test_utils::do_completion, CompletionItem, CompletionKind};
@@ -136,6 +239,170 @@ mod tests {
136 } 239 }
137 240
138 #[test] 241 #[test]
242 fn empty_derive_completion() {
243 assert_debug_snapshot!(
244 do_attr_completion(
245 r"
246 #[derive(<|>)]
247 struct Test {}
248 ",
249 ),
250 @r###"
251 [
252 CompletionItem {
253 label: "Clone",
254 source_range: 30..30,
255 delete: 30..30,
256 insert: "Clone",
257 kind: Attribute,
258 },
259 CompletionItem {
260 label: "Copy, Clone",
261 source_range: 30..30,
262 delete: 30..30,
263 insert: "Copy, Clone",
264 kind: Attribute,
265 },
266 CompletionItem {
267 label: "Debug",
268 source_range: 30..30,
269 delete: 30..30,
270 insert: "Debug",
271 kind: Attribute,
272 },
273 CompletionItem {
274 label: "Default",
275 source_range: 30..30,
276 delete: 30..30,
277 insert: "Default",
278 kind: Attribute,
279 },
280 CompletionItem {
281 label: "Eq, PartialEq",
282 source_range: 30..30,
283 delete: 30..30,
284 insert: "Eq, PartialEq",
285 kind: Attribute,
286 },
287 CompletionItem {
288 label: "Hash",
289 source_range: 30..30,
290 delete: 30..30,
291 insert: "Hash",
292 kind: Attribute,
293 },
294 CompletionItem {
295 label: "Ord, PartialOrd, Eq, PartialEq",
296 source_range: 30..30,
297 delete: 30..30,
298 insert: "Ord, PartialOrd, Eq, PartialEq",
299 kind: Attribute,
300 },
301 CompletionItem {
302 label: "PartialEq",
303 source_range: 30..30,
304 delete: 30..30,
305 insert: "PartialEq",
306 kind: Attribute,
307 },
308 CompletionItem {
309 label: "PartialOrd, PartialEq",
310 source_range: 30..30,
311 delete: 30..30,
312 insert: "PartialOrd, PartialEq",
313 kind: Attribute,
314 },
315 ]
316 "###
317 );
318 }
319
320 #[test]
321 fn no_completion_for_incorrect_derive() {
322 assert_debug_snapshot!(
323 do_attr_completion(
324 r"
325 #[derive{<|>)]
326 struct Test {}
327 ",
328 ),
329 @"[]"
330 );
331 }
332
333 #[test]
334 fn derive_with_input_completion() {
335 assert_debug_snapshot!(
336 do_attr_completion(
337 r"
338 #[derive(serde::Serialize, PartialEq, <|>)]
339 struct Test {}
340 ",
341 ),
342 @r###"
343 [
344 CompletionItem {
345 label: "Clone",
346 source_range: 59..59,
347 delete: 59..59,
348 insert: "Clone",
349 kind: Attribute,
350 },
351 CompletionItem {
352 label: "Copy, Clone",
353 source_range: 59..59,
354 delete: 59..59,
355 insert: "Copy, Clone",
356 kind: Attribute,
357 },
358 CompletionItem {
359 label: "Debug",
360 source_range: 59..59,
361 delete: 59..59,
362 insert: "Debug",
363 kind: Attribute,
364 },
365 CompletionItem {
366 label: "Default",
367 source_range: 59..59,
368 delete: 59..59,
369 insert: "Default",
370 kind: Attribute,
371 },
372 CompletionItem {
373 label: "Eq",
374 source_range: 59..59,
375 delete: 59..59,
376 insert: "Eq",
377 kind: Attribute,
378 },
379 CompletionItem {
380 label: "Hash",
381 source_range: 59..59,
382 delete: 59..59,
383 insert: "Hash",
384 kind: Attribute,
385 },
386 CompletionItem {
387 label: "Ord, PartialOrd, Eq",
388 source_range: 59..59,
389 delete: 59..59,
390 insert: "Ord, PartialOrd, Eq",
391 kind: Attribute,
392 },
393 CompletionItem {
394 label: "PartialOrd",
395 source_range: 59..59,
396 delete: 59..59,
397 insert: "PartialOrd",
398 kind: Attribute,
399 },
400 ]
401 "###
402 );
403 }
404
405 #[test]
139 fn test_attribute_completion() { 406 fn test_attribute_completion() {
140 assert_debug_snapshot!( 407 assert_debug_snapshot!(
141 do_attr_completion( 408 do_attr_completion(
diff --git a/crates/ra_ide/src/completion/completion_context.rs b/crates/ra_ide/src/completion/completion_context.rs
index 118fceb2e..dd87bd119 100644
--- a/crates/ra_ide/src/completion/completion_context.rs
+++ b/crates/ra_ide/src/completion/completion_context.rs
@@ -58,7 +58,7 @@ pub(crate) struct CompletionContext<'a> {
58 pub(super) is_macro_call: bool, 58 pub(super) is_macro_call: bool,
59 pub(super) is_path_type: bool, 59 pub(super) is_path_type: bool,
60 pub(super) has_type_args: bool, 60 pub(super) has_type_args: bool,
61 pub(super) is_attribute: bool, 61 pub(super) attribute_under_caret: Option<ast::Attr>,
62} 62}
63 63
64impl<'a> CompletionContext<'a> { 64impl<'a> CompletionContext<'a> {
@@ -116,7 +116,7 @@ impl<'a> CompletionContext<'a> {
116 is_path_type: false, 116 is_path_type: false,
117 has_type_args: false, 117 has_type_args: false,
118 dot_receiver_is_ambiguous_float_literal: false, 118 dot_receiver_is_ambiguous_float_literal: false,
119 is_attribute: false, 119 attribute_under_caret: None,
120 }; 120 };
121 121
122 let mut original_file = original_file.syntax().clone(); 122 let mut original_file = original_file.syntax().clone();
@@ -200,6 +200,7 @@ impl<'a> CompletionContext<'a> {
200 Some(ty) 200 Some(ty)
201 }) 201 })
202 .flatten(); 202 .flatten();
203 self.attribute_under_caret = find_node_at_offset(&file_with_fake_ident, offset);
203 204
204 // First, let's try to complete a reference to some declaration. 205 // First, let's try to complete a reference to some declaration.
205 if let Some(name_ref) = find_node_at_offset::<ast::NameRef>(&file_with_fake_ident, offset) { 206 if let Some(name_ref) = find_node_at_offset::<ast::NameRef>(&file_with_fake_ident, offset) {
@@ -318,7 +319,6 @@ impl<'a> CompletionContext<'a> {
318 .and_then(|it| it.syntax().parent().and_then(ast::CallExpr::cast)) 319 .and_then(|it| it.syntax().parent().and_then(ast::CallExpr::cast))
319 .is_some(); 320 .is_some();
320 self.is_macro_call = path.syntax().parent().and_then(ast::MacroCall::cast).is_some(); 321 self.is_macro_call = path.syntax().parent().and_then(ast::MacroCall::cast).is_some();
321 self.is_attribute = path.syntax().parent().and_then(ast::Attr::cast).is_some();
322 322
323 self.is_path_type = path.syntax().parent().and_then(ast::PathType::cast).is_some(); 323 self.is_path_type = path.syntax().parent().and_then(ast::PathType::cast).is_some();
324 self.has_type_args = segment.type_arg_list().is_some(); 324 self.has_type_args = segment.type_arg_list().is_some();
@@ -344,7 +344,7 @@ impl<'a> CompletionContext<'a> {
344 stmt.syntax().text_range() == name_ref.syntax().text_range(), 344 stmt.syntax().text_range() == name_ref.syntax().text_range(),
345 ); 345 );
346 } 346 }
347 if let Some(block) = ast::Block::cast(node) { 347 if let Some(block) = ast::BlockExpr::cast(node) {
348 return Some( 348 return Some(
349 block.expr().map(|e| e.syntax().text_range()) 349 block.expr().map(|e| e.syntax().text_range())
350 == Some(name_ref.syntax().text_range()), 350 == Some(name_ref.syntax().text_range()),
diff --git a/crates/ra_ide/src/display/short_label.rs b/crates/ra_ide/src/display/short_label.rs
index 4b081bf6c..d37260e96 100644
--- a/crates/ra_ide/src/display/short_label.rs
+++ b/crates/ra_ide/src/display/short_label.rs
@@ -33,7 +33,11 @@ impl ShortLabel for ast::EnumDef {
33 33
34impl ShortLabel for ast::TraitDef { 34impl ShortLabel for ast::TraitDef {
35 fn short_label(&self) -> Option<String> { 35 fn short_label(&self) -> Option<String> {
36 short_label_from_node(self, "trait ") 36 if self.unsafe_token().is_some() {
37 short_label_from_node(self, "unsafe trait ")
38 } else {
39 short_label_from_node(self, "trait ")
40 }
37 } 41 }
38} 42}
39 43
diff --git a/crates/ra_ide/src/folding_ranges.rs b/crates/ra_ide/src/folding_ranges.rs
index 4379005aa..8657377de 100644
--- a/crates/ra_ide/src/folding_ranges.rs
+++ b/crates/ra_ide/src/folding_ranges.rs
@@ -88,7 +88,7 @@ fn fold_kind(kind: SyntaxKind) -> Option<FoldKind> {
88 | ITEM_LIST 88 | ITEM_LIST
89 | EXTERN_ITEM_LIST 89 | EXTERN_ITEM_LIST
90 | USE_TREE_LIST 90 | USE_TREE_LIST
91 | BLOCK 91 | BLOCK_EXPR
92 | MATCH_ARM_LIST 92 | MATCH_ARM_LIST
93 | ENUM_VARIANT_LIST 93 | ENUM_VARIANT_LIST
94 | TOKEN_TREE => Some(FoldKind::Block), 94 | TOKEN_TREE => Some(FoldKind::Block),
diff --git a/crates/ra_ide/src/hover.rs b/crates/ra_ide/src/hover.rs
index a62f598f0..54d318858 100644
--- a/crates/ra_ide/src/hover.rs
+++ b/crates/ra_ide/src/hover.rs
@@ -869,4 +869,15 @@ fn func(foo: i32) { if true { <|>foo; }; }
869 &[r#"pub(crate) async unsafe extern "C" fn foo()"#], 869 &[r#"pub(crate) async unsafe extern "C" fn foo()"#],
870 ); 870 );
871 } 871 }
872
873 #[test]
874 fn test_hover_trait_show_qualifiers() {
875 check_hover_result(
876 "
877 //- /lib.rs
878 unsafe trait foo<|>() {}
879 ",
880 &["unsafe trait foo"],
881 );
882 }
872} 883}
diff --git a/crates/ra_ide/src/join_lines.rs b/crates/ra_ide/src/join_lines.rs
index d0def7eaa..63fd6b3e4 100644
--- a/crates/ra_ide/src/join_lines.rs
+++ b/crates/ra_ide/src/join_lines.rs
@@ -129,8 +129,7 @@ fn has_comma_after(node: &SyntaxNode) -> bool {
129} 129}
130 130
131fn join_single_expr_block(edit: &mut TextEditBuilder, token: &SyntaxToken) -> Option<()> { 131fn join_single_expr_block(edit: &mut TextEditBuilder, token: &SyntaxToken) -> Option<()> {
132 let block = ast::Block::cast(token.parent())?; 132 let block_expr = ast::BlockExpr::cast(token.parent())?;
133 let block_expr = ast::BlockExpr::cast(block.syntax().parent()?)?;
134 if !block_expr.is_standalone() { 133 if !block_expr.is_standalone() {
135 return None; 134 return None;
136 } 135 }
diff --git a/crates/ra_ide/src/syntax_tree.rs b/crates/ra_ide/src/syntax_tree.rs
index bf97f8c56..86c70ff83 100644
--- a/crates/ra_ide/src/syntax_tree.rs
+++ b/crates/ra_ide/src/syntax_tree.rs
@@ -120,9 +120,8 @@ [email protected]
120 [email protected] ")" 120 [email protected] ")"
121 [email protected] " " 121 [email protected] " "
122 [email protected] 122 [email protected]
123 [email protected] 123 [email protected] "{"
124 [email protected] "{" 124 [email protected] "}"
125 [email protected] "}"
126"# 125"#
127 .trim() 126 .trim()
128 ); 127 );
@@ -153,26 +152,25 @@ [email protected]
153 [email protected] ")" 152 [email protected] ")"
154 [email protected] " " 153 [email protected] " "
155 [email protected] 154 [email protected]
156 [email protected] 155 [email protected] "{"
157 [email protected] "{" 156 [email protected] "\n "
158 [email protected] "\n " 157 [email protected]
159 [email protected] 158 [email protected]
160 [email protected] 159 [email protected]
161 [email protected] 160 [email protected]
162 [email protected] 161 [email protected]
163 [email protected] 162 [email protected] "assert"
164 [email protected] "assert" 163 [email protected] "!"
165 [email protected] "!" 164 [email protected]
166 [email protected] 165 [email protected] "("
167 [email protected] "(" 166 [email protected] "\"\n fn foo() {\n ..."
168 [email protected] "\"\n fn foo() {\n ..." 167 [email protected] ","
169 [email protected] "," 168 [email protected] " "
170 [email protected] " " 169 [email protected] "\"\""
171 [email protected] "\"\"" 170 [email protected] ")"
172 [email protected] ")" 171 [email protected] ";"
173 [email protected] ";" 172 [email protected] "\n"
174 [email protected] "\n" 173 [email protected] "}"
175 [email protected] "}"
176"# 174"#
177 .trim() 175 .trim()
178 ); 176 );
@@ -196,9 +194,8 @@ [email protected]
196 [email protected] ")" 194 [email protected] ")"
197 [email protected] " " 195 [email protected] " "
198 [email protected] 196 [email protected]
199 [email protected] 197 [email protected] "{"
200 [email protected] "{" 198 [email protected] "}"
201 [email protected] "}"
202"# 199"#
203 .trim() 200 .trim()
204 ); 201 );
@@ -265,10 +262,9 @@ [email protected]
265 [email protected] ")" 262 [email protected] ")"
266 [email protected] " " 263 [email protected] " "
267 [email protected] 264 [email protected]
268 [email protected] 265 [email protected] "{"
269 [email protected] "{" 266 [email protected] "\n"
270 [email protected] "\n" 267 [email protected] "}"
271 [email protected] "}"
272"# 268"#
273 .trim() 269 .trim()
274 ); 270 );
@@ -300,10 +296,9 @@ [email protected]
300 [email protected] ")" 296 [email protected] ")"
301 [email protected] " " 297 [email protected] " "
302 [email protected] 298 [email protected]
303 [email protected] 299 [email protected] "{"
304 [email protected] "{" 300 [email protected] "\n"
305 [email protected] "\n" 301 [email protected] "}"
306 [email protected] "}"
307"# 302"#
308 .trim() 303 .trim()
309 ); 304 );
@@ -334,10 +329,9 @@ [email protected]
334 [email protected] ")" 329 [email protected] ")"
335 [email protected] " " 330 [email protected] " "
336 [email protected] 331 [email protected]
337 [email protected] 332 [email protected] "{"
338 [email protected] "{" 333 [email protected] "\n"
339 [email protected] "\n" 334 [email protected] "}"
340 [email protected] "}"
341 [email protected] "\n" 335 [email protected] "\n"
342 [email protected] 336 [email protected]
343 [email protected] "fn" 337 [email protected] "fn"
@@ -349,10 +343,9 @@ [email protected]
349 [email protected] ")" 343 [email protected] ")"
350 [email protected] " " 344 [email protected] " "
351 [email protected] 345 [email protected]
352 [email protected] 346 [email protected] "{"
353 [email protected] "{" 347 [email protected] "\n"
354 [email protected] "\n" 348 [email protected] "}"
355 [email protected] "}"
356"# 349"#
357 .trim() 350 .trim()
358 ); 351 );
diff --git a/crates/ra_mbe/src/tests.rs b/crates/ra_mbe/src/tests.rs
index 0d924ce58..c43003fd6 100644
--- a/crates/ra_mbe/src/tests.rs
+++ b/crates/ra_mbe/src/tests.rs
@@ -266,21 +266,20 @@ fn test_expr_order() {
266 [email protected] "(" 266 [email protected] "("
267 [email protected] ")" 267 [email protected] ")"
268 [email protected] 268 [email protected]
269 [email protected] 269 [email protected] "{"
270 [email protected] "{" 270 [email protected]
271 [email protected] 271 [email protected]
272 [email protected] 272 [email protected]
273 [email protected] 273 [email protected]
274 [email protected] 274 [email protected] "1"
275 [email protected] "1" 275 [email protected] "+"
276 [email protected] "+" 276 [email protected]
277 [email protected] 277 [email protected] "1"
278 [email protected] "1" 278 [email protected] "*"
279 [email protected] "*" 279 [email protected]
280 [email protected] 280 [email protected] "2"
281 [email protected] "2" 281 [email protected] ";"
282 [email protected] ";" 282 [email protected] "}""#,
283 [email protected] "}""#,
284 ); 283 );
285} 284}
286 285
@@ -1114,68 +1113,67 @@ fn test_vec() {
1114 assert_eq!( 1113 assert_eq!(
1115 format!("{:#?}", tree).trim(), 1114 format!("{:#?}", tree).trim(),
1116 r#"[email protected] 1115 r#"[email protected]
1117 [email protected] 1116 [email protected] "{"
1118 [email protected] "{" 1117 [email protected]
1119 [email protected] 1118 [email protected] "let"
1120 [email protected] "let" 1119 [email protected]
1121 [email protected] 1120 [email protected] "mut"
1122 [email protected] "mut" 1121 [email protected]
1123 [email protected] 1122 [email protected] "v"
1124 [email protected] "v" 1123 [email protected] "="
1125 [email protected] "=" 1124 [email protected]
1126 [email protected] 1125 [email protected]
1127 [email protected] 1126 [email protected]
1128 [email protected] 1127 [email protected]
1129 [email protected] 1128 [email protected]
1130 [email protected] 1129 [email protected]
1131 [email protected] 1130 [email protected] "Vec"
1132 [email protected] "Vec" 1131 [email protected] "::"
1133 [email protected] "::" 1132 [email protected]
1134 [email protected] 1133 [email protected]
1135 [email protected] 1134 [email protected] "new"
1136 [email protected] "new" 1135 [email protected]
1137 [email protected] 1136 [email protected] "("
1138 [email protected] "(" 1137 [email protected] ")"
1139 [email protected] ")" 1138 [email protected] ";"
1140 [email protected] ";" 1139 [email protected]
1141 [email protected] 1140 [email protected]
1142 [email protected] 1141 [email protected]
1143 [email protected] 1142 [email protected]
1144 [email protected] 1143 [email protected]
1145 [email protected] 1144 [email protected]
1146 [email protected] 1145 [email protected] "v"
1147 [email protected] "v" 1146 [email protected] "."
1148 [email protected] "." 1147 [email protected]
1149 [email protected] 1148 [email protected] "push"
1150 [email protected] "push" 1149 [email protected]
1151 [email protected] 1150 [email protected] "("
1152 [email protected] "(" 1151 [email protected]
1153 [email protected] 1152 [email protected] "1u32"
1154 [email protected] "1u32" 1153 [email protected] ")"
1155 [email protected] ")" 1154 [email protected] ";"
1156 [email protected] ";" 1155 [email protected]
1157 [email protected] 1156 [email protected]
1158 [email protected] 1157 [email protected]
1159 [email protected] 1158 [email protected]
1160 [email protected] 1159 [email protected]
1161 [email protected] 1160 [email protected]
1162 [email protected] 1161 [email protected] "v"
1163 [email protected] "v" 1162 [email protected] "."
1164 [email protected] "." 1163 [email protected]
1165 [email protected] 1164 [email protected] "push"
1166 [email protected] "push" 1165 [email protected]
1167 [email protected] 1166 [email protected] "("
1168 [email protected] "(" 1167 [email protected]
1169 [email protected] 1168 [email protected] "2"
1170 [email protected] "2" 1169 [email protected] ")"
1171 [email protected] ")" 1170 [email protected] ";"
1172 [email protected] ";" 1171 [email protected]
1173 [email protected] 1172 [email protected]
1174 [email protected] 1173 [email protected]
1175 [email protected] 1174 [email protected]
1176 [email protected] 1175 [email protected] "v"
1177 [email protected] "v" 1176 [email protected] "}""#
1178 [email protected] "}""#
1179 ); 1177 );
1180} 1178}
1181 1179
diff --git a/crates/ra_parser/src/grammar.rs b/crates/ra_parser/src/grammar.rs
index c2a6e82e9..be0cd5661 100644
--- a/crates/ra_parser/src/grammar.rs
+++ b/crates/ra_parser/src/grammar.rs
@@ -54,7 +54,7 @@ pub(crate) mod fragments {
54 use super::*; 54 use super::*;
55 55
56 pub(crate) use super::{ 56 pub(crate) use super::{
57 expressions::block, paths::type_path as path, patterns::pattern, types::type_, 57 expressions::block_expr, paths::type_path as path, patterns::pattern, types::type_,
58 }; 58 };
59 59
60 pub(crate) fn expr(p: &mut Parser) { 60 pub(crate) fn expr(p: &mut Parser) {
@@ -143,7 +143,7 @@ pub(crate) fn reparser(
143 parent: Option<SyntaxKind>, 143 parent: Option<SyntaxKind>,
144) -> Option<fn(&mut Parser)> { 144) -> Option<fn(&mut Parser)> {
145 let res = match node { 145 let res = match node {
146 BLOCK => expressions::naked_block, 146 BLOCK_EXPR => expressions::block_expr,
147 RECORD_FIELD_DEF_LIST => items::record_field_def_list, 147 RECORD_FIELD_DEF_LIST => items::record_field_def_list,
148 RECORD_FIELD_LIST => items::record_field_list, 148 RECORD_FIELD_LIST => items::record_field_list,
149 ENUM_VARIANT_LIST => items::enum_variant_list, 149 ENUM_VARIANT_LIST => items::enum_variant_list,
diff --git a/crates/ra_parser/src/grammar/expressions.rs b/crates/ra_parser/src/grammar/expressions.rs
index cb30b25a8..34f039768 100644
--- a/crates/ra_parser/src/grammar/expressions.rs
+++ b/crates/ra_parser/src/grammar/expressions.rs
@@ -2,7 +2,7 @@
2 2
3mod atom; 3mod atom;
4 4
5pub(crate) use self::atom::match_arm_list; 5pub(crate) use self::atom::{block_expr, match_arm_list};
6pub(super) use self::atom::{literal, LITERAL_FIRST}; 6pub(super) use self::atom::{literal, LITERAL_FIRST};
7use super::*; 7use super::*;
8 8
@@ -49,28 +49,6 @@ fn expr_no_struct(p: &mut Parser) {
49 expr_bp(p, r, 1); 49 expr_bp(p, r, 1);
50} 50}
51 51
52// test block
53// fn a() {}
54// fn b() { let _ = 1; }
55// fn c() { 1; 2; }
56// fn d() { 1; 2 }
57pub(crate) fn block(p: &mut Parser) {
58 if !p.at(T!['{']) {
59 p.error("expected a block");
60 return;
61 }
62 atom::block_expr(p, None);
63}
64
65pub(crate) fn naked_block(p: &mut Parser) {
66 assert!(p.at(T!['{']));
67 let m = p.start();
68 p.bump(T!['{']);
69 expr_block_contents(p);
70 p.expect(T!['}']);
71 m.complete(p, BLOCK);
72}
73
74fn is_expr_stmt_attr_allowed(kind: SyntaxKind) -> bool { 52fn is_expr_stmt_attr_allowed(kind: SyntaxKind) -> bool {
75 match kind { 53 match kind {
76 BIN_EXPR | RANGE_EXPR | IF_EXPR => false, 54 BIN_EXPR | RANGE_EXPR | IF_EXPR => false,
@@ -197,7 +175,7 @@ pub(super) fn stmt(p: &mut Parser, with_semi: StmtWithSemi) {
197 } 175 }
198} 176}
199 177
200pub(crate) fn expr_block_contents(p: &mut Parser) { 178pub(super) fn expr_block_contents(p: &mut Parser) {
201 // This is checked by a validator 179 // This is checked by a validator
202 attributes::inner_attributes(p); 180 attributes::inner_attributes(p);
203 181
diff --git a/crates/ra_parser/src/grammar/expressions/atom.rs b/crates/ra_parser/src/grammar/expressions/atom.rs
index 76aa601cb..706a2f796 100644
--- a/crates/ra_parser/src/grammar/expressions/atom.rs
+++ b/crates/ra_parser/src/grammar/expressions/atom.rs
@@ -84,7 +84,7 @@ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMar
84 T![box] => box_expr(p, None), 84 T![box] => box_expr(p, None),
85 T![for] => for_expr(p, None), 85 T![for] => for_expr(p, None),
86 T![while] => while_expr(p, None), 86 T![while] => while_expr(p, None),
87 T![try] => try_expr(p, None), 87 T![try] => try_block_expr(p, None),
88 LIFETIME if la == T![:] => { 88 LIFETIME if la == T![:] => {
89 let m = p.start(); 89 let m = p.start();
90 label(p); 90 label(p);
@@ -92,7 +92,12 @@ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMar
92 T![loop] => loop_expr(p, Some(m)), 92 T![loop] => loop_expr(p, Some(m)),
93 T![for] => for_expr(p, Some(m)), 93 T![for] => for_expr(p, Some(m)),
94 T![while] => while_expr(p, Some(m)), 94 T![while] => while_expr(p, Some(m)),
95 T!['{'] => block_expr(p, Some(m)), 95 // test labeled_block
96 // fn f() { 'label: {}; }
97 T!['{'] => {
98 block_expr(p);
99 m.complete(p, EFFECT_EXPR)
100 }
96 _ => { 101 _ => {
97 // test_err misplaced_label_err 102 // test_err misplaced_label_err
98 // fn main() { 103 // fn main() {
@@ -108,13 +113,17 @@ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMar
108 let m = p.start(); 113 let m = p.start();
109 p.bump(T![async]); 114 p.bump(T![async]);
110 p.eat(T![move]); 115 p.eat(T![move]);
111 block_expr(p, Some(m)) 116 block_expr(p);
117 m.complete(p, EFFECT_EXPR)
112 } 118 }
113 T![match] => match_expr(p), 119 T![match] => match_expr(p),
120 // test unsafe_block
121 // fn f() { unsafe { } }
114 T![unsafe] if la == T!['{'] => { 122 T![unsafe] if la == T!['{'] => {
115 let m = p.start(); 123 let m = p.start();
116 p.bump(T![unsafe]); 124 p.bump(T![unsafe]);
117 block_expr(p, Some(m)) 125 block_expr(p);
126 m.complete(p, EFFECT_EXPR)
118 } 127 }
119 T!['{'] => { 128 T!['{'] => {
120 // test for_range_from 129 // test for_range_from
@@ -123,7 +132,7 @@ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMar
123 // break; 132 // break;
124 // } 133 // }
125 // } 134 // }
126 block_expr(p, None) 135 block_expr_unchecked(p)
127 } 136 }
128 T![return] => return_expr(p), 137 T![return] => return_expr(p),
129 T![continue] => continue_expr(p), 138 T![continue] => continue_expr(p),
@@ -134,7 +143,7 @@ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMar
134 } 143 }
135 }; 144 };
136 let blocklike = match done.kind() { 145 let blocklike = match done.kind() {
137 IF_EXPR | WHILE_EXPR | FOR_EXPR | LOOP_EXPR | MATCH_EXPR | BLOCK_EXPR | TRY_EXPR => { 146 IF_EXPR | WHILE_EXPR | FOR_EXPR | LOOP_EXPR | MATCH_EXPR | BLOCK_EXPR | EFFECT_EXPR => {
138 BlockLike::Block 147 BlockLike::Block
139 } 148 }
140 _ => BlockLike::NotBlock, 149 _ => BlockLike::NotBlock,
@@ -231,13 +240,9 @@ fn lambda_expr(p: &mut Parser) -> CompletedMarker {
231 p.eat(T![move]); 240 p.eat(T![move]);
232 params::param_list_closure(p); 241 params::param_list_closure(p);
233 if opt_fn_ret_type(p) { 242 if opt_fn_ret_type(p) {
234 if p.at(T!['{']) { 243 // test lambda_ret_block
235 // test lambda_ret_block 244 // fn main() { || -> i32 { 92 }(); }
236 // fn main() { || -> i32 { 92 }(); } 245 block_expr(p);
237 block_expr(p, None);
238 } else {
239 p.error("expected `{`");
240 }
241 } else { 246 } else {
242 if p.at_ts(EXPR_FIRST) { 247 if p.at_ts(EXPR_FIRST) {
243 expr(p); 248 expr(p);
@@ -261,13 +266,13 @@ fn if_expr(p: &mut Parser) -> CompletedMarker {
261 let m = p.start(); 266 let m = p.start();
262 p.bump(T![if]); 267 p.bump(T![if]);
263 cond(p); 268 cond(p);
264 block(p); 269 block_expr(p);
265 if p.at(T![else]) { 270 if p.at(T![else]) {
266 p.bump(T![else]); 271 p.bump(T![else]);
267 if p.at(T![if]) { 272 if p.at(T![if]) {
268 if_expr(p); 273 if_expr(p);
269 } else { 274 } else {
270 block(p); 275 block_expr(p);
271 } 276 }
272 } 277 }
273 m.complete(p, IF_EXPR) 278 m.complete(p, IF_EXPR)
@@ -295,7 +300,7 @@ fn loop_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
295 assert!(p.at(T![loop])); 300 assert!(p.at(T![loop]));
296 let m = m.unwrap_or_else(|| p.start()); 301 let m = m.unwrap_or_else(|| p.start());
297 p.bump(T![loop]); 302 p.bump(T![loop]);
298 block(p); 303 block_expr(p);
299 m.complete(p, LOOP_EXPR) 304 m.complete(p, LOOP_EXPR)
300} 305}
301 306
@@ -310,7 +315,7 @@ fn while_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
310 let m = m.unwrap_or_else(|| p.start()); 315 let m = m.unwrap_or_else(|| p.start());
311 p.bump(T![while]); 316 p.bump(T![while]);
312 cond(p); 317 cond(p);
313 block(p); 318 block_expr(p);
314 m.complete(p, WHILE_EXPR) 319 m.complete(p, WHILE_EXPR)
315} 320}
316 321
@@ -325,7 +330,7 @@ fn for_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
325 patterns::pattern(p); 330 patterns::pattern(p);
326 p.expect(T![in]); 331 p.expect(T![in]);
327 expr_no_struct(p); 332 expr_no_struct(p);
328 block(p); 333 block_expr(p);
329 m.complete(p, FOR_EXPR) 334 m.complete(p, FOR_EXPR)
330} 335}
331 336
@@ -458,16 +463,25 @@ fn match_guard(p: &mut Parser) -> CompletedMarker {
458 m.complete(p, MATCH_GUARD) 463 m.complete(p, MATCH_GUARD)
459} 464}
460 465
461// test block_expr 466// test block
462// fn foo() { 467// fn a() {}
463// {}; 468// fn b() { let _ = 1; }
464// unsafe {}; 469// fn c() { 1; 2; }
465// 'label: {}; 470// fn d() { 1; 2 }
466// } 471pub(crate) fn block_expr(p: &mut Parser) {
467pub(super) fn block_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker { 472 if !p.at(T!['{']) {
473 p.error("expected a block");
474 return;
475 }
476 block_expr_unchecked(p);
477}
478
479fn block_expr_unchecked(p: &mut Parser) -> CompletedMarker {
468 assert!(p.at(T!['{'])); 480 assert!(p.at(T!['{']));
469 let m = m.unwrap_or_else(|| p.start()); 481 let m = p.start();
470 naked_block(p); 482 p.bump(T!['{']);
483 expr_block_contents(p);
484 p.expect(T!['}']);
471 m.complete(p, BLOCK_EXPR) 485 m.complete(p, BLOCK_EXPR)
472} 486}
473 487
@@ -532,7 +546,7 @@ fn break_expr(p: &mut Parser, r: Restrictions) -> CompletedMarker {
532// fn foo() { 546// fn foo() {
533// let _ = try {}; 547// let _ = try {};
534// } 548// }
535fn try_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker { 549fn try_block_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
536 assert!(p.at(T![try])); 550 assert!(p.at(T![try]));
537 let m = m.unwrap_or_else(|| p.start()); 551 let m = m.unwrap_or_else(|| p.start());
538 // Special-case `try!` as macro. 552 // Special-case `try!` as macro.
@@ -552,8 +566,8 @@ fn try_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
552 } 566 }
553 567
554 p.bump(T![try]); 568 p.bump(T![try]);
555 block(p); 569 block_expr(p);
556 m.complete(p, TRY_EXPR) 570 m.complete(p, EFFECT_EXPR)
557} 571}
558 572
559// test box_expr 573// test box_expr
diff --git a/crates/ra_parser/src/grammar/items.rs b/crates/ra_parser/src/grammar/items.rs
index 1503a8730..67a924de5 100644
--- a/crates/ra_parser/src/grammar/items.rs
+++ b/crates/ra_parser/src/grammar/items.rs
@@ -329,7 +329,7 @@ fn fn_def(p: &mut Parser) {
329 if p.at(T![;]) { 329 if p.at(T![;]) {
330 p.bump(T![;]); 330 p.bump(T![;]);
331 } else { 331 } else {
332 expressions::block(p) 332 expressions::block_expr(p)
333 } 333 }
334} 334}
335 335
diff --git a/crates/ra_parser/src/grammar/type_args.rs b/crates/ra_parser/src/grammar/type_args.rs
index 33d9973e9..2d61f9d80 100644
--- a/crates/ra_parser/src/grammar/type_args.rs
+++ b/crates/ra_parser/src/grammar/type_args.rs
@@ -48,7 +48,7 @@ fn type_arg(p: &mut Parser) {
48 m.complete(p, ASSOC_TYPE_ARG); 48 m.complete(p, ASSOC_TYPE_ARG);
49 } 49 }
50 T!['{'] => { 50 T!['{'] => {
51 expressions::block(p); 51 expressions::block_expr(p);
52 m.complete(p, CONST_ARG); 52 m.complete(p, CONST_ARG);
53 } 53 }
54 k if k.is_literal() => { 54 k if k.is_literal() => {
diff --git a/crates/ra_parser/src/lib.rs b/crates/ra_parser/src/lib.rs
index 652492c1e..e08ad4dae 100644
--- a/crates/ra_parser/src/lib.rs
+++ b/crates/ra_parser/src/lib.rs
@@ -112,7 +112,7 @@ pub fn parse_fragment(
112 FragmentKind::Type => grammar::fragments::type_, 112 FragmentKind::Type => grammar::fragments::type_,
113 FragmentKind::Pattern => grammar::fragments::pattern, 113 FragmentKind::Pattern => grammar::fragments::pattern,
114 FragmentKind::Item => grammar::fragments::item, 114 FragmentKind::Item => grammar::fragments::item,
115 FragmentKind::Block => grammar::fragments::block, 115 FragmentKind::Block => grammar::fragments::block_expr,
116 FragmentKind::Visibility => grammar::fragments::opt_visibility, 116 FragmentKind::Visibility => grammar::fragments::opt_visibility,
117 FragmentKind::MetaItem => grammar::fragments::meta_item, 117 FragmentKind::MetaItem => grammar::fragments::meta_item,
118 FragmentKind::Statement => grammar::fragments::stmt, 118 FragmentKind::Statement => grammar::fragments::stmt,
diff --git a/crates/ra_parser/src/syntax_kind/generated.rs b/crates/ra_parser/src/syntax_kind/generated.rs
index ab727ed7e..e7404492a 100644
--- a/crates/ra_parser/src/syntax_kind/generated.rs
+++ b/crates/ra_parser/src/syntax_kind/generated.rs
@@ -191,6 +191,7 @@ pub enum SyntaxKind {
191 RECORD_LIT, 191 RECORD_LIT,
192 RECORD_FIELD_LIST, 192 RECORD_FIELD_LIST,
193 RECORD_FIELD, 193 RECORD_FIELD,
194 EFFECT_EXPR,
194 BOX_EXPR, 195 BOX_EXPR,
195 CALL_EXPR, 196 CALL_EXPR,
196 INDEX_EXPR, 197 INDEX_EXPR,
@@ -203,7 +204,6 @@ pub enum SyntaxKind {
203 PREFIX_EXPR, 204 PREFIX_EXPR,
204 RANGE_EXPR, 205 RANGE_EXPR,
205 BIN_EXPR, 206 BIN_EXPR,
206 BLOCK,
207 EXTERN_BLOCK, 207 EXTERN_BLOCK,
208 EXTERN_ITEM_LIST, 208 EXTERN_ITEM_LIST,
209 ENUM_VARIANT, 209 ENUM_VARIANT,
diff --git a/crates/ra_syntax/src/ast.rs b/crates/ra_syntax/src/ast.rs
index 521ca8ab8..1876afe95 100644
--- a/crates/ra_syntax/src/ast.rs
+++ b/crates/ra_syntax/src/ast.rs
@@ -16,9 +16,7 @@ use crate::{
16}; 16};
17 17
18pub use self::{ 18pub use self::{
19 expr_extensions::{ 19 expr_extensions::{ArrayExprKind, BinOp, Effect, ElseBranch, LiteralKind, PrefixOp, RangeOp},
20 ArrayExprKind, BinOp, BlockModifier, ElseBranch, LiteralKind, PrefixOp, RangeOp,
21 },
22 extensions::{ 20 extensions::{
23 AttrKind, FieldKind, NameOrNameRef, PathSegmentKind, SelfParamKind, SlicePatComponents, 21 AttrKind, FieldKind, NameOrNameRef, PathSegmentKind, SelfParamKind, SlicePatComponents,
24 StructKind, TypeBoundKind, VisibilityKind, 22 StructKind, TypeBoundKind, VisibilityKind,
diff --git a/crates/ra_syntax/src/ast/edit.rs b/crates/ra_syntax/src/ast/edit.rs
index 26e4576ff..c507dc683 100644
--- a/crates/ra_syntax/src/ast/edit.rs
+++ b/crates/ra_syntax/src/ast/edit.rs
@@ -28,7 +28,7 @@ impl ast::BinExpr {
28 28
29impl ast::FnDef { 29impl ast::FnDef {
30 #[must_use] 30 #[must_use]
31 pub fn with_body(&self, body: ast::Block) -> ast::FnDef { 31 pub fn with_body(&self, body: ast::BlockExpr) -> ast::FnDef {
32 let mut to_insert: ArrayVec<[SyntaxElement; 2]> = ArrayVec::new(); 32 let mut to_insert: ArrayVec<[SyntaxElement; 2]> = ArrayVec::new();
33 let old_body_or_semi: SyntaxElement = if let Some(old_body) = self.body() { 33 let old_body_or_semi: SyntaxElement = if let Some(old_body) = self.body() {
34 old_body.syntax().clone().into() 34 old_body.syntax().clone().into()
diff --git a/crates/ra_syntax/src/ast/expr_extensions.rs b/crates/ra_syntax/src/ast/expr_extensions.rs
index 352c0d2c5..7771d6759 100644
--- a/crates/ra_syntax/src/ast/expr_extensions.rs
+++ b/crates/ra_syntax/src/ast/expr_extensions.rs
@@ -16,7 +16,7 @@ impl ast::Expr {
16 | ast::Expr::WhileExpr(_) 16 | ast::Expr::WhileExpr(_)
17 | ast::Expr::BlockExpr(_) 17 | ast::Expr::BlockExpr(_)
18 | ast::Expr::MatchExpr(_) 18 | ast::Expr::MatchExpr(_)
19 | ast::Expr::TryExpr(_) => true, 19 | ast::Expr::EffectExpr(_) => true,
20 _ => false, 20 _ => false,
21 } 21 }
22 } 22 }
@@ -43,7 +43,7 @@ impl ast::IfExpr {
43 Some(res) 43 Some(res)
44 } 44 }
45 45
46 fn blocks(&self) -> AstChildren<ast::BlockExpr> { 46 pub fn blocks(&self) -> AstChildren<ast::BlockExpr> {
47 support::children(self.syntax()) 47 support::children(self.syntax())
48 } 48 }
49} 49}
@@ -359,22 +359,34 @@ impl ast::Literal {
359 } 359 }
360} 360}
361 361
362pub enum BlockModifier { 362#[derive(Debug, Clone, PartialEq, Eq)]
363pub enum Effect {
363 Async(SyntaxToken), 364 Async(SyntaxToken),
364 Unsafe(SyntaxToken), 365 Unsafe(SyntaxToken),
366 Try(SyntaxToken),
367 // Very much not an effect, but we stuff it into this node anyway
368 Label(ast::Label),
365} 369}
366 370
367impl ast::BlockExpr { 371impl ast::EffectExpr {
368 pub fn modifier(&self) -> Option<BlockModifier> { 372 pub fn effect(&self) -> Effect {
369 if let Some(token) = self.async_token() { 373 if let Some(token) = self.async_token() {
370 return Some(BlockModifier::Async(token)); 374 return Effect::Async(token);
371 } 375 }
372 if let Some(token) = self.unsafe_token() { 376 if let Some(token) = self.unsafe_token() {
373 return Some(BlockModifier::Unsafe(token)); 377 return Effect::Unsafe(token);
378 }
379 if let Some(token) = self.try_token() {
380 return Effect::Try(token);
381 }
382 if let Some(label) = self.label() {
383 return Effect::Label(label);
374 } 384 }
375 None 385 unreachable!("ast::EffectExpr without Effect")
376 } 386 }
387}
377 388
389impl ast::BlockExpr {
378 /// false if the block is an intrinsic part of the syntax and can't be 390 /// false if the block is an intrinsic part of the syntax and can't be
379 /// replaced with arbitrary expression. 391 /// replaced with arbitrary expression.
380 /// 392 ///
@@ -383,15 +395,12 @@ impl ast::BlockExpr {
383 /// const FOO: () = { stand_alone }; 395 /// const FOO: () = { stand_alone };
384 /// ``` 396 /// ```
385 pub fn is_standalone(&self) -> bool { 397 pub fn is_standalone(&self) -> bool {
386 if self.modifier().is_some() {
387 return false;
388 }
389 let parent = match self.syntax().parent() { 398 let parent = match self.syntax().parent() {
390 Some(it) => it, 399 Some(it) => it,
391 None => return true, 400 None => return true,
392 }; 401 };
393 match parent.kind() { 402 match parent.kind() {
394 FN_DEF | IF_EXPR | WHILE_EXPR | LOOP_EXPR => false, 403 FN_DEF | IF_EXPR | WHILE_EXPR | LOOP_EXPR | EFFECT_EXPR => false,
395 _ => true, 404 _ => true,
396 } 405 }
397 } 406 }
diff --git a/crates/ra_syntax/src/ast/extensions.rs b/crates/ra_syntax/src/ast/extensions.rs
index f2ea5088e..98c38d009 100644
--- a/crates/ra_syntax/src/ast/extensions.rs
+++ b/crates/ra_syntax/src/ast/extensions.rs
@@ -407,7 +407,7 @@ impl ast::Visibility {
407 } else if self.super_token().is_some() { 407 } else if self.super_token().is_some() {
408 VisibilityKind::PubSuper 408 VisibilityKind::PubSuper
409 } else if self.self_token().is_some() { 409 } else if self.self_token().is_some() {
410 VisibilityKind::PubSuper 410 VisibilityKind::PubSelf
411 } else { 411 } else {
412 VisibilityKind::Pub 412 VisibilityKind::Pub
413 } 413 }
@@ -423,6 +423,10 @@ impl ast::MacroCall {
423 None 423 None
424 } 424 }
425 } 425 }
426
427 pub fn is_bang(&self) -> bool {
428 self.is_macro_rules().is_none()
429 }
426} 430}
427 431
428impl ast::LifetimeParam { 432impl ast::LifetimeParam {
@@ -463,7 +467,7 @@ impl ast::TokenTree {
463 467
464 pub fn right_delimiter_token(&self) -> Option<SyntaxToken> { 468 pub fn right_delimiter_token(&self) -> Option<SyntaxToken> {
465 self.syntax().last_child_or_token()?.into_token().filter(|it| match it.kind() { 469 self.syntax().last_child_or_token()?.into_token().filter(|it| match it.kind() {
466 T!['{'] | T!['('] | T!['['] => true, 470 T!['}'] | T![')'] | T![']'] => true,
467 _ => false, 471 _ => false,
468 }) 472 })
469 } 473 }
diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs
index 81260680f..5e844d5ae 100644
--- a/crates/ra_syntax/src/ast/generated/nodes.rs
+++ b/crates/ra_syntax/src/ast/generated/nodes.rs
@@ -476,6 +476,19 @@ impl LoopExpr {
476} 476}
477 477
478#[derive(Debug, Clone, PartialEq, Eq, Hash)] 478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
479pub struct EffectExpr {
480 pub(crate) syntax: SyntaxNode,
481}
482impl ast::AttrsOwner for EffectExpr {}
483impl EffectExpr {
484 pub fn label(&self) -> Option<Label> { support::child(&self.syntax) }
485 pub fn try_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![try]) }
486 pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) }
487 pub fn async_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![async]) }
488 pub fn block_expr(&self) -> Option<BlockExpr> { support::child(&self.syntax) }
489}
490
491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
479pub struct ForExpr { 492pub struct ForExpr {
480 pub(crate) syntax: SyntaxNode, 493 pub(crate) syntax: SyntaxNode,
481} 494}
@@ -541,11 +554,12 @@ pub struct BlockExpr {
541 pub(crate) syntax: SyntaxNode, 554 pub(crate) syntax: SyntaxNode,
542} 555}
543impl ast::AttrsOwner for BlockExpr {} 556impl ast::AttrsOwner for BlockExpr {}
557impl ast::ModuleItemOwner for BlockExpr {}
544impl BlockExpr { 558impl BlockExpr {
545 pub fn label(&self) -> Option<Label> { support::child(&self.syntax) } 559 pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) }
546 pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) } 560 pub fn statements(&self) -> AstChildren<Stmt> { support::children(&self.syntax) }
547 pub fn async_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![async]) } 561 pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) }
548 pub fn block(&self) -> Option<Block> { support::child(&self.syntax) } 562 pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) }
549} 563}
550 564
551#[derive(Debug, Clone, PartialEq, Eq, Hash)] 565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@@ -617,8 +631,8 @@ pub struct TryExpr {
617} 631}
618impl ast::AttrsOwner for TryExpr {} 632impl ast::AttrsOwner for TryExpr {}
619impl TryExpr { 633impl TryExpr {
620 pub fn try_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![try]) }
621 pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) } 634 pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) }
635 pub fn question_mark_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![?]) }
622} 636}
623 637
624#[derive(Debug, Clone, PartialEq, Eq, Hash)] 638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@@ -1112,19 +1126,6 @@ impl Condition {
1112} 1126}
1113 1127
1114#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1115pub struct Block {
1116 pub(crate) syntax: SyntaxNode,
1117}
1118impl ast::AttrsOwner for Block {}
1119impl ast::ModuleItemOwner for Block {}
1120impl Block {
1121 pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) }
1122 pub fn statements(&self) -> AstChildren<Stmt> { support::children(&self.syntax) }
1123 pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) }
1124 pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) }
1125}
1126
1127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1128pub struct ParamList { 1129pub struct ParamList {
1129 pub(crate) syntax: SyntaxNode, 1130 pub(crate) syntax: SyntaxNode,
1130} 1131}
@@ -1241,6 +1242,8 @@ pub struct PathSegment {
1241impl PathSegment { 1242impl PathSegment {
1242 pub fn coloncolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![::]) } 1243 pub fn coloncolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![::]) }
1243 pub fn crate_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![crate]) } 1244 pub fn crate_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![crate]) }
1245 pub fn self_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![self]) }
1246 pub fn super_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![super]) }
1244 pub fn l_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![<]) } 1247 pub fn l_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![<]) }
1245 pub fn name_ref(&self) -> Option<NameRef> { support::child(&self.syntax) } 1248 pub fn name_ref(&self) -> Option<NameRef> { support::child(&self.syntax) }
1246 pub fn type_arg_list(&self) -> Option<TypeArgList> { support::child(&self.syntax) } 1249 pub fn type_arg_list(&self) -> Option<TypeArgList> { support::child(&self.syntax) }
@@ -1465,6 +1468,7 @@ pub enum Expr {
1465 FieldExpr(FieldExpr), 1468 FieldExpr(FieldExpr),
1466 AwaitExpr(AwaitExpr), 1469 AwaitExpr(AwaitExpr),
1467 TryExpr(TryExpr), 1470 TryExpr(TryExpr),
1471 EffectExpr(EffectExpr),
1468 CastExpr(CastExpr), 1472 CastExpr(CastExpr),
1469 RefExpr(RefExpr), 1473 RefExpr(RefExpr),
1470 PrefixExpr(PrefixExpr), 1474 PrefixExpr(PrefixExpr),
@@ -1947,6 +1951,17 @@ impl AstNode for LoopExpr {
1947 } 1951 }
1948 fn syntax(&self) -> &SyntaxNode { &self.syntax } 1952 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1949} 1953}
1954impl AstNode for EffectExpr {
1955 fn can_cast(kind: SyntaxKind) -> bool { kind == EFFECT_EXPR }
1956 fn cast(syntax: SyntaxNode) -> Option<Self> {
1957 if Self::can_cast(syntax.kind()) {
1958 Some(Self { syntax })
1959 } else {
1960 None
1961 }
1962 }
1963 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1964}
1950impl AstNode for ForExpr { 1965impl AstNode for ForExpr {
1951 fn can_cast(kind: SyntaxKind) -> bool { kind == FOR_EXPR } 1966 fn can_cast(kind: SyntaxKind) -> bool { kind == FOR_EXPR }
1952 fn cast(syntax: SyntaxNode) -> Option<Self> { 1967 fn cast(syntax: SyntaxNode) -> Option<Self> {
@@ -2629,17 +2644,6 @@ impl AstNode for Condition {
2629 } 2644 }
2630 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2645 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2631} 2646}
2632impl AstNode for Block {
2633 fn can_cast(kind: SyntaxKind) -> bool { kind == BLOCK }
2634 fn cast(syntax: SyntaxNode) -> Option<Self> {
2635 if Self::can_cast(syntax.kind()) {
2636 Some(Self { syntax })
2637 } else {
2638 None
2639 }
2640 }
2641 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2642}
2643impl AstNode for ParamList { 2647impl AstNode for ParamList {
2644 fn can_cast(kind: SyntaxKind) -> bool { kind == PARAM_LIST } 2648 fn can_cast(kind: SyntaxKind) -> bool { kind == PARAM_LIST }
2645 fn cast(syntax: SyntaxNode) -> Option<Self> { 2649 fn cast(syntax: SyntaxNode) -> Option<Self> {
@@ -3288,6 +3292,9 @@ impl From<AwaitExpr> for Expr {
3288impl From<TryExpr> for Expr { 3292impl From<TryExpr> for Expr {
3289 fn from(node: TryExpr) -> Expr { Expr::TryExpr(node) } 3293 fn from(node: TryExpr) -> Expr { Expr::TryExpr(node) }
3290} 3294}
3295impl From<EffectExpr> for Expr {
3296 fn from(node: EffectExpr) -> Expr { Expr::EffectExpr(node) }
3297}
3291impl From<CastExpr> for Expr { 3298impl From<CastExpr> for Expr {
3292 fn from(node: CastExpr) -> Expr { Expr::CastExpr(node) } 3299 fn from(node: CastExpr) -> Expr { Expr::CastExpr(node) }
3293} 3300}
@@ -3318,8 +3325,10 @@ impl AstNode for Expr {
3318 TUPLE_EXPR | ARRAY_EXPR | PAREN_EXPR | PATH_EXPR | LAMBDA_EXPR | IF_EXPR 3325 TUPLE_EXPR | ARRAY_EXPR | PAREN_EXPR | PATH_EXPR | LAMBDA_EXPR | IF_EXPR
3319 | LOOP_EXPR | FOR_EXPR | WHILE_EXPR | CONTINUE_EXPR | BREAK_EXPR | LABEL 3326 | LOOP_EXPR | FOR_EXPR | WHILE_EXPR | CONTINUE_EXPR | BREAK_EXPR | LABEL
3320 | BLOCK_EXPR | RETURN_EXPR | MATCH_EXPR | RECORD_LIT | CALL_EXPR | INDEX_EXPR 3327 | BLOCK_EXPR | RETURN_EXPR | MATCH_EXPR | RECORD_LIT | CALL_EXPR | INDEX_EXPR
3321 | METHOD_CALL_EXPR | FIELD_EXPR | AWAIT_EXPR | TRY_EXPR | CAST_EXPR | REF_EXPR 3328 | METHOD_CALL_EXPR | FIELD_EXPR | AWAIT_EXPR | TRY_EXPR | EFFECT_EXPR | CAST_EXPR
3322 | PREFIX_EXPR | RANGE_EXPR | BIN_EXPR | LITERAL | MACRO_CALL | BOX_EXPR => true, 3329 | REF_EXPR | PREFIX_EXPR | RANGE_EXPR | BIN_EXPR | LITERAL | MACRO_CALL | BOX_EXPR => {
3330 true
3331 }
3323 _ => false, 3332 _ => false,
3324 } 3333 }
3325 } 3334 }
@@ -3347,6 +3356,7 @@ impl AstNode for Expr {
3347 FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }), 3356 FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
3348 AWAIT_EXPR => Expr::AwaitExpr(AwaitExpr { syntax }), 3357 AWAIT_EXPR => Expr::AwaitExpr(AwaitExpr { syntax }),
3349 TRY_EXPR => Expr::TryExpr(TryExpr { syntax }), 3358 TRY_EXPR => Expr::TryExpr(TryExpr { syntax }),
3359 EFFECT_EXPR => Expr::EffectExpr(EffectExpr { syntax }),
3350 CAST_EXPR => Expr::CastExpr(CastExpr { syntax }), 3360 CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
3351 REF_EXPR => Expr::RefExpr(RefExpr { syntax }), 3361 REF_EXPR => Expr::RefExpr(RefExpr { syntax }),
3352 PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }), 3362 PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
@@ -3383,6 +3393,7 @@ impl AstNode for Expr {
3383 Expr::FieldExpr(it) => &it.syntax, 3393 Expr::FieldExpr(it) => &it.syntax,
3384 Expr::AwaitExpr(it) => &it.syntax, 3394 Expr::AwaitExpr(it) => &it.syntax,
3385 Expr::TryExpr(it) => &it.syntax, 3395 Expr::TryExpr(it) => &it.syntax,
3396 Expr::EffectExpr(it) => &it.syntax,
3386 Expr::CastExpr(it) => &it.syntax, 3397 Expr::CastExpr(it) => &it.syntax,
3387 Expr::RefExpr(it) => &it.syntax, 3398 Expr::RefExpr(it) => &it.syntax,
3388 Expr::PrefixExpr(it) => &it.syntax, 3399 Expr::PrefixExpr(it) => &it.syntax,
@@ -3863,6 +3874,11 @@ impl std::fmt::Display for LoopExpr {
3863 std::fmt::Display::fmt(self.syntax(), f) 3874 std::fmt::Display::fmt(self.syntax(), f)
3864 } 3875 }
3865} 3876}
3877impl std::fmt::Display for EffectExpr {
3878 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3879 std::fmt::Display::fmt(self.syntax(), f)
3880 }
3881}
3866impl std::fmt::Display for ForExpr { 3882impl std::fmt::Display for ForExpr {
3867 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { 3883 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3868 std::fmt::Display::fmt(self.syntax(), f) 3884 std::fmt::Display::fmt(self.syntax(), f)
@@ -4173,11 +4189,6 @@ impl std::fmt::Display for Condition {
4173 std::fmt::Display::fmt(self.syntax(), f) 4189 std::fmt::Display::fmt(self.syntax(), f)
4174 } 4190 }
4175} 4191}
4176impl std::fmt::Display for Block {
4177 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4178 std::fmt::Display::fmt(self.syntax(), f)
4179 }
4180}
4181impl std::fmt::Display for ParamList { 4192impl std::fmt::Display for ParamList {
4182 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { 4193 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4183 std::fmt::Display::fmt(self.syntax(), f) 4194 std::fmt::Display::fmt(self.syntax(), f)
diff --git a/crates/ra_syntax/src/ast/make.rs b/crates/ra_syntax/src/ast/make.rs
index 492088353..7b17fef49 100644
--- a/crates/ra_syntax/src/ast/make.rs
+++ b/crates/ra_syntax/src/ast/make.rs
@@ -82,14 +82,6 @@ pub fn block_expr(
82 ast_from_text(&format!("fn f() {}", buf)) 82 ast_from_text(&format!("fn f() {}", buf))
83} 83}
84 84
85pub fn block_from_expr(e: ast::Expr) -> ast::Block {
86 return from_text(&format!("{{ {} }}", e));
87
88 fn from_text(text: &str) -> ast::Block {
89 ast_from_text(&format!("fn f() {}", text))
90 }
91}
92
93pub fn expr_unit() -> ast::Expr { 85pub fn expr_unit() -> ast::Expr {
94 expr_from_text("()") 86 expr_from_text("()")
95} 87}
diff --git a/crates/ra_syntax/src/lib.rs b/crates/ra_syntax/src/lib.rs
index ceeb2bde9..d0234cada 100644
--- a/crates/ra_syntax/src/lib.rs
+++ b/crates/ra_syntax/src/lib.rs
@@ -237,8 +237,7 @@ fn api_walkthrough() {
237 237
238 // Let's get the `1 + 1` expression! 238 // Let's get the `1 + 1` expression!
239 let body: ast::BlockExpr = func.body().unwrap(); 239 let body: ast::BlockExpr = func.body().unwrap();
240 let block = body.block().unwrap(); 240 let expr: ast::Expr = body.expr().unwrap();
241 let expr: ast::Expr = block.expr().unwrap();
242 241
243 // Enums are used to group related ast nodes together, and can be used for 242 // Enums are used to group related ast nodes together, and can be used for
244 // matching. However, because there are no public fields, it's possible to 243 // matching. However, because there are no public fields, it's possible to
@@ -274,8 +273,8 @@ fn api_walkthrough() {
274 assert_eq!(text.to_string(), "1 + 1"); 273 assert_eq!(text.to_string(), "1 + 1");
275 274
276 // There's a bunch of traversal methods on `SyntaxNode`: 275 // There's a bunch of traversal methods on `SyntaxNode`:
277 assert_eq!(expr_syntax.parent().as_ref(), Some(block.syntax())); 276 assert_eq!(expr_syntax.parent().as_ref(), Some(body.syntax()));
278 assert_eq!(block.syntax().first_child_or_token().map(|it| it.kind()), Some(T!['{'])); 277 assert_eq!(body.syntax().first_child_or_token().map(|it| it.kind()), Some(T!['{']));
279 assert_eq!( 278 assert_eq!(
280 expr_syntax.next_sibling_or_token().map(|it| it.kind()), 279 expr_syntax.next_sibling_or_token().map(|it| it.kind()),
281 Some(SyntaxKind::WHITESPACE) 280 Some(SyntaxKind::WHITESPACE)
diff --git a/crates/ra_syntax/src/validation.rs b/crates/ra_syntax/src/validation.rs
index f0b3dec63..e075cd801 100644
--- a/crates/ra_syntax/src/validation.rs
+++ b/crates/ra_syntax/src/validation.rs
@@ -96,7 +96,7 @@ pub(crate) fn validate(root: &SyntaxNode) -> Vec<SyntaxError> {
96 ast::RecordField(it) => validate_numeric_name(it.name_ref(), &mut errors), 96 ast::RecordField(it) => validate_numeric_name(it.name_ref(), &mut errors),
97 ast::Visibility(it) => validate_visibility(it, &mut errors), 97 ast::Visibility(it) => validate_visibility(it, &mut errors),
98 ast::RangeExpr(it) => validate_range_expr(it, &mut errors), 98 ast::RangeExpr(it) => validate_range_expr(it, &mut errors),
99 ast::PathSegment(it) => validate_crate_keyword_in_path_segment(it, &mut errors), 99 ast::PathSegment(it) => validate_path_keywords(it, &mut errors),
100 _ => (), 100 _ => (),
101 } 101 }
102 } 102 }
@@ -224,59 +224,82 @@ fn validate_range_expr(expr: ast::RangeExpr, errors: &mut Vec<SyntaxError>) {
224 } 224 }
225} 225}
226 226
227fn validate_crate_keyword_in_path_segment( 227fn validate_path_keywords(segment: ast::PathSegment, errors: &mut Vec<SyntaxError>) {
228 segment: ast::PathSegment, 228 use ast::PathSegmentKind;
229 errors: &mut Vec<SyntaxError>,
230) {
231 const ERR_MSG: &str = "The `crate` keyword is only allowed as the first segment of a path";
232 229
233 let crate_token = match segment.crate_token() { 230 let path = segment.parent_path();
234 None => return, 231 let is_path_start = segment.coloncolon_token().is_none() && path.qualifier().is_none();
235 Some(it) => it, 232
236 }; 233 if let Some(token) = segment.self_token() {
234 if !is_path_start {
235 errors.push(SyntaxError::new(
236 "The `self` keyword is only allowed as the first segment of a path",
237 token.text_range(),
238 ));
239 }
240 } else if let Some(token) = segment.crate_token() {
241 if !is_path_start || use_prefix(path).is_some() {
242 errors.push(SyntaxError::new(
243 "The `crate` keyword is only allowed as the first segment of a path",
244 token.text_range(),
245 ));
246 }
247 } else if let Some(token) = segment.super_token() {
248 if !all_supers(&path) {
249 errors.push(SyntaxError::new(
250 "The `super` keyword may only be preceded by other `super`s",
251 token.text_range(),
252 ));
253 return;
254 }
237 255
238 // Disallow both ::crate and foo::crate 256 let mut curr_path = path;
239 let mut path = segment.parent_path(); 257 while let Some(prefix) = use_prefix(curr_path) {
240 if segment.coloncolon_token().is_some() || path.qualifier().is_some() { 258 if !all_supers(&prefix) {
241 errors.push(SyntaxError::new(ERR_MSG, crate_token.text_range())); 259 errors.push(SyntaxError::new(
242 return; 260 "The `super` keyword may only be preceded by other `super`s",
261 token.text_range(),
262 ));
263 return;
264 }
265 curr_path = prefix;
266 }
243 } 267 }
244 268
245 // For expressions and types, validation is complete, but we still have 269 fn use_prefix(mut path: ast::Path) -> Option<ast::Path> {
246 // to handle invalid UseItems like this: 270 for node in path.syntax().ancestors().skip(1) {
247 // 271 match_ast! {
248 // use foo:{crate::bar::baz}; 272 match node {
249 // 273 ast::UseTree(it) => if let Some(tree_path) = it.path() {
250 // To handle this we must inspect the parent `UseItem`s and `UseTree`s 274 // Even a top-level path exists within a `UseTree` so we must explicitly
251 // but right now we're looking deep inside the nested `Path` nodes because 275 // allow our path but disallow anything else
252 // `Path`s are left-associative: 276 if tree_path != path {
253 // 277 return Some(tree_path);
254 // ((crate)::bar)::baz) 278 }
255 // ^ current value of path 279 },
256 // 280 ast::UseTreeList(_it) => continue,
257 // So we need to climb to the top 281 ast::Path(parent) => path = parent,
258 while let Some(parent) = path.parent_path() { 282 _ => return None,
259 path = parent; 283 }
284 };
285 }
286 return None;
260 } 287 }
261 288
262 // Now that we've found the whole path we need to see if there's a prefix 289 fn all_supers(path: &ast::Path) -> bool {
263 // somewhere in the UseTree hierarchy. This check is arbitrarily deep 290 let segment = match path.segment() {
264 // because rust allows arbitrary nesting like so: 291 Some(it) => it,
265 // 292 None => return false,
266 // use {foo::{{{{crate::bar::baz}}}}};
267 for node in path.syntax().ancestors().skip(1) {
268 match_ast! {
269 match node {
270 ast::UseTree(it) => if let Some(tree_path) = it.path() {
271 // Even a top-level path exists within a `UseTree` so we must explicitly
272 // allow our path but disallow anything else
273 if tree_path != path {
274 errors.push(SyntaxError::new(ERR_MSG, crate_token.text_range()));
275 }
276 },
277 ast::UseTreeList(_it) => continue,
278 _ => return,
279 }
280 }; 293 };
294
295 if segment.kind() != Some(PathSegmentKind::SuperKw) {
296 return false;
297 }
298
299 if let Some(ref subpath) = path.qualifier() {
300 return all_supers(subpath);
301 }
302
303 return true;
281 } 304 }
282} 305}
diff --git a/crates/ra_syntax/src/validation/block.rs b/crates/ra_syntax/src/validation/block.rs
index 8e962ab5b..2c08f7e6e 100644
--- a/crates/ra_syntax/src/validation/block.rs
+++ b/crates/ra_syntax/src/validation/block.rs
@@ -6,19 +6,17 @@ use crate::{
6 SyntaxKind::*, 6 SyntaxKind::*,
7}; 7};
8 8
9pub(crate) fn validate_block_expr(expr: ast::BlockExpr, errors: &mut Vec<SyntaxError>) { 9pub(crate) fn validate_block_expr(block: ast::BlockExpr, errors: &mut Vec<SyntaxError>) {
10 if let Some(parent) = expr.syntax().parent() { 10 if let Some(parent) = block.syntax().parent() {
11 match parent.kind() { 11 match parent.kind() {
12 FN_DEF | EXPR_STMT | BLOCK => return, 12 FN_DEF | EXPR_STMT | BLOCK_EXPR => return,
13 _ => {} 13 _ => {}
14 } 14 }
15 } 15 }
16 if let Some(block) = expr.block() { 16 errors.extend(block.attrs().map(|attr| {
17 errors.extend(block.attrs().map(|attr| { 17 SyntaxError::new(
18 SyntaxError::new( 18 "A block in this position cannot accept inner attributes",
19 "A block in this position cannot accept inner attributes", 19 attr.syntax().text_range(),
20 attr.syntax().text_range(), 20 )
21 ) 21 }))
22 }))
23 }
24} 22}
diff --git a/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast b/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast
index 95cc83caa..375ed45e0 100644
--- a/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast
+++ b/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast
@@ -28,10 +28,9 @@ [email protected]
28 [email protected] ")" 28 [email protected] ")"
29 [email protected] " " 29 [email protected] " "
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected] "{"
32 [email protected] "{" 32 [email protected] "\n"
33 [email protected] "\n" 33 [email protected] "}"
34 [email protected] "}"
35 [email protected] "\n\n\n" 34 [email protected] "\n\n\n"
36 [email protected] 35 [email protected]
37 [email protected] "#" 36 [email protected] "#"
diff --git a/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast b/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast
index dc3e12091..b72c92c33 100644
--- a/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast
+++ b/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast
@@ -21,9 +21,8 @@ [email protected]
21 [email protected] "(" 21 [email protected] "("
22 [email protected] ")" 22 [email protected] ")"
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected] "{"
25 [email protected] "{" 25 [email protected] "}"
26 [email protected] "}"
27 [email protected] "\n\n" 26 [email protected] "\n\n"
28 [email protected] 27 [email protected]
29 [email protected] "}" 28 [email protected] "}"
diff --git a/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast b/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast
index 97539fcf2..33953d8d7 100644
--- a/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast
+++ b/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast
@@ -9,10 +9,9 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n"
14 [email protected] "\n" 14 [email protected] "}"
15 [email protected] "}"
16 [email protected] "\n\n" 15 [email protected] "\n\n"
17 [email protected] 16 [email protected]
18 [email protected] 17 [email protected]
@@ -34,30 +33,28 @@ [email protected]
34 [email protected] "true" 33 [email protected] "true"
35 [email protected] " " 34 [email protected] " "
36 [email protected] 35 [email protected]
37 [email protected] 36 [email protected] "{"
38 [email protected] "{" 37 [email protected] "\n "
39 [email protected] "\n " 38 [email protected]
40 [email protected] 39 [email protected] "1"
41 [email protected] "1" 40 [email protected] "\n "
42 [email protected] "\n " 41 [email protected] "}"
43 [email protected] "}"
44 [email protected] " " 42 [email protected] " "
45 [email protected] "else" 43 [email protected] "else"
46 [email protected] " " 44 [email protected] " "
47 [email protected] 45 [email protected]
48 [email protected] 46 [email protected] "{"
49 [email protected] "{" 47 [email protected] "\n "
50 [email protected] "\n " 48 [email protected]
51 [email protected] 49 [email protected]
52 [email protected] 50 [email protected] "2"
53 [email protected] "2" 51 [email protected] " "
54 [email protected] " " 52 [email protected] "+"
55 [email protected] "+" 53 [email protected] " "
56 [email protected] " " 54 [email protected]
57 [email protected] 55 [email protected] "3"
58 [email protected] "3" 56 [email protected] "\n "
59 [email protected] "\n " 57 [email protected] "}"
60 [email protected] "}"
61 [email protected] "\n" 58 [email protected] "\n"
62 [email protected] "}" 59 [email protected] "}"
63 [email protected] "\n\n" 60 [email protected] "\n\n"
@@ -71,10 +68,9 @@ [email protected]
71 [email protected] ")" 68 [email protected] ")"
72 [email protected] " " 69 [email protected] " "
73 [email protected] 70 [email protected]
74 [email protected] 71 [email protected] "{"
75 [email protected] "{" 72 [email protected] "\n"
76 [email protected] "\n" 73 [email protected] "}"
77 [email protected] "}"
78 [email protected] "\n" 74 [email protected] "\n"
79error 17..17: expected BANG 75error 17..17: expected BANG
80error 19..19: expected SEMICOLON 76error 19..19: expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast b/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast
index e10bb8174..3bf57eacc 100644
--- a/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast
+++ b/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast
@@ -9,37 +9,36 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected] "|"
18 [email protected] "|" 18 [email protected] "|"
19 [email protected] "|" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected] "->"
22 [email protected] "->" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected] "("
25 [email protected] "(" 25 [email protected] ")"
26 [email protected] ")" 26 [email protected] " "
27 [email protected] " " 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected] "unsafe"
30 [email protected] "unsafe" 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected] "{"
33 [email protected] "{" 33 [email protected] " "
34 [email protected] " " 34 [email protected]
35 [email protected] 35 [email protected] "("
36 [email protected] "(" 36 [email protected] ")"
37 [email protected] ")" 37 [email protected] " "
38 [email protected] " " 38 [email protected] "}"
39 [email protected] "}" 39 [email protected] ";"
40 [email protected] ";" 40 [email protected] "\n"
41 [email protected] "\n" 41 [email protected] "}"
42 [email protected] "}"
43 [email protected] "\n" 42 [email protected] "\n"
44error 24..24: expected `{` 43error 24..24: expected a block
45error 24..24: expected SEMICOLON 44error 24..24: expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast b/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast
index 61c361833..9323b7890 100644
--- a/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast
+++ b/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast
@@ -25,8 +25,7 @@ [email protected]
25 [email protected] "T" 25 [email protected] "T"
26 [email protected] " " 26 [email protected] " "
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected] "{"
29 [email protected] "{" 29 [email protected] "}"
30 [email protected] "}"
31 [email protected] "\n" 30 [email protected] "\n"
32error 19..19: expected colon 31error 19..19: expected colon
diff --git a/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast b/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast
index 92bb47316..93434f34f 100644
--- a/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast
+++ b/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast
@@ -9,36 +9,35 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "foo"
21 [email protected] "foo" 21 [email protected]
22 [email protected] 22 [email protected] "("
23 [email protected] "(" 23 [email protected] "\n "
24 [email protected] "\n " 24 [email protected]
25 [email protected] 25 [email protected] "1"
26 [email protected] "1" 26 [email protected] ","
27 [email protected] "," 27 [email protected] " "
28 [email protected] " " 28 [email protected]
29 [email protected] 29 [email protected] "2"
30 [email protected] "2" 30 [email protected] "\n "
31 [email protected] "\n " 31 [email protected] ")"
32 [email protected] ")" 32 [email protected] "\n "
33 [email protected] "\n " 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "return"
36 [email protected] "return" 36 [email protected] " "
37 [email protected] " " 37 [email protected]
38 [email protected] 38 [email protected] "92"
39 [email protected] "92" 39 [email protected] ";"
40 [email protected] ";" 40 [email protected] "\n"
41 [email protected] "\n" 41 [email protected] "}"
42 [email protected] "}"
43 [email protected] "\n" 42 [email protected] "\n"
44error 38..38: expected SEMICOLON 43error 38..38: expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast b/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast
index 7bc718302..628315c78 100644
--- a/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast
+++ b/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast
@@ -20,28 +20,27 @@ [email protected]
20 [email protected] ")" 20 [email protected] ")"
21 [email protected] " " 21 [email protected] " "
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected] "{"
24 [email protected] "{" 24 [email protected] "\n "
25 [email protected] "\n " 25 [email protected]
26 [email protected] 26 [email protected] "let"
27 [email protected] "let" 27 [email protected] " "
28 [email protected] " " 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected] "bar"
31 [email protected] "bar" 31 [email protected] " "
32 [email protected] " " 32 [email protected] "="
33 [email protected] "=" 33 [email protected] " "
34 [email protected] " " 34 [email protected]
35 [email protected] 35 [email protected] "92"
36 [email protected] "92" 36 [email protected] ";"
37 [email protected] ";" 37 [email protected] "\n "
38 [email protected] "\n " 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected] "1"
41 [email protected] "1" 41 [email protected] " "
42 [email protected] " " 42 [email protected] "+"
43 [email protected] "+" 43 [email protected] "\n"
44 [email protected] "\n" 44 [email protected] "}"
45 [email protected] "}"
46 [email protected] "\n" 45 [email protected] "\n"
47error 44..44: expected expression 46error 44..44: expected expression
diff --git a/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast b/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast
index 63194f974..31cc4e551 100644
--- a/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast
+++ b/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast
@@ -33,89 +33,88 @@ [email protected]
33 [email protected] "ScopeId" 33 [email protected] "ScopeId"
34 [email protected] " " 34 [email protected] " "
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected] "{"
37 [email protected] "{" 37 [email protected] "\n "
38 [email protected] "\n " 38 [email protected]
39 [email protected] 39 [email protected] "let"
40 [email protected] "let" 40 [email protected] " "
41 [email protected] " " 41 [email protected]
42 [email protected] 42 [email protected]
43 [email protected] 43 [email protected] "res"
44 [email protected] "res" 44 [email protected] " "
45 [email protected] " " 45 [email protected] "="
46 [email protected] "=" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected]
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected] "self"
53 [email protected] "self" 53 [email protected] "."
54 [email protected] "." 54 [email protected]
55 [email protected] 55 [email protected] "scopes"
56 [email protected] "scopes" 56 [email protected] "."
57 [email protected] "." 57 [email protected]
58 [email protected] 58 [email protected] "len"
59 [email protected] "len" 59 [email protected]
60 [email protected] 60 [email protected] "("
61 [email protected] "(" 61 [email protected] ")"
62 [email protected] ")" 62 [email protected] ";"
63 [email protected] ";" 63 [email protected] "\n "
64 [email protected] "\n " 64 [email protected]
65 [email protected] 65 [email protected]
66 [email protected] 66 [email protected]
67 [email protected] 67 [email protected]
68 [email protected] 68 [email protected]
69 [email protected] 69 [email protected] "self"
70 [email protected] "self" 70 [email protected] "."
71 [email protected] "." 71 [email protected]
72 [email protected] 72 [email protected] "scopes"
73 [email protected] "scopes" 73 [email protected] "."
74 [email protected] "." 74 [email protected]
75 [email protected] 75 [email protected] "push"
76 [email protected] "push" 76 [email protected]
77 [email protected] 77 [email protected] "("
78 [email protected] "(" 78 [email protected]
79 [email protected] 79 [email protected]
80 [email protected] 80 [email protected]
81 [email protected] 81 [email protected]
82 [email protected] 82 [email protected] "ScopeData"
83 [email protected] "ScopeData" 83 [email protected] " "
84 [email protected] " " 84 [email protected]
85 [email protected] 85 [email protected] "{"
86 [email protected] "{" 86 [email protected] " "
87 [email protected] " " 87 [email protected]
88 [email protected] 88 [email protected]
89 [email protected] 89 [email protected] "parent"
90 [email protected] "parent" 90 [email protected] ":"
91 [email protected] ":" 91 [email protected] " "
92 [email protected] " " 92 [email protected]
93 [email protected] 93 [email protected]
94 [email protected] 94 [email protected]
95 [email protected] 95 [email protected]
96 [email protected] 96 [email protected] "None"
97 [email protected] "None" 97 [email protected] ","
98 [email protected] "," 98 [email protected] " "
99 [email protected] " " 99 [email protected]
100 [email protected] 100 [email protected]
101 [email protected] 101 [email protected] "entries"
102 [email protected] "entries" 102 [email protected] ":"
103 [email protected] ":" 103 [email protected] " "
104 [email protected] " " 104 [email protected]
105 [email protected] 105 [email protected]
106 [email protected] 106 [email protected]
107 [email protected] 107 [email protected]
108 [email protected] 108 [email protected] "vec"
109 [email protected] "vec" 109 [email protected] "!"
110 [email protected] "!" 110 [email protected]
111 [email protected] 111 [email protected] "["
112 [email protected] "[" 112 [email protected] "]"
113 [email protected] "]" 113 [email protected] " "
114 [email protected] " " 114 [email protected] "}"
115 [email protected] "}" 115 [email protected] ")"
116 [email protected] ")" 116 [email protected] "\n "
117 [email protected] "\n " 117 [email protected] "}"
118 [email protected] "}"
119 [email protected] "\n\n " 118 [email protected] "\n\n "
120 [email protected] 119 [email protected]
121 [email protected] "fn" 120 [email protected] "fn"
diff --git a/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast b/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast
index d20bb60f1..4ff27f5c8 100644
--- a/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast
+++ b/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast
@@ -9,91 +9,87 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "foo"
20 [email protected] "foo" 20 [email protected] " "
21 [email protected] " " 21 [email protected] "="
22 [email protected] "=" 22 [email protected] "\n "
23 [email protected] "\n " 23 [email protected]
24 [email protected] 24 [email protected] "let"
25 [email protected] "let" 25 [email protected] " "
26 [email protected] " " 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected] "bar"
29 [email protected] "bar" 29 [email protected] " "
30 [email protected] " " 30 [email protected] "="
31 [email protected] "=" 31 [email protected] " "
32 [email protected] " " 32 [email protected]
33 [email protected] 33 [email protected] "1"
34 [email protected] "1" 34 [email protected] ";"
35 [email protected] ";" 35 [email protected] "\n "
36 [email protected] "\n " 36 [email protected]
37 [email protected] 37 [email protected] "let"
38 [email protected] "let" 38 [email protected] "\n "
39 [email protected] "\n " 39 [email protected]
40 [email protected] 40 [email protected] "let"
41 [email protected] "let" 41 [email protected] " "
42 [email protected] " " 42 [email protected]
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected] "baz"
45 [email protected] "baz" 45 [email protected] " "
46 [email protected] " " 46 [email protected] "="
47 [email protected] "=" 47 [email protected] " "
48 [email protected] " " 48 [email protected]
49 [email protected] 49 [email protected] "92"
50 [email protected] "92" 50 [email protected] ";"
51 [email protected] ";" 51 [email protected] "\n "
52 [email protected] "\n " 52 [email protected]
53 [email protected] 53 [email protected] "let"
54 [email protected] "let" 54 [email protected] "\n "
55 [email protected] "\n " 55 [email protected]
56 [email protected] 56 [email protected]
57 [email protected] 57 [email protected] "if"
58 [email protected] "if" 58 [email protected] " "
59 [email protected] " " 59 [email protected]
60 [email protected] 60 [email protected]
61 [email protected] 61 [email protected] "true"
62 [email protected] "true" 62 [email protected] " "
63 [email protected] " " 63 [email protected]
64 [email protected] 64 [email protected] "{"
65 [email protected] 65 [email protected] "}"
66 [email protected] "{" 66 [email protected] "\n "
67 [email protected] "}" 67 [email protected]
68 [email protected] "\n " 68 [email protected] "let"
69 [email protected] 69 [email protected] "\n "
70 [email protected] "let" 70 [email protected]
71 [email protected] "\n " 71 [email protected]
72 [email protected] 72 [email protected] "while"
73 [email protected] 73 [email protected] " "
74 [email protected] "while" 74 [email protected]
75 [email protected] " " 75 [email protected]
76 [email protected] 76 [email protected] "true"
77 [email protected] 77 [email protected] " "
78 [email protected] "true" 78 [email protected]
79 [email protected] " " 79 [email protected] "{"
80 [email protected] 80 [email protected] "}"
81 [email protected] 81 [email protected] "\n "
82 [email protected] "{" 82 [email protected]
83 [email protected] "}" 83 [email protected] "let"
84 [email protected] "\n " 84 [email protected] "\n "
85 [email protected] 85 [email protected]
86 [email protected] "let" 86 [email protected] "loop"
87 [email protected] "\n " 87 [email protected] " "
88 [email protected] 88 [email protected]
89 [email protected] "loop" 89 [email protected] "{"
90 [email protected] " " 90 [email protected] "}"
91 [email protected] 91 [email protected] "\n"
92 [email protected] 92 [email protected] "}"
93 [email protected] "{"
94 [email protected] "}"
95 [email protected] "\n"
96 [email protected] "}"
97 [email protected] "\n" 93 [email protected] "\n"
98error 24..24: expected expression 94error 24..24: expected expression
99error 24..24: expected SEMICOLON 95error 24..24: expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast b/crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast
index 1185f44f9..5f3a31473 100644
--- a/crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast
+++ b/crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast
@@ -12,9 +12,8 @@ [email protected]
12 [email protected] ")" 12 [email protected] ")"
13 [email protected] " " 13 [email protected] " "
14 [email protected] 14 [email protected]
15 [email protected] 15 [email protected] "{"
16 [email protected] "{" 16 [email protected] "}"
17 [email protected] "}"
18 [email protected] "\n" 17 [email protected] "\n"
19error 2..2: expected a name 18error 2..2: expected a name
20error 2..2: expected function arguments 19error 2..2: expected function arguments
diff --git a/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast b/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast
index c7bf4caa0..1746bd3c1 100644
--- a/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast
+++ b/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast
@@ -26,10 +26,9 @@ [email protected]
26 [email protected] ")" 26 [email protected] ")"
27 [email protected] " " 27 [email protected] " "
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected] "{"
30 [email protected] "{" 30 [email protected] "\n"
31 [email protected] "\n" 31 [email protected] "}"
32 [email protected] "}"
33 [email protected] "\n" 32 [email protected] "\n"
34error 16..16: expected COLON 33error 16..16: expected COLON
35error 16..16: expected type 34error 16..16: expected type
diff --git a/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast b/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast
index cc0d75cc8..28146f44e 100644
--- a/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast
+++ b/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast
@@ -9,37 +9,36 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] " "
14 [email protected] " " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "["
17 [email protected] "[" 17 [email protected]
18 [email protected] 18 [email protected] "1"
19 [email protected] "1" 19 [email protected] ","
20 [email protected] "," 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "2"
23 [email protected] "2" 23 [email protected] ","
24 [email protected] "," 24 [email protected] " "
25 [email protected] " " 25 [email protected]
26 [email protected] 26 [email protected] "@"
27 [email protected] "@" 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected] ","
30 [email protected] "," 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected] "struct"
33 [email protected] "struct" 33 [email protected]
34 [email protected] 34 [email protected] ","
35 [email protected] "," 35 [email protected] " "
36 [email protected] " " 36 [email protected]
37 [email protected] 37 [email protected] "let"
38 [email protected] "let" 38 [email protected]
39 [email protected] 39 [email protected] "]"
40 [email protected] "]" 40 [email protected] " "
41 [email protected] " " 41 [email protected] "}"
42 [email protected] "}"
43 [email protected] "\n" 42 [email protected] "\n"
44 [email protected] 43 [email protected]
45 [email protected] "fn" 44 [email protected] "fn"
@@ -51,44 +50,43 @@ [email protected]
51 [email protected] ")" 50 [email protected] ")"
52 [email protected] " " 51 [email protected] " "
53 [email protected] 52 [email protected]
54 [email protected] 53 [email protected] "{"
55 [email protected] "{" 54 [email protected] " "
56 [email protected] " " 55 [email protected]
57 [email protected] 56 [email protected]
58 [email protected] 57 [email protected]
59 [email protected] 58 [email protected]
60 [email protected] 59 [email protected]
61 [email protected] 60 [email protected]
62 [email protected] 61 [email protected] "foo"
63 [email protected] "foo" 62 [email protected]
64 [email protected] 63 [email protected] "("
65 [email protected] "(" 64 [email protected]
66 [email protected] 65 [email protected] "1"
67 [email protected] "1" 66 [email protected] ","
68 [email protected] "," 67 [email protected] " "
69 [email protected] " " 68 [email protected]
70 [email protected] 69 [email protected] "2"
71 [email protected] "2" 70 [email protected] ","
72 [email protected] "," 71 [email protected] " "
73 [email protected] " " 72 [email protected]
74 [email protected] 73 [email protected] "@"
75 [email protected] "@" 74 [email protected]
76 [email protected] 75 [email protected]
77 [email protected] 76 [email protected] ","
78 [email protected] "," 77 [email protected] " "
79 [email protected] " " 78 [email protected]
80 [email protected] 79 [email protected] "impl"
81 [email protected] "impl" 80 [email protected]
82 [email protected] 81 [email protected]
83 [email protected] 82 [email protected] ","
84 [email protected] "," 83 [email protected] " "
85 [email protected] " " 84 [email protected]
86 [email protected] 85 [email protected] "let"
87 [email protected] "let" 86 [email protected]
88 [email protected] 87 [email protected] ")"
89 [email protected] ")" 88 [email protected] " "
90 [email protected] " " 89 [email protected] "}"
91 [email protected] "}"
92 [email protected] "\n" 90 [email protected] "\n"
93 [email protected] 91 [email protected]
94 [email protected] "fn" 92 [email protected] "fn"
@@ -100,53 +98,52 @@ [email protected]
100 [email protected] ")" 98 [email protected] ")"
101 [email protected] " " 99 [email protected] " "
102 [email protected] 100 [email protected]
103 [email protected] 101 [email protected] "{"
104 [email protected] "{" 102 [email protected] " "
105 [email protected] " " 103 [email protected]
106 [email protected] 104 [email protected]
107 [email protected] 105 [email protected]
108 [email protected] 106 [email protected]
109 [email protected] 107 [email protected]
110 [email protected] 108 [email protected]
111 [email protected] 109 [email protected] "foo"
112 [email protected] "foo" 110 [email protected] "."
113 [email protected] "." 111 [email protected]
114 [email protected] 112 [email protected] "bar"
115 [email protected] "bar" 113 [email protected]
116 [email protected] 114 [email protected] "("
117 [email protected] "(" 115 [email protected]
118 [email protected] 116 [email protected] "1"
119 [email protected] "1" 117 [email protected] ","
120 [email protected] "," 118 [email protected] " "
121 [email protected] " " 119 [email protected]
122 [email protected] 120 [email protected] "2"
123 [email protected] "2" 121 [email protected] ","
124 [email protected] "," 122 [email protected] " "
125 [email protected] " " 123 [email protected]
126 [email protected] 124 [email protected] "@"
127 [email protected] "@" 125 [email protected]
128 [email protected] 126 [email protected]
129 [email protected] 127 [email protected] ","
130 [email protected] "," 128 [email protected] " "
131 [email protected] " " 129 [email protected]
132 [email protected] 130 [email protected]
133 [email protected] 131 [email protected] "]"
134 [email protected] "]" 132 [email protected]
135 [email protected] 133 [email protected]
136 [email protected] 134 [email protected] ","
137 [email protected] "," 135 [email protected] " "
138 [email protected] " " 136 [email protected]
139 [email protected] 137 [email protected] "trait"
140 [email protected] "trait" 138 [email protected]
141 [email protected] 139 [email protected] ","
142 [email protected] "," 140 [email protected] " "
143 [email protected] " " 141 [email protected]
144 [email protected] 142 [email protected] "let"
145 [email protected] "let" 143 [email protected]
146 [email protected] 144 [email protected] ")"
147 [email protected] ")" 145 [email protected] " "
148 [email protected] " " 146 [email protected] "}"
149 [email protected] "}"
150 [email protected] "\n" 147 [email protected] "\n"
151error 16..16: expected expression 148error 16..16: expected expression
152error 17..17: expected R_BRACK 149error 17..17: expected R_BRACK
diff --git a/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast b/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast
index c37594146..9ea9d715e 100644
--- a/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast
+++ b/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast
@@ -9,31 +9,30 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected] "foo"
19 [email protected] "foo" 19 [email protected] "!"
20 [email protected] "!" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "("
23 [email protected] "(" 23 [email protected] "\n "
24 [email protected] "\n " 24 [email protected] "bar"
25 [email protected] "bar" 25 [email protected] ","
26 [email protected] "," 26 [email protected] " "
27 [email protected] " " 27 [email protected] "\"baz\""
28 [email protected] "\"baz\"" 28 [email protected] ","
29 [email protected] "," 29 [email protected] " "
30 [email protected] " " 30 [email protected] "1"
31 [email protected] "1" 31 [email protected] ","
32 [email protected] "," 32 [email protected] " "
33 [email protected] " " 33 [email protected] "2.0"
34 [email protected] "2.0" 34 [email protected] "\n "
35 [email protected] "\n " 35 [email protected] "}"
36 [email protected] "}"
37 [email protected] " " 36 [email protected] " "
38 [email protected] "//~ ERROR incorrect c ..." 37 [email protected] "//~ ERROR incorrect c ..."
39 [email protected] "\n" 38 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast b/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast
index 4296355f2..7c957fdde 100644
--- a/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast
+++ b/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast
@@ -62,9 +62,8 @@ [email protected]
62 [email protected] ")" 62 [email protected] ")"
63 [email protected] " " 63 [email protected] " "
64 [email protected] 64 [email protected]
65 [email protected] 65 [email protected] "{"
66 [email protected] "{" 66 [email protected] "}"
67 [email protected] "}"
68 [email protected] "\n\n" 67 [email protected] "\n\n"
69 [email protected] 68 [email protected]
70 [email protected] "fn" 69 [email protected] "fn"
@@ -76,219 +75,218 @@ [email protected]
76 [email protected] ")" 75 [email protected] ")"
77 [email protected] " " 76 [email protected] " "
78 [email protected] 77 [email protected]
79 [email protected] 78 [email protected] "{"
80 [email protected] "{" 79 [email protected] "\n "
81 [email protected] "\n " 80 [email protected]
82 [email protected] 81 [email protected] "let"
83 [email protected] "let" 82 [email protected] " "
84 [email protected] " " 83 [email protected]
85 [email protected] 84 [email protected] "_"
86 [email protected] "_" 85 [email protected] ":"
87 [email protected] ":" 86 [email protected] " "
88 [email protected] " " 87 [email protected]
89 [email protected] 88 [email protected]
90 [email protected] 89 [email protected]
91 [email protected] 90 [email protected]
92 [email protected] 91 [email protected]
93 [email protected] 92 [email protected]
94 [email protected] 93 [email protected]
95 [email protected] 94 [email protected] "Box"
96 [email protected] "Box" 95 [email protected]
97 [email protected] 96 [email protected] "<"
98 [email protected] "<" 97 [email protected]
99 [email protected] 98 [email protected]
100 [email protected] 99 [email protected] "("
101 [email protected] "(" 100 [email protected]
102 [email protected] 101 [email protected]
103 [email protected] 102 [email protected]
104 [email protected] 103 [email protected]
105 [email protected] 104 [email protected] "Copy"
106 [email protected] "Copy" 105 [email protected] ")"
107 [email protected] ")" 106 [email protected] " "
108 [email protected] " " 107 [email protected] "+"
109 [email protected] "+" 108 [email protected] " "
110 [email protected] " " 109 [email protected]
111 [email protected] 110 [email protected] "("
112 [email protected] "(" 111 [email protected] "?"
113 [email protected] "?" 112 [email protected]
114 [email protected] 113 [email protected]
115 [email protected] 114 [email protected]
116 [email protected] 115 [email protected]
117 [email protected] 116 [email protected] "Sized"
118 [email protected] "Sized" 117 [email protected] ")"
119 [email protected] ")" 118 [email protected] " "
120 [email protected] " " 119 [email protected] "+"
121 [email protected] "+" 120 [email protected] " "
122 [email protected] " " 121 [email protected]
123 [email protected] 122 [email protected] "("
124 [email protected] "(" 123 [email protected]
125 [email protected] 124 [email protected] "for"
126 [email protected] "for" 125 [email protected]
127 [email protected] 126 [email protected] "<"
128 [email protected] "<" 127 [email protected]
129 [email protected] 128 [email protected] "\'a"
130 [email protected] "\'a" 129 [email protected] ">"
131 [email protected] ">" 130 [email protected] " "
132 [email protected] " " 131 [email protected]
133 [email protected] 132 [email protected]
134 [email protected] 133 [email protected]
135 [email protected] 134 [email protected]
136 [email protected] 135 [email protected] "Trait"
137 [email protected] "Trait" 136 [email protected]
138 [email protected] 137 [email protected] "<"
139 [email protected] "<" 138 [email protected]
140 [email protected] 139 [email protected] "\'a"
141 [email protected] "\'a" 140 [email protected] ">"
142 [email protected] ">" 141 [email protected] ")"
143 [email protected] ")" 142 [email protected]
144 [email protected] 143 [email protected]
145 [email protected] 144 [email protected] ">"
146 [email protected] ">" 145 [email protected] ";"
147 [email protected] ";" 146 [email protected] "\n "
148 [email protected] "\n " 147 [email protected]
149 [email protected] 148 [email protected] "let"
150 [email protected] "let" 149 [email protected] " "
151 [email protected] " " 150 [email protected]
152 [email protected] 151 [email protected] "_"
153 [email protected] "_" 152 [email protected] ":"
154 [email protected] ":" 153 [email protected] " "
155 [email protected] " " 154 [email protected]
156 [email protected] 155 [email protected]
157 [email protected] 156 [email protected]
158 [email protected] 157 [email protected]
159 [email protected] 158 [email protected] "Box"
160 [email protected] "Box" 159 [email protected]
161 [email protected] 160 [email protected] "<"
162 [email protected] "<" 161 [email protected]
163 [email protected] 162 [email protected]
164 [email protected] 163 [email protected] "("
165 [email protected] "(" 164 [email protected]
166 [email protected] 165 [email protected] "?"
167 [email protected] "?" 166 [email protected]
168 [email protected] 167 [email protected]
169 [email protected] 168 [email protected]
170 [email protected] 169 [email protected]
171 [email protected] 170 [email protected]
172 [email protected] 171 [email protected] "Sized"
173 [email protected] "Sized" 172 [email protected]
174 [email protected] 173 [email protected]
175 [email protected] 174 [email protected] ")"
176 [email protected] ")" 175 [email protected] " "
177 [email protected] " " 176 [email protected]
178 [email protected] 177 [email protected]
179 [email protected] 178 [email protected] "+"
180 [email protected] "+" 179 [email protected] " "
181 [email protected] " " 180 [email protected]
182 [email protected] 181 [email protected]
183 [email protected] 182 [email protected] "("
184 [email protected] "(" 183 [email protected]
185 [email protected] 184 [email protected]
186 [email protected] 185 [email protected]
187 [email protected] 186 [email protected]
188 [email protected] 187 [email protected]
189 [email protected] 188 [email protected]
190 [email protected] 189 [email protected] "for"
191 [email protected] "for" 190 [email protected]
192 [email protected] 191 [email protected] "<"
193 [email protected] "<" 192 [email protected]
194 [email protected] 193 [email protected] "\'a"
195 [email protected] "\'a" 194 [email protected] ">"
196 [email protected] ">" 195 [email protected] " "
197 [email protected] " " 196 [email protected]
198 [email protected] 197 [email protected]
199 [email protected] 198 [email protected]
200 [email protected] 199 [email protected]
201 [email protected] 200 [email protected] "Trait"
202 [email protected] "Trait" 201 [email protected] "<"
203 [email protected] "<" 202 [email protected]
204 [email protected] 203 [email protected] "\'a"
205 [email protected] "\'a" 204 [email protected] ">"
206 [email protected] ">" 205 [email protected]
207 [email protected] 206 [email protected] ")"
208 [email protected] ")" 207 [email protected] " "
209 [email protected] " " 208 [email protected] "+"
210 [email protected] "+" 209 [email protected] " "
211 [email protected] " " 210 [email protected]
212 [email protected] 211 [email protected] "("
213 [email protected] "(" 212 [email protected]
214 [email protected] 213 [email protected]
215 [email protected] 214 [email protected]
216 [email protected] 215 [email protected]
217 [email protected] 216 [email protected] "Copy"
218 [email protected] "Copy" 217 [email protected] ")"
219 [email protected] ")" 218 [email protected] ">"
220 [email protected] ">" 219 [email protected]
221 [email protected] 220 [email protected] ";"
222 [email protected] ";" 221 [email protected] "\n "
223 [email protected] "\n " 222 [email protected]
224 [email protected] 223 [email protected] "let"
225 [email protected] "let" 224 [email protected] " "
226 [email protected] " " 225 [email protected]
227 [email protected] 226 [email protected] "_"
228 [email protected] "_" 227 [email protected] ":"
229 [email protected] ":" 228 [email protected] " "
230 [email protected] " " 229 [email protected]
231 [email protected] 230 [email protected]
232 [email protected] 231 [email protected]
233 [email protected] 232 [email protected]
234 [email protected] 233 [email protected]
235 [email protected] 234 [email protected]
236 [email protected] 235 [email protected]
237 [email protected] 236 [email protected] "Box"
238 [email protected] "Box" 237 [email protected]
239 [email protected] 238 [email protected] "<"
240 [email protected] "<" 239 [email protected]
241 [email protected] 240 [email protected]
242 [email protected] 241 [email protected] "("
243 [email protected] "(" 242 [email protected]
244 [email protected] 243 [email protected] "for"
245 [email protected] "for" 244 [email protected]
246 [email protected] 245 [email protected] "<"
247 [email protected] "<" 246 [email protected]
248 [email protected] 247 [email protected] "\'a"
249 [email protected] "\'a" 248 [email protected] ">"
250 [email protected] ">" 249 [email protected] " "
251 [email protected] " " 250 [email protected]
252 [email protected] 251 [email protected]
253 [email protected] 252 [email protected]
254 [email protected] 253 [email protected]
255 [email protected] 254 [email protected] "Trait"
256 [email protected] "Trait" 255 [email protected]
257 [email protected] 256 [email protected] "<"
258 [email protected] "<" 257 [email protected]
259 [email protected] 258 [email protected] "\'a"
260 [email protected] "\'a" 259 [email protected] ">"
261 [email protected] ">" 260 [email protected] ")"
262 [email protected] ")" 261 [email protected] " "
263 [email protected] " " 262 [email protected] "+"
264 [email protected] "+" 263 [email protected] " "
265 [email protected] " " 264 [email protected]
266 [email protected] 265 [email protected] "("
267 [email protected] "(" 266 [email protected]
268 [email protected] 267 [email protected]
269 [email protected] 268 [email protected]
270 [email protected] 269 [email protected]
271 [email protected] 270 [email protected] "Copy"
272 [email protected] "Copy" 271 [email protected] ")"
273 [email protected] ")" 272 [email protected] " "
274 [email protected] " " 273 [email protected] "+"
275 [email protected] "+" 274 [email protected] " "
276 [email protected] " " 275 [email protected]
277 [email protected] 276 [email protected] "("
278 [email protected] "(" 277 [email protected] "?"
279 [email protected] "?" 278 [email protected]
280 [email protected] 279 [email protected]
281 [email protected] 280 [email protected]
282 [email protected] 281 [email protected]
283 [email protected] 282 [email protected] "Sized"
284 [email protected] "Sized" 283 [email protected] ")"
285 [email protected] ")" 284 [email protected]
286 [email protected] 285 [email protected]
287 [email protected] 286 [email protected] ">"
288 [email protected] ">" 287 [email protected] ";"
289 [email protected] ";" 288 [email protected] "\n"
290 [email protected] "\n" 289 [email protected] "}"
291 [email protected] "}"
292 [email protected] "\n" 290 [email protected] "\n"
293error 88..88: expected COMMA 291error 88..88: expected COMMA
294error 88..88: expected R_ANGLE 292error 88..88: expected R_ANGLE
diff --git a/crates/ra_syntax/test_data/parser/err/0025_nope.rast b/crates/ra_syntax/test_data/parser/err/0025_nope.rast
index 195c08bd9..88b086daf 100644
--- a/crates/ra_syntax/test_data/parser/err/0025_nope.rast
+++ b/crates/ra_syntax/test_data/parser/err/0025_nope.rast
@@ -9,187 +9,185 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "enum"
16 [email protected] "enum" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "Test"
19 [email protected] "Test" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected] "{"
22 [email protected] "{" 22 [email protected] "\n "
23 [email protected] "\n " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "Var1"
26 [email protected] "Var1" 26 [email protected] ","
27 [email protected] "," 27 [email protected] "\n "
28 [email protected] "\n " 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected] "Var2"
31 [email protected] "Var2" 31 [email protected]
32 [email protected] 32 [email protected] "("
33 [email protected] "(" 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected] "String"
39 [email protected] "String" 39 [email protected] ")"
40 [email protected] ")" 40 [email protected] ","
41 [email protected] "," 41 [email protected] "\n "
42 [email protected] "\n " 42 [email protected]
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected] "Var3"
45 [email protected] "Var3" 45 [email protected] " "
46 [email protected] " " 46 [email protected]
47 [email protected] 47 [email protected] "{"
48 [email protected] "{" 48 [email protected] "\n "
49 [email protected] "\n " 49 [email protected]
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected] "abc"
52 [email protected] "abc" 52 [email protected] ":"
53 [email protected] ":" 53 [email protected] " "
54 [email protected] " " 54 [email protected]
55 [email protected] 55 [email protected] "{"
56 [email protected] "{" 56 [email protected] "}"
57 [email protected] "}" 57 [email protected]
58 [email protected] 58 [email protected] ","
59 [email protected] "," 59 [email protected] " "
60 [email protected] " " 60 [email protected] "//~ ERROR: expected t ..."
61 [email protected] "//~ ERROR: expected t ..." 61 [email protected] "\n "
62 [email protected] "\n " 62 [email protected] "}"
63 [email protected] "}" 63 [email protected] ","
64 [email protected] "," 64 [email protected] "\n "
65 [email protected] "\n " 65 [email protected] "}"
66 [email protected] "}" 66 [email protected] "\n\n "
67 [email protected] "\n\n " 67 [email protected] "// recover..."
68 [email protected] "// recover..." 68 [email protected] "\n "
69 [email protected] "\n " 69 [email protected]
70 [email protected] 70 [email protected] "let"
71 [email protected] "let" 71 [email protected] " "
72 [email protected] " " 72 [email protected]
73 [email protected] 73 [email protected]
74 [email protected] 74 [email protected] "a"
75 [email protected] "a" 75 [email protected] " "
76 [email protected] " " 76 [email protected] "="
77 [email protected] "=" 77 [email protected] " "
78 [email protected] " " 78 [email protected]
79 [email protected] 79 [email protected] "1"
80 [email protected] "1" 80 [email protected] ";"
81 [email protected] ";" 81 [email protected] "\n "
82 [email protected] "\n " 82 [email protected]
83 [email protected] 83 [email protected] "enum"
84 [email protected] "enum" 84 [email protected] " "
85 [email protected] " " 85 [email protected]
86 [email protected] 86 [email protected] "Test2"
87 [email protected] "Test2" 87 [email protected] " "
88 [email protected] " " 88 [email protected]
89 [email protected] 89 [email protected] "{"
90 [email protected] "{" 90 [email protected] "\n "
91 [email protected] "\n " 91 [email protected]
92 [email protected] 92 [email protected]
93 [email protected] 93 [email protected] "Fine"
94 [email protected] "Fine" 94 [email protected] ","
95 [email protected] "," 95 [email protected] "\n "
96 [email protected] "\n " 96 [email protected] "}"
97 [email protected] "}" 97 [email protected] "\n\n "
98 [email protected] "\n\n " 98 [email protected]
99 [email protected] 99 [email protected] "enum"
100 [email protected] "enum" 100 [email protected] " "
101 [email protected] " " 101 [email protected]
102 [email protected] 102 [email protected] "Test3"
103 [email protected] "Test3" 103 [email protected] " "
104 [email protected] " " 104 [email protected]
105 [email protected] 105 [email protected] "{"
106 [email protected] "{" 106 [email protected] "\n "
107 [email protected] "\n " 107 [email protected]
108 [email protected] 108 [email protected]
109 [email protected] 109 [email protected] "StillFine"
110 [email protected] "StillFine" 110 [email protected] " "
111 [email protected] " " 111 [email protected]
112 [email protected] 112 [email protected] "{"
113 [email protected] "{" 113 [email protected] "\n "
114 [email protected] "\n " 114 [email protected]
115 [email protected] 115 [email protected]
116 [email protected] 116 [email protected] "def"
117 [email protected] "def" 117 [email protected] ":"
118 [email protected] ":" 118 [email protected] " "
119 [email protected] " " 119 [email protected]
120 [email protected] 120 [email protected]
121 [email protected] 121 [email protected]
122 [email protected] 122 [email protected]
123 [email protected] 123 [email protected] "i32"
124 [email protected] "i32" 124 [email protected] ","
125 [email protected] "," 125 [email protected] "\n "
126 [email protected] "\n " 126 [email protected] "}"
127 [email protected] "}" 127 [email protected] ","
128 [email protected] "," 128 [email protected] "\n "
129 [email protected] "\n " 129 [email protected] "}"
130 [email protected] "}" 130 [email protected] "\n\n "
131 [email protected] "\n\n " 131 [email protected]
132 [email protected] 132 [email protected]
133 [email protected] 133 [email protected] "{"
134 [email protected] 134 [email protected] "\n "
135 [email protected] "{" 135 [email protected]
136 [email protected] "\n " 136 [email protected] "// fail again"
137 [email protected] 137 [email protected] "\n "
138 [email protected] "// fail again" 138 [email protected] "enum"
139 [email protected] "\n " 139 [email protected] " "
140 [email protected] "enum" 140 [email protected]
141 [email protected] " " 141 [email protected] "Test4"
142 [email protected] 142 [email protected] " "
143 [email protected] "Test4" 143 [email protected]
144 [email protected] " " 144 [email protected] "{"
145 [email protected] 145 [email protected] "\n "
146 [email protected] "{" 146 [email protected]
147 [email protected] "\n " 147 [email protected]
148 [email protected] 148 [email protected] "Nope"
149 [email protected] 149 [email protected]
150 [email protected] "Nope" 150 [email protected] "("
151 [email protected] 151 [email protected]
152 [email protected] "(" 152 [email protected]
153 [email protected] 153 [email protected]
154 [email protected] 154 [email protected]
155 [email protected] 155 [email protected]
156 [email protected] 156 [email protected] "i32"
157 [email protected] 157 [email protected] " "
158 [email protected] "i32" 158 [email protected]
159 [email protected] " " 159 [email protected]
160 [email protected] 160 [email protected] "{"
161 [email protected] 161 [email protected] "}"
162 [email protected] "{" 162 [email protected]
163 [email protected] "}" 163 [email protected] ")"
164 [email protected] 164 [email protected] " "
165 [email protected] ")" 165 [email protected] "//~ ERROR: found `{`"
166 [email protected] " " 166 [email protected] "\n ..."
167 [email protected] "//~ ERROR: found `{`" 167 [email protected] "//~^ ERROR: found `{`"
168 [email protected] "\n ..." 168 [email protected] "\n "
169 [email protected] "//~^ ERROR: found `{`" 169 [email protected] "}"
170 [email protected] "\n " 170 [email protected] "\n "
171 [email protected] "}" 171 [email protected] "}"
172 [email protected] "\n " 172 [email protected] "\n "
173 [email protected] "}" 173 [email protected] "// still recover later"
174 [email protected] "\n " 174 [email protected] "\n "
175 [email protected] "// still recover later" 175 [email protected]
176 [email protected] "\n " 176 [email protected] "let"
177 [email protected] 177 [email protected] " "
178 [email protected] "let" 178 [email protected]
179 [email protected] " " 179 [email protected]
180 [email protected] 180 [email protected] "bad_syntax"
181 [email protected] 181 [email protected] " "
182 [email protected] "bad_syntax" 182 [email protected] "="
183 [email protected] " " 183 [email protected] " "
184 [email protected] "=" 184 [email protected]
185 [email protected] " " 185 [email protected] "_"
186 [email protected] 186 [email protected] ";"
187 [email protected] "_" 187 [email protected] " "
188 [email protected] ";" 188 [email protected] "//~ ERROR: expected e ..."
189 [email protected] " " 189 [email protected] "\n"
190 [email protected] "//~ ERROR: expected e ..." 190 [email protected] "}"
191 [email protected] "\n"
192 [email protected] "}"
193 [email protected] "\n" 191 [email protected] "\n"
194error 95..95: expected type 192error 95..95: expected type
195error 95..95: expected COMMA 193error 95..95: expected COMMA
diff --git a/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast b/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast
index f2fada510..568a4cc02 100644
--- a/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast
+++ b/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast
@@ -21,9 +21,8 @@ [email protected]
21 [email protected] ">" 21 [email protected] ">"
22 [email protected] "\n" 22 [email protected] "\n"
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected] "{"
25 [email protected] "{" 25 [email protected] "}"
26 [email protected] "}"
27 [email protected] "\n" 26 [email protected] "\n"
28error 26..26: expected a path 27error 26..26: expected a path
29error 26..26: expected colon 28error 26..26: expected colon
diff --git a/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast b/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast
index 56682f966..0da8f59f0 100644
--- a/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast
+++ b/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast
@@ -20,17 +20,16 @@ [email protected]
20 [email protected] ")" 20 [email protected] ")"
21 [email protected] " " 21 [email protected] " "
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected] "{"
24 [email protected] "{" 24 [email protected] "\n "
25 [email protected] "\n " 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected] "a"
31 [email protected] "a" 31 [email protected] "."
32 [email protected] "." 32 [email protected] "\n"
33 [email protected] "\n" 33 [email protected] "}"
34 [email protected] "}"
35 [email protected] "\n" 34 [email protected] "\n"
36error 21..21: expected field name or number 35error 21..21: expected field name or number
diff --git a/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast b/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast
index aac476430..515819e42 100644
--- a/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast
@@ -9,115 +9,111 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "inner"
20 [email protected] "inner" 20 [email protected] " "
21 [email protected] " " 21 [email protected] "="
22 [email protected] "=" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected] "{"
25 [email protected] 25 [email protected] "\n "
26 [email protected] "{" 26 [email protected]
27 [email protected] "\n " 27 [email protected] "#"
28 [email protected] 28 [email protected] "!"
29 [email protected] "#" 29 [email protected] "["
30 [email protected] "!" 30 [email protected]
31 [email protected] "[" 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected] "doc"
34 [email protected] 34 [email protected]
35 [email protected] "doc" 35 [email protected] "("
36 [email protected] 36 [email protected] "\"Inner attributes not ..."
37 [email protected] "(" 37 [email protected] ")"
38 [email protected] "\"Inner attributes not ..." 38 [email protected] "]"
39 [email protected] ")" 39 [email protected] "\n "
40 [email protected] "]" 40 [email protected] "//! Nor are ModuleDoc ..."
41 [email protected] "\n " 41 [email protected] "\n "
42 [email protected] "//! Nor are ModuleDoc ..." 42 [email protected] "}"
43 [email protected] "\n " 43 [email protected] ";"
44 [email protected] "}" 44 [email protected] "\n "
45 [email protected] ";" 45 [email protected]
46 [email protected] "\n " 46 [email protected]
47 [email protected] 47 [email protected] "if"
48 [email protected] 48 [email protected] " "
49 [email protected] "if" 49 [email protected]
50 [email protected] " " 50 [email protected]
51 [email protected] 51 [email protected] "true"
52 [email protected] 52 [email protected] " "
53 [email protected] "true" 53 [email protected]
54 [email protected] " " 54 [email protected] "{"
55 [email protected] 55 [email protected] "\n "
56 [email protected] 56 [email protected]
57 [email protected] "{" 57 [email protected] "#"
58 [email protected] "\n " 58 [email protected] "!"
59 [email protected] 59 [email protected] "["
60 [email protected] "#" 60 [email protected]
61 [email protected] "!" 61 [email protected]
62 [email protected] "[" 62 [email protected]
63 [email protected] 63 [email protected] "doc"
64 [email protected] 64 [email protected]
65 [email protected] 65 [email protected] "("
66 [email protected] "doc" 66 [email protected] "\"Nor here\""
67 [email protected] 67 [email protected] ")"
68 [email protected] "(" 68 [email protected] "]"
69 [email protected] "\"Nor here\"" 69 [email protected] "\n "
70 [email protected] ")" 70 [email protected]
71 [email protected] "]" 71 [email protected] "#"
72 [email protected] "\n " 72 [email protected] "!"
73 [email protected] 73 [email protected] "["
74 [email protected] "#" 74 [email protected]
75 [email protected] "!" 75 [email protected]
76 [email protected] "[" 76 [email protected]
77 [email protected] 77 [email protected] "doc"
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected] "("
80 [email protected] "doc" 80 [email protected] "\"We error on each attr\""
81 [email protected] 81 [email protected] ")"
82 [email protected] "(" 82 [email protected] "]"
83 [email protected] "\"We error on each attr\"" 83 [email protected] "\n "
84 [email protected] ")" 84 [email protected] "//! Nor are ModuleDoc ..."
85 [email protected] "]" 85 [email protected] "\n "
86 [email protected] "\n " 86 [email protected] "}"
87 [email protected] "//! Nor are ModuleDoc ..." 87 [email protected] "\n "
88 [email protected] "\n " 88 [email protected]
89 [email protected] "}" 89 [email protected] "while"
90 [email protected] "\n " 90 [email protected] " "
91 [email protected] 91 [email protected]
92 [email protected] "while" 92 [email protected]
93 [email protected] " " 93 [email protected] "true"
94 [email protected] 94 [email protected] " "
95 [email protected] 95 [email protected]
96 [email protected] "true" 96 [email protected] "{"
97 [email protected] " " 97 [email protected] "\n "
98 [email protected] 98 [email protected]
99 [email protected] 99 [email protected] "#"
100 [email protected] "{" 100 [email protected] "!"
101 [email protected] "\n " 101 [email protected] "["
102 [email protected] 102 [email protected]
103 [email protected] "#" 103 [email protected]
104 [email protected] "!" 104 [email protected]
105 [email protected] "[" 105 [email protected] "doc"
106 [email protected] 106 [email protected]
107 [email protected] 107 [email protected] "("
108 [email protected] 108 [email protected] "\"Nor here\""
109 [email protected] "doc" 109 [email protected] ")"
110 [email protected] 110 [email protected] "]"
111 [email protected] "(" 111 [email protected] "\n "
112 [email protected] "\"Nor here\"" 112 [email protected] "//! Nor are ModuleDoc ..."
113 [email protected] ")" 113 [email protected] "\n "
114 [email protected] "]" 114 [email protected] "}"
115 [email protected] "\n " 115 [email protected] "\n"
116 [email protected] "//! Nor are ModuleDoc ..." 116 [email protected] "}"
117 [email protected] "\n "
118 [email protected] "}"
119 [email protected] "\n"
120 [email protected] "}"
121 [email protected] "\n" 117 [email protected] "\n"
122error 39..83: A block in this position cannot accept inner attributes 118error 39..83: A block in this position cannot accept inner attributes
123error 152..171: A block in this position cannot accept inner attributes 119error 152..171: A block in this position cannot accept inner attributes
diff --git a/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast b/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast
index f98de7f15..c6859eca8 100644
--- a/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast
@@ -9,187 +9,186 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "match"
17 [email protected] "match" 17 [email protected] " "
18 [email protected] " " 18 [email protected]
19 [email protected] 19 [email protected] "("
20 [email protected] "(" 20 [email protected] ")"
21 [email protected] ")" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "{"
24 [email protected] "{" 24 [email protected] "\n "
25 [email protected] "\n " 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected] "_"
28 [email protected] "_" 28 [email protected] " "
29 [email protected] " " 29 [email protected] "=>"
30 [email protected] "=>" 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected] "("
33 [email protected] "(" 33 [email protected] ")"
34 [email protected] ")" 34 [email protected] ","
35 [email protected] "," 35 [email protected] "\n "
36 [email protected] "\n " 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected] "#"
39 [email protected] "#" 39 [email protected]
40 [email protected] 40 [email protected] "!"
41 [email protected] "!" 41 [email protected]
42 [email protected] 42 [email protected] "["
43 [email protected] "[" 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected] "doc"
49 [email protected] "doc" 49 [email protected]
50 [email protected] 50 [email protected] "("
51 [email protected] "(" 51 [email protected]
52 [email protected] 52 [email protected] "\"Not allowed here\""
53 [email protected] "\"Not allowed here\"" 53 [email protected] ")"
54 [email protected] ")" 54 [email protected] "]"
55 [email protected] "]" 55 [email protected] "\n "
56 [email protected] "\n " 56 [email protected]
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected] "_"
59 [email protected] "_" 59 [email protected] " "
60 [email protected] " " 60 [email protected] "=>"
61 [email protected] "=>" 61 [email protected] " "
62 [email protected] " " 62 [email protected]
63 [email protected] 63 [email protected] "("
64 [email protected] "(" 64 [email protected] ")"
65 [email protected] ")" 65 [email protected] ","
66 [email protected] "," 66 [email protected] "\n "
67 [email protected] "\n " 67 [email protected] "}"
68 [email protected] "}" 68 [email protected] "\n\n "
69 [email protected] "\n\n " 69 [email protected]
70 [email protected] 70 [email protected]
71 [email protected] 71 [email protected] "match"
72 [email protected] "match" 72 [email protected] " "
73 [email protected] " " 73 [email protected]
74 [email protected] 74 [email protected] "("
75 [email protected] "(" 75 [email protected] ")"
76 [email protected] ")" 76 [email protected] " "
77 [email protected] " " 77 [email protected]
78 [email protected] 78 [email protected] "{"
79 [email protected] "{" 79 [email protected] "\n "
80 [email protected] "\n " 80 [email protected]
81 [email protected] 81 [email protected]
82 [email protected] 82 [email protected] "_"
83 [email protected] "_" 83 [email protected] " "
84 [email protected] " " 84 [email protected] "=>"
85 [email protected] "=>" 85 [email protected] " "
86 [email protected] " " 86 [email protected]
87 [email protected] 87 [email protected] "("
88 [email protected] "(" 88 [email protected] ")"
89 [email protected] ")" 89 [email protected] ","
90 [email protected] "," 90 [email protected] "\n "
91 [email protected] "\n " 91 [email protected]
92 [email protected] 92 [email protected]
93 [email protected] 93 [email protected] "_"
94 [email protected] "_" 94 [email protected] " "
95 [email protected] " " 95 [email protected] "=>"
96 [email protected] "=>" 96 [email protected] " "
97 [email protected] " " 97 [email protected]
98 [email protected] 98 [email protected] "("
99 [email protected] "(" 99 [email protected] ")"
100 [email protected] ")" 100 [email protected] ","
101 [email protected] "," 101 [email protected] "\n "
102 [email protected] "\n " 102 [email protected]
103 [email protected] 103 [email protected]
104 [email protected] 104 [email protected] "#"
105 [email protected] "#" 105 [email protected]
106 [email protected] 106 [email protected] "!"
107 [email protected] "!" 107 [email protected]
108 [email protected] 108 [email protected] "["
109 [email protected] "[" 109 [email protected]
110 [email protected] 110 [email protected]
111 [email protected] 111 [email protected]
112 [email protected] 112 [email protected]
113 [email protected] 113 [email protected]
114 [email protected] 114 [email protected] "doc"
115 [email protected] "doc" 115 [email protected]
116 [email protected] 116 [email protected] "("
117 [email protected] "(" 117 [email protected]
118 [email protected] 118 [email protected] "\"Nor here\""
119 [email protected] "\"Nor here\"" 119 [email protected] ")"
120 [email protected] ")" 120 [email protected] "]"
121 [email protected] "]" 121 [email protected] "\n "
122 [email protected] "\n " 122 [email protected] "}"
123 [email protected] "}" 123 [email protected] "\n\n "
124 [email protected] "\n\n " 124 [email protected]
125 [email protected] 125 [email protected] "match"
126 [email protected] "match" 126 [email protected] " "
127 [email protected] " " 127 [email protected]
128 [email protected] 128 [email protected] "("
129 [email protected] "(" 129 [email protected] ")"
130 [email protected] ")" 130 [email protected] " "
131 [email protected] " " 131 [email protected]
132 [email protected] 132 [email protected] "{"
133 [email protected] "{" 133 [email protected] "\n "
134 [email protected] "\n " 134 [email protected]
135 [email protected] 135 [email protected]
136 [email protected] 136 [email protected] "#"
137 [email protected] "#" 137 [email protected] "["
138 [email protected] "[" 138 [email protected]
139 [email protected] 139 [email protected]
140 [email protected] 140 [email protected]
141 [email protected] 141 [email protected] "cfg"
142 [email protected] "cfg" 142 [email protected]
143 [email protected] 143 [email protected] "("
144 [email protected] "(" 144 [email protected] "test"
145 [email protected] "test" 145 [email protected] ")"
146 [email protected] ")" 146 [email protected] "]"
147 [email protected] "]" 147 [email protected] "\n "
148 [email protected] "\n " 148 [email protected]
149 [email protected] 149 [email protected] "#"
150 [email protected] "#" 150 [email protected]
151 [email protected] 151 [email protected] "!"
152 [email protected] "!" 152 [email protected]
153 [email protected] 153 [email protected] "["
154 [email protected] "[" 154 [email protected]
155 [email protected] 155 [email protected]
156 [email protected] 156 [email protected]
157 [email protected] 157 [email protected]
158 [email protected] 158 [email protected]
159 [email protected] 159 [email protected] "doc"
160 [email protected] "doc" 160 [email protected]
161 [email protected] 161 [email protected] "("
162 [email protected] "(" 162 [email protected]
163 [email protected] 163 [email protected] "\"Nor here\""
164 [email protected] "\"Nor here\"" 164 [email protected] ")"
165 [email protected] ")" 165 [email protected] "]"
166 [email protected] "]" 166 [email protected] "\n "
167 [email protected] "\n " 167 [email protected]
168 [email protected] 168 [email protected]
169 [email protected] 169 [email protected] "_"
170 [email protected] "_" 170 [email protected] " "
171 [email protected] " " 171 [email protected] "=>"
172 [email protected] "=>" 172 [email protected] " "
173 [email protected] " " 173 [email protected]
174 [email protected] 174 [email protected] "("
175 [email protected] "(" 175 [email protected] ")"
176 [email protected] ")" 176 [email protected] ","
177 [email protected] "," 177 [email protected] "\n "
178 [email protected] "\n " 178 [email protected]
179 [email protected] 179 [email protected]
180 [email protected] 180 [email protected] "_"
181 [email protected] "_" 181 [email protected] " "
182 [email protected] " " 182 [email protected] "=>"
183 [email protected] "=>" 183 [email protected] " "
184 [email protected] " " 184 [email protected]
185 [email protected] 185 [email protected] "("
186 [email protected] "(" 186 [email protected] ")"
187 [email protected] ")" 187 [email protected] ","
188 [email protected] "," 188 [email protected] "\n "
189 [email protected] "\n " 189 [email protected] "}"
190 [email protected] "}" 190 [email protected] "\n"
191 [email protected] "\n" 191 [email protected] "}"
192 [email protected] "}"
193 [email protected] "\n" 192 [email protected] "\n"
194error 52..52: expected `[` 193error 52..52: expected `[`
195error 52..52: expected pattern 194error 52..52: expected pattern
diff --git a/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast b/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast
index d0017c883..53e445459 100644
--- a/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast
@@ -9,58 +9,57 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "match"
16 [email protected] "match" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "("
19 [email protected] "(" 19 [email protected] ")"
20 [email protected] ")" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "{"
23 [email protected] "{" 23 [email protected] "\n "
24 [email protected] "\n " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "_"
27 [email protected] "_" 27 [email protected] " "
28 [email protected] " " 28 [email protected] "=>"
29 [email protected] "=>" 29 [email protected] " "
30 [email protected] " " 30 [email protected]
31 [email protected] 31 [email protected] "("
32 [email protected] "(" 32 [email protected] ")"
33 [email protected] ")" 33 [email protected] ","
34 [email protected] "," 34 [email protected] "\n "
35 [email protected] "\n " 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected] "_"
38 [email protected] "_" 38 [email protected] " "
39 [email protected] " " 39 [email protected] "=>"
40 [email protected] "=>" 40 [email protected] " "
41 [email protected] " " 41 [email protected]
42 [email protected] 42 [email protected] "("
43 [email protected] "(" 43 [email protected] ")"
44 [email protected] ")" 44 [email protected] ","
45 [email protected] "," 45 [email protected] "\n "
46 [email protected] "\n " 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected] "#"
49 [email protected] "#" 49 [email protected] "["
50 [email protected] "[" 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected]
53 [email protected] 53 [email protected] "cfg"
54 [email protected] "cfg" 54 [email protected]
55 [email protected] 55 [email protected] "("
56 [email protected] "(" 56 [email protected] "test"
57 [email protected] "test" 57 [email protected] ")"
58 [email protected] ")" 58 [email protected] "]"
59 [email protected] "]" 59 [email protected] "\n "
60 [email protected] "\n " 60 [email protected] "}"
61 [email protected] "}" 61 [email protected] "\n"
62 [email protected] "\n" 62 [email protected] "}"
63 [email protected] "}"
64 [email protected] "\n" 63 [email protected] "\n"
65error 80..80: expected pattern 64error 80..80: expected pattern
66error 80..80: expected FAT_ARROW 65error 80..80: expected FAT_ARROW
diff --git a/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast b/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast
index 2c0bddec8..1b2ac5011 100644
--- a/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast
+++ b/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast
@@ -9,84 +9,83 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "ref"
19 [email protected] "ref" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected] "box"
22 [email protected] "box" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected] "i"
30 [email protected] "i" 30 [email protected] " "
31 [email protected] " " 31 [email protected] "="
32 [email protected] "=" 32 [email protected] " "
33 [email protected] " " 33 [email protected]
34 [email protected] 34 [email protected] "("
35 [email protected] "(" 35 [email protected] ")"
36 [email protected] ")" 36 [email protected] ";"
37 [email protected] ";" 37 [email protected] "\n "
38 [email protected] "\n " 38 [email protected]
39 [email protected] 39 [email protected] "let"
40 [email protected] "let" 40 [email protected] " "
41 [email protected] " " 41 [email protected]
42 [email protected] 42 [email protected] "mut"
43 [email protected] "mut" 43 [email protected] " "
44 [email protected] " " 44 [email protected]
45 [email protected] 45 [email protected] "box"
46 [email protected] "box" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected]
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected]
53 [email protected] 53 [email protected] "i"
54 [email protected] "i" 54 [email protected] " "
55 [email protected] " " 55 [email protected] "="
56 [email protected] "=" 56 [email protected] " "
57 [email protected] " " 57 [email protected]
58 [email protected] 58 [email protected] "("
59 [email protected] "(" 59 [email protected] ")"
60 [email protected] ")" 60 [email protected] ";"
61 [email protected] ";" 61 [email protected] "\n "
62 [email protected] "\n " 62 [email protected]
63 [email protected] 63 [email protected] "let"
64 [email protected] "let" 64 [email protected] " "
65 [email protected] " " 65 [email protected]
66 [email protected] 66 [email protected] "ref"
67 [email protected] "ref" 67 [email protected] " "
68 [email protected] " " 68 [email protected] "mut"
69 [email protected] "mut" 69 [email protected] " "
70 [email protected] " " 70 [email protected]
71 [email protected] 71 [email protected] "box"
72 [email protected] "box" 72 [email protected] " "
73 [email protected] " " 73 [email protected]
74 [email protected] 74 [email protected]
75 [email protected] 75 [email protected]
76 [email protected] 76 [email protected]
77 [email protected] 77 [email protected]
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected] "i"
80 [email protected] "i" 80 [email protected] " "
81 [email protected] " " 81 [email protected] "="
82 [email protected] "=" 82 [email protected] " "
83 [email protected] " " 83 [email protected]
84 [email protected] 84 [email protected] "("
85 [email protected] "(" 85 [email protected] ")"
86 [email protected] ")" 86 [email protected] ";"
87 [email protected] ";" 87 [email protected] "\n"
88 [email protected] "\n" 88 [email protected] "}"
89 [email protected] "}"
90 [email protected] "\n\n" 89 [email protected] "\n\n"
91error 24..24: expected a name 90error 24..24: expected a name
92error 27..27: expected SEMICOLON 91error 27..27: expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast b/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast
index 83851f5d2..9588cf3b3 100644
--- a/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast
+++ b/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast
@@ -44,9 +44,8 @@ [email protected]
44 [email protected] ")" 44 [email protected] ")"
45 [email protected] " " 45 [email protected] " "
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected] "{"
48 [email protected] "{" 48 [email protected] "}"
49 [email protected] "}"
50 [email protected] "\n" 49 [email protected] "\n"
51error 17..17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier 50error 17..17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
52error 17..17: expected SEMICOLON 51error 17..17: expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast b/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast
index a328222aa..e3cda7c43 100644
--- a/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast
+++ b/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast
@@ -27,9 +27,8 @@ [email protected]
27 [email protected] ")" 27 [email protected] ")"
28 [email protected] " " 28 [email protected] " "
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected] "{"
31 [email protected] "{" 31 [email protected] "}"
32 [email protected] "}"
33 [email protected] "\n " 32 [email protected] "\n "
34 [email protected] 33 [email protected]
35 [email protected] 34 [email protected]
@@ -44,9 +43,8 @@ [email protected]
44 [email protected] ")" 43 [email protected] ")"
45 [email protected] " " 44 [email protected] " "
46 [email protected] 45 [email protected]
47 [email protected] 46 [email protected] "{"
48 [email protected] "{" 47 [email protected] "}"
49 [email protected] "}"
50 [email protected] "\n " 48 [email protected] "\n "
51 [email protected] 49 [email protected]
52 [email protected] 50 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast b/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast
index bcd1fad69..21db9ee85 100644
--- a/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast
+++ b/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast
@@ -9,22 +9,21 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected] "0"
18 [email protected] "0" 18 [email protected] "..="
19 [email protected] "..=" 19 [email protected] ";"
20 [email protected] ";" 20 [email protected] "\n "
21 [email protected] "\n " 21 [email protected]
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected] "..="
24 [email protected] "..=" 24 [email protected] ";"
25 [email protected] ";" 25 [email protected] "\n"
26 [email protected] "\n" 26 [email protected] "}"
27 [email protected] "}"
28 [email protected] "\n" 27 [email protected] "\n"
29error 16..20: An inclusive range must have an end expression 28error 16..20: An inclusive range must have an end expression
30error 26..29: An inclusive range must have an end expression 29error 26..29: An inclusive range must have an end expression
diff --git a/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast b/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast
index 433ea7bad..ec950381b 100644
--- a/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast
+++ b/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast
@@ -18,66 +18,65 @@ [email protected]
18 [email protected] "i32" 18 [email protected] "i32"
19 [email protected] " " 19 [email protected] " "
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected] "{"
22 [email protected] "{" 22 [email protected] "\n "
23 [email protected] "\n " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected] "["
29 [email protected] "[" 29 [email protected]
30 [email protected] 30 [email protected] "1"
31 [email protected] "1" 31 [email protected] ","
32 [email protected] "," 32 [email protected] " "
33 [email protected] " " 33 [email protected]
34 [email protected] 34 [email protected] "2"
35 [email protected] "2" 35 [email protected] ","
36 [email protected] "," 36 [email protected] " "
37 [email protected] " " 37 [email protected]
38 [email protected] 38 [email protected] "3"
39 [email protected] "3" 39 [email protected] "]"
40 [email protected] "]" 40 [email protected] "."
41 [email protected] "." 41 [email protected]
42 [email protected] 42 [email protected] "iter"
43 [email protected] "iter" 43 [email protected]
44 [email protected] 44 [email protected] "("
45 [email protected] "(" 45 [email protected] ")"
46 [email protected] ")" 46 [email protected] "\n "
47 [email protected] "\n " 47 [email protected] "."
48 [email protected] "." 48 [email protected]
49 [email protected] 49 [email protected] "map"
50 [email protected] "map" 50 [email protected]
51 [email protected] 51 [email protected] "("
52 [email protected] "(" 52 [email protected]
53 [email protected] 53 [email protected]
54 [email protected] 54 [email protected] "|"
55 [email protected] "|" 55 [email protected]
56 [email protected] 56 [email protected]
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected] "it"
59 [email protected] "it" 59 [email protected] "|"
60 [email protected] "|" 60 [email protected] ")"
61 [email protected] ")" 61 [email protected] "\n "
62 [email protected] "\n " 62 [email protected] "."
63 [email protected] "." 63 [email protected]
64 [email protected] 64 [email protected] "max"
65 [email protected] "max" 65 [email protected]
66 [email protected] 66 [email protected] "::"
67 [email protected] "::" 67 [email protected] "<"
68 [email protected] "<" 68 [email protected]
69 [email protected] 69 [email protected]
70 [email protected] 70 [email protected]
71 [email protected] 71 [email protected]
72 [email protected] 72 [email protected]
73 [email protected] 73 [email protected] "i32"
74 [email protected] "i32" 74 [email protected] ">"
75 [email protected] ">" 75 [email protected]
76 [email protected] 76 [email protected] "("
77 [email protected] "(" 77 [email protected] ")"
78 [email protected] ")" 78 [email protected] ";"
79 [email protected] ";" 79 [email protected] "\n"
80 [email protected] "\n" 80 [email protected] "}"
81 [email protected] "}"
82 [email protected] "\n" 81 [email protected] "\n"
83error 56..56: expected expression 82error 56..56: expected expression
diff --git a/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast b/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast
new file mode 100644
index 000000000..d0360c467
--- /dev/null
+++ b/crates/ra_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/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs b/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs
new file mode 100644
index 000000000..bd4d58042
--- /dev/null
+++ b/crates/ra_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/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast b/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast
new file mode 100644
index 000000000..4f382b06c
--- /dev/null
+++ b/crates/ra_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/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs b/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs
new file mode 100644
index 000000000..b9e1d7d8b
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs
@@ -0,0 +1,2 @@
1use ::self;
2use a::self;
diff --git a/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rast b/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rast
new file mode 100644
index 000000000..e46456384
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/err/0163_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/ra_syntax/test_data/parser/err/0163_weird_blocks.rs b/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rs
new file mode 100644
index 000000000..8fa324c1a
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/err/0163_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/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast b/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast
index 85bf276a0..75668c818 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast
@@ -9,19 +9,18 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected] "\'loop"
18 [email protected] "\'loop" 18 [email protected] ":"
19 [email protected] ":" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected] "impl"
22 [email protected] "impl" 22 [email protected] "\n"
23 [email protected] "\n" 23 [email protected] "}"
24 [email protected] "}"
25 [email protected] "\n" 24 [email protected] "\n"
26error 22..22: expected a loop 25error 22..22: expected a loop
27error 22..22: expected SEMICOLON 26error 22..22: expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast b/crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast
index b901c17f7..c789e8d82 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast
@@ -8,9 +8,8 @@ [email protected]
8 [email protected] "(" 8 [email protected] "("
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] 10 [email protected]
11 [email protected] 11 [email protected] "{"
12 [email protected] "{" 12 [email protected] "}"
13 [email protected] "}"
14 [email protected] " " 13 [email protected] " "
15 [email protected] 14 [email protected]
16 [email protected] "unsafe" 15 [email protected] "unsafe"
@@ -29,9 +28,8 @@ [email protected]
29 [email protected] "(" 28 [email protected] "("
30 [email protected] ")" 29 [email protected] ")"
31 [email protected] 30 [email protected]
32 [email protected] 31 [email protected] "{"
33 [email protected] "{" 32 [email protected] "}"
34 [email protected] "}"
35 [email protected] "\n" 33 [email protected] "\n"
36error 11..11: expected an item 34error 11..11: expected an item
37error 18..18: expected an item 35error 18..18: expected an item
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast b/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast
index 3f48b86ed..cd24313d4 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast
@@ -9,24 +9,23 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] " "
14 [email protected] " " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "_"
19 [email protected] "_" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "="
21 [email protected] "=" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "async"
24 [email protected] "async" 24 [email protected] " "
25 [email protected] " " 25 [email protected]
26 [email protected] 26 [email protected] "{"
27 [email protected] "{" 27 [email protected] "}"
28 [email protected] "}" 28 [email protected] " "
29 [email protected] " " 29 [email protected] "}"
30 [email protected] "}"
31 [email protected] "\n" 30 [email protected] "\n"
32error 27..27: expected SEMICOLON 31error 27..27: expected SEMICOLON
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast b/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast
index be02eaeeb..c5fa7a404 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast
@@ -9,18 +9,17 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] " "
14 [email protected] " " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "pub"
17 [email protected] "pub" 17 [email protected] " "
18 [email protected] " " 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "92"
21 [email protected] "92" 21 [email protected] ";"
22 [email protected] ";" 22 [email protected] " "
23 [email protected] " " 23 [email protected] "}"
24 [email protected] "}"
25 [email protected] "\n" 24 [email protected] "\n"
26error 14..14: expected an item 25error 14..14: expected an item
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast b/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast
index b344e4f7f..0656fdf73 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast
@@ -9,53 +9,51 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "#"
17 [email protected] "#" 17 [email protected] "["
18 [email protected] "[" 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected] "A"
22 [email protected] "A" 22 [email protected] "]"
23 [email protected] "]" 23 [email protected] " "
24 [email protected] " " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "1"
27 [email protected] "1" 27 [email protected] " "
28 [email protected] " " 28 [email protected] "+"
29 [email protected] "+" 29 [email protected] " "
30 [email protected] " " 30 [email protected]
31 [email protected] 31 [email protected] "2"
32 [email protected] "2" 32 [email protected] ";"
33 [email protected] ";" 33 [email protected] "\n "
34 [email protected] "\n " 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected] "#"
37 [email protected] "#" 37 [email protected] "["
38 [email protected] "[" 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected] "B"
42 [email protected] "B" 42 [email protected] "]"
43 [email protected] "]" 43 [email protected] " "
44 [email protected] " " 44 [email protected]
45 [email protected] 45 [email protected] "if"
46 [email protected] "if" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected] "true"
50 [email protected] "true" 50 [email protected] " "
51 [email protected] " " 51 [email protected]
52 [email protected] 52 [email protected] "{"
53 [email protected] 53 [email protected] "}"
54 [email protected] "{" 54 [email protected] ";"
55 [email protected] "}" 55 [email protected] "\n"
56 [email protected] ";" 56 [email protected] "}"
57 [email protected] "\n"
58 [email protected] "}"
59 [email protected] "\n" 57 [email protected] "\n"
60error 24..24: attributes are not allowed on BIN_EXPR 58error 24..24: attributes are not allowed on BIN_EXPR
61error 44..44: attributes are not allowed on IF_EXPR 59error 44..44: attributes are not allowed on IF_EXPR
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast b/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast
index 5339a84d7..e1abc5633 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast
@@ -9,45 +9,44 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "x"
21 [email protected] "x" 21 [email protected] "."
22 [email protected] "." 22 [email protected] "0."
23 [email protected] "0." 23 [email protected] ";"
24 [email protected] ";" 24 [email protected] "\n "
25 [email protected] "\n " 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected] "x"
32 [email protected] "x" 32 [email protected] "."
33 [email protected] "." 33 [email protected]
34 [email protected] 34 [email protected] "1i32"
35 [email protected] "1i32" 35 [email protected] ";"
36 [email protected] ";" 36 [email protected] "\n "
37 [email protected] "\n " 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected]
42 [email protected] 42 [email protected]
43 [email protected] 43 [email protected] "x"
44 [email protected] "x" 44 [email protected] "."
45 [email protected] "." 45 [email protected]
46 [email protected] 46 [email protected] "0x01"
47 [email protected] "0x01" 47 [email protected] ";"
48 [email protected] ";" 48 [email protected] "\n"
49 [email protected] "\n" 49 [email protected] "}"
50 [email protected] "}"
51 [email protected] "\n" 50 [email protected] "\n"
52error 27..31: Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix 51error 27..31: Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix
53error 39..43: 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/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast b/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast
index 20ed39046..9be441110 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast
@@ -14,9 +14,8 @@ [email protected]
14 [email protected] ")" 14 [email protected] ")"
15 [email protected] " " 15 [email protected] " "
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected] "{"
18 [email protected] "{" 18 [email protected] "}"
19 [email protected] "}"
20 [email protected] "\n" 19 [email protected] "\n"
21 [email protected] 20 [email protected]
22 [email protected] "unsafe" 21 [email protected] "unsafe"
@@ -33,9 +32,8 @@ [email protected]
33 [email protected] ")" 32 [email protected] ")"
34 [email protected] " " 33 [email protected] " "
35 [email protected] 34 [email protected]
36 [email protected] 35 [email protected] "{"
37 [email protected] "{" 36 [email protected] "}"
38 [email protected] "}"
39 [email protected] "\n" 37 [email protected] "\n"
40error 6..6: expected existential, fn, trait or impl 38error 6..6: expected existential, fn, trait or impl
41error 31..31: expected existential, fn, trait or impl 39error 31..31: expected existential, fn, trait or impl
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast b/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast
index 88567263e..b8cd0587d 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast
@@ -45,9 +45,8 @@ [email protected]
45 [email protected] ")" 45 [email protected] ")"
46 [email protected] " " 46 [email protected] " "
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected] "{"
49 [email protected] "{" 49 [email protected] "}"
50 [email protected] "}"
51 [email protected] "\n" 50 [email protected] "\n"
52 [email protected] "}" 51 [email protected] "}"
53 [email protected] "\n" 52 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast b/crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast
index 578befa56..a9de44b57 100644
--- a/crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast
+++ b/crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast
@@ -9,41 +9,40 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected] "S"
19 [email protected] "S" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected] "{"
22 [email protected] "{" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "field"
26 [email protected] "field" 26 [email protected] " "
27 [email protected] " " 27 [email protected]
28 [email protected] 28 [email protected] ".."
29 [email protected] ".." 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "S"
36 [email protected] "S" 36 [email protected] "::"
37 [email protected] "::" 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected] "default"
40 [email protected] "default" 40 [email protected]
41 [email protected] 41 [email protected] "("
42 [email protected] "(" 42 [email protected] ")"
43 [email protected] ")" 43 [email protected] " "
44 [email protected] " " 44 [email protected] "}"
45 [email protected] "}" 45 [email protected] "\n"
46 [email protected] "\n" 46 [email protected] "}"
47 [email protected] "}"
48 [email protected] "\n" 47 [email protected] "\n"
49error 25..25: expected COLON 48error 25..25: expected COLON
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast
index a1fabb557..a38b4f573 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast
@@ -51,9 +51,8 @@ [email protected]
51 [email protected] ")" 51 [email protected] ")"
52 [email protected] " " 52 [email protected] " "
53 [email protected] 53 [email protected]
54 [email protected] 54 [email protected] "{"
55 [email protected] "{" 55 [email protected] "}"
56 [email protected] "}"
57 [email protected] "\n " 56 [email protected] "\n "
58 [email protected] 57 [email protected]
59 [email protected] "fn" 58 [email protected] "fn"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
index a46d76fde..9dc473e43 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
@@ -55,8 +55,7 @@ [email protected]
55 [email protected] ")" 55 [email protected] ")"
56 [email protected] "\n" 56 [email protected] "\n"
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected] "{"
59 [email protected] "{" 59 [email protected] " "
60 [email protected] " " 60 [email protected] "}"
61 [email protected] "}"
62 [email protected] "\n" 61 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast
index 5181fcd2b..6c8c1e24b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast
@@ -32,7 +32,6 @@ [email protected]
32 [email protected] "(" 32 [email protected] "("
33 [email protected] ")" 33 [email protected] ")"
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "{"
36 [email protected] "{" 36 [email protected] "}"
37 [email protected] "}"
38 [email protected] "\n" 37 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast
index dd41b44e1..9f4a9e69b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast
@@ -23,9 +23,8 @@ [email protected]
23 [email protected] ")" 23 [email protected] ")"
24 [email protected] " " 24 [email protected] " "
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "{"
27 [email protected] "{" 27 [email protected] "}"
28 [email protected] "}"
29 [email protected] "\n " 28 [email protected] "\n "
30 [email protected] 29 [email protected]
31 [email protected] "fn" 30 [email protected] "fn"
@@ -41,9 +40,8 @@ [email protected]
41 [email protected] ")" 40 [email protected] ")"
42 [email protected] " " 41 [email protected] " "
43 [email protected] 42 [email protected]
44 [email protected] 43 [email protected] "{"
45 [email protected] "{" 44 [email protected] "}"
46 [email protected] "}"
47 [email protected] "\n " 45 [email protected] "\n "
48 [email protected] 46 [email protected]
49 [email protected] "fn" 47 [email protected] "fn"
@@ -61,9 +59,8 @@ [email protected]
61 [email protected] ")" 59 [email protected] ")"
62 [email protected] " " 60 [email protected] " "
63 [email protected] 61 [email protected]
64 [email protected] 62 [email protected] "{"
65 [email protected] "{" 63 [email protected] "}"
66 [email protected] "}"
67 [email protected] "\n " 64 [email protected] "\n "
68 [email protected] 65 [email protected]
69 [email protected] "fn" 66 [email protected] "fn"
@@ -95,9 +92,8 @@ [email protected]
95 [email protected] ")" 92 [email protected] ")"
96 [email protected] " " 93 [email protected] " "
97 [email protected] 94 [email protected]
98 [email protected] 95 [email protected] "{"
99 [email protected] "{" 96 [email protected] "}"
100 [email protected] "}"
101 [email protected] "\n " 97 [email protected] "\n "
102 [email protected] 98 [email protected]
103 [email protected] "fn" 99 [email protected] "fn"
@@ -113,9 +109,8 @@ [email protected]
113 [email protected] ")" 109 [email protected] ")"
114 [email protected] " " 110 [email protected] " "
115 [email protected] 111 [email protected]
116 [email protected] 112 [email protected] "{"
117 [email protected] "{" 113 [email protected] "}"
118 [email protected] "}"
119 [email protected] "\n" 114 [email protected] "\n"
120 [email protected] "}" 115 [email protected] "}"
121 [email protected] "\n" 116 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast b/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast
index a8ddd20c9..10eb31d68 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast
@@ -9,89 +9,88 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected]
22 [email protected] 22 [email protected] "foo"
23 [email protected] "foo" 23 [email protected] "::"
24 [email protected] "::" 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "Bar"
27 [email protected] "Bar" 27 [email protected] " "
28 [email protected] " " 28 [email protected] "="
29 [email protected] "=" 29 [email protected] " "
30 [email protected] " " 30 [email protected]
31 [email protected] 31 [email protected] "("
32 [email protected] "(" 32 [email protected] ")"
33 [email protected] ")" 33 [email protected] ";"
34 [email protected] ";" 34 [email protected] "\n "
35 [email protected] "\n " 35 [email protected]
36 [email protected] 36 [email protected] "let"
37 [email protected] "let" 37 [email protected] " "
38 [email protected] " " 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected] "::"
42 [email protected] "::" 42 [email protected]
43 [email protected] 43 [email protected] "Bar"
44 [email protected] "Bar" 44 [email protected] " "
45 [email protected] " " 45 [email protected] "="
46 [email protected] "=" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] 48 [email protected] "("
49 [email protected] "(" 49 [email protected] ")"
50 [email protected] ")" 50 [email protected] ";"
51 [email protected] ";" 51 [email protected] "\n "
52 [email protected] "\n " 52 [email protected]
53 [email protected] 53 [email protected] "let"
54 [email protected] "let" 54 [email protected] " "
55 [email protected] " " 55 [email protected]
56 [email protected] 56 [email protected]
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected] "Bar"
60 [email protected] "Bar" 60 [email protected] " "
61 [email protected] " " 61 [email protected]
62 [email protected] 62 [email protected] "{"
63 [email protected] "{" 63 [email protected] " "
64 [email protected] " " 64 [email protected] ".."
65 [email protected] ".." 65 [email protected] " "
66 [email protected] " " 66 [email protected] "}"
67 [email protected] "}" 67 [email protected] " "
68 [email protected] " " 68 [email protected] "="
69 [email protected] "=" 69 [email protected] " "
70 [email protected] " " 70 [email protected]
71 [email protected] 71 [email protected] "("
72 [email protected] "(" 72 [email protected] ")"
73 [email protected] ")" 73 [email protected] ";"
74 [email protected] ";" 74 [email protected] "\n "
75 [email protected] "\n " 75 [email protected]
76 [email protected] 76 [email protected] "let"
77 [email protected] "let" 77 [email protected] " "
78 [email protected] " " 78 [email protected]
79 [email protected] 79 [email protected]
80 [email protected] 80 [email protected]
81 [email protected] 81 [email protected]
82 [email protected] 82 [email protected] "Bar"
83 [email protected] "Bar" 83 [email protected] "("
84 [email protected] "(" 84 [email protected]
85 [email protected] 85 [email protected] ".."
86 [email protected] ".." 86 [email protected] ")"
87 [email protected] ")" 87 [email protected] " "
88 [email protected] " " 88 [email protected] "="
89 [email protected] "=" 89 [email protected] " "
90 [email protected] " " 90 [email protected]
91 [email protected] 91 [email protected] "("
92 [email protected] "(" 92 [email protected] ")"
93 [email protected] ")" 93 [email protected] ";"
94 [email protected] ";" 94 [email protected] "\n"
95 [email protected] "\n" 95 [email protected] "}"
96 [email protected] "}"
97 [email protected] "\n" 96 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast
index df8ada62a..425e5196c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast
@@ -9,18 +9,16 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "loop"
17 [email protected] "loop" 17 [email protected] " "
18 [email protected] " " 18 [email protected]
19 [email protected] 19 [email protected] "{"
20 [email protected] 20 [email protected] "}"
21 [email protected] "{" 21 [email protected] ";"
22 [email protected] "}" 22 [email protected] "\n"
23 [email protected] ";" 23 [email protected] "}"
24 [email protected] "\n"
25 [email protected] "}"
26 [email protected] "\n" 24 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast
index de01cc79e..d823c08fc 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast
@@ -9,52 +9,51 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "x"
21 [email protected] "x" 21 [email protected] "."
22 [email protected] "." 22 [email protected]
23 [email protected] 23 [email protected] "foo"
24 [email protected] "foo" 24 [email protected] ";"
25 [email protected] ";" 25 [email protected] "\n "
26 [email protected] "\n " 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected] "x"
34 [email protected] "x" 34 [email protected] "."
35 [email protected] "." 35 [email protected]
36 [email protected] 36 [email protected] "0"
37 [email protected] "0" 37 [email protected] "."
38 [email protected] "." 38 [email protected]
39 [email protected] 39 [email protected] "bar"
40 [email protected] "bar" 40 [email protected] ";"
41 [email protected] ";" 41 [email protected] "\n "
42 [email protected] "\n " 42 [email protected]
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected] "x"
50 [email protected] "x" 50 [email protected] "."
51 [email protected] "." 51 [email protected]
52 [email protected] 52 [email protected] "0"
53 [email protected] "0" 53 [email protected]
54 [email protected] 54 [email protected] "("
55 [email protected] "(" 55 [email protected] ")"
56 [email protected] ")" 56 [email protected] ";"
57 [email protected] ";" 57 [email protected] "\n"
58 [email protected] "\n" 58 [email protected] "}"
59 [email protected] "}"
60 [email protected] "\n" 59 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast
index 8ac307cb3..422912e3c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast
@@ -9,29 +9,27 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "loop"
16 [email protected] "loop" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "{"
19 [email protected] 19 [email protected] "\n "
20 [email protected] "{" 20 [email protected]
21 [email protected] "\n " 21 [email protected]
22 [email protected] 22 [email protected] "continue"
23 [email protected] 23 [email protected] ";"
24 [email protected] "continue" 24 [email protected] "\n "
25 [email protected] ";" 25 [email protected]
26 [email protected] "\n " 26 [email protected]
27 [email protected] 27 [email protected] "continue"
28 [email protected] 28 [email protected] " "
29 [email protected] "continue" 29 [email protected] "\'l"
30 [email protected] " " 30 [email protected] ";"
31 [email protected] "\'l" 31 [email protected] "\n "
32 [email protected] ";" 32 [email protected] "}"
33 [email protected] "\n " 33 [email protected] "\n"
34 [email protected] "}" 34 [email protected] "}"
35 [email protected] "\n"
36 [email protected] "}"
37 [email protected] "\n" 35 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast
index 6f6400d00..15da6fdd6 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast
@@ -32,9 +32,8 @@ [email protected]
32 [email protected] ")" 32 [email protected] ")"
33 [email protected] " " 33 [email protected] " "
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "{"
36 [email protected] "{" 36 [email protected] "}"
37 [email protected] "}"
38 [email protected] "\n " 37 [email protected] "\n "
39 [email protected] 38 [email protected]
40 [email protected] "fn" 39 [email protected] "fn"
@@ -66,9 +65,8 @@ [email protected]
66 [email protected] ")" 65 [email protected] ")"
67 [email protected] " " 66 [email protected] " "
68 [email protected] 67 [email protected]
69 [email protected] 68 [email protected] "{"
70 [email protected] "{" 69 [email protected] "}"
71 [email protected] "}"
72 [email protected] "\n" 70 [email protected] "\n"
73 [email protected] "}" 71 [email protected] "}"
74 [email protected] "\n" 72 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast
index ba422f1ae..10d6b2fde 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast
@@ -9,37 +9,36 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "*"
17 [email protected] "*" 17 [email protected]
18 [email protected] 18 [email protected] "*"
19 [email protected] "*" 19 [email protected]
20 [email protected] 20 [email protected] "&"
21 [email protected] "&" 21 [email protected]
22 [email protected] 22 [email protected] "1"
23 [email protected] "1" 23 [email protected] ";"
24 [email protected] ";" 24 [email protected] "\n "
25 [email protected] "\n " 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected] "!"
28 [email protected] "!" 28 [email protected]
29 [email protected] 29 [email protected] "!"
30 [email protected] "!" 30 [email protected]
31 [email protected] 31 [email protected] "true"
32 [email protected] "true" 32 [email protected] ";"
33 [email protected] ";" 33 [email protected] "\n "
34 [email protected] "\n " 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected] "-"
37 [email protected] "-" 37 [email protected]
38 [email protected] 38 [email protected] "-"
39 [email protected] "-" 39 [email protected]
40 [email protected] 40 [email protected] "1"
41 [email protected] "1" 41 [email protected] ";"
42 [email protected] ";" 42 [email protected] "\n"
43 [email protected] "\n" 43 [email protected] "}"
44 [email protected] "}"
45 [email protected] "\n" 44 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast
index de22b22dd..c204aeb63 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast
@@ -55,9 +55,8 @@ [email protected]
55 [email protected] ")" 55 [email protected] ")"
56 [email protected] " " 56 [email protected] " "
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected] "{"
59 [email protected] "{" 59 [email protected] "}"
60 [email protected] "}"
61 [email protected] "\n " 60 [email protected] "\n "
62 [email protected] 61 [email protected]
63 [email protected] "fn" 62 [email protected] "fn"
@@ -72,9 +71,8 @@ [email protected]
72 [email protected] ")" 71 [email protected] ")"
73 [email protected] " " 72 [email protected] " "
74 [email protected] 73 [email protected]
75 [email protected] 74 [email protected] "{"
76 [email protected] "{" 75 [email protected] "}"
77 [email protected] "}"
78 [email protected] "\n" 76 [email protected] "\n"
79 [email protected] "}" 77 [email protected] "}"
80 [email protected] "\n" 78 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast
index 7da292a2d..7eb27d5e1 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast
@@ -9,34 +9,33 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "["
19 [email protected] "[" 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected] "a"
22 [email protected] "a" 22 [email protected] ","
23 [email protected] "," 23 [email protected] " "
24 [email protected] " " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "b"
27 [email protected] "b" 27 [email protected] ","
28 [email protected] "," 28 [email protected] " "
29 [email protected] " " 29 [email protected]
30 [email protected] 30 [email protected] ".."
31 [email protected] ".." 31 [email protected] "]"
32 [email protected] "]" 32 [email protected] " "
33 [email protected] " " 33 [email protected] "="
34 [email protected] "=" 34 [email protected] " "
35 [email protected] " " 35 [email protected]
36 [email protected] 36 [email protected] "["
37 [email protected] "[" 37 [email protected] "]"
38 [email protected] "]" 38 [email protected] ";"
39 [email protected] ";" 39 [email protected] "\n"
40 [email protected] "\n" 40 [email protected] "}"
41 [email protected] "}"
42 [email protected] "\n" 41 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast b/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast
index 574942f06..b4598768e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast
@@ -9,97 +9,96 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected] "S"
22 [email protected] "S" 22 [email protected] "("
23 [email protected] "(" 23 [email protected] ")"
24 [email protected] ")" 24 [email protected] " "
25 [email protected] " " 25 [email protected] "="
26 [email protected] "=" 26 [email protected] " "
27 [email protected] " " 27 [email protected]
28 [email protected] 28 [email protected] "("
29 [email protected] "(" 29 [email protected] ")"
30 [email protected] ")" 30 [email protected] ";"
31 [email protected] ";" 31 [email protected] "\n "
32 [email protected] "\n " 32 [email protected]
33 [email protected] 33 [email protected] "let"
34 [email protected] "let" 34 [email protected] " "
35 [email protected] " " 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected] "S"
40 [email protected] "S" 40 [email protected] "("
41 [email protected] "(" 41 [email protected]
42 [email protected] 42 [email protected] "_"
43 [email protected] "_" 43 [email protected] ")"
44 [email protected] ")" 44 [email protected] " "
45 [email protected] " " 45 [email protected] "="
46 [email protected] "=" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] 48 [email protected] "("
49 [email protected] "(" 49 [email protected] ")"
50 [email protected] ")" 50 [email protected] ";"
51 [email protected] ";" 51 [email protected] "\n "
52 [email protected] "\n " 52 [email protected]
53 [email protected] 53 [email protected] "let"
54 [email protected] "let" 54 [email protected] " "
55 [email protected] " " 55 [email protected]
56 [email protected] 56 [email protected]
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected] "S"
60 [email protected] "S" 60 [email protected] "("
61 [email protected] "(" 61 [email protected]
62 [email protected] 62 [email protected] "_"
63 [email protected] "_" 63 [email protected] ","
64 [email protected] "," 64 [email protected] ")"
65 [email protected] ")" 65 [email protected] " "
66 [email protected] " " 66 [email protected] "="
67 [email protected] "=" 67 [email protected] " "
68 [email protected] " " 68 [email protected]
69 [email protected] 69 [email protected] "("
70 [email protected] "(" 70 [email protected] ")"
71 [email protected] ")" 71 [email protected] ";"
72 [email protected] ";" 72 [email protected] "\n "
73 [email protected] "\n " 73 [email protected]
74 [email protected] 74 [email protected] "let"
75 [email protected] "let" 75 [email protected] " "
76 [email protected] " " 76 [email protected]
77 [email protected] 77 [email protected]
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected]
80 [email protected] 80 [email protected] "S"
81 [email protected] "S" 81 [email protected] "("
82 [email protected] "(" 82 [email protected]
83 [email protected] 83 [email protected] "_"
84 [email protected] "_" 84 [email protected] ","
85 [email protected] "," 85 [email protected] " "
86 [email protected] " " 86 [email protected]
87 [email protected] 87 [email protected] ".."
88 [email protected] ".." 88 [email protected] " "
89 [email protected] " " 89 [email protected] ","
90 [email protected] "," 90 [email protected] " "
91 [email protected] " " 91 [email protected]
92 [email protected] 92 [email protected]
93 [email protected] 93 [email protected] "x"
94 [email protected] "x" 94 [email protected] ")"
95 [email protected] ")" 95 [email protected] " "
96 [email protected] " " 96 [email protected] "="
97 [email protected] "=" 97 [email protected] " "
98 [email protected] " " 98 [email protected]
99 [email protected] 99 [email protected] "("
100 [email protected] "(" 100 [email protected] ")"
101 [email protected] ")" 101 [email protected] ";"
102 [email protected] ";" 102 [email protected] "\n"
103 [email protected] "\n" 103 [email protected] "}"
104 [email protected] "}"
105 [email protected] "\n" 104 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast
index 1927438bb..b824c10a8 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast
@@ -9,42 +9,41 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "&"
19 [email protected] "&" 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected] "a"
22 [email protected] "a" 22 [email protected] " "
23 [email protected] " " 23 [email protected] "="
24 [email protected] "=" 24 [email protected] " "
25 [email protected] " " 25 [email protected]
26 [email protected] 26 [email protected] "("
27 [email protected] "(" 27 [email protected] ")"
28 [email protected] ")" 28 [email protected] ";"
29 [email protected] ";" 29 [email protected] "\n "
30 [email protected] "\n " 30 [email protected]
31 [email protected] 31 [email protected] "let"
32 [email protected] "let" 32 [email protected] " "
33 [email protected] " " 33 [email protected]
34 [email protected] 34 [email protected] "&"
35 [email protected] "&" 35 [email protected] "mut"
36 [email protected] "mut" 36 [email protected] " "
37 [email protected] " " 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected] "b"
40 [email protected] "b" 40 [email protected] " "
41 [email protected] " " 41 [email protected] "="
42 [email protected] "=" 42 [email protected] " "
43 [email protected] " " 43 [email protected]
44 [email protected] 44 [email protected] "("
45 [email protected] "(" 45 [email protected] ")"
46 [email protected] ")" 46 [email protected] ";"
47 [email protected] ";" 47 [email protected] "\n"
48 [email protected] "\n" 48 [email protected] "}"
49 [email protected] "}"
50 [email protected] "\n" 49 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast
index 9effb345f..fabb09937 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast
@@ -9,82 +9,81 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected] "82"
18 [email protected] "82" 18 [email protected] " "
19 [email protected] " " 19 [email protected] "as"
20 [email protected] "as" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "i32"
26 [email protected] "i32" 26 [email protected] ";"
27 [email protected] ";" 27 [email protected] "\n "
28 [email protected] "\n " 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected] "81"
33 [email protected] "81" 33 [email protected] " "
34 [email protected] " " 34 [email protected] "as"
35 [email protected] "as" 35 [email protected] " "
36 [email protected] " " 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected] "i8"
41 [email protected] "i8" 41 [email protected] " "
42 [email protected] " " 42 [email protected] "+"
43 [email protected] "+" 43 [email protected] " "
44 [email protected] " " 44 [email protected]
45 [email protected] 45 [email protected] "1"
46 [email protected] "1" 46 [email protected] ";"
47 [email protected] ";" 47 [email protected] "\n "
48 [email protected] "\n " 48 [email protected]
49 [email protected] 49 [email protected]
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected] "79"
53 [email protected] "79" 53 [email protected] " "
54 [email protected] " " 54 [email protected] "as"
55 [email protected] "as" 55 [email protected] " "
56 [email protected] " " 56 [email protected]
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected]
60 [email protected] 60 [email protected] "i16"
61 [email protected] "i16" 61 [email protected] " "
62 [email protected] " " 62 [email protected] "-"
63 [email protected] "-" 63 [email protected] " "
64 [email protected] " " 64 [email protected]
65 [email protected] 65 [email protected] "1"
66 [email protected] "1" 66 [email protected] ";"
67 [email protected] ";" 67 [email protected] "\n "
68 [email protected] "\n " 68 [email protected]
69 [email protected] 69 [email protected]
70 [email protected] 70 [email protected]
71 [email protected] 71 [email protected]
72 [email protected] 72 [email protected] "0x36"
73 [email protected] "0x36" 73 [email protected] " "
74 [email protected] " " 74 [email protected] "as"
75 [email protected] "as" 75 [email protected] " "
76 [email protected] " " 76 [email protected]
77 [email protected] 77 [email protected]
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected]
80 [email protected] 80 [email protected] "u8"
81 [email protected] "u8" 81 [email protected] " "
82 [email protected] " " 82 [email protected] "<="
83 [email protected] "<=" 83 [email protected] " "
84 [email protected] " " 84 [email protected]
85 [email protected] 85 [email protected] "0x37"
86 [email protected] "0x37" 86 [email protected] ";"
87 [email protected] ";" 87 [email protected] "\n"
88 [email protected] "\n" 88 [email protected] "}"
89 [email protected] "}"
90 [email protected] "\n" 89 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast b/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast
index b6759541e..3aed26732 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast
@@ -9,39 +9,37 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] " "
14 [email protected] " " 14 [email protected]
15 [email protected] 15 [email protected] "if"
16 [email protected] "if" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "let"
19 [email protected] "let" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected]
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected] "Some"
25 [email protected] "Some" 25 [email protected] "("
26 [email protected] "(" 26 [email protected]
27 [email protected] 27 [email protected] "_"
28 [email protected] "_" 28 [email protected] ")"
29 [email protected] ")" 29 [email protected] " "
30 [email protected] " " 30 [email protected] "="
31 [email protected] "=" 31 [email protected] " "
32 [email protected] " " 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected] "None"
37 [email protected] "None" 37 [email protected] " "
38 [email protected] " " 38 [email protected]
39 [email protected] 39 [email protected] "{"
40 [email protected] 40 [email protected] "}"
41 [email protected] "{" 41 [email protected] " "
42 [email protected] "}" 42 [email protected] "}"
43 [email protected] " "
44 [email protected] "}"
45 [email protected] "\n" 43 [email protected] "\n"
46 [email protected] 44 [email protected]
47 [email protected] "fn" 45 [email protected] "fn"
@@ -53,157 +51,152 @@ [email protected]
53 [email protected] ")" 51 [email protected] ")"
54 [email protected] " " 52 [email protected] " "
55 [email protected] 53 [email protected]
56 [email protected] 54 [email protected] "{"
57 [email protected] "{" 55 [email protected] "\n "
58 [email protected] "\n " 56 [email protected]
59 [email protected] 57 [email protected]
60 [email protected] 58 [email protected] "if"
61 [email protected] "if" 59 [email protected] " "
62 [email protected] " " 60 [email protected]
63 [email protected] 61 [email protected] "let"
64 [email protected] "let" 62 [email protected] " "
65 [email protected] " " 63 [email protected]
66 [email protected] 64 [email protected]
67 [email protected] 65 [email protected]
68 [email protected] 66 [email protected]
69 [email protected] 67 [email protected]
70 [email protected] 68 [email protected] "Some"
71 [email protected] "Some" 69 [email protected] "("
72 [email protected] "(" 70 [email protected]
73 [email protected] 71 [email protected] "_"
74 [email protected] "_" 72 [email protected] ")"
75 [email protected] ")" 73 [email protected] " "
76 [email protected] " " 74 [email protected] "|"
77 [email protected] "|" 75 [email protected] " "
78 [email protected] " " 76 [email protected]
79 [email protected] 77 [email protected]
80 [email protected] 78 [email protected]
81 [email protected] 79 [email protected]
82 [email protected] 80 [email protected] "Some"
83 [email protected] "Some" 81 [email protected] "("
84 [email protected] "(" 82 [email protected]
85 [email protected] 83 [email protected] "_"
86 [email protected] "_" 84 [email protected] ")"
87 [email protected] ")" 85 [email protected] " "
88 [email protected] " " 86 [email protected] "="
89 [email protected] "=" 87 [email protected] " "
90 [email protected] " " 88 [email protected]
91 [email protected] 89 [email protected]
92 [email protected] 90 [email protected]
93 [email protected] 91 [email protected]
94 [email protected] 92 [email protected] "None"
95 [email protected] "None" 93 [email protected] " "
96 [email protected] " " 94 [email protected]
97 [email protected] 95 [email protected] "{"
98 [email protected] 96 [email protected] "}"
99 [email protected] "{" 97 [email protected] "\n "
100 [email protected] "}" 98 [email protected]
101 [email protected] "\n " 99 [email protected]
102 [email protected] 100 [email protected] "if"
103 [email protected] 101 [email protected] " "
104 [email protected] "if" 102 [email protected]
105 [email protected] " " 103 [email protected] "let"
106 [email protected] 104 [email protected] " "
107 [email protected] "let" 105 [email protected] "|"
108 [email protected] " " 106 [email protected] " "
109 [email protected] "|" 107 [email protected]
110 [email protected] " " 108 [email protected]
111 [email protected] 109 [email protected]
112 [email protected] 110 [email protected]
113 [email protected] 111 [email protected] "Some"
114 [email protected] 112 [email protected] "("
115 [email protected] "Some" 113 [email protected]
116 [email protected] "(" 114 [email protected] "_"
117 [email protected] 115 [email protected] ")"
118 [email protected] "_" 116 [email protected] " "
119 [email protected] ")" 117 [email protected] "="
120 [email protected] " " 118 [email protected] " "
121 [email protected] "=" 119 [email protected]
122 [email protected] " " 120 [email protected]
123 [email protected] 121 [email protected]
124 [email protected] 122 [email protected]
125 [email protected] 123 [email protected] "None"
126 [email protected] 124 [email protected] " "
127 [email protected] "None" 125 [email protected]
128 [email protected] " " 126 [email protected] "{"
129 [email protected] 127 [email protected] "}"
130 [email protected] 128 [email protected] "\n "
131 [email protected] "{" 129 [email protected]
132 [email protected] "}" 130 [email protected]
133 [email protected] "\n " 131 [email protected] "while"
134 [email protected] 132 [email protected] " "
135 [email protected] 133 [email protected]
136 [email protected] "while" 134 [email protected] "let"
137 [email protected] " " 135 [email protected] " "
138 [email protected] 136 [email protected]
139 [email protected] "let" 137 [email protected]
140 [email protected] " " 138 [email protected]
141 [email protected] 139 [email protected]
142 [email protected] 140 [email protected]
143 [email protected] 141 [email protected] "Some"
144 [email protected] 142 [email protected] "("
145 [email protected] 143 [email protected]
146 [email protected] "Some" 144 [email protected] "_"
147 [email protected] "(" 145 [email protected] ")"
148 [email protected] 146 [email protected] " "
149 [email protected] "_" 147 [email protected] "|"
150 [email protected] ")" 148 [email protected] " "
151 [email protected] " " 149 [email protected]
152 [email protected] "|" 150 [email protected]
153 [email protected] " " 151 [email protected]
154 [email protected] 152 [email protected]
155 [email protected] 153 [email protected] "Some"
156 [email protected] 154 [email protected] "("
157 [email protected] 155 [email protected]
158 [email protected] "Some" 156 [email protected] "_"
159 [email protected] "(" 157 [email protected] ")"
160 [email protected] 158 [email protected] " "
161 [email protected] "_" 159 [email protected] "="
162 [email protected] ")" 160 [email protected] " "
163 [email protected] " " 161 [email protected]
164 [email protected] "=" 162 [email protected]
165 [email protected] " " 163 [email protected]
166 [email protected] 164 [email protected]
167 [email protected] 165 [email protected] "None"
168 [email protected] 166 [email protected] " "
169 [email protected] 167 [email protected]
170 [email protected] "None" 168 [email protected] "{"
171 [email protected] " " 169 [email protected] "}"
172 [email protected] 170 [email protected] "\n "
173 [email protected] 171 [email protected]
174 [email protected] "{" 172 [email protected] "while"
175 [email protected] "}" 173 [email protected] " "
176 [email protected] "\n " 174 [email protected]
177 [email protected] 175 [email protected] "let"
178 [email protected] "while" 176 [email protected] " "
179 [email protected] " " 177 [email protected] "|"
180 [email protected] 178 [email protected] " "
181 [email protected] "let" 179 [email protected]
182 [email protected] " " 180 [email protected]
183 [email protected] "|" 181 [email protected]
184 [email protected] " " 182 [email protected]
185 [email protected] 183 [email protected] "Some"
186 [email protected] 184 [email protected] "("
187 [email protected] 185 [email protected]
188 [email protected] 186 [email protected] "_"
189 [email protected] "Some" 187 [email protected] ")"
190 [email protected] "(" 188 [email protected] " "
191 [email protected] 189 [email protected] "="
192 [email protected] "_" 190 [email protected] " "
193 [email protected] ")" 191 [email protected]
194 [email protected] " " 192 [email protected]
195 [email protected] "=" 193 [email protected]
196 [email protected] " " 194 [email protected]
197 [email protected] 195 [email protected] "None"
198 [email protected] 196 [email protected] " "
199 [email protected] 197 [email protected]
200 [email protected] 198 [email protected] "{"
201 [email protected] "None" 199 [email protected] "}"
202 [email protected] " " 200 [email protected] "\n"
203 [email protected] 201 [email protected] "}"
204 [email protected]
205 [email protected] "{"
206 [email protected] "}"
207 [email protected] "\n"
208 [email protected] "}"
209 [email protected] "\n" 202 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast
index e5138a599..899b63aac 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast
@@ -9,81 +9,76 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "while"
17 [email protected] "while" 17 [email protected] " "
18 [email protected] " " 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "true"
21 [email protected] "true" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "{"
24 [email protected] 24 [email protected] "}"
25 [email protected] "{" 25 [email protected] ";"
26 [email protected] "}" 26 [email protected] "\n "
27 [email protected] ";" 27 [email protected]
28 [email protected] "\n " 28 [email protected]
29 [email protected] 29 [email protected] "while"
30 [email protected] 30 [email protected] " "
31 [email protected] "while" 31 [email protected]
32 [email protected] " " 32 [email protected] "let"
33 [email protected] 33 [email protected] " "
34 [email protected] "let" 34 [email protected]
35 [email protected] " " 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected] "Some"
39 [email protected] 39 [email protected] "("
40 [email protected] "Some" 40 [email protected]
41 [email protected] "(" 41 [email protected]
42 [email protected] 42 [email protected] "x"
43 [email protected] 43 [email protected] ")"
44 [email protected] "x" 44 [email protected] " "
45 [email protected] ")" 45 [email protected] "="
46 [email protected] " " 46 [email protected] " "
47 [email protected] "=" 47 [email protected]
48 [email protected] " " 48 [email protected]
49 [email protected] 49 [email protected]
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected] "it"
53 [email protected] 53 [email protected] "."
54 [email protected] "it" 54 [email protected]
55 [email protected] "." 55 [email protected] "next"
56 [email protected] 56 [email protected]
57 [email protected] "next" 57 [email protected] "("
58 [email protected] 58 [email protected] ")"
59 [email protected] "(" 59 [email protected] " "
60 [email protected] ")" 60 [email protected]
61 [email protected] " " 61 [email protected] "{"
62 [email protected] 62 [email protected] "}"
63 [email protected] 63 [email protected] ";"
64 [email protected] "{" 64 [email protected] "\n "
65 [email protected] "}" 65 [email protected]
66 [email protected] ";" 66 [email protected]
67 [email protected] "\n " 67 [email protected] "while"
68 [email protected] 68 [email protected] " "
69 [email protected] 69 [email protected]
70 [email protected] "while" 70 [email protected]
71 [email protected] " " 71 [email protected] "{"
72 [email protected] 72 [email protected] " "
73 [email protected] 73 [email protected]
74 [email protected] 74 [email protected] "true"
75 [email protected] "{" 75 [email protected] " "
76 [email protected] " " 76 [email protected] "}"
77 [email protected] 77 [email protected] " "
78 [email protected] "true" 78 [email protected]
79 [email protected] " " 79 [email protected] "{"
80 [email protected] "}" 80 [email protected] "}"
81 [email protected] " " 81 [email protected] ";"
82 [email protected] 82 [email protected] "\n"
83 [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" 84 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast
index 52644da8f..e064aafaf 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast
@@ -9,47 +9,45 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "loop"
16 [email protected] "loop" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "{"
19 [email protected] 19 [email protected] "\n "
20 [email protected] "{" 20 [email protected]
21 [email protected] "\n " 21 [email protected]
22 [email protected] 22 [email protected] "break"
23 [email protected] 23 [email protected] ";"
24 [email protected] "break" 24 [email protected] "\n "
25 [email protected] ";" 25 [email protected]
26 [email protected] "\n " 26 [email protected]
27 [email protected] 27 [email protected] "break"
28 [email protected] 28 [email protected] " "
29 [email protected] "break" 29 [email protected] "\'l"
30 [email protected] " " 30 [email protected] ";"
31 [email protected] "\'l" 31 [email protected] "\n "
32 [email protected] ";" 32 [email protected]
33 [email protected] "\n " 33 [email protected]
34 [email protected] 34 [email protected] "break"
35 [email protected] 35 [email protected] " "
36 [email protected] "break" 36 [email protected]
37 [email protected] " " 37 [email protected] "92"
38 [email protected] 38 [email protected] ";"
39 [email protected] "92" 39 [email protected] "\n "
40 [email protected] ";" 40 [email protected]
41 [email protected] "\n " 41 [email protected]
42 [email protected] 42 [email protected] "break"
43 [email protected] 43 [email protected] " "
44 [email protected] "break" 44 [email protected] "\'l"
45 [email protected] " " 45 [email protected] " "
46 [email protected] "\'l" 46 [email protected]
47 [email protected] " " 47 [email protected] "92"
48 [email protected] 48 [email protected] ";"
49 [email protected] "92" 49 [email protected] "\n "
50 [email protected] ";" 50 [email protected] "}"
51 [email protected] "\n " 51 [email protected] "\n"
52 [email protected] "}" 52 [email protected] "}"
53 [email protected] "\n"
54 [email protected] "}"
55 [email protected] "\n" 53 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast
index f061c0cac..cf5825593 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast
@@ -16,7 +16,6 @@ [email protected]
16 [email protected] ")" 16 [email protected] ")"
17 [email protected] " " 17 [email protected] " "
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "{"
20 [email protected] "{" 20 [email protected] "}"
21 [email protected] "}"
22 [email protected] "\n" 21 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast b/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast
index e25fc8c3e..fbd90bc0f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast
@@ -42,38 +42,37 @@ [email protected]
42 [email protected] ")" 42 [email protected] ")"
43 [email protected] " " 43 [email protected] " "
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected] "{"
46 [email protected] "{" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected]
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected]
53 [email protected] 53 [email protected] "<"
54 [email protected] "<" 54 [email protected]
55 [email protected] 55 [email protected]
56 [email protected] 56 [email protected]
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected] "usize"
59 [email protected] "usize" 59 [email protected] " "
60 [email protected] " " 60 [email protected] "as"
61 [email protected] "as" 61 [email protected] " "
62 [email protected] " " 62 [email protected]
63 [email protected] 63 [email protected]
64 [email protected] 64 [email protected]
65 [email protected] 65 [email protected]
66 [email protected] 66 [email protected] "Default"
67 [email protected] "Default" 67 [email protected] ">"
68 [email protected] ">" 68 [email protected] "::"
69 [email protected] "::" 69 [email protected]
70 [email protected] 70 [email protected]
71 [email protected] 71 [email protected] "default"
72 [email protected] "default" 72 [email protected]
73 [email protected] 73 [email protected] "("
74 [email protected] "(" 74 [email protected] ")"
75 [email protected] ")" 75 [email protected] ";"
76 [email protected] ";" 76 [email protected] " "
77 [email protected] " " 77 [email protected] "}"
78 [email protected] "}"
79 [email protected] "\n" 78 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast
index a1238d610..a767f145d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast
@@ -9,21 +9,20 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] " "
14 [email protected] " " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "xs"
21 [email protected] "xs" 21 [email protected] "["
22 [email protected] "[" 22 [email protected]
23 [email protected] 23 [email protected] ".."
24 [email protected] ".." 24 [email protected] "]"
25 [email protected] "]" 25 [email protected] ";"
26 [email protected] ";" 26 [email protected] " "
27 [email protected] " " 27 [email protected] "}"
28 [email protected] "}"
29 [email protected] "\n" 28 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast
index 69e5fe4bc..e92ea2bf2 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast
@@ -32,13 +32,12 @@ [email protected]
32 [email protected] " " 32 [email protected] " "
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "{"
36 [email protected] "{" 36 [email protected] " "
37 [email protected] " " 37 [email protected]
38 [email protected] 38 [email protected] "2"
39 [email protected] "2" 39 [email protected] " "
40 [email protected] " " 40 [email protected] "}"
41 [email protected] "}"
42 [email protected] "," 41 [email protected] ","
43 [email protected] " " 42 [email protected] " "
44 [email protected] 43 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast b/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
index 1a98e2610..aa582516a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
@@ -12,10 +12,9 @@ [email protected]
12 [email protected] ")" 12 [email protected] ")"
13 [email protected] " " 13 [email protected] " "
14 [email protected] 14 [email protected]
15 [email protected] 15 [email protected] "{"
16 [email protected] "{" 16 [email protected] " "
17 [email protected] " " 17 [email protected] "}"
18 [email protected] "}"
19 [email protected] "\n" 18 [email protected] "\n"
20 [email protected] 19 [email protected]
21 [email protected] "struct" 20 [email protected] "struct"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast
index bbf6dc494..0c1c6e877 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast
@@ -9,140 +9,139 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "_"
19 [email protected] "_" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "="
21 [email protected] "=" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected] "f"
28 [email protected] "f" 28 [email protected]
29 [email protected] 29 [email protected] "("
30 [email protected] "(" 30 [email protected] ")"
31 [email protected] ")" 31 [email protected] ";"
32 [email protected] ";" 32 [email protected] "\n "
33 [email protected] "\n " 33 [email protected]
34 [email protected] 34 [email protected] "let"
35 [email protected] "let" 35 [email protected] " "
36 [email protected] " " 36 [email protected]
37 [email protected] 37 [email protected] "_"
38 [email protected] "_" 38 [email protected] " "
39 [email protected] " " 39 [email protected] "="
40 [email protected] "=" 40 [email protected] " "
41 [email protected] " " 41 [email protected]
42 [email protected] 42 [email protected]
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected] "f"
49 [email protected] "f" 49 [email protected]
50 [email protected] 50 [email protected] "("
51 [email protected] "(" 51 [email protected] ")"
52 [email protected] ")" 52 [email protected]
53 [email protected] 53 [email protected] "("
54 [email protected] "(" 54 [email protected]
55 [email protected] 55 [email protected] "1"
56 [email protected] "1" 56 [email protected] ")"
57 [email protected] ")" 57 [email protected]
58 [email protected] 58 [email protected] "("
59 [email protected] "(" 59 [email protected]
60 [email protected] 60 [email protected] "1"
61 [email protected] "1" 61 [email protected] ","
62 [email protected] "," 62 [email protected] " "
63 [email protected] " " 63 [email protected]
64 [email protected] 64 [email protected] "2"
65 [email protected] "2" 65 [email protected] ","
66 [email protected] "," 66 [email protected] ")"
67 [email protected] ")" 67 [email protected] ";"
68 [email protected] ";" 68 [email protected] "\n "
69 [email protected] "\n " 69 [email protected]
70 [email protected] 70 [email protected] "let"
71 [email protected] "let" 71 [email protected] " "
72 [email protected] " " 72 [email protected]
73 [email protected] 73 [email protected] "_"
74 [email protected] "_" 74 [email protected] " "
75 [email protected] " " 75 [email protected] "="
76 [email protected] "=" 76 [email protected] " "
77 [email protected] " " 77 [email protected]
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected]
80 [email protected] 80 [email protected]
81 [email protected] 81 [email protected]
82 [email protected] 82 [email protected] "f"
83 [email protected] "f" 83 [email protected]
84 [email protected] 84 [email protected] "("
85 [email protected] "(" 85 [email protected]
86 [email protected] 86 [email protected]
87 [email protected] 87 [email protected]
88 [email protected] 88 [email protected]
89 [email protected] 89 [email protected]
90 [email protected] 90 [email protected] "<"
91 [email protected] "<" 91 [email protected]
92 [email protected] 92 [email protected]
93 [email protected] 93 [email protected]
94 [email protected] 94 [email protected]
95 [email protected] 95 [email protected] "Foo"
96 [email protected] "Foo" 96 [email protected] ">"
97 [email protected] ">" 97 [email protected] "::"
98 [email protected] "::" 98 [email protected]
99 [email protected] 99 [email protected]
100 [email protected] 100 [email protected] "func"
101 [email protected] "func" 101 [email protected]
102 [email protected] 102 [email protected] "("
103 [email protected] "(" 103 [email protected] ")"
104 [email protected] ")" 104 [email protected] ")"
105 [email protected] ")" 105 [email protected] ";"
106 [email protected] ";" 106 [email protected] "\n "
107 [email protected] "\n " 107 [email protected]
108 [email protected] 108 [email protected]
109 [email protected] 109 [email protected]
110 [email protected] 110 [email protected]
111 [email protected] 111 [email protected]
112 [email protected] 112 [email protected]
113 [email protected] 113 [email protected] "f"
114 [email protected] "f" 114 [email protected]
115 [email protected] 115 [email protected] "("
116 [email protected] "(" 116 [email protected]
117 [email protected] 117 [email protected]
118 [email protected] 118 [email protected]
119 [email protected] 119 [email protected]
120 [email protected] 120 [email protected]
121 [email protected] 121 [email protected] "<"
122 [email protected] "<" 122 [email protected]
123 [email protected] 123 [email protected]
124 [email protected] 124 [email protected]
125 [email protected] 125 [email protected]
126 [email protected] 126 [email protected] "Foo"
127 [email protected] "Foo" 127 [email protected] " "
128 [email protected] " " 128 [email protected] "as"
129 [email protected] "as" 129 [email protected] " "
130 [email protected] " " 130 [email protected]
131 [email protected] 131 [email protected]
132 [email protected] 132 [email protected]
133 [email protected] 133 [email protected]
134 [email protected] 134 [email protected] "Trait"
135 [email protected] "Trait" 135 [email protected] ">"
136 [email protected] ">" 136 [email protected] "::"
137 [email protected] "::" 137 [email protected]
138 [email protected] 138 [email protected]
139 [email protected] 139 [email protected] "func"
140 [email protected] "func" 140 [email protected]
141 [email protected] 141 [email protected] "("
142 [email protected] "(" 142 [email protected] ")"
143 [email protected] ")" 143 [email protected] ")"
144 [email protected] ")" 144 [email protected] ";"
145 [email protected] ";" 145 [email protected] "\n"
146 [email protected] "\n" 146 [email protected] "}"
147 [email protected] "}"
148 [email protected] "\n" 147 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast b/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast
index a454dfc3a..c23b3b67c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast
@@ -9,22 +9,20 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] " "
14 [email protected] " " 14 [email protected]
15 [email protected] 15 [email protected] "fn"
16 [email protected] "fn" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "b"
19 [email protected] "b" 19 [email protected]
20 [email protected] 20 [email protected] "("
21 [email protected] "(" 21 [email protected] ")"
22 [email protected] ")" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected] "{"
25 [email protected] 25 [email protected] "}"
26 [email protected] "{" 26 [email protected] " "
27 [email protected] "}" 27 [email protected] "}"
28 [email protected] " "
29 [email protected] "}"
30 [email protected] "\n" 28 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
index 2a50f796c..9ca2165ba 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
@@ -41,7 +41,6 @@ [email protected]
41 [email protected] "(" 41 [email protected] "("
42 [email protected] ")" 42 [email protected] ")"
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected] "{"
45 [email protected] "{" 45 [email protected] "}"
46 [email protected] "}"
47 [email protected] "\n" 46 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast
index 7f87e05ec..b209f67f8 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast
@@ -35,9 +35,8 @@ [email protected]
35 [email protected] ">" 35 [email protected] ">"
36 [email protected] " " 36 [email protected] " "
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected] "{"
39 [email protected] "{" 39 [email protected] "}"
40 [email protected] "}"
41 [email protected] "\n" 40 [email protected] "\n"
42 [email protected] 41 [email protected]
43 [email protected] "fn" 42 [email protected] "fn"
@@ -77,7 +76,6 @@ [email protected]
77 [email protected] ">" 76 [email protected] ">"
78 [email protected] " " 77 [email protected] " "
79 [email protected] 78 [email protected]
80 [email protected] 79 [email protected] "{"
81 [email protected] "{" 80 [email protected] "}"
82 [email protected] "}"
83 [email protected] "\n" 81 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast
index 5f846177e..70232a3b2 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast
@@ -9,88 +9,87 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "_"
19 [email protected] "_" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "="
21 [email protected] "=" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "a"
27 [email protected] "a" 27 [email protected] ";"
28 [email protected] ";" 28 [email protected] "\n "
29 [email protected] "\n " 29 [email protected]
30 [email protected] 30 [email protected] "let"
31 [email protected] "let" 31 [email protected] " "
32 [email protected] " " 32 [email protected]
33 [email protected] 33 [email protected] "_"
34 [email protected] "_" 34 [email protected] " "
35 [email protected] " " 35 [email protected] "="
36 [email protected] "=" 36 [email protected] " "
37 [email protected] " " 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected]
42 [email protected] 42 [email protected] "a"
43 [email protected] "a" 43 [email protected] "::"
44 [email protected] "::" 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected] "b"
47 [email protected] "b" 47 [email protected] ";"
48 [email protected] ";" 48 [email protected] "\n "
49 [email protected] "\n " 49 [email protected]
50 [email protected] 50 [email protected] "let"
51 [email protected] "let" 51 [email protected] " "
52 [email protected] " " 52 [email protected]
53 [email protected] 53 [email protected] "_"
54 [email protected] "_" 54 [email protected] " "
55 [email protected] " " 55 [email protected] "="
56 [email protected] "=" 56 [email protected] " "
57 [email protected] " " 57 [email protected]
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected]
60 [email protected] 60 [email protected] "::"
61 [email protected] "::" 61 [email protected]
62 [email protected] 62 [email protected] "a"
63 [email protected] "a" 63 [email protected]
64 [email protected] 64 [email protected] "::"
65 [email protected] "::" 65 [email protected] "<"
66 [email protected] "<" 66 [email protected]
67 [email protected] 67 [email protected]
68 [email protected] 68 [email protected]
69 [email protected] 69 [email protected]
70 [email protected] 70 [email protected]
71 [email protected] 71 [email protected] "b"
72 [email protected] "b" 72 [email protected] ">"
73 [email protected] ">" 73 [email protected] ";"
74 [email protected] ";" 74 [email protected] "\n "
75 [email protected] "\n " 75 [email protected]
76 [email protected] 76 [email protected] "let"
77 [email protected] "let" 77 [email protected] " "
78 [email protected] " " 78 [email protected]
79 [email protected] 79 [email protected] "_"
80 [email protected] "_" 80 [email protected] " "
81 [email protected] " " 81 [email protected] "="
82 [email protected] "=" 82 [email protected] " "
83 [email protected] " " 83 [email protected]
84 [email protected] 84 [email protected]
85 [email protected] 85 [email protected]
86 [email protected] 86 [email protected]
87 [email protected] 87 [email protected] "format"
88 [email protected] "format" 88 [email protected] "!"
89 [email protected] "!" 89 [email protected]
90 [email protected] 90 [email protected] "("
91 [email protected] "(" 91 [email protected] ")"
92 [email protected] ")" 92 [email protected] ";"
93 [email protected] ";" 93 [email protected] "\n"
94 [email protected] "\n" 94 [email protected] "}"
95 [email protected] "}"
96 [email protected] "\n" 95 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast b/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast
index d9310e82e..03c52525e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast
@@ -9,69 +9,68 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "match"
16 [email protected] "match" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "("
19 [email protected] "(" 19 [email protected] ")"
20 [email protected] ")" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "{"
23 [email protected] "{" 23 [email protected] "\n "
24 [email protected] "\n " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "-"
27 [email protected] "-" 27 [email protected]
28 [email protected] 28 [email protected] "1"
29 [email protected] "1" 29 [email protected] " "
30 [email protected] " " 30 [email protected] "=>"
31 [email protected] "=>" 31 [email protected] " "
32 [email protected] " " 32 [email protected]
33 [email protected] 33 [email protected] "("
34 [email protected] "(" 34 [email protected] ")"
35 [email protected] ")" 35 [email protected] ","
36 [email protected] "," 36 [email protected] "\n "
37 [email protected] "\n " 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected] "92"
41 [email protected] "92" 41 [email protected] " "
42 [email protected] " " 42 [email protected] "=>"
43 [email protected] "=>" 43 [email protected] " "
44 [email protected] " " 44 [email protected]
45 [email protected] 45 [email protected] "("
46 [email protected] "(" 46 [email protected] ")"
47 [email protected] ")" 47 [email protected] ","
48 [email protected] "," 48 [email protected] "\n "
49 [email protected] "\n " 49 [email protected]
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected] "\'c\'"
53 [email protected] "\'c\'" 53 [email protected] " "
54 [email protected] " " 54 [email protected] "=>"
55 [email protected] "=>" 55 [email protected] " "
56 [email protected] " " 56 [email protected]
57 [email protected] 57 [email protected] "("
58 [email protected] "(" 58 [email protected] ")"
59 [email protected] ")" 59 [email protected] ","
60 [email protected] "," 60 [email protected] "\n "
61 [email protected] "\n " 61 [email protected]
62 [email protected] 62 [email protected]
63 [email protected] 63 [email protected]
64 [email protected] 64 [email protected] "\"hello\""
65 [email protected] "\"hello\"" 65 [email protected] " "
66 [email protected] " " 66 [email protected] "=>"
67 [email protected] "=>" 67 [email protected] " "
68 [email protected] " " 68 [email protected]
69 [email protected] 69 [email protected] "("
70 [email protected] "(" 70 [email protected] ")"
71 [email protected] ")" 71 [email protected] ","
72 [email protected] "," 72 [email protected] "\n "
73 [email protected] "\n " 73 [email protected] "}"
74 [email protected] "}" 74 [email protected] "\n"
75 [email protected] "\n" 75 [email protected] "}"
76 [email protected] "}"
77 [email protected] "\n" 76 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast
index 2e727c1ef..24f89b83f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast
@@ -105,7 +105,6 @@ [email protected]
105 [email protected] "\'a" 105 [email protected] "\'a"
106 [email protected] "\n" 106 [email protected] "\n"
107 [email protected] 107 [email protected]
108 [email protected] 108 [email protected] "{"
109 [email protected] "{" 109 [email protected] "}"
110 [email protected] "}"
111 [email protected] "\n" 110 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast
index c1e58f9bf..bb43d1eaf 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast
@@ -11,7 +11,6 @@ [email protected]
11 [email protected] ")" 11 [email protected] ")"
12 [email protected] " " 12 [email protected] " "
13 [email protected] 13 [email protected]
14 [email protected] 14 [email protected] "{"
15 [email protected] "{" 15 [email protected] "}"
16 [email protected] "}"
17 [email protected] "\n" 16 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast
index 9bdf2379f..8bd94a868 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast
@@ -9,75 +9,74 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "match"
16 [email protected] "match" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "92"
19 [email protected] "92" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected] "{"
22 [email protected] "{" 22 [email protected] "\n "
23 [email protected] "\n " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected] "0"
28 [email protected] "0" 28 [email protected] " "
29 [email protected] " " 29 [email protected] "..."
30 [email protected] "..." 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected] "100"
34 [email protected] "100" 34 [email protected] " "
35 [email protected] " " 35 [email protected] "=>"
36 [email protected] "=>" 36 [email protected] " "
37 [email protected] " " 37 [email protected]
38 [email protected] 38 [email protected] "("
39 [email protected] "(" 39 [email protected] ")"
40 [email protected] ")" 40 [email protected] ","
41 [email protected] "," 41 [email protected] "\n "
42 [email protected] "\n " 42 [email protected]
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected] "101"
47 [email protected] "101" 47 [email protected] " "
48 [email protected] " " 48 [email protected] "..="
49 [email protected] "..=" 49 [email protected] " "
50 [email protected] " " 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected] "200"
53 [email protected] "200" 53 [email protected] " "
54 [email protected] " " 54 [email protected] "=>"
55 [email protected] "=>" 55 [email protected] " "
56 [email protected] " " 56 [email protected]
57 [email protected] 57 [email protected] "("
58 [email protected] "(" 58 [email protected] ")"
59 [email protected] ")" 59 [email protected] ","
60 [email protected] "," 60 [email protected] "\n "
61 [email protected] "\n " 61 [email protected]
62 [email protected] 62 [email protected]
63 [email protected] 63 [email protected]
64 [email protected] 64 [email protected]
65 [email protected] 65 [email protected] "200"
66 [email protected] "200" 66 [email protected] " "
67 [email protected] " " 67 [email protected] ".."
68 [email protected] ".." 68 [email protected] " "
69 [email protected] " " 69 [email protected]
70 [email protected] 70 [email protected]
71 [email protected] 71 [email protected] "301"
72 [email protected] "301" 72 [email protected] "=>"
73 [email protected] "=>" 73 [email protected] " "
74 [email protected] " " 74 [email protected]
75 [email protected] 75 [email protected] "("
76 [email protected] "(" 76 [email protected] ")"
77 [email protected] ")" 77 [email protected] ","
78 [email protected] "," 78 [email protected] "\n "
79 [email protected] "\n " 79 [email protected] "}"
80 [email protected] "}" 80 [email protected] "\n"
81 [email protected] "\n" 81 [email protected] "}"
82 [email protected] "}"
83 [email protected] "\n" 82 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast b/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast
index e9ca92364..9210f155c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast
@@ -9,52 +9,50 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "match"
16 [email protected] "match" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "("
19 [email protected] "(" 19 [email protected] ")"
20 [email protected] ")" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "{"
23 [email protected] "{" 23 [email protected] "\n "
24 [email protected] "\n " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "_"
27 [email protected] "_" 27 [email protected] " "
28 [email protected] " " 28 [email protected] "=>"
29 [email protected] "=>" 29 [email protected] " "
30 [email protected] " " 30 [email protected]
31 [email protected] 31 [email protected] "("
32 [email protected] "(" 32 [email protected] ")"
33 [email protected] ")" 33 [email protected] ","
34 [email protected] "," 34 [email protected] "\n "
35 [email protected] "\n " 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected] "_"
38 [email protected] "_" 38 [email protected] " "
39 [email protected] " " 39 [email protected] "=>"
40 [email protected] "=>" 40 [email protected] " "
41 [email protected] " " 41 [email protected]
42 [email protected] 42 [email protected] "{"
43 [email protected] 43 [email protected] "}"
44 [email protected] "{" 44 [email protected] "\n "
45 [email protected] "}" 45 [email protected]
46 [email protected] "\n " 46 [email protected]
47 [email protected] 47 [email protected] "_"
48 [email protected] 48 [email protected] " "
49 [email protected] "_" 49 [email protected] "=>"
50 [email protected] " " 50 [email protected] " "
51 [email protected] "=>" 51 [email protected]
52 [email protected] " " 52 [email protected] "("
53 [email protected] 53 [email protected] ")"
54 [email protected] "(" 54 [email protected] "\n "
55 [email protected] ")" 55 [email protected] "}"
56 [email protected] "\n " 56 [email protected] "\n"
57 [email protected] "}" 57 [email protected] "}"
58 [email protected] "\n"
59 [email protected] "}"
60 [email protected] "\n" 58 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast b/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast
index 15d332938..850465d82 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast
@@ -9,117 +9,116 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "S"
20 [email protected] "S" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "{"
23 [email protected] "{" 23 [email protected] "}"
24 [email protected] "}" 24 [email protected] ";"
25 [email protected] ";" 25 [email protected] "\n "
26 [email protected] "\n " 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected] "S"
32 [email protected] "S" 32 [email protected] " "
33 [email protected] " " 33 [email protected]
34 [email protected] 34 [email protected] "{"
35 [email protected] "{" 35 [email protected] " "
36 [email protected] " " 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected] "x"
42 [email protected] "x" 42 [email protected] ","
43 [email protected] "," 43 [email protected] " "
44 [email protected] " " 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected] "y"
47 [email protected] "y" 47 [email protected] ":"
48 [email protected] ":" 48 [email protected] " "
49 [email protected] " " 49 [email protected]
50 [email protected] 50 [email protected] "32"
51 [email protected] "32" 51 [email protected] ","
52 [email protected] "," 52 [email protected] " "
53 [email protected] " " 53 [email protected] "}"
54 [email protected] "}" 54 [email protected] ";"
55 [email protected] ";" 55 [email protected] "\n "
56 [email protected] "\n " 56 [email protected]
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected]
60 [email protected] 60 [email protected]
61 [email protected] 61 [email protected] "S"
62 [email protected] "S" 62 [email protected] " "
63 [email protected] " " 63 [email protected]
64 [email protected] 64 [email protected] "{"
65 [email protected] "{" 65 [email protected] " "
66 [email protected] " " 66 [email protected]
67 [email protected] 67 [email protected]
68 [email protected] 68 [email protected]
69 [email protected] 69 [email protected]
70 [email protected] 70 [email protected]
71 [email protected] 71 [email protected] "x"
72 [email protected] "x" 72 [email protected] ","
73 [email protected] "," 73 [email protected] " "
74 [email protected] " " 74 [email protected]
75 [email protected] 75 [email protected]
76 [email protected] 76 [email protected] "y"
77 [email protected] "y" 77 [email protected] ":"
78 [email protected] ":" 78 [email protected] " "
79 [email protected] " " 79 [email protected]
80 [email protected] 80 [email protected] "32"
81 [email protected] "32" 81 [email protected] ","
82 [email protected] "," 82 [email protected] " "
83 [email protected] " " 83 [email protected] ".."
84 [email protected] ".." 84 [email protected]
85 [email protected] 85 [email protected]
86 [email protected] 86 [email protected]
87 [email protected] 87 [email protected]
88 [email protected] 88 [email protected]
89 [email protected] 89 [email protected]
90 [email protected] 90 [email protected] "Default"
91 [email protected] "Default" 91 [email protected] "::"
92 [email protected] "::" 92 [email protected]
93 [email protected] 93 [email protected]
94 [email protected] 94 [email protected] "default"
95 [email protected] "default" 95 [email protected]
96 [email protected] 96 [email protected] "("
97 [email protected] "(" 97 [email protected] ")"
98 [email protected] ")" 98 [email protected] " "
99 [email protected] " " 99 [email protected] "}"
100 [email protected] "}" 100 [email protected] ";"
101 [email protected] ";" 101 [email protected] "\n "
102 [email protected] "\n " 102 [email protected]
103 [email protected] 103 [email protected]
104 [email protected] 104 [email protected]
105 [email protected] 105 [email protected]
106 [email protected] 106 [email protected]
107 [email protected] 107 [email protected] "TupleStruct"
108 [email protected] "TupleStruct" 108 [email protected] " "
109 [email protected] " " 109 [email protected]
110 [email protected] 110 [email protected] "{"
111 [email protected] "{" 111 [email protected] " "
112 [email protected] " " 112 [email protected]
113 [email protected] 113 [email protected]
114 [email protected] 114 [email protected] "0"
115 [email protected] "0" 115 [email protected] ":"
116 [email protected] ":" 116 [email protected] " "
117 [email protected] " " 117 [email protected]
118 [email protected] 118 [email protected] "1"
119 [email protected] "1" 119 [email protected] " "
120 [email protected] " " 120 [email protected] "}"
121 [email protected] "}" 121 [email protected] ";"
122 [email protected] ";" 122 [email protected] "\n"
123 [email protected] "\n" 123 [email protected] "}"
124 [email protected] "}"
125 [email protected] "\n" 124 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast b/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast
index 3cce106e4..02656df31 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast
@@ -9,9 +9,8 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "}"
14 [email protected] "}"
15 [email protected] "\n" 14 [email protected] "\n"
16 [email protected] 15 [email protected]
17 [email protected] 16 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast
index 5e1b4cc68..445d8d309 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast
@@ -9,124 +9,113 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "if"
17 [email protected] "if" 17 [email protected] " "
18 [email protected] " " 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "true"
21 [email protected] "true" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "{"
24 [email protected] 24 [email protected] "}"
25 [email protected] "{" 25 [email protected] ";"
26 [email protected] "}" 26 [email protected] "\n "
27 [email protected] ";" 27 [email protected]
28 [email protected] "\n " 28 [email protected]
29 [email protected] 29 [email protected] "if"
30 [email protected] 30 [email protected] " "
31 [email protected] "if" 31 [email protected]
32 [email protected] " " 32 [email protected]
33 [email protected] 33 [email protected] "true"
34 [email protected] 34 [email protected] " "
35 [email protected] "true" 35 [email protected]
36 [email protected] " " 36 [email protected] "{"
37 [email protected] 37 [email protected] "}"
38 [email protected] 38 [email protected] " "
39 [email protected] "{" 39 [email protected] "else"
40 [email protected] "}" 40 [email protected] " "
41 [email protected] " " 41 [email protected]
42 [email protected] "else" 42 [email protected] "{"
43 [email protected] " " 43 [email protected] "}"
44 [email protected] 44 [email protected] ";"
45 [email protected] 45 [email protected] "\n "
46 [email protected] "{" 46 [email protected]
47 [email protected] "}" 47 [email protected]
48 [email protected] ";" 48 [email protected] "if"
49 [email protected] "\n " 49 [email protected] " "
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] "if" 52 [email protected] "true"
53 [email protected] " " 53 [email protected] " "
54 [email protected] 54 [email protected]
55 [email protected] 55 [email protected] "{"
56 [email protected] "true" 56 [email protected] "}"
57 [email protected] " " 57 [email protected] " "
58 [email protected] 58 [email protected] "else"
59 [email protected] 59 [email protected] " "
60 [email protected] "{" 60 [email protected]
61 [email protected] "}" 61 [email protected] "if"
62 [email protected] " " 62 [email protected] " "
63 [email protected] "else" 63 [email protected]
64 [email protected] " " 64 [email protected]
65 [email protected] 65 [email protected] "false"
66 [email protected] "if" 66 [email protected] " "
67 [email protected] " " 67 [email protected]
68 [email protected] 68 [email protected] "{"
69 [email protected] 69 [email protected] "}"
70 [email protected] "false" 70 [email protected] " "
71 [email protected] " " 71 [email protected] "else"
72 [email protected] 72 [email protected] " "
73 [email protected] 73 [email protected]
74 [email protected] "{" 74 [email protected] "{"
75 [email protected] "}" 75 [email protected] "}"
76 [email protected] " " 76 [email protected] ";"
77 [email protected] "else" 77 [email protected] "\n "
78 [email protected] " " 78 [email protected]
79 [email protected] 79 [email protected]
80 [email protected] 80 [email protected] "if"
81 [email protected] "{" 81 [email protected] " "
82 [email protected] "}" 82 [email protected]
83 [email protected] ";" 83 [email protected]
84 [email protected] "\n " 84 [email protected]
85 [email protected] 85 [email protected]
86 [email protected] 86 [email protected]
87 [email protected] "if" 87 [email protected] "S"
88 [email protected] " " 88 [email protected] " "
89 [email protected] 89 [email protected]
90 [email protected] 90 [email protected] "{"
91 [email protected] 91 [email protected] "}"
92 [email protected] 92 [email protected] ";"
93 [email protected] 93 [email protected] "\n "
94 [email protected] "S" 94 [email protected]
95 [email protected] " " 95 [email protected]
96 [email protected] 96 [email protected] "if"
97 [email protected] 97 [email protected] " "
98 [email protected] "{" 98 [email protected]
99 [email protected] "}" 99 [email protected]
100 [email protected] ";" 100 [email protected] "{"
101 [email protected] "\n " 101 [email protected] " "
102 [email protected] 102 [email protected]
103 [email protected] 103 [email protected] "true"
104 [email protected] "if" 104 [email protected] " "
105 [email protected] " " 105 [email protected] "}"
106 [email protected] 106 [email protected] " "
107 [email protected] 107 [email protected]
108 [email protected] 108 [email protected] "{"
109 [email protected] "{" 109 [email protected] " "
110 [email protected] " " 110 [email protected] "}"
111 [email protected] 111 [email protected] " "
112 [email protected] "true" 112 [email protected] "else"
113 [email protected] " " 113 [email protected] " "
114 [email protected] "}" 114 [email protected]
115 [email protected] " " 115 [email protected] "{"
116 [email protected] 116 [email protected] " "
117 [email protected] 117 [email protected] "}"
118 [email protected] "{" 118 [email protected] ";"
119 [email protected] " " 119 [email protected] "\n"
120 [email protected] "}" 120 [email protected] "}"
121 [email protected] " "
122 [email protected] "else"
123 [email protected] " "
124 [email protected]
125 [email protected]
126 [email protected] "{"
127 [email protected] " "
128 [email protected] "}"
129 [email protected] ";"
130 [email protected] "\n"
131 [email protected] "}"
132 [email protected] "\n" 121 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast b/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast
index 108e5c5cc..177bb5514 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast
@@ -9,144 +9,143 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "match"
17 [email protected] "match" 17 [email protected] " "
18 [email protected] " " 18 [email protected]
19 [email protected] 19 [email protected] "("
20 [email protected] "(" 20 [email protected] ")"
21 [email protected] ")" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "{"
24 [email protected] "{" 24 [email protected] "\n "
25 [email protected] "\n " 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected] "_"
28 [email protected] "_" 28 [email protected] " "
29 [email protected] " " 29 [email protected] "=>"
30 [email protected] "=>" 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected] "("
33 [email protected] "(" 33 [email protected] ")"
34 [email protected] ")" 34 [email protected] ","
35 [email protected] "," 35 [email protected] "\n "
36 [email protected] "\n " 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected] "_"
39 [email protected] "_" 39 [email protected] " "
40 [email protected] " " 40 [email protected]
41 [email protected] 41 [email protected] "if"
42 [email protected] "if" 42 [email protected] " "
43 [email protected] " " 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected] "Test"
49 [email protected] "Test" 49 [email protected] " "
50 [email protected] " " 50 [email protected] ">"
51 [email protected] ">" 51 [email protected] " "
52 [email protected] " " 52 [email protected]
53 [email protected] 53 [email protected]
54 [email protected] 54 [email protected]
55 [email protected] 55 [email protected]
56 [email protected] 56 [email protected] "Test"
57 [email protected] "Test" 57 [email protected]
58 [email protected] 58 [email protected] "{"
59 [email protected] "{" 59 [email protected]
60 [email protected] 60 [email protected]
61 [email protected] 61 [email protected] "field"
62 [email protected] "field" 62 [email protected] ":"
63 [email protected] ":" 63 [email protected] " "
64 [email protected] " " 64 [email protected]
65 [email protected] 65 [email protected] "0"
66 [email protected] "0" 66 [email protected] "}"
67 [email protected] "}" 67 [email protected] " "
68 [email protected] " " 68 [email protected] "=>"
69 [email protected] "=>" 69 [email protected] " "
70 [email protected] " " 70 [email protected]
71 [email protected] 71 [email protected] "("
72 [email protected] "(" 72 [email protected] ")"
73 [email protected] ")" 73 [email protected] ","
74 [email protected] "," 74 [email protected] "\n "
75 [email protected] "\n " 75 [email protected]
76 [email protected] 76 [email protected]
77 [email protected] 77 [email protected]
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected] "X"
80 [email protected] "X" 80 [email protected] " "
81 [email protected] " " 81 [email protected] "|"
82 [email protected] "|" 82 [email protected] " "
83 [email protected] " " 83 [email protected]
84 [email protected] 84 [email protected]
85 [email protected] 85 [email protected] "Y"
86 [email protected] "Y" 86 [email protected] " "
87 [email protected] " " 87 [email protected]
88 [email protected] 88 [email protected] "if"
89 [email protected] "if" 89 [email protected] " "
90 [email protected] " " 90 [email protected]
91 [email protected] 91 [email protected]
92 [email protected] 92 [email protected]
93 [email protected] 93 [email protected]
94 [email protected] 94 [email protected] "Z"
95 [email protected] "Z" 95 [email protected] " "
96 [email protected] " " 96 [email protected] "=>"
97 [email protected] "=>" 97 [email protected] " "
98 [email protected] " " 98 [email protected]
99 [email protected] 99 [email protected] "("
100 [email protected] "(" 100 [email protected] ")"
101 [email protected] ")" 101 [email protected] ","
102 [email protected] "," 102 [email protected] "\n "
103 [email protected] "\n " 103 [email protected]
104 [email protected] 104 [email protected] "|"
105 [email protected] "|" 105 [email protected] " "
106 [email protected] " " 106 [email protected]
107 [email protected] 107 [email protected]
108 [email protected] 108 [email protected]
109 [email protected] 109 [email protected] "X"
110 [email protected] "X" 110 [email protected] " "
111 [email protected] " " 111 [email protected] "|"
112 [email protected] "|" 112 [email protected] " "
113 [email protected] " " 113 [email protected]
114 [email protected] 114 [email protected]
115 [email protected] 115 [email protected] "Y"
116 [email protected] "Y" 116 [email protected] " "
117 [email protected] " " 117 [email protected]
118 [email protected] 118 [email protected] "if"
119 [email protected] "if" 119 [email protected] " "
120 [email protected] " " 120 [email protected]
121 [email protected] 121 [email protected]
122 [email protected] 122 [email protected]
123 [email protected] 123 [email protected]
124 [email protected] 124 [email protected] "Z"
125 [email protected] "Z" 125 [email protected] " "
126 [email protected] " " 126 [email protected] "=>"
127 [email protected] "=>" 127 [email protected] " "
128 [email protected] " " 128 [email protected]
129 [email protected] 129 [email protected] "("
130 [email protected] "(" 130 [email protected] ")"
131 [email protected] ")" 131 [email protected] ","
132 [email protected] "," 132 [email protected] "\n "
133 [email protected] "\n " 133 [email protected]
134 [email protected] 134 [email protected] "|"
135 [email protected] "|" 135 [email protected] " "
136 [email protected] " " 136 [email protected]
137 [email protected] 137 [email protected]
138 [email protected] 138 [email protected] "X"
139 [email protected] "X" 139 [email protected] " "
140 [email protected] " " 140 [email protected] "=>"
141 [email protected] "=>" 141 [email protected] " "
142 [email protected] " " 142 [email protected]
143 [email protected] 143 [email protected] "("
144 [email protected] "(" 144 [email protected] ")"
145 [email protected] ")" 145 [email protected] ","
146 [email protected] "," 146 [email protected] "\n "
147 [email protected] "\n " 147 [email protected] "}"
148 [email protected] "}" 148 [email protected] ";"
149 [email protected] ";" 149 [email protected] "\n"
150 [email protected] "\n" 150 [email protected] "}"
151 [email protected] "}"
152 [email protected] "\n" 151 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
index 1e888063e..f8ff7079b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
@@ -9,45 +9,42 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "_"
19 [email protected] "_" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "="
21 [email protected] "=" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected] "{"
25 [email protected] 25 [email protected]
26 [email protected] "{" 26 [email protected] "1"
27 [email protected] 27 [email protected] "}"
28 [email protected] "1" 28 [email protected] " "
29 [email protected] "}" 29 [email protected] "&"
30 [email protected] " " 30 [email protected] " "
31 [email protected] "&" 31 [email protected]
32 [email protected] " " 32 [email protected] "2"
33 [email protected] 33 [email protected] ";"
34 [email protected] "2" 34 [email protected] "\n "
35 [email protected] ";" 35 [email protected]
36 [email protected] "\n " 36 [email protected]
37 [email protected] 37 [email protected] "{"
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected] "1"
40 [email protected] "{" 40 [email protected] "}"
41 [email protected] 41 [email protected] " "
42 [email protected] "1" 42 [email protected]
43 [email protected] "}" 43 [email protected]
44 [email protected] " " 44 [email protected] "&"
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected] "2"
47 [email protected] "&" 47 [email protected] ";"
48 [email protected] 48 [email protected] "\n"
49 [email protected] "2" 49 [email protected] "}"
50 [email protected] ";"
51 [email protected] "\n"
52 [email protected] "}"
53 [email protected] "\n" 50 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast
index 218b3ec9e..07b3d1435 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast
@@ -9,88 +9,85 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "match"
17 [email protected] "match" 17 [email protected] " "
18 [email protected] " " 18 [email protected]
19 [email protected] 19 [email protected] "("
20 [email protected] "(" 20 [email protected] ")"
21 [email protected] ")" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "{"
24 [email protected] "{" 24 [email protected] " "
25 [email protected] " " 25 [email protected] "}"
26 [email protected] "}" 26 [email protected] ";"
27 [email protected] ";" 27 [email protected] "\n "
28 [email protected] "\n " 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected] "match"
31 [email protected] "match" 31 [email protected] " "
32 [email protected] " " 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected] "S"
37 [email protected] "S" 37 [email protected] " "
38 [email protected] " " 38 [email protected]
39 [email protected] 39 [email protected] "{"
40 [email protected] "{" 40 [email protected] "}"
41 [email protected] "}" 41 [email protected] ";"
42 [email protected] ";" 42 [email protected] "\n "
43 [email protected] "\n " 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected] "match"
46 [email protected] "match" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] 48 [email protected] "{"
49 [email protected] 49 [email protected] " "
50 [email protected] "{" 50 [email protected] "}"
51 [email protected] " " 51 [email protected] " "
52 [email protected] "}" 52 [email protected]
53 [email protected] " " 53 [email protected] "{"
54 [email protected] 54 [email protected] " "
55 [email protected] "{" 55 [email protected]
56 [email protected] " " 56 [email protected]
57 [email protected] 57 [email protected] "_"
58 [email protected] 58 [email protected] " "
59 [email protected] "_" 59 [email protected] "=>"
60 [email protected] " " 60 [email protected] " "
61 [email protected] "=>" 61 [email protected]
62 [email protected] " " 62 [email protected] "("
63 [email protected] 63 [email protected] ")"
64 [email protected] "(" 64 [email protected] " "
65 [email protected] ")" 65 [email protected] "}"
66 [email protected] " " 66 [email protected] ";"
67 [email protected] "}" 67 [email protected] "\n "
68 [email protected] ";" 68 [email protected]
69 [email protected] "\n " 69 [email protected]
70 [email protected] 70 [email protected] "match"
71 [email protected] 71 [email protected] " "
72 [email protected] "match" 72 [email protected]
73 [email protected] " " 73 [email protected] "{"
74 [email protected] 74 [email protected] " "
75 [email protected] 75 [email protected]
76 [email protected] "{" 76 [email protected]
77 [email protected] " " 77 [email protected]
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected] "S"
80 [email protected] 80 [email protected] " "
81 [email protected] 81 [email protected]
82 [email protected] "S" 82 [email protected] "{"
83 [email protected] " " 83 [email protected] "}"
84 [email protected] 84 [email protected] " "
85 [email protected] "{" 85 [email protected] "}"
86 [email protected] "}" 86 [email protected] " "
87 [email protected] " " 87 [email protected]
88 [email protected] "}" 88 [email protected] "{"
89 [email protected] " " 89 [email protected] "}"
90 [email protected] 90 [email protected] ";"
91 [email protected] "{" 91 [email protected] "\n"
92 [email protected] "}" 92 [email protected] "}"
93 [email protected] ";"
94 [email protected] "\n"
95 [email protected] "}"
96 [email protected] "\n" 93 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast
index b8171dc9c..665f716a8 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast
@@ -9,21 +9,20 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "return"
17 [email protected] "return" 17 [email protected] ";"
18 [email protected] ";" 18 [email protected] "\n "
19 [email protected] "\n " 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected] "return"
22 [email protected] "return" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected] "92"
25 [email protected] "92" 25 [email protected] ";"
26 [email protected] ";" 26 [email protected] "\n"
27 [email protected] "\n" 27 [email protected] "}"
28 [email protected] "}"
29 [email protected] "\n" 28 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
index c2a73ef25..3fd3a4391 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
@@ -9,55 +9,51 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "match"
16 [email protected] "match" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "("
19 [email protected] "(" 19 [email protected] ")"
20 [email protected] ")" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "{"
23 [email protected] "{" 23 [email protected] "\n "
24 [email protected] "\n " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "_"
27 [email protected] "_" 27 [email protected] " "
28 [email protected] " " 28 [email protected] "=>"
29 [email protected] "=>" 29 [email protected] " "
30 [email protected] " " 30 [email protected]
31 [email protected] 31 [email protected] "{"
32 [email protected] 32 [email protected] "}"
33 [email protected] "{" 33 [email protected] "\n "
34 [email protected] "}" 34 [email protected]
35 [email protected] "\n " 35 [email protected]
36 [email protected] 36 [email protected] "("
37 [email protected] 37 [email protected] ")"
38 [email protected] "(" 38 [email protected] " "
39 [email protected] ")" 39 [email protected] "=>"
40 [email protected] " " 40 [email protected] " "
41 [email protected] "=>" 41 [email protected]
42 [email protected] " " 42 [email protected] "{"
43 [email protected] 43 [email protected] "}"
44 [email protected] 44 [email protected] "\n "
45 [email protected] "{" 45 [email protected]
46 [email protected] "}" 46 [email protected]
47 [email protected] "\n " 47 [email protected] "["
48 [email protected] 48 [email protected] "]"
49 [email protected] 49 [email protected] " "
50 [email protected] "[" 50 [email protected] "=>"
51 [email protected] "]" 51 [email protected] " "
52 [email protected] " " 52 [email protected]
53 [email protected] "=>" 53 [email protected] "{"
54 [email protected] " " 54 [email protected] "}"
55 [email protected] 55 [email protected] "\n "
56 [email protected] 56 [email protected] "}"
57 [email protected] "{" 57 [email protected] "\n"
58 [email protected] "}" 58 [email protected] "}"
59 [email protected] "\n "
60 [email protected] "}"
61 [email protected] "\n"
62 [email protected] "}"
63 [email protected] "\n" 59 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast
index 39a86d002..97c6e6a9d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast
@@ -9,9 +9,8 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "}"
14 [email protected] "}"
15 [email protected] "\n" 14 [email protected] "\n"
16 [email protected] 15 [email protected]
17 [email protected] "fn" 16 [email protected] "fn"
@@ -23,22 +22,21 @@ [email protected]
23 [email protected] ")" 22 [email protected] ")"
24 [email protected] " " 23 [email protected] " "
25 [email protected] 24 [email protected]
26 [email protected] 25 [email protected] "{"
27 [email protected] "{" 26 [email protected] " "
28 [email protected] " " 27 [email protected]
29 [email protected] 28 [email protected] "let"
30 [email protected] "let" 29 [email protected] " "
31 [email protected] " " 30 [email protected]
32 [email protected] 31 [email protected] "_"
33 [email protected] "_" 32 [email protected] " "
34 [email protected] " " 33 [email protected] "="
35 [email protected] "=" 34 [email protected] " "
36 [email protected] " " 35 [email protected]
37 [email protected] 36 [email protected] "1"
38 [email protected] "1" 37 [email protected] ";"
39 [email protected] ";" 38 [email protected] " "
40 [email protected] " " 39 [email protected] "}"
41 [email protected] "}"
42 [email protected] "\n" 40 [email protected] "\n"
43 [email protected] 41 [email protected]
44 [email protected] "fn" 42 [email protected] "fn"
@@ -50,20 +48,19 @@ [email protected]
50 [email protected] ")" 48 [email protected] ")"
51 [email protected] " " 49 [email protected] " "
52 [email protected] 50 [email protected]
53 [email protected] 51 [email protected] "{"
54 [email protected] "{" 52 [email protected] " "
55 [email protected] " " 53 [email protected]
56 [email protected] 54 [email protected]
57 [email protected] 55 [email protected] "1"
58 [email protected] "1" 56 [email protected] ";"
59 [email protected] ";" 57 [email protected] " "
60 [email protected] " " 58 [email protected]
61 [email protected] 59 [email protected]
62 [email protected] 60 [email protected] "2"
63 [email protected] "2" 61 [email protected] ";"
64 [email protected] ";" 62 [email protected] " "
65 [email protected] " " 63 [email protected] "}"
66 [email protected] "}"
67 [email protected] "\n" 64 [email protected] "\n"
68 [email protected] 65 [email protected]
69 [email protected] "fn" 66 [email protected] "fn"
@@ -75,16 +72,15 @@ [email protected]
75 [email protected] ")" 72 [email protected] ")"
76 [email protected] " " 73 [email protected] " "
77 [email protected] 74 [email protected]
78 [email protected] 75 [email protected] "{"
79 [email protected] "{" 76 [email protected] " "
80 [email protected] " " 77 [email protected]
81 [email protected] 78 [email protected]
82 [email protected] 79 [email protected] "1"
83 [email protected] "1" 80 [email protected] ";"
84 [email protected] ";" 81 [email protected] " "
85 [email protected] " " 82 [email protected]
86 [email protected] 83 [email protected] "2"
87 [email protected] "2" 84 [email protected] " "
88 [email protected] " " 85 [email protected] "}"
89 [email protected] "}"
90 [email protected] "\n" 86 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast
index 9621ba59e..e2c1a507d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast
@@ -34,7 +34,6 @@ [email protected]
34 [email protected] "Copy" 34 [email protected] "Copy"
35 [email protected] " " 35 [email protected] " "
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected] "{"
38 [email protected] "{" 38 [email protected] "}"
39 [email protected] "}"
40 [email protected] "\n" 39 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast
index ed9d62c5f..4f3a8ed24 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast
@@ -9,18 +9,17 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "x"
21 [email protected] "x" 21 [email protected] "?"
22 [email protected] "?" 22 [email protected] ";"
23 [email protected] ";" 23 [email protected] "\n"
24 [email protected] "\n" 24 [email protected] "}"
25 [email protected] "}"
26 [email protected] "\n" 25 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast b/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast
index 5141ce70d..462d1a8bb 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast
@@ -9,88 +9,87 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "x"
20 [email protected] "x" 20 [email protected] " "
21 [email protected] " " 21 [email protected] "="
22 [email protected] "=" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "1"
26 [email protected] "1" 26 [email protected] ".."
27 [email protected] ".." 27 [email protected] ";"
28 [email protected] ";" 28 [email protected] "\n "
29 [email protected] "\n " 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected] "match"
32 [email protected] "match" 32 [email protected] " "
33 [email protected] " " 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "1"
36 [email protected] "1" 36 [email protected] ".."
37 [email protected] ".." 37 [email protected] " "
38 [email protected] " " 38 [email protected]
39 [email protected] 39 [email protected] "{"
40 [email protected] "{" 40 [email protected] " "
41 [email protected] " " 41 [email protected]
42 [email protected] 42 [email protected]
43 [email protected] 43 [email protected] "_"
44 [email protected] "_" 44 [email protected] " "
45 [email protected] " " 45 [email protected] "=>"
46 [email protected] "=>" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] 48 [email protected] "("
49 [email protected] "(" 49 [email protected] ")"
50 [email protected] ")" 50 [email protected] " "
51 [email protected] " " 51 [email protected] "}"
52 [email protected] "}" 52 [email protected] ";"
53 [email protected] ";" 53 [email protected] "\n "
54 [email protected] "\n " 54 [email protected]
55 [email protected] 55 [email protected]
56 [email protected] 56 [email protected] "match"
57 [email protected] "match" 57 [email protected] " "
58 [email protected] " " 58 [email protected]
59 [email protected] 59 [email protected]
60 [email protected] 60 [email protected]
61 [email protected] 61 [email protected]
62 [email protected] 62 [email protected]
63 [email protected] 63 [email protected]
64 [email protected] 64 [email protected] "a"
65 [email protected] "a" 65 [email protected] "."
66 [email protected] "." 66 [email protected]
67 [email protected] 67 [email protected] "b"
68 [email protected] "b" 68 [email protected]
69 [email protected] 69 [email protected] "("
70 [email protected] "(" 70 [email protected] ")"
71 [email protected] ")" 71 [email protected] ".."
72 [email protected] ".." 72 [email protected]
73 [email protected] 73 [email protected]
74 [email protected] 74 [email protected]
75 [email protected] 75 [email protected]
76 [email protected] 76 [email protected] "S"
77 [email protected] "S" 77 [email protected] " "
78 [email protected] " " 78 [email protected]
79 [email protected] 79 [email protected] "{"
80 [email protected] "{" 80 [email protected] " "
81 [email protected] " " 81 [email protected]
82 [email protected] 82 [email protected]
83 [email protected] 83 [email protected] "_"
84 [email protected] "_" 84 [email protected] " "
85 [email protected] " " 85 [email protected] "=>"
86 [email protected] "=>" 86 [email protected] " "
87 [email protected] " " 87 [email protected]
88 [email protected] 88 [email protected] "("
89 [email protected] "(" 89 [email protected] ")"
90 [email protected] ")" 90 [email protected] " "
91 [email protected] " " 91 [email protected] "}"
92 [email protected] "}" 92 [email protected] ";"
93 [email protected] ";" 93 [email protected] "\n"
94 [email protected] "\n" 94 [email protected] "}"
95 [email protected] "}"
96 [email protected] "\n" 95 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast
index cdbe64180..dfb8d57ad 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast
@@ -89,9 +89,8 @@ [email protected]
89 [email protected] "Iterator" 89 [email protected] "Iterator"
90 [email protected] " " 90 [email protected] " "
91 [email protected] 91 [email protected]
92 [email protected] 92 [email protected] "{"
93 [email protected] "{" 93 [email protected] "}"
94 [email protected] "}"
95 [email protected] "\n" 94 [email protected] "\n"
96 [email protected] 95 [email protected]
97 [email protected] "fn" 96 [email protected] "fn"
@@ -155,9 +154,8 @@ [email protected]
155 [email protected] "Iterator" 154 [email protected] "Iterator"
156 [email protected] " " 155 [email protected] " "
157 [email protected] 156 [email protected]
158 [email protected] 157 [email protected] "{"
159 [email protected] "{" 158 [email protected] "}"
160 [email protected] "}"
161 [email protected] "\n" 159 [email protected] "\n"
162 [email protected] 160 [email protected]
163 [email protected] "fn" 161 [email protected] "fn"
@@ -237,7 +235,6 @@ [email protected]
237 [email protected] "Iterator" 235 [email protected] "Iterator"
238 [email protected] " " 236 [email protected] " "
239 [email protected] 237 [email protected]
240 [email protected] 238 [email protected] "{"
241 [email protected] "{" 239 [email protected] "}"
242 [email protected] "}"
243 [email protected] "\n" 240 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast
index fbad33389..7fe96e17d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast
@@ -9,47 +9,46 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "_"
19 [email protected] "_" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "="
21 [email protected] "=" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "&"
24 [email protected] "&" 24 [email protected]
25 [email protected] 25 [email protected] "1"
26 [email protected] "1" 26 [email protected] ";"
27 [email protected] ";" 27 [email protected] "\n "
28 [email protected] "\n " 28 [email protected]
29 [email protected] 29 [email protected] "let"
30 [email protected] "let" 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected] "_"
33 [email protected] "_" 33 [email protected] " "
34 [email protected] " " 34 [email protected] "="
35 [email protected] "=" 35 [email protected] " "
36 [email protected] " " 36 [email protected]
37 [email protected] 37 [email protected] "&"
38 [email protected] "&" 38 [email protected] "mut"
39 [email protected] "mut" 39 [email protected] " "
40 [email protected] " " 40 [email protected]
41 [email protected] 41 [email protected] "&"
42 [email protected] "&" 42 [email protected]
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected] "f"
48 [email protected] "f" 48 [email protected]
49 [email protected] 49 [email protected] "("
50 [email protected] "(" 50 [email protected] ")"
51 [email protected] ")" 51 [email protected] ";"
52 [email protected] ";" 52 [email protected] "\n"
53 [email protected] "\n" 53 [email protected] "}"
54 [email protected] "}"
55 [email protected] "\n" 54 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast b/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast
index b165789fd..9fcb7899e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast
@@ -9,128 +9,127 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "_"
19 [email protected] "_" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "="
21 [email protected] "=" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "true"
24 [email protected] "true" 24 [email protected] ";"
25 [email protected] ";" 25 [email protected] "\n "
26 [email protected] "\n " 26 [email protected]
27 [email protected] 27 [email protected] "let"
28 [email protected] "let" 28 [email protected] " "
29 [email protected] " " 29 [email protected]
30 [email protected] 30 [email protected] "_"
31 [email protected] "_" 31 [email protected] " "
32 [email protected] " " 32 [email protected] "="
33 [email protected] "=" 33 [email protected] " "
34 [email protected] " " 34 [email protected]
35 [email protected] 35 [email protected] "false"
36 [email protected] "false" 36 [email protected] ";"
37 [email protected] ";" 37 [email protected] "\n "
38 [email protected] "\n " 38 [email protected]
39 [email protected] 39 [email protected] "let"
40 [email protected] "let" 40 [email protected] " "
41 [email protected] " " 41 [email protected]
42 [email protected] 42 [email protected] "_"
43 [email protected] "_" 43 [email protected] " "
44 [email protected] " " 44 [email protected] "="
45 [email protected] "=" 45 [email protected] " "
46 [email protected] " " 46 [email protected]
47 [email protected] 47 [email protected] "1"
48 [email protected] "1" 48 [email protected] ";"
49 [email protected] ";" 49 [email protected] "\n "
50 [email protected] "\n " 50 [email protected]
51 [email protected] 51 [email protected] "let"
52 [email protected] "let" 52 [email protected] " "
53 [email protected] " " 53 [email protected]
54 [email protected] 54 [email protected] "_"
55 [email protected] "_" 55 [email protected] " "
56 [email protected] " " 56 [email protected] "="
57 [email protected] "=" 57 [email protected] " "
58 [email protected] " " 58 [email protected]
59 [email protected] 59 [email protected] "2.0"
60 [email protected] "2.0" 60 [email protected] ";"
61 [email protected] ";" 61 [email protected] "\n "
62 [email protected] "\n " 62 [email protected]
63 [email protected] 63 [email protected] "let"
64 [email protected] "let" 64 [email protected] " "
65 [email protected] " " 65 [email protected]
66 [email protected] 66 [email protected] "_"
67 [email protected] "_" 67 [email protected] " "
68 [email protected] " " 68 [email protected] "="
69 [email protected] "=" 69 [email protected] " "
70 [email protected] " " 70 [email protected]
71 [email protected] 71 [email protected] "b\'a\'"
72 [email protected] "b\'a\'" 72 [email protected] ";"
73 [email protected] ";" 73 [email protected] "\n "
74 [email protected] "\n " 74 [email protected]
75 [email protected] 75 [email protected] "let"
76 [email protected] "let" 76 [email protected] " "
77 [email protected] " " 77 [email protected]
78 [email protected] 78 [email protected] "_"
79 [email protected] "_" 79 [email protected] " "
80 [email protected] " " 80 [email protected] "="
81 [email protected] "=" 81 [email protected] " "
82 [email protected] " " 82 [email protected]
83 [email protected] 83 [email protected] "\'b\'"
84 [email protected] "\'b\'" 84 [email protected] ";"
85 [email protected] ";" 85 [email protected] "\n "
86 [email protected] "\n " 86 [email protected]
87 [email protected] 87 [email protected] "let"
88 [email protected] "let" 88 [email protected] " "
89 [email protected] " " 89 [email protected]
90 [email protected] 90 [email protected] "_"
91 [email protected] "_" 91 [email protected] " "
92 [email protected] " " 92 [email protected] "="
93 [email protected] "=" 93 [email protected] " "
94 [email protected] " " 94 [email protected]
95 [email protected] 95 [email protected] "\"c\""
96 [email protected] "\"c\"" 96 [email protected] ";"
97 [email protected] ";" 97 [email protected] "\n "
98 [email protected] "\n " 98 [email protected]
99 [email protected] 99 [email protected] "let"
100 [email protected] "let" 100 [email protected] " "
101 [email protected] " " 101 [email protected]
102 [email protected] 102 [email protected] "_"
103 [email protected] "_" 103 [email protected] " "
104 [email protected] " " 104 [email protected] "="
105 [email protected] "=" 105 [email protected] " "
106 [email protected] " " 106 [email protected]
107 [email protected] 107 [email protected] "r\"d\""
108 [email protected] "r\"d\"" 108 [email protected] ";"
109 [email protected] ";" 109 [email protected] "\n "
110 [email protected] "\n " 110 [email protected]
111 [email protected] 111 [email protected] "let"
112 [email protected] "let" 112 [email protected] " "
113 [email protected] " " 113 [email protected]
114 [email protected] 114 [email protected] "_"
115 [email protected] "_" 115 [email protected] " "
116 [email protected] " " 116 [email protected] "="
117 [email protected] "=" 117 [email protected] " "
118 [email protected] " " 118 [email protected]
119 [email protected] 119 [email protected] "b\"e\""
120 [email protected] "b\"e\"" 120 [email protected] ";"
121 [email protected] ";" 121 [email protected] "\n "
122 [email protected] "\n " 122 [email protected]
123 [email protected] 123 [email protected] "let"
124 [email protected] "let" 124 [email protected] " "
125 [email protected] " " 125 [email protected]
126 [email protected] 126 [email protected] "_"
127 [email protected] "_" 127 [email protected] " "
128 [email protected] " " 128 [email protected] "="
129 [email protected] "=" 129 [email protected] " "
130 [email protected] " " 130 [email protected]
131 [email protected] 131 [email protected] "br\"f\""
132 [email protected] "br\"f\"" 132 [email protected] ";"
133 [email protected] ";" 133 [email protected] "\n"
134 [email protected] "\n" 134 [email protected] "}"
135 [email protected] "}"
136 [email protected] "\n" 135 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast
index 36f17133d..a42abc189 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast
@@ -9,9 +9,8 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "}"
14 [email protected] "}"
15 [email protected] "\n" 14 [email protected] "\n"
16 [email protected] 15 [email protected]
17 [email protected] "fn" 16 [email protected] "fn"
@@ -30,7 +29,6 @@ [email protected]
30 [email protected] ")" 29 [email protected] ")"
31 [email protected] " " 30 [email protected] " "
32 [email protected] 31 [email protected]
33 [email protected] 32 [email protected] "{"
34 [email protected] "{" 33 [email protected] "}"
35 [email protected] "}"
36 [email protected] "\n" 34 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast
index ca5aa007e..7e71d7373 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast
@@ -8,62 +8,58 @@ [email protected]
8 [email protected] "(" 8 [email protected] "("
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] 10 [email protected]
11 [email protected] 11 [email protected] "{"
12 [email protected] "{" 12 [email protected] "\n "
13 [email protected] "\n " 13 [email protected]
14 [email protected] 14 [email protected]
15 [email protected] 15 [email protected] "if"
16 [email protected] "if" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "break"
20 [email protected] "break" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "{"
23 [email protected] 23 [email protected] "}"
24 [email protected] "{" 24 [email protected] "\n "
25 [email protected] "}" 25 [email protected]
26 [email protected] "\n " 26 [email protected]
27 [email protected] 27 [email protected] "while"
28 [email protected] 28 [email protected] " "
29 [email protected] "while" 29 [email protected]
30 [email protected] " " 30 [email protected]
31 [email protected] 31 [email protected] "break"
32 [email protected] 32 [email protected] " "
33 [email protected] "break" 33 [email protected]
34 [email protected] " " 34 [email protected] "{"
35 [email protected] 35 [email protected] "}"
36 [email protected] 36 [email protected] "\n "
37 [email protected] "{" 37 [email protected]
38 [email protected] "}" 38 [email protected]
39 [email protected] "\n " 39 [email protected] "for"
40 [email protected] 40 [email protected] " "
41 [email protected] 41 [email protected]
42 [email protected] "for" 42 [email protected]
43 [email protected] " " 43 [email protected] "i"
44 [email protected] 44 [email protected] " "
45 [email protected] 45 [email protected] "in"
46 [email protected] "i" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] "in" 48 [email protected] "break"
49 [email protected] " " 49 [email protected] " "
50 [email protected] 50 [email protected]
51 [email protected] "break" 51 [email protected] "{"
52 [email protected] " " 52 [email protected] "}"
53 [email protected] 53 [email protected] "\n "
54 [email protected] 54 [email protected]
55 [email protected] "{" 55 [email protected] "match"
56 [email protected] "}" 56 [email protected] " "
57 [email protected] "\n " 57 [email protected]
58 [email protected] 58 [email protected] "break"
59 [email protected] "match" 59 [email protected] " "
60 [email protected] " " 60 [email protected]
61 [email protected] 61 [email protected] "{"
62 [email protected] "break" 62 [email protected] "}"
63 [email protected] " " 63 [email protected] "\n"
64 [email protected] 64 [email protected] "}"
65 [email protected] "{"
66 [email protected] "}"
67 [email protected] "\n"
68 [email protected] "}"
69 [email protected] "\n" 65 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast
index 1c1e349e1..48aaf1004 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast
@@ -12,7 +12,6 @@ [email protected]
12 [email protected] ")" 12 [email protected] ")"
13 [email protected] " " 13 [email protected] " "
14 [email protected] 14 [email protected]
15 [email protected] 15 [email protected] "{"
16 [email protected] "{" 16 [email protected] "}"
17 [email protected] "}"
18 [email protected] "\n" 17 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast
index c264dae5e..aed81f9b0 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast
@@ -9,26 +9,25 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected] "x"
22 [email protected] "x" 22 [email protected] "["
23 [email protected] "[" 23 [email protected]
24 [email protected] 24 [email protected] "1"
25 [email protected] "1" 25 [email protected] "]"
26 [email protected] "]" 26 [email protected] "["
27 [email protected] "[" 27 [email protected]
28 [email protected] 28 [email protected] "2"
29 [email protected] "2" 29 [email protected] "]"
30 [email protected] "]" 30 [email protected] ";"
31 [email protected] ";" 31 [email protected] "\n"
32 [email protected] "\n" 32 [email protected] "}"
33 [email protected] "}"
34 [email protected] "\n" 33 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast
index 24e1ba8a0..67d9595d3 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast
@@ -9,21 +9,20 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] " "
14 [email protected] " " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "_"
19 [email protected] "_" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "="
21 [email protected] "=" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "("
24 [email protected] "(" 24 [email protected] ")"
25 [email protected] ")" 25 [email protected] ";"
26 [email protected] ";" 26 [email protected] " "
27 [email protected] " " 27 [email protected] "}"
28 [email protected] "}"
29 [email protected] "\n" 28 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast
index 47462d44e..031e74652 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast
@@ -9,122 +9,115 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "if"
17 [email protected] "if" 17 [email protected] " "
18 [email protected] " " 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "true"
21 [email protected] "true" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "{"
24 [email protected] 24 [email protected] "}"
25 [email protected] "{" 25 [email protected] "\n "
26 [email protected] "}" 26 [email protected]
27 [email protected] "\n " 27 [email protected]
28 [email protected] 28 [email protected] "loop"
29 [email protected] 29 [email protected] " "
30 [email protected] "loop" 30 [email protected]
31 [email protected] " " 31 [email protected] "{"
32 [email protected] 32 [email protected] "}"
33 [email protected] 33 [email protected] "\n "
34 [email protected] "{" 34 [email protected]
35 [email protected] "}" 35 [email protected]
36 [email protected] "\n " 36 [email protected] "match"
37 [email protected] 37 [email protected] " "
38 [email protected] 38 [email protected]
39 [email protected] "match" 39 [email protected] "("
40 [email protected] " " 40 [email protected] ")"
41 [email protected] 41 [email protected] " "
42 [email protected] "(" 42 [email protected]
43 [email protected] ")" 43 [email protected] "{"
44 [email protected] " " 44 [email protected] "}"
45 [email protected] 45 [email protected] "\n "
46 [email protected] "{" 46 [email protected]
47 [email protected] "}" 47 [email protected]
48 [email protected] "\n " 48 [email protected] "while"
49 [email protected] 49 [email protected] " "
50 [email protected] 50 [email protected]
51 [email protected] "while" 51 [email protected]
52 [email protected] " " 52 [email protected] "true"
53 [email protected] 53 [email protected] " "
54 [email protected] 54 [email protected]
55 [email protected] "true" 55 [email protected] "{"
56 [email protected] " " 56 [email protected] "}"
57 [email protected] 57 [email protected] "\n "
58 [email protected] 58 [email protected]
59 [email protected] "{" 59 [email protected]
60 [email protected] "}" 60 [email protected] "for"
61 [email protected] "\n " 61 [email protected] " "
62 [email protected] 62 [email protected]
63 [email protected] 63 [email protected] "_"
64 [email protected] "for" 64 [email protected] " "
65 [email protected] " " 65 [email protected] "in"
66 [email protected] 66 [email protected] " "
67 [email protected] "_" 67 [email protected]
68 [email protected] " " 68 [email protected] "("
69 [email protected] "in" 69 [email protected] ")"
70 [email protected] " " 70 [email protected] " "
71 [email protected] 71 [email protected]
72 [email protected] "(" 72 [email protected] "{"
73 [email protected] ")" 73 [email protected] "}"
74 [email protected] " " 74 [email protected] "\n "
75 [email protected] 75 [email protected]
76 [email protected] 76 [email protected]
77 [email protected] "{" 77 [email protected] "{"
78 [email protected] "}" 78 [email protected] "}"
79 [email protected] "\n " 79 [email protected] "\n "
80 [email protected] 80 [email protected]
81 [email protected] 81 [email protected]
82 [email protected] 82 [email protected] "{"
83 [email protected] "{" 83 [email protected] "}"
84 [email protected] "}" 84 [email protected] "\n "
85 [email protected] "\n " 85 [email protected]
86 [email protected] 86 [email protected]
87 [email protected] 87 [email protected]
88 [email protected] 88 [email protected]
89 [email protected] "{" 89 [email protected]
90 [email protected] "}" 90 [email protected] "macro_rules"
91 [email protected] "\n " 91 [email protected] "!"
92 [email protected] 92 [email protected] " "
93 [email protected] 93 [email protected]
94 [email protected] 94 [email protected] "test"
95 [email protected] 95 [email protected] " "
96 [email protected] 96 [email protected]
97 [email protected] "macro_rules" 97 [email protected] "{"
98 [email protected] "!" 98 [email protected] "\n "
99 [email protected] " " 99 [email protected]
100 [email protected] 100 [email protected] "("
101 [email protected] "test" 101 [email protected] ")"
102 [email protected] " " 102 [email protected] " "
103 [email protected] 103 [email protected] "="
104 [email protected] "{" 104 [email protected] ">"
105 [email protected] "\n " 105 [email protected] " "
106 [email protected] 106 [email protected]
107 [email protected] "(" 107 [email protected] "{"
108 [email protected] ")" 108 [email protected] "}"
109 [email protected] " " 109 [email protected] "\n "
110 [email protected] "=" 110 [email protected] "}"
111 [email protected] ">" 111 [email protected] "\n "
112 [email protected] " " 112 [email protected]
113 [email protected] 113 [email protected]
114 [email protected] "{" 114 [email protected]
115 [email protected] "}" 115 [email protected]
116 [email protected] "\n " 116 [email protected] "test"
117 [email protected] "}" 117 [email protected] "!"
118 [email protected] "\n " 118 [email protected]
119 [email protected] 119 [email protected] "{"
120 [email protected] 120 [email protected] "}"
121 [email protected] 121 [email protected] "\n"
122 [email protected] 122 [email protected] "}"
123 [email protected] "test"
124 [email protected] "!"
125 [email protected]
126 [email protected] "{"
127 [email protected] "}"
128 [email protected] "\n"
129 [email protected] "}"
130 [email protected] "\n" 123 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast
index a51fb5511..816e49310 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast
@@ -13,7 +13,6 @@ [email protected]
13 [email protected] ")" 13 [email protected] ")"
14 [email protected] " " 14 [email protected] " "
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "{"
17 [email protected] "{" 17 [email protected] "}"
18 [email protected] "}"
19 [email protected] "\n" 18 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast
index 61b47bf35..d48ef865c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast
@@ -9,9 +9,8 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "}"
14 [email protected] "}"
15 [email protected] "\n" 14 [email protected] "\n"
16 [email protected] 15 [email protected]
17 [email protected] "fn" 16 [email protected] "fn"
@@ -34,9 +33,8 @@ [email protected]
34 [email protected] ")" 33 [email protected] ")"
35 [email protected] " " 34 [email protected] " "
36 [email protected] 35 [email protected]
37 [email protected] 36 [email protected] "{"
38 [email protected] "{" 37 [email protected] "}"
39 [email protected] "}"
40 [email protected] "\n" 38 [email protected] "\n"
41 [email protected] 39 [email protected]
42 [email protected] "fn" 40 [email protected] "fn"
@@ -61,9 +59,8 @@ [email protected]
61 [email protected] ")" 59 [email protected] ")"
62 [email protected] " " 60 [email protected] " "
63 [email protected] 61 [email protected]
64 [email protected] 62 [email protected] "{"
65 [email protected] "{" 63 [email protected] "}"
66 [email protected] "}"
67 [email protected] "\n" 64 [email protected] "\n"
68 [email protected] 65 [email protected]
69 [email protected] "fn" 66 [email protected] "fn"
@@ -97,7 +94,6 @@ [email protected]
97 [email protected] ")" 94 [email protected] ")"
98 [email protected] " " 95 [email protected] " "
99 [email protected] 96 [email protected]
100 [email protected] 97 [email protected] "{"
101 [email protected] "{" 98 [email protected] "}"
102 [email protected] "}"
103 [email protected] "\n" 99 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast
index 89d435d1f..e4455cd3e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast
@@ -9,28 +9,26 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "for"
17 [email protected] "for" 17 [email protected] " "
18 [email protected] " " 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "x"
21 [email protected] "x" 21 [email protected] " "
22 [email protected] " " 22 [email protected] "in"
23 [email protected] "in" 23 [email protected] " "
24 [email protected] " " 24 [email protected]
25 [email protected] 25 [email protected] "["
26 [email protected] "[" 26 [email protected] "]"
27 [email protected] "]" 27 [email protected] " "
28 [email protected] " " 28 [email protected]
29 [email protected] 29 [email protected] "{"
30 [email protected] 30 [email protected] "}"
31 [email protected] "{" 31 [email protected] ";"
32 [email protected] "}" 32 [email protected] "\n"
33 [email protected] ";" 33 [email protected] "}"
34 [email protected] "\n"
35 [email protected] "}"
36 [email protected] "\n" 34 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast
index 57b4d0c4f..8a8743060 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast
@@ -11,7 +11,6 @@ [email protected]
11 [email protected] ")" 11 [email protected] ")"
12 [email protected] " " 12 [email protected] " "
13 [email protected] 13 [email protected]
14 [email protected] 14 [email protected] "{"
15 [email protected] "{" 15 [email protected] "}"
16 [email protected] "}"
17 [email protected] "\n" 16 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast
index ed6f6f326..9f966ff8a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast
@@ -9,125 +9,124 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected] "S"
22 [email protected] "S" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected] "{"
25 [email protected] "{" 25 [email protected] "}"
26 [email protected] "}" 26 [email protected] " "
27 [email protected] " " 27 [email protected] "="
28 [email protected] "=" 28 [email protected] " "
29 [email protected] " " 29 [email protected]
30 [email protected] 30 [email protected] "("
31 [email protected] "(" 31 [email protected] ")"
32 [email protected] ")" 32 [email protected] ";"
33 [email protected] ";" 33 [email protected] "\n "
34 [email protected] "\n " 34 [email protected]
35 [email protected] 35 [email protected] "let"
36 [email protected] "let" 36 [email protected] " "
37 [email protected] " " 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected] "S"
42 [email protected] "S" 42 [email protected] " "
43 [email protected] " " 43 [email protected]
44 [email protected] 44 [email protected] "{"
45 [email protected] "{" 45 [email protected] " "
46 [email protected] " " 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected] "f"
50 [email protected] "f" 50 [email protected] ","
51 [email protected] "," 51 [email protected] " "
52 [email protected] " " 52 [email protected]
53 [email protected] 53 [email protected]
54 [email protected] 54 [email protected] "ref"
55 [email protected] "ref" 55 [email protected] " "
56 [email protected] " " 56 [email protected] "mut"
57 [email protected] "mut" 57 [email protected] " "
58 [email protected] " " 58 [email protected]
59 [email protected] 59 [email protected] "g"
60 [email protected] "g" 60 [email protected] " "
61 [email protected] " " 61 [email protected] "}"
62 [email protected] "}" 62 [email protected] " "
63 [email protected] " " 63 [email protected] "="
64 [email protected] "=" 64 [email protected] " "
65 [email protected] " " 65 [email protected]
66 [email protected] 66 [email protected] "("
67 [email protected] "(" 67 [email protected] ")"
68 [email protected] ")" 68 [email protected] ";"
69 [email protected] ";" 69 [email protected] "\n "
70 [email protected] "\n " 70 [email protected]
71 [email protected] 71 [email protected] "let"
72 [email protected] "let" 72 [email protected] " "
73 [email protected] " " 73 [email protected]
74 [email protected] 74 [email protected]
75 [email protected] 75 [email protected]
76 [email protected] 76 [email protected]
77 [email protected] 77 [email protected] "S"
78 [email protected] "S" 78 [email protected] " "
79 [email protected] " " 79 [email protected]
80 [email protected] 80 [email protected] "{"
81 [email protected] "{" 81 [email protected] " "
82 [email protected] " " 82 [email protected]
83 [email protected] 83 [email protected]
84 [email protected] 84 [email protected] "h"
85 [email protected] "h" 85 [email protected] ":"
86 [email protected] ":" 86 [email protected] " "
87 [email protected] " " 87 [email protected]
88 [email protected] 88 [email protected] "_"
89 [email protected] "_" 89 [email protected] ","
90 [email protected] "," 90 [email protected] " "
91 [email protected] " " 91 [email protected] ".."
92 [email protected] ".." 92 [email protected] "}"
93 [email protected] "}" 93 [email protected] " "
94 [email protected] " " 94 [email protected] "="
95 [email protected] "=" 95 [email protected] " "
96 [email protected] " " 96 [email protected]
97 [email protected] 97 [email protected] "("
98 [email protected] "(" 98 [email protected] ")"
99 [email protected] ")" 99 [email protected] ";"
100 [email protected] ";" 100 [email protected] "\n "
101 [email protected] "\n " 101 [email protected]
102 [email protected] 102 [email protected] "let"
103 [email protected] "let" 103 [email protected] " "
104 [email protected] " " 104 [email protected]
105 [email protected] 105 [email protected]
106 [email protected] 106 [email protected]
107 [email protected] 107 [email protected]
108 [email protected] 108 [email protected] "S"
109 [email protected] "S" 109 [email protected] " "
110 [email protected] " " 110 [email protected]
111 [email protected] 111 [email protected] "{"
112 [email protected] "{" 112 [email protected] " "
113 [email protected] " " 113 [email protected]
114 [email protected] 114 [email protected]
115 [email protected] 115 [email protected] "h"
116 [email protected] "h" 116 [email protected] ":"
117 [email protected] ":" 117 [email protected] " "
118 [email protected] " " 118 [email protected]
119 [email protected] 119 [email protected] "_"
120 [email protected] "_" 120 [email protected] ","
121 [email protected] "," 121 [email protected] " "
122 [email protected] " " 122 [email protected] "}"
123 [email protected] "}" 123 [email protected] " "
124 [email protected] " " 124 [email protected] "="
125 [email protected] "=" 125 [email protected] " "
126 [email protected] " " 126 [email protected]
127 [email protected] 127 [email protected] "("
128 [email protected] "(" 128 [email protected] ")"
129 [email protected] ")" 129 [email protected] ";"
130 [email protected] ";" 130 [email protected] "\n"
131 [email protected] "\n" 131 [email protected] "}"
132 [email protected] "}"
133 [email protected] "\n" 132 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast
index 461c61914..9b3bef04e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast
@@ -9,47 +9,46 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "["
17 [email protected] "[" 17 [email protected] "]"
18 [email protected] "]" 18 [email protected] ";"
19 [email protected] ";" 19 [email protected] "\n "
20 [email protected] "\n " 20 [email protected]
21 [email protected] 21 [email protected]
22 [email protected] 22 [email protected] "["
23 [email protected] "[" 23 [email protected]
24 [email protected] 24 [email protected] "1"
25 [email protected] "1" 25 [email protected] "]"
26 [email protected] "]" 26 [email protected] ";"
27 [email protected] ";" 27 [email protected] "\n "
28 [email protected] "\n " 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected] "["
31 [email protected] "[" 31 [email protected]
32 [email protected] 32 [email protected] "1"
33 [email protected] "1" 33 [email protected] ","
34 [email protected] "," 34 [email protected] " "
35 [email protected] " " 35 [email protected]
36 [email protected] 36 [email protected] "2"
37 [email protected] "2" 37 [email protected] ","
38 [email protected] "," 38 [email protected] "]"
39 [email protected] "]" 39 [email protected] ";"
40 [email protected] ";" 40 [email protected] "\n "
41 [email protected] "\n " 41 [email protected]
42 [email protected] 42 [email protected]
43 [email protected] 43 [email protected] "["
44 [email protected] "[" 44 [email protected]
45 [email protected] 45 [email protected] "1"
46 [email protected] "1" 46 [email protected] ";"
47 [email protected] ";" 47 [email protected] " "
48 [email protected] " " 48 [email protected]
49 [email protected] 49 [email protected] "2"
50 [email protected] "2" 50 [email protected] "]"
51 [email protected] "]" 51 [email protected] ";"
52 [email protected] ";" 52 [email protected] "\n"
53 [email protected] "\n" 53 [email protected] "}"
54 [email protected] "}"
55 [email protected] "\n" 54 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast
deleted file mode 100644
index 8b2323cf2..000000000
--- a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast
+++ /dev/null
@@ -1,43 +0,0 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected]
13 [email protected] "{"
14 [email protected] "\n "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "{"
19 [email protected] "}"
20 [email protected] ";"
21 [email protected] "\n "
22 [email protected]
23 [email protected]
24 [email protected] "unsafe"
25 [email protected] " "
26 [email protected]
27 [email protected] "{"
28 [email protected] "}"
29 [email protected] ";"
30 [email protected] "\n "
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "\'label"
35 [email protected] ":"
36 [email protected] " "
37 [email protected]
38 [email protected] "{"
39 [email protected] "}"
40 [email protected] ";"
41 [email protected] "\n"
42 [email protected] "}"
43 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rs b/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rs
deleted file mode 100644
index 2fed74c5e..000000000
--- a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rs
+++ /dev/null
@@ -1,5 +0,0 @@
1fn foo() {
2 {};
3 unsafe {};
4 'label: {};
5}
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast
index 73c314e07..e64717152 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast
@@ -9,132 +9,127 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected] "|"
18 [email protected] "|" 18 [email protected] "|"
19 [email protected] "|" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected] "("
22 [email protected] "(" 22 [email protected] ")"
23 [email protected] ")" 23 [email protected] ";"
24 [email protected] ";" 24 [email protected] "\n "
25 [email protected] "\n " 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected] "|"
29 [email protected] "|" 29 [email protected] "|"
30 [email protected] "|" 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected] "->"
33 [email protected] "->" 33 [email protected] " "
34 [email protected] " " 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected] "i32"
39 [email protected] "i32" 39 [email protected] " "
40 [email protected] " " 40 [email protected]
41 [email protected] 41 [email protected] "{"
42 [email protected] 42 [email protected] " "
43 [email protected] "{" 43 [email protected]
44 [email protected] " " 44 [email protected] "92"
45 [email protected] 45 [email protected] " "
46 [email protected] "92" 46 [email protected] "}"
47 [email protected] " " 47 [email protected] ";"
48 [email protected] "}" 48 [email protected] "\n "
49 [email protected] ";" 49 [email protected]
50 [email protected] "\n " 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected] "|"
53 [email protected] 53 [email protected]
54 [email protected] "|" 54 [email protected]
55 [email protected] 55 [email protected]
56 [email protected] 56 [email protected] "x"
57 [email protected] 57 [email protected] "|"
58 [email protected] "x" 58 [email protected] " "
59 [email protected] "|" 59 [email protected]
60 [email protected] " " 60 [email protected]
61 [email protected] 61 [email protected]
62 [email protected] 62 [email protected]
63 [email protected] 63 [email protected] "x"
64 [email protected] 64 [email protected] ";"
65 [email protected] "x" 65 [email protected] "\n "
66 [email protected] ";" 66 [email protected]
67 [email protected] "\n " 67 [email protected]
68 [email protected] 68 [email protected] "move"
69 [email protected] 69 [email protected] " "
70 [email protected] "move" 70 [email protected]
71 [email protected] " " 71 [email protected] "|"
72 [email protected] 72 [email protected]
73 [email protected] "|" 73 [email protected]
74 [email protected] 74 [email protected]
75 [email protected] 75 [email protected] "x"
76 [email protected] 76 [email protected] ":"
77 [email protected] "x" 77 [email protected] " "
78 [email protected] ":" 78 [email protected]
79 [email protected] " " 79 [email protected]
80 [email protected] 80 [email protected]
81 [email protected] 81 [email protected]
82 [email protected] 82 [email protected] "i32"
83 [email protected] 83 [email protected] ","
84 [email protected] "i32" 84 [email protected] "|"
85 [email protected] "," 85 [email protected] " "
86 [email protected] "|" 86 [email protected]
87 [email protected] " " 87 [email protected]
88 [email protected] 88 [email protected]
89 [email protected] 89 [email protected]
90 [email protected] 90 [email protected] "x"
91 [email protected] 91 [email protected] ";"
92 [email protected] "x" 92 [email protected] "\n "
93 [email protected] ";" 93 [email protected]
94 [email protected] "\n " 94 [email protected]
95 [email protected] 95 [email protected] "async"
96 [email protected] 96 [email protected] " "
97 [email protected] "async" 97 [email protected]
98 [email protected] " " 98 [email protected] "|"
99 [email protected] 99 [email protected] "|"
100 [email protected] "|" 100 [email protected] " "
101 [email protected] "|" 101 [email protected]
102 [email protected] " " 102 [email protected] "{"
103 [email protected] 103 [email protected] "}"
104 [email protected] 104 [email protected] ";"
105 [email protected] "{" 105 [email protected] "\n "
106 [email protected] "}" 106 [email protected]
107 [email protected] ";" 107 [email protected]
108 [email protected] "\n " 108 [email protected] "move"
109 [email protected] 109 [email protected] " "
110 [email protected] 110 [email protected]
111 [email protected] "move" 111 [email protected] "|"
112 [email protected] " " 112 [email protected] "|"
113 [email protected] 113 [email protected] " "
114 [email protected] "|" 114 [email protected]
115 [email protected] "|" 115 [email protected] "{"
116 [email protected] " " 116 [email protected] "}"
117 [email protected] 117 [email protected] ";"
118 [email protected] 118 [email protected] "\n "
119 [email protected] "{" 119 [email protected]
120 [email protected] "}" 120 [email protected]
121 [email protected] ";" 121 [email protected] "async"
122 [email protected] "\n " 122 [email protected] " "
123 [email protected] 123 [email protected] "move"
124 [email protected] 124 [email protected] " "
125 [email protected] "async" 125 [email protected]
126 [email protected] " " 126 [email protected] "|"
127 [email protected] "move" 127 [email protected] "|"
128 [email protected] " " 128 [email protected] " "
129 [email protected] 129 [email protected]
130 [email protected] "|" 130 [email protected] "{"
131 [email protected] "|" 131 [email protected] "}"
132 [email protected] " " 132 [email protected] ";"
133 [email protected] 133 [email protected] "\n"
134 [email protected] 134 [email protected] "}"
135 [email protected] "{"
136 [email protected] "}"
137 [email protected] ";"
138 [email protected] "\n"
139 [email protected] "}"
140 [email protected] "\n" 135 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast
index 5392b1a74..98963dc62 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast
@@ -9,55 +9,54 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "x"
21 [email protected] "x" 21 [email protected] "."
22 [email protected] "." 22 [email protected]
23 [email protected] 23 [email protected] "foo"
24 [email protected] "foo" 24 [email protected]
25 [email protected] 25 [email protected] "("
26 [email protected] "(" 26 [email protected] ")"
27 [email protected] ")" 27 [email protected] ";"
28 [email protected] ";" 28 [email protected] "\n "
29 [email protected] "\n " 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "y"
36 [email protected] "y" 36 [email protected] "."
37 [email protected] "." 37 [email protected]
38 [email protected] 38 [email protected] "bar"
39 [email protected] "bar" 39 [email protected]
40 [email protected] 40 [email protected] "::"
41 [email protected] "::" 41 [email protected] "<"
42 [email protected] "<" 42 [email protected]
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected] "T"
48 [email protected] "T" 48 [email protected] ">"
49 [email protected] ">" 49 [email protected]
50 [email protected] 50 [email protected] "("
51 [email protected] "(" 51 [email protected]
52 [email protected] 52 [email protected] "1"
53 [email protected] "1" 53 [email protected] ","
54 [email protected] "," 54 [email protected] " "
55 [email protected] " " 55 [email protected]
56 [email protected] 56 [email protected] "2"
57 [email protected] "2" 57 [email protected] ","
58 [email protected] "," 58 [email protected] ")"
59 [email protected] ")" 59 [email protected] ";"
60 [email protected] ";" 60 [email protected] "\n"
61 [email protected] "\n" 61 [email protected] "}"
62 [email protected] "}"
63 [email protected] "\n" 62 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast
index 54f18adac..ea603e2c9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast
@@ -9,31 +9,30 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "("
17 [email protected] "(" 17 [email protected] ")"
18 [email protected] ")" 18 [email protected] ";"
19 [email protected] ";" 19 [email protected] "\n "
20 [email protected] "\n " 20 [email protected]
21 [email protected] 21 [email protected]
22 [email protected] 22 [email protected] "("
23 [email protected] "(" 23 [email protected]
24 [email protected] 24 [email protected] "1"
25 [email protected] "1" 25 [email protected] ")"
26 [email protected] ")" 26 [email protected] ";"
27 [email protected] ";" 27 [email protected] "\n "
28 [email protected] "\n " 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected] "("
31 [email protected] "(" 31 [email protected]
32 [email protected] 32 [email protected] "1"
33 [email protected] "1" 33 [email protected] ","
34 [email protected] "," 34 [email protected] ")"
35 [email protected] ")" 35 [email protected] ";"
36 [email protected] ";" 36 [email protected] "\n"
37 [email protected] "\n" 37 [email protected] "}"
38 [email protected] "}"
39 [email protected] "\n" 38 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast b/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast
index 6c9e45684..30ff96a7c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast
@@ -9,60 +9,56 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected] "\'a"
18 [email protected] "\'a" 18 [email protected] ":"
19 [email protected] ":" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "loop"
21 [email protected] "loop" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "{"
24 [email protected] 24 [email protected] "}"
25 [email protected] "{" 25 [email protected] "\n "
26 [email protected] "}" 26 [email protected]
27 [email protected] "\n " 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected] "\'b"
30 [email protected] 30 [email protected] ":"
31 [email protected] "\'b" 31 [email protected] " "
32 [email protected] ":" 32 [email protected] "while"
33 [email protected] " " 33 [email protected] " "
34 [email protected] "while" 34 [email protected]
35 [email protected] " " 35 [email protected]
36 [email protected] 36 [email protected] "true"
37 [email protected] 37 [email protected] " "
38 [email protected] "true" 38 [email protected]
39 [email protected] " " 39 [email protected] "{"
40 [email protected] 40 [email protected] "}"
41 [email protected] 41 [email protected] "\n "
42 [email protected] "{" 42 [email protected]
43 [email protected] "}" 43 [email protected]
44 [email protected] "\n " 44 [email protected] "\'c"
45 [email protected] 45 [email protected] ":"
46 [email protected] 46 [email protected] " "
47 [email protected] "\'c" 47 [email protected] "for"
48 [email protected] ":" 48 [email protected] " "
49 [email protected] " " 49 [email protected]
50 [email protected] "for" 50 [email protected]
51 [email protected] " " 51 [email protected] "x"
52 [email protected] 52 [email protected] " "
53 [email protected] 53 [email protected] "in"
54 [email protected] "x" 54 [email protected] " "
55 [email protected] " " 55 [email protected]
56 [email protected] "in" 56 [email protected] "("
57 [email protected] " " 57 [email protected] ")"
58 [email protected] 58 [email protected] " "
59 [email protected] "(" 59 [email protected]
60 [email protected] ")" 60 [email protected] "{"
61 [email protected] " " 61 [email protected] "}"
62 [email protected] 62 [email protected] "\n"
63 [email protected] 63 [email protected] "}"
64 [email protected] "{"
65 [email protected] "}"
66 [email protected] "\n"
67 [email protected] "}"
68 [email protected] "\n" 64 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast
index a1c5475e7..b58f40ac1 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast
@@ -9,82 +9,81 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "("
19 [email protected] "(" 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected] "a"
22 [email protected] "a" 22 [email protected] ","
23 [email protected] "," 23 [email protected] " "
24 [email protected] " " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "b"
27 [email protected] "b" 27 [email protected] ","
28 [email protected] "," 28 [email protected] " "
29 [email protected] " " 29 [email protected]
30 [email protected] 30 [email protected] ".."
31 [email protected] ".." 31 [email protected] ")"
32 [email protected] ")" 32 [email protected] " "
33 [email protected] " " 33 [email protected] "="
34 [email protected] "=" 34 [email protected] " "
35 [email protected] " " 35 [email protected]
36 [email protected] 36 [email protected] "("
37 [email protected] "(" 37 [email protected] ")"
38 [email protected] ")" 38 [email protected] ";"
39 [email protected] ";" 39 [email protected] "\n "
40 [email protected] "\n " 40 [email protected]
41 [email protected] 41 [email protected] "let"
42 [email protected] "let" 42 [email protected] " "
43 [email protected] " " 43 [email protected]
44 [email protected] 44 [email protected] "("
45 [email protected] "(" 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected] "a"
48 [email protected] "a" 48 [email protected] ","
49 [email protected] "," 49 [email protected] ")"
50 [email protected] ")" 50 [email protected] " "
51 [email protected] " " 51 [email protected] "="
52 [email protected] "=" 52 [email protected] " "
53 [email protected] " " 53 [email protected]
54 [email protected] 54 [email protected] "("
55 [email protected] "(" 55 [email protected] ")"
56 [email protected] ")" 56 [email protected] ";"
57 [email protected] ";" 57 [email protected] "\n "
58 [email protected] "\n " 58 [email protected]
59 [email protected] 59 [email protected] "let"
60 [email protected] "let" 60 [email protected] " "
61 [email protected] " " 61 [email protected]
62 [email protected] 62 [email protected] "("
63 [email protected] "(" 63 [email protected]
64 [email protected] 64 [email protected] ".."
65 [email protected] ".." 65 [email protected] ")"
66 [email protected] ")" 66 [email protected] " "
67 [email protected] " " 67 [email protected] "="
68 [email protected] "=" 68 [email protected] " "
69 [email protected] " " 69 [email protected]
70 [email protected] 70 [email protected] "("
71 [email protected] "(" 71 [email protected] ")"
72 [email protected] ")" 72 [email protected] ";"
73 [email protected] ";" 73 [email protected] "\n "
74 [email protected] "\n " 74 [email protected]
75 [email protected] 75 [email protected] "let"
76 [email protected] "let" 76 [email protected] " "
77 [email protected] " " 77 [email protected]
78 [email protected] 78 [email protected] "("
79 [email protected] "(" 79 [email protected] ")"
80 [email protected] ")" 80 [email protected] " "
81 [email protected] " " 81 [email protected] "="
82 [email protected] "=" 82 [email protected] " "
83 [email protected] " " 83 [email protected]
84 [email protected] 84 [email protected] "("
85 [email protected] "(" 85 [email protected] ")"
86 [email protected] ")" 86 [email protected] ";"
87 [email protected] ";" 87 [email protected] "\n"
88 [email protected] "\n" 88 [email protected] "}"
89 [email protected] "}"
90 [email protected] "\n" 89 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast
index 42a770a83..b67714c17 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast
@@ -9,120 +9,119 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "a"
20 [email protected] "a" 20 [email protected] " "
21 [email protected] " " 21 [email protected] "="
22 [email protected] "=" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected] "("
25 [email protected] "(" 25 [email protected] ")"
26 [email protected] ")" 26 [email protected] ";"
27 [email protected] ";" 27 [email protected] "\n "
28 [email protected] "\n " 28 [email protected]
29 [email protected] 29 [email protected] "let"
30 [email protected] "let" 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected] "mut"
33 [email protected] "mut" 33 [email protected] " "
34 [email protected] " " 34 [email protected]
35 [email protected] 35 [email protected] "b"
36 [email protected] "b" 36 [email protected] " "
37 [email protected] " " 37 [email protected] "="
38 [email protected] "=" 38 [email protected] " "
39 [email protected] " " 39 [email protected]
40 [email protected] 40 [email protected] "("
41 [email protected] "(" 41 [email protected] ")"
42 [email protected] ")" 42 [email protected] ";"
43 [email protected] ";" 43 [email protected] "\n "
44 [email protected] "\n " 44 [email protected]
45 [email protected] 45 [email protected] "let"
46 [email protected] "let" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] 48 [email protected] "ref"
49 [email protected] "ref" 49 [email protected] " "
50 [email protected] " " 50 [email protected]
51 [email protected] 51 [email protected] "c"
52 [email protected] "c" 52 [email protected] " "
53 [email protected] " " 53 [email protected] "="
54 [email protected] "=" 54 [email protected] " "
55 [email protected] " " 55 [email protected]
56 [email protected] 56 [email protected] "("
57 [email protected] "(" 57 [email protected] ")"
58 [email protected] ")" 58 [email protected] ";"
59 [email protected] ";" 59 [email protected] "\n "
60 [email protected] "\n " 60 [email protected]
61 [email protected] 61 [email protected] "let"
62 [email protected] "let" 62 [email protected] " "
63 [email protected] " " 63 [email protected]
64 [email protected] 64 [email protected] "ref"
65 [email protected] "ref" 65 [email protected] " "
66 [email protected] " " 66 [email protected] "mut"
67 [email protected] "mut" 67 [email protected] " "
68 [email protected] " " 68 [email protected]
69 [email protected] 69 [email protected] "d"
70 [email protected] "d" 70 [email protected] " "
71 [email protected] " " 71 [email protected] "="
72 [email protected] "=" 72 [email protected] " "
73 [email protected] " " 73 [email protected]
74 [email protected] 74 [email protected] "("
75 [email protected] "(" 75 [email protected] ")"
76 [email protected] ")" 76 [email protected] ";"
77 [email protected] ";" 77 [email protected] "\n "
78 [email protected] "\n " 78 [email protected]
79 [email protected] 79 [email protected] "let"
80 [email protected] "let" 80 [email protected] " "
81 [email protected] " " 81 [email protected]
82 [email protected] 82 [email protected]
83 [email protected] 83 [email protected] "e"
84 [email protected] "e" 84 [email protected] " "
85 [email protected] " " 85 [email protected] "@"
86 [email protected] "@" 86 [email protected] " "
87 [email protected] " " 87 [email protected]
88 [email protected] 88 [email protected] "_"
89 [email protected] "_" 89 [email protected] " "
90 [email protected] " " 90 [email protected] "="
91 [email protected] "=" 91 [email protected] " "
92 [email protected] " " 92 [email protected]
93 [email protected] 93 [email protected] "("
94 [email protected] "(" 94 [email protected] ")"
95 [email protected] ")" 95 [email protected] ";"
96 [email protected] ";" 96 [email protected] "\n "
97 [email protected] "\n " 97 [email protected]
98 [email protected] 98 [email protected] "let"
99 [email protected] "let" 99 [email protected] " "
100 [email protected] " " 100 [email protected]
101 [email protected] 101 [email protected] "ref"
102 [email protected] "ref" 102 [email protected] " "
103 [email protected] " " 103 [email protected] "mut"
104 [email protected] "mut" 104 [email protected] " "
105 [email protected] " " 105 [email protected]
106 [email protected] 106 [email protected] "f"
107 [email protected] "f" 107 [email protected] " "
108 [email protected] " " 108 [email protected] "@"
109 [email protected] "@" 109 [email protected] " "
110 [email protected] " " 110 [email protected]
111 [email protected] 111 [email protected]
112 [email protected] 112 [email protected] "g"
113 [email protected] "g" 113 [email protected] " "
114 [email protected] " " 114 [email protected] "@"
115 [email protected] "@" 115 [email protected] " "
116 [email protected] " " 116 [email protected]
117 [email protected] 117 [email protected] "_"
118 [email protected] "_" 118 [email protected] " "
119 [email protected] " " 119 [email protected] "="
120 [email protected] "=" 120 [email protected] " "
121 [email protected] " " 121 [email protected]
122 [email protected] 122 [email protected] "("
123 [email protected] "(" 123 [email protected] ")"
124 [email protected] ")" 124 [email protected] ";"
125 [email protected] ";" 125 [email protected] "\n"
126 [email protected] "\n" 126 [email protected] "}"
127 [email protected] "}"
128 [email protected] "\n" 127 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast
index 5414c90b8..5de480da9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast
@@ -8,50 +8,48 @@ [email protected]
8 [email protected] "(" 8 [email protected] "("
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] 10 [email protected]
11 [email protected] 11 [email protected] "{"
12 [email protected] "{" 12 [email protected] "\n "
13 [email protected] "\n " 13 [email protected] ";"
14 [email protected] ";" 14 [email protected] ";"
15 [email protected] ";" 15 [email protected] ";"
16 [email protected] ";" 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected]
22 [email protected] 22 [email protected] "some_expr"
23 [email protected] "some_expr" 23 [email protected]
24 [email protected] 24 [email protected] "("
25 [email protected] "(" 25 [email protected] ")"
26 [email protected] ")" 26 [email protected] ";"
27 [email protected] ";" 27 [email protected] ";"
28 [email protected] ";" 28 [email protected] ";"
29 [email protected] ";" 29 [email protected] ";"
30 [email protected] ";" 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected] "{"
33 [email protected] 33 [email protected] ";"
34 [email protected] "{" 34 [email protected] ";"
35 [email protected] ";" 35 [email protected] ";"
36 [email protected] ";" 36 [email protected] "}"
37 [email protected] ";" 37 [email protected] ";"
38 [email protected] "}" 38 [email protected] ";"
39 [email protected] ";" 39 [email protected] ";"
40 [email protected] ";" 40 [email protected] ";"
41 [email protected] ";" 41 [email protected]
42 [email protected] ";" 42 [email protected]
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected] "Ok"
47 [email protected] 47 [email protected]
48 [email protected] "Ok" 48 [email protected] "("
49 [email protected] 49 [email protected]
50 [email protected] "(" 50 [email protected] "("
51 [email protected] 51 [email protected] ")"
52 [email protected] "(" 52 [email protected] ")"
53 [email protected] ")" 53 [email protected] "\n"
54 [email protected] ")" 54 [email protected] "}"
55 [email protected] "\n"
56 [email protected] "}"
57 [email protected] "\n" 55 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast b/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast
index 8e080fb60..e152c6b6c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast
@@ -9,40 +9,39 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "match"
16 [email protected] "match" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "("
19 [email protected] "(" 19 [email protected] ")"
20 [email protected] ")" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "{"
23 [email protected] "{" 23 [email protected] "\n "
24 [email protected] "\n " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "_"
27 [email protected] "_" 27 [email protected] " "
28 [email protected] " " 28 [email protected]
29 [email protected] 29 [email protected] "if"
30 [email protected] "if" 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "foo"
36 [email protected] "foo" 36 [email protected] " "
37 [email protected] " " 37 [email protected] "=>"
38 [email protected] "=>" 38 [email protected] " "
39 [email protected] " " 39 [email protected]
40 [email protected] 40 [email protected] "("
41 [email protected] "(" 41 [email protected] ")"
42 [email protected] ")" 42 [email protected] ","
43 [email protected] "," 43 [email protected] "\n "
44 [email protected] "\n " 44 [email protected] "}"
45 [email protected] "}" 45 [email protected] "\n"
46 [email protected] "\n" 46 [email protected] "}"
47 [email protected] "}"
48 [email protected] "\n" 47 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast b/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
index 728164f8e..b283ab804 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
@@ -9,73 +9,72 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "match"
16 [email protected] "match" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "("
19 [email protected] "(" 19 [email protected] ")"
20 [email protected] ")" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "{"
23 [email protected] "{" 23 [email protected] "\n "
24 [email protected] "\n " 24 [email protected]
25 [email protected] 25 [email protected] "#"
26 [email protected] "#" 26 [email protected] "!"
27 [email protected] "!" 27 [email protected] "["
28 [email protected] "[" 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected] "doc"
32 [email protected] "doc" 32 [email protected]
33 [email protected] 33 [email protected] "("
34 [email protected] "(" 34 [email protected] "\"Inner attribute\""
35 [email protected] "\"Inner attribute\"" 35 [email protected] ")"
36 [email protected] ")" 36 [email protected] "]"
37 [email protected] "]" 37 [email protected] "\n "
38 [email protected] "\n " 38 [email protected]
39 [email protected] 39 [email protected] "#"
40 [email protected] "#" 40 [email protected] "!"
41 [email protected] "!" 41 [email protected] "["
42 [email protected] "[" 42 [email protected]
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected] "doc"
46 [email protected] "doc" 46 [email protected]
47 [email protected] 47 [email protected] "("
48 [email protected] "(" 48 [email protected] "\"Can be\""
49 [email protected] "\"Can be\"" 49 [email protected] ")"
50 [email protected] ")" 50 [email protected] "]"
51 [email protected] "]" 51 [email protected] "\n "
52 [email protected] "\n " 52 [email protected]
53 [email protected] 53 [email protected] "#"
54 [email protected] "#" 54 [email protected] "!"
55 [email protected] "!" 55 [email protected] "["
56 [email protected] "[" 56 [email protected]
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected] "doc"
60 [email protected] "doc" 60 [email protected]
61 [email protected] 61 [email protected] "("
62 [email protected] "(" 62 [email protected] "\"Stacked\""
63 [email protected] "\"Stacked\"" 63 [email protected] ")"
64 [email protected] ")" 64 [email protected] "]"
65 [email protected] "]" 65 [email protected] "\n "
66 [email protected] "\n " 66 [email protected]
67 [email protected] 67 [email protected]
68 [email protected] 68 [email protected] "_"
69 [email protected] "_" 69 [email protected] " "
70 [email protected] " " 70 [email protected] "=>"
71 [email protected] "=>" 71 [email protected] " "
72 [email protected] " " 72 [email protected]
73 [email protected] 73 [email protected] "("
74 [email protected] "(" 74 [email protected] ")"
75 [email protected] ")" 75 [email protected] ","
76 [email protected] "," 76 [email protected] "\n "
77 [email protected] "\n " 77 [email protected] "}"
78 [email protected] "}" 78 [email protected] "\n"
79 [email protected] "\n" 79 [email protected] "}"
80 [email protected] "}"
81 [email protected] "\n" 80 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast b/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
index 6123885e3..9d5470914 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
@@ -9,138 +9,137 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "match"
16 [email protected] "match" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "("
19 [email protected] "(" 19 [email protected] ")"
20 [email protected] ")" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "{"
23 [email protected] "{" 23 [email protected] "\n "
24 [email protected] "\n " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "#"
27 [email protected] "#" 27 [email protected] "["
28 [email protected] "[" 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected] "cfg"
32 [email protected] "cfg" 32 [email protected]
33 [email protected] 33 [email protected] "("
34 [email protected] "(" 34 [email protected] "feature"
35 [email protected] "feature" 35 [email protected] " "
36 [email protected] " " 36 [email protected] "="
37 [email protected] "=" 37 [email protected] " "
38 [email protected] " " 38 [email protected] "\"some\""
39 [email protected] "\"some\"" 39 [email protected] ")"
40 [email protected] ")" 40 [email protected] "]"
41 [email protected] "]" 41 [email protected] "\n "
42 [email protected] "\n " 42 [email protected]
43 [email protected] 43 [email protected] "_"
44 [email protected] "_" 44 [email protected] " "
45 [email protected] " " 45 [email protected] "=>"
46 [email protected] "=>" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] 48 [email protected] "("
49 [email protected] "(" 49 [email protected] ")"
50 [email protected] ")" 50 [email protected] ","
51 [email protected] "," 51 [email protected] "\n "
52 [email protected] "\n " 52 [email protected]
53 [email protected] 53 [email protected]
54 [email protected] 54 [email protected] "#"
55 [email protected] "#" 55 [email protected] "["
56 [email protected] "[" 56 [email protected]
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected] "cfg"
60 [email protected] "cfg" 60 [email protected]
61 [email protected] 61 [email protected] "("
62 [email protected] "(" 62 [email protected] "feature"
63 [email protected] "feature" 63 [email protected] " "
64 [email protected] " " 64 [email protected] "="
65 [email protected] "=" 65 [email protected] " "
66 [email protected] " " 66 [email protected] "\"other\""
67 [email protected] "\"other\"" 67 [email protected] ")"
68 [email protected] ")" 68 [email protected] "]"
69 [email protected] "]" 69 [email protected] "\n "
70 [email protected] "\n " 70 [email protected]
71 [email protected] 71 [email protected] "_"
72 [email protected] "_" 72 [email protected] " "
73 [email protected] " " 73 [email protected] "=>"
74 [email protected] "=>" 74 [email protected] " "
75 [email protected] " " 75 [email protected]
76 [email protected] 76 [email protected] "("
77 [email protected] "(" 77 [email protected] ")"
78 [email protected] ")" 78 [email protected] ","
79 [email protected] "," 79 [email protected] "\n "
80 [email protected] "\n " 80 [email protected]
81 [email protected] 81 [email protected]
82 [email protected] 82 [email protected] "#"
83 [email protected] "#" 83 [email protected] "["
84 [email protected] "[" 84 [email protected]
85 [email protected] 85 [email protected]
86 [email protected] 86 [email protected]
87 [email protected] 87 [email protected] "cfg"
88 [email protected] "cfg" 88 [email protected]
89 [email protected] 89 [email protected] "("
90 [email protected] "(" 90 [email protected] "feature"
91 [email protected] "feature" 91 [email protected] " "
92 [email protected] " " 92 [email protected] "="
93 [email protected] "=" 93 [email protected] " "
94 [email protected] " " 94 [email protected] "\"many\""
95 [email protected] "\"many\"" 95 [email protected] ")"
96 [email protected] ")" 96 [email protected] "]"
97 [email protected] "]" 97 [email protected] "\n "
98 [email protected] "\n " 98 [email protected]
99 [email protected] 99 [email protected] "#"
100 [email protected] "#" 100 [email protected] "["
101 [email protected] "[" 101 [email protected]
102 [email protected] 102 [email protected]
103 [email protected] 103 [email protected]
104 [email protected] 104 [email protected] "cfg"
105 [email protected] "cfg" 105 [email protected]
106 [email protected] 106 [email protected] "("
107 [email protected] "(" 107 [email protected] "feature"
108 [email protected] "feature" 108 [email protected] " "
109 [email protected] " " 109 [email protected] "="
110 [email protected] "=" 110 [email protected] " "
111 [email protected] " " 111 [email protected] "\"attributes\""
112 [email protected] "\"attributes\"" 112 [email protected] ")"
113 [email protected] ")" 113 [email protected] "]"
114 [email protected] "]" 114 [email protected] "\n "
115 [email protected] "\n " 115 [email protected]
116 [email protected] 116 [email protected] "#"
117 [email protected] "#" 117 [email protected] "["
118 [email protected] "[" 118 [email protected]
119 [email protected] 119 [email protected]
120 [email protected] 120 [email protected]
121 [email protected] 121 [email protected] "cfg"
122 [email protected] "cfg" 122 [email protected]
123 [email protected] 123 [email protected] "("
124 [email protected] "(" 124 [email protected] "feature"
125 [email protected] "feature" 125 [email protected] " "
126 [email protected] " " 126 [email protected] "="
127 [email protected] "=" 127 [email protected] " "
128 [email protected] " " 128 [email protected] "\"before\""
129 [email protected] "\"before\"" 129 [email protected] ")"
130 [email protected] ")" 130 [email protected] "]"
131 [email protected] "]" 131 [email protected] "\n "
132 [email protected] "\n " 132 [email protected]
133 [email protected] 133 [email protected] "_"
134 [email protected] "_" 134 [email protected] " "
135 [email protected] " " 135 [email protected] "=>"
136 [email protected] "=>" 136 [email protected] " "
137 [email protected] " " 137 [email protected]
138 [email protected] 138 [email protected] "("
139 [email protected] "(" 139 [email protected] ")"
140 [email protected] ")" 140 [email protected] ","
141 [email protected] "," 141 [email protected] "\n "
142 [email protected] "\n " 142 [email protected] "}"
143 [email protected] "}" 143 [email protected] "\n"
144 [email protected] "\n" 144 [email protected] "}"
145 [email protected] "}"
146 [email protected] "\n" 145 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
index 67b9c10d5..ada2fc54e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
@@ -59,8 +59,7 @@ [email protected]
59 [email protected] ")" 59 [email protected] ")"
60 [email protected] " " 60 [email protected] " "
61 [email protected] 61 [email protected]
62 [email protected] 62 [email protected] "{"
63 [email protected] "{" 63 [email protected] "\n"
64 [email protected] "\n" 64 [email protected] "}"
65 [email protected] "}"
66 [email protected] "\n" 65 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast
index baf22a8d7..6178dfe59 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast
@@ -11,7 +11,6 @@ [email protected]
11 [email protected] ")" 11 [email protected] ")"
12 [email protected] " " 12 [email protected] " "
13 [email protected] 13 [email protected]
14 [email protected] 14 [email protected] "{"
15 [email protected] "{" 15 [email protected] "}"
16 [email protected] "}"
17 [email protected] "\n" 16 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast
index 16f5b90b6..ced59b7c1 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast
@@ -9,24 +9,23 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] " "
14 [email protected] " " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "crate"
21 [email protected] "crate" 21 [email protected] "::"
22 [email protected] "::" 22 [email protected]
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected] "foo"
25 [email protected] "foo" 25 [email protected]
26 [email protected] 26 [email protected] "("
27 [email protected] "(" 27 [email protected] ")"
28 [email protected] ")" 28 [email protected] ";"
29 [email protected] ";" 29 [email protected] " "
30 [email protected] " " 30 [email protected] "}"
31 [email protected] "}"
32 [email protected] "\n" 31 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
index 07ed14773..97611f7f3 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
@@ -9,40 +9,39 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected] "S"
19 [email protected] "S" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected] "{"
22 [email protected] "{" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "#"
26 [email protected] "#" 26 [email protected] "["
27 [email protected] "[" 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected] "cfg"
31 [email protected] "cfg" 31 [email protected]
32 [email protected] 32 [email protected] "("
33 [email protected] "(" 33 [email protected] "test"
34 [email protected] "test" 34 [email protected] ")"
35 [email protected] ")" 35 [email protected] "]"
36 [email protected] "]" 36 [email protected] " "
37 [email protected] " " 37 [email protected]
38 [email protected] 38 [email protected] "field"
39 [email protected] "field" 39 [email protected] ":"
40 [email protected] ":" 40 [email protected] " "
41 [email protected] " " 41 [email protected]
42 [email protected] 42 [email protected] "1"
43 [email protected] "1" 43 [email protected] " "
44 [email protected] " " 44 [email protected] "}"
45 [email protected] "}" 45 [email protected] "\n"
46 [email protected] "\n" 46 [email protected] "}"
47 [email protected] "}"
48 [email protected] "\n" 47 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast b/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
index 8307d4c15..09221fc54 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
@@ -9,91 +9,89 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "#"
17 [email protected] "#" 17 [email protected] "["
18 [email protected] "[" 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected] "A"
22 [email protected] "A" 22 [email protected] "]"
23 [email protected] "]" 23 [email protected] " "
24 [email protected] " " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected] "foo"
30 [email protected] "foo" 30 [email protected]
31 [email protected] 31 [email protected] "("
32 [email protected] "(" 32 [email protected] ")"
33 [email protected] ")" 33 [email protected] ";"
34 [email protected] ";" 34 [email protected] "\n "
35 [email protected] "\n " 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected] "#"
38 [email protected] "#" 38 [email protected] "["
39 [email protected] "[" 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected]
42 [email protected] 42 [email protected] "B"
43 [email protected] "B" 43 [email protected] "]"
44 [email protected] "]" 44 [email protected] " "
45 [email protected] " " 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected] "bar"
50 [email protected] "bar" 50 [email protected] "!"
51 [email protected] "!" 51 [email protected]
52 [email protected] 52 [email protected] "{"
53 [email protected] "{" 53 [email protected] "}"
54 [email protected] "}" 54 [email protected] "\n "
55 [email protected] "\n " 55 [email protected]
56 [email protected] 56 [email protected]
57 [email protected] 57 [email protected] "#"
58 [email protected] "#" 58 [email protected] "["
59 [email protected] "[" 59 [email protected]
60 [email protected] 60 [email protected]
61 [email protected] 61 [email protected]
62 [email protected] 62 [email protected] "C"
63 [email protected] "C" 63 [email protected] "]"
64 [email protected] "]" 64 [email protected] " "
65 [email protected] " " 65 [email protected]
66 [email protected] 66 [email protected] "#"
67 [email protected] "#" 67 [email protected] "["
68 [email protected] "[" 68 [email protected]
69 [email protected] 69 [email protected]
70 [email protected] 70 [email protected]
71 [email protected] 71 [email protected] "D"
72 [email protected] "D" 72 [email protected] "]"
73 [email protected] "]" 73 [email protected] " "
74 [email protected] " " 74 [email protected]
75 [email protected] 75 [email protected] "{"
76 [email protected] 76 [email protected] "}"
77 [email protected] "{" 77 [email protected] "\n "
78 [email protected] "}" 78 [email protected]
79 [email protected] "\n " 79 [email protected]
80 [email protected] 80 [email protected] "#"
81 [email protected] 81 [email protected] "["
82 [email protected] "#" 82 [email protected]
83 [email protected] "[" 83 [email protected]
84 [email protected] 84 [email protected]
85 [email protected] 85 [email protected] "D"
86 [email protected] 86 [email protected] "]"
87 [email protected] "D" 87 [email protected] " "
88 [email protected] "]" 88 [email protected]
89 [email protected] " " 89 [email protected] "return"
90 [email protected] 90 [email protected] " "
91 [email protected] "return" 91 [email protected]
92 [email protected] " " 92 [email protected] "("
93 [email protected] 93 [email protected] ")"
94 [email protected] "(" 94 [email protected] ";"
95 [email protected] ")" 95 [email protected] "\n"
96 [email protected] ";" 96 [email protected] "}"
97 [email protected] "\n"
98 [email protected] "}"
99 [email protected] "\n" 97 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast
index 19c47ea25..93cc41533 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast
@@ -9,51 +9,49 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "{"
17 [email protected] 17 [email protected] " "
18 [email protected] "{" 18 [email protected]
19 [email protected] " " 19 [email protected]
20 [email protected] 20 [email protected] "#"
21 [email protected] 21 [email protected] "["
22 [email protected] "#" 22 [email protected]
23 [email protected] "[" 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "A"
26 [email protected] 26 [email protected] "]"
27 [email protected] "A" 27 [email protected] " "
28 [email protected] "]" 28 [email protected]
29 [email protected] " " 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected] "bar"
33 [email protected] 33 [email protected] "!"
34 [email protected] "bar" 34 [email protected]
35 [email protected] "!" 35 [email protected] "("
36 [email protected] 36 [email protected] ")"
37 [email protected] "(" 37 [email protected] "?"
38 [email protected] ")" 38 [email protected] " "
39 [email protected] "?" 39 [email protected] "}"
40 [email protected] " " 40 [email protected] "\n "
41 [email protected] "}" 41 [email protected]
42 [email protected] "\n " 42 [email protected]
43 [email protected] 43 [email protected] "#"
44 [email protected] 44 [email protected] "["
45 [email protected] "#" 45 [email protected]
46 [email protected] "[" 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected] "B"
49 [email protected] 49 [email protected] "]"
50 [email protected] "B" 50 [email protected] " "
51 [email protected] "]" 51 [email protected] "&"
52 [email protected] " " 52 [email protected]
53 [email protected] "&" 53 [email protected] "("
54 [email protected] 54 [email protected] ")"
55 [email protected] "(" 55 [email protected] "\n"
56 [email protected] ")" 56 [email protected] "}"
57 [email protected] "\n"
58 [email protected] "}"
59 [email protected] "\n" 57 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast b/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast
index 5630b20af..0901f2348 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast
@@ -13,9 +13,8 @@ [email protected]
13 [email protected] ")" 13 [email protected] ")"
14 [email protected] " " 14 [email protected] " "
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "{"
17 [email protected] "{" 17 [email protected] "}"
18 [email protected] "}"
19 [email protected] "\n" 18 [email protected] "\n"
20 [email protected] 19 [email protected]
21 [email protected] "const" 20 [email protected] "const"
@@ -31,7 +30,6 @@ [email protected]
31 [email protected] ")" 30 [email protected] ")"
32 [email protected] " " 31 [email protected] " "
33 [email protected] 32 [email protected]
34 [email protected] 33 [email protected] "{"
35 [email protected] "{" 34 [email protected] "}"
36 [email protected] "}"
37 [email protected] "\n" 35 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast
index 4946ee050..28291afc2 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast
@@ -9,29 +9,28 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected]
22 [email protected] 22 [email protected] "m"
23 [email protected] "m" 23 [email protected] "!"
24 [email protected] "!" 24 [email protected]
25 [email protected] 25 [email protected] "("
26 [email protected] "(" 26 [email protected] "x"
27 [email protected] "x" 27 [email protected] ")"
28 [email protected] ")" 28 [email protected] " "
29 [email protected] " " 29 [email protected] "="
30 [email protected] "=" 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected] "0"
33 [email protected] "0" 33 [email protected] ";"
34 [email protected] ";" 34 [email protected] "\n"
35 [email protected] "\n" 35 [email protected] "}"
36 [email protected] "}"
37 [email protected] "\n" 36 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast b/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast
index 18fdd9dc9..bb94a05c6 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast
@@ -9,121 +9,118 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "a"
20 [email protected] "a" 20 [email protected] ";"
21 [email protected] ";" 21 [email protected] "\n "
22 [email protected] "\n " 22 [email protected]
23 [email protected] 23 [email protected] "let"
24 [email protected] "let" 24 [email protected] " "
25 [email protected] " " 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected] "b"
28 [email protected] "b" 28 [email protected] ":"
29 [email protected] ":" 29 [email protected] " "
30 [email protected] " " 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected] "i32"
35 [email protected] "i32" 35 [email protected] ";"
36 [email protected] ";" 36 [email protected] "\n "
37 [email protected] "\n " 37 [email protected]
38 [email protected] 38 [email protected] "let"
39 [email protected] "let" 39 [email protected] " "
40 [email protected] " " 40 [email protected]
41 [email protected] 41 [email protected]
42 [email protected] 42 [email protected] "c"
43 [email protected] "c" 43 [email protected] " "
44 [email protected] " " 44 [email protected] "="
45 [email protected] "=" 45 [email protected] " "
46 [email protected] " " 46 [email protected]
47 [email protected] 47 [email protected] "92"
48 [email protected] "92" 48 [email protected] ";"
49 [email protected] ";" 49 [email protected] "\n "
50 [email protected] "\n " 50 [email protected]
51 [email protected] 51 [email protected] "let"
52 [email protected] "let" 52 [email protected] " "
53 [email protected] " " 53 [email protected]
54 [email protected] 54 [email protected]
55 [email protected] 55 [email protected] "d"
56 [email protected] "d" 56 [email protected] ":"
57 [email protected] ":" 57 [email protected] " "
58 [email protected] " " 58 [email protected]
59 [email protected] 59 [email protected]
60 [email protected] 60 [email protected]
61 [email protected] 61 [email protected]
62 [email protected] 62 [email protected] "i32"
63 [email protected] "i32" 63 [email protected] " "
64 [email protected] " " 64 [email protected] "="
65 [email protected] "=" 65 [email protected] " "
66 [email protected] " " 66 [email protected]
67 [email protected] 67 [email protected] "92"
68 [email protected] "92" 68 [email protected] ";"
69 [email protected] ";" 69 [email protected] "\n "
70 [email protected] "\n " 70 [email protected]
71 [email protected] 71 [email protected] "let"
72 [email protected] "let" 72 [email protected] " "
73 [email protected] " " 73 [email protected]
74 [email protected] 74 [email protected]
75 [email protected] 75 [email protected] "e"
76 [email protected] "e" 76 [email protected] ":"
77 [email protected] ":" 77 [email protected] " "
78 [email protected] " " 78 [email protected]
79 [email protected] 79 [email protected] "!"
80 [email protected] "!" 80 [email protected] ";"
81 [email protected] ";" 81 [email protected] "\n "
82 [email protected] "\n " 82 [email protected]
83 [email protected] 83 [email protected] "let"
84 [email protected] "let" 84 [email protected] " "
85 [email protected] " " 85 [email protected]
86 [email protected] 86 [email protected] "_"
87 [email protected] "_" 87 [email protected] ":"
88 [email protected] ":" 88 [email protected] " "
89 [email protected] " " 89 [email protected]
90 [email protected] 90 [email protected] "!"
91 [email protected] "!" 91 [email protected] " "
92 [email protected] " " 92 [email protected] "="
93 [email protected] "=" 93 [email protected] " "
94 [email protected] " " 94 [email protected]
95 [email protected] 95 [email protected] "{"
96 [email protected] 96 [email protected] "}"
97 [email protected] "{" 97 [email protected] ";"
98 [email protected] "}" 98 [email protected] "\n "
99 [email protected] ";" 99 [email protected]
100 [email protected] "\n " 100 [email protected] "let"
101 [email protected] 101 [email protected] " "
102 [email protected] "let" 102 [email protected]
103 [email protected] " " 103 [email protected]
104 [email protected] 104 [email protected] "f"
105 [email protected] 105 [email protected] " "
106 [email protected] "f" 106 [email protected] "="
107 [email protected] " " 107 [email protected] " "
108 [email protected] "=" 108 [email protected]
109 [email protected] " " 109 [email protected]
110 [email protected] 110 [email protected] "#"
111 [email protected] 111 [email protected] "["
112 [email protected] "#" 112 [email protected]
113 [email protected] "[" 113 [email protected]
114 [email protected] 114 [email protected]
115 [email protected] 115 [email protected] "attr"
116 [email protected] 116 [email protected] "]"
117 [email protected] "attr" 117 [email protected]
118 [email protected] "]" 118 [email protected] "|"
119 [email protected] 119 [email protected] "|"
120 [email protected] "|" 120 [email protected]
121 [email protected] "|" 121 [email protected] "{"
122 [email protected] 122 [email protected] "}"
123 [email protected] 123 [email protected] ";"
124 [email protected] "{" 124 [email protected] "\n"
125 [email protected] "}" 125 [email protected] "}"
126 [email protected] ";"
127 [email protected] "\n"
128 [email protected] "}"
129 [email protected] "\n" 126 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast
index 01fffd7b0..8f2f144c7 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast
@@ -9,25 +9,23 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "_"
19 [email protected] "_" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "="
21 [email protected] "=" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "try"
24 [email protected] "try" 24 [email protected] " "
25 [email protected] " " 25 [email protected]
26 [email protected] 26 [email protected] "{"
27 [email protected] 27 [email protected] "}"
28 [email protected] "{" 28 [email protected] ";"
29 [email protected] "}" 29 [email protected] "\n"
30 [email protected] ";" 30 [email protected] "}"
31 [email protected] "\n"
32 [email protected] "}"
33 [email protected] "\n" 31 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast
index 498b3121e..87ac42748 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast
@@ -9,82 +9,81 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "x"
20 [email protected] "x" 20 [email protected] " "
21 [email protected] " " 21 [email protected] "="
22 [email protected] "=" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected] "box"
25 [email protected] "box" 25 [email protected] " "
26 [email protected] " " 26 [email protected]
27 [email protected] 27 [email protected] "1i32"
28 [email protected] "1i32" 28 [email protected] ";"
29 [email protected] ";" 29 [email protected] "\n "
30 [email protected] "\n " 30 [email protected]
31 [email protected] 31 [email protected] "let"
32 [email protected] "let" 32 [email protected] " "
33 [email protected] " " 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "y"
36 [email protected] "y" 36 [email protected] " "
37 [email protected] " " 37 [email protected] "="
38 [email protected] "=" 38 [email protected] " "
39 [email protected] " " 39 [email protected]
40 [email protected] 40 [email protected] "("
41 [email protected] "(" 41 [email protected]
42 [email protected] 42 [email protected] "box"
43 [email protected] "box" 43 [email protected] " "
44 [email protected] " " 44 [email protected]
45 [email protected] 45 [email protected] "1i32"
46 [email protected] "1i32" 46 [email protected] ","
47 [email protected] "," 47 [email protected] " "
48 [email protected] " " 48 [email protected]
49 [email protected] 49 [email protected] "box"
50 [email protected] "box" 50 [email protected] " "
51 [email protected] " " 51 [email protected]
52 [email protected] 52 [email protected] "2i32"
53 [email protected] "2i32" 53 [email protected] ")"
54 [email protected] ")" 54 [email protected] ";"
55 [email protected] ";" 55 [email protected] "\n "
56 [email protected] "\n " 56 [email protected]
57 [email protected] 57 [email protected] "let"
58 [email protected] "let" 58 [email protected] " "
59 [email protected] " " 59 [email protected]
60 [email protected] 60 [email protected]
61 [email protected] 61 [email protected] "z"
62 [email protected] "z" 62 [email protected] " "
63 [email protected] " " 63 [email protected] "="
64 [email protected] "=" 64 [email protected] " "
65 [email protected] " " 65 [email protected]
66 [email protected] 66 [email protected]
67 [email protected] 67 [email protected]
68 [email protected] 68 [email protected]
69 [email protected] 69 [email protected]
70 [email protected] 70 [email protected] "Foo"
71 [email protected] "Foo" 71 [email protected]
72 [email protected] 72 [email protected] "("
73 [email protected] "(" 73 [email protected]
74 [email protected] 74 [email protected] "box"
75 [email protected] "box" 75 [email protected] " "
76 [email protected] " " 76 [email protected]
77 [email protected] 77 [email protected] "1i32"
78 [email protected] "1i32" 78 [email protected] ","
79 [email protected] "," 79 [email protected] " "
80 [email protected] " " 80 [email protected]
81 [email protected] 81 [email protected] "box"
82 [email protected] "box" 82 [email protected] " "
83 [email protected] " " 83 [email protected]
84 [email protected] 84 [email protected] "2i32"
85 [email protected] "2i32" 85 [email protected] ")"
86 [email protected] ")" 86 [email protected] ";"
87 [email protected] ";" 87 [email protected] "\n"
88 [email protected] "\n" 88 [email protected] "}"
89 [email protected] "}"
90 [email protected] "\n" 89 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast
index db58a928e..00ce5ecf0 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast
@@ -48,9 +48,8 @@ [email protected]
48 [email protected] ")" 48 [email protected] ")"
49 [email protected] " " 49 [email protected] " "
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected] "{"
52 [email protected] "{" 52 [email protected] "}"
53 [email protected] "}"
54 [email protected] "\n" 53 [email protected] "\n"
55 [email protected] "}" 54 [email protected] "}"
56 [email protected] "\n" 55 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast b/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast
index 4ca554ef8..b330a0932 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast
@@ -9,56 +9,54 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "enum"
16 [email protected] "enum" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "LocalEnum"
19 [email protected] "LocalEnum" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected] "{"
22 [email protected] "{" 22 [email protected] "\n "
23 [email protected] "\n " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "One"
26 [email protected] "One" 26 [email protected] ","
27 [email protected] "," 27 [email protected] "\n "
28 [email protected] "\n " 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected] "Two"
31 [email protected] "Two" 31 [email protected] ","
32 [email protected] "," 32 [email protected] "\n "
33 [email protected] "\n " 33 [email protected] "}"
34 [email protected] "}" 34 [email protected] ";"
35 [email protected] ";" 35 [email protected] "\n "
36 [email protected] "\n " 36 [email protected]
37 [email protected] 37 [email protected] "fn"
38 [email protected] "fn" 38 [email protected] " "
39 [email protected] " " 39 [email protected]
40 [email protected] 40 [email protected] "f"
41 [email protected] "f" 41 [email protected]
42 [email protected] 42 [email protected] "("
43 [email protected] "(" 43 [email protected] ")"
44 [email protected] ")" 44 [email protected] " "
45 [email protected] " " 45 [email protected]
46 [email protected] 46 [email protected] "{"
47 [email protected] 47 [email protected] "}"
48 [email protected] "{" 48 [email protected] ";"
49 [email protected] "}" 49 [email protected] "\n "
50 [email protected] ";" 50 [email protected]
51 [email protected] "\n " 51 [email protected] "struct"
52 [email protected] 52 [email protected] " "
53 [email protected] "struct" 53 [email protected]
54 [email protected] " " 54 [email protected] "S"
55 [email protected] 55 [email protected] " "
56 [email protected] "S" 56 [email protected]
57 [email protected] " " 57 [email protected] "{"
58 [email protected] 58 [email protected] "}"
59 [email protected] "{" 59 [email protected] ";"
60 [email protected] "}" 60 [email protected] "\n"
61 [email protected] ";" 61 [email protected] "}"
62 [email protected] "\n"
63 [email protected] "}"
64 [email protected] "\n" 62 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast
index 7fa3b9f32..8e8d9e992 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast
@@ -9,62 +9,61 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "x"
21 [email protected] "x" 21 [email protected] "."
22 [email protected] "." 22 [email protected] "await"
23 [email protected] "await" 23 [email protected] ";"
24 [email protected] ";" 24 [email protected] "\n "
25 [email protected] "\n " 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected] "x"
33 [email protected] "x" 33 [email protected] "."
34 [email protected] "." 34 [email protected]
35 [email protected] 35 [email protected] "0"
36 [email protected] "0" 36 [email protected] "."
37 [email protected] "." 37 [email protected] "await"
38 [email protected] "await" 38 [email protected] ";"
39 [email protected] ";" 39 [email protected] "\n "
40 [email protected] "\n " 40 [email protected]
41 [email protected] 41 [email protected]
42 [email protected] 42 [email protected]
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected]
50 [email protected] 50 [email protected] "x"
51 [email protected] "x" 51 [email protected] "."
52 [email protected] "." 52 [email protected]
53 [email protected] 53 [email protected] "0"
54 [email protected] "0" 54 [email protected]
55 [email protected] 55 [email protected] "("
56 [email protected] "(" 56 [email protected] ")"
57 [email protected] ")" 57 [email protected] "."
58 [email protected] "." 58 [email protected] "await"
59 [email protected] "await" 59 [email protected] "?"
60 [email protected] "?" 60 [email protected] "."
61 [email protected] "." 61 [email protected]
62 [email protected] 62 [email protected] "hello"
63 [email protected] "hello" 63 [email protected]
64 [email protected] 64 [email protected] "("
65 [email protected] "(" 65 [email protected] ")"
66 [email protected] ")" 66 [email protected] ";"
67 [email protected] ";" 67 [email protected] "\n"
68 [email protected] "\n" 68 [email protected] "}"
69 [email protected] "}"
70 [email protected] "\n" 69 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
index a32484f2c..c457851c9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
@@ -50,7 +50,6 @@ [email protected]
50 [email protected] ")" 50 [email protected] ")"
51 [email protected] " " 51 [email protected] " "
52 [email protected] 52 [email protected]
53 [email protected] 53 [email protected] "{"
54 [email protected] "{" 54 [email protected] "}"
55 [email protected] "}"
56 [email protected] "\n" 55 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast
index 9017236cc..ea325831e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast
@@ -9,58 +9,56 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "mut"
19 [email protected] "mut" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected] "p"
22 [email protected] "p" 22 [email protected] " "
23 [email protected] " " 23 [email protected] "="
24 [email protected] "=" 24 [email protected] " "
25 [email protected] " " 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected] "F"
30 [email protected] "F" 30 [email protected]
31 [email protected] 31 [email protected] "{"
32 [email protected] "{" 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected] "x"
35 [email protected] "x" 35 [email protected] ":"
36 [email protected] ":" 36 [email protected] " "
37 [email protected] " " 37 [email protected]
38 [email protected] 38 [email protected] "5"
39 [email protected] "5" 39 [email protected] "}"
40 [email protected] "}" 40 [email protected] ";"
41 [email protected] ";" 41 [email protected] "\n "
42 [email protected] "\n " 42 [email protected]
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected] "{"
47 [email protected] 47 [email protected]
48 [email protected] "{" 48 [email protected]
49 [email protected] 49 [email protected]
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected] "p"
52 [email protected] 52 [email protected] "}"
53 [email protected] "p" 53 [email protected] "."
54 [email protected] "}" 54 [email protected]
55 [email protected] "." 55 [email protected] "x"
56 [email protected] 56 [email protected] " "
57 [email protected] "x" 57 [email protected] "="
58 [email protected] " " 58 [email protected] " "
59 [email protected] "=" 59 [email protected]
60 [email protected] " " 60 [email protected] "10"
61 [email protected] 61 [email protected] ";"
62 [email protected] "10" 62 [email protected] "\n"
63 [email protected] ";" 63 [email protected] "}"
64 [email protected] "\n"
65 [email protected] "}"
66 [email protected] "\n" 64 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
index 2cb5b52f4..9135de9df 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
@@ -20,7 +20,6 @@ [email protected]
20 [email protected] ")" 20 [email protected] ")"
21 [email protected] " " 21 [email protected] " "
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected] "{"
24 [email protected] "{" 24 [email protected] "}"
25 [email protected] "}"
26 [email protected] "\n" 25 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
index ac3f4de26..14610a0a2 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
@@ -29,7 +29,6 @@ [email protected]
29 [email protected] ")" 29 [email protected] ")"
30 [email protected] " " 30 [email protected] " "
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected] "{"
33 [email protected] "{" 33 [email protected] "}"
34 [email protected] "}"
35 [email protected] "\n" 34 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast b/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast
index 8d4919cbd..e6be8b7e4 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast
@@ -9,34 +9,32 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "for"
16 [email protected] "for" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "x"
20 [email protected] "x" 20 [email protected] " "
21 [email protected] " " 21 [email protected] "in"
22 [email protected] "in" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "0"
26 [email protected] "0" 26 [email protected] " "
27 [email protected] " " 27 [email protected] ".."
28 [email protected] ".." 28 [email protected] " "
29 [email protected] " " 29 [email protected]
30 [email protected] 30 [email protected] "{"
31 [email protected] 31 [email protected] "\n "
32 [email protected] "{" 32 [email protected]
33 [email protected] "\n " 33 [email protected]
34 [email protected] 34 [email protected] "break"
35 [email protected] 35 [email protected] ";"
36 [email protected] "break" 36 [email protected] "\n "
37 [email protected] ";" 37 [email protected] "}"
38 [email protected] "\n " 38 [email protected] "\n"
39 [email protected] "}" 39 [email protected] "}"
40 [email protected] "\n"
41 [email protected] "}"
42 [email protected] "\n" 40 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast
index 2c933fa76..57fba5fd5 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast
@@ -9,103 +9,102 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "box"
19 [email protected] "box" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected]
22 [email protected] 22 [email protected] "i"
23 [email protected] "i" 23 [email protected] " "
24 [email protected] " " 24 [email protected] "="
25 [email protected] "=" 25 [email protected] " "
26 [email protected] " " 26 [email protected]
27 [email protected] 27 [email protected] "("
28 [email protected] "(" 28 [email protected] ")"
29 [email protected] ")" 29 [email protected] ";"
30 [email protected] ";" 30 [email protected] "\n "
31 [email protected] "\n " 31 [email protected]
32 [email protected] 32 [email protected] "let"
33 [email protected] "let" 33 [email protected] " "
34 [email protected] " " 34 [email protected]
35 [email protected] 35 [email protected] "box"
36 [email protected] "box" 36 [email protected] " "
37 [email protected] " " 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected] "Outer"
42 [email protected] "Outer" 42 [email protected] " "
43 [email protected] " " 43 [email protected]
44 [email protected] 44 [email protected] "{"
45 [email protected] "{" 45 [email protected] " "
46 [email protected] " " 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected] "box"
49 [email protected] "box" 49 [email protected] " "
50 [email protected] " " 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected] "i"
53 [email protected] "i" 53 [email protected] ","
54 [email protected] "," 54 [email protected] " "
55 [email protected] " " 55 [email protected]
56 [email protected] 56 [email protected]
57 [email protected] 57 [email protected] "j"
58 [email protected] "j" 58 [email protected] ":"
59 [email protected] ":" 59 [email protected] " "
60 [email protected] " " 60 [email protected]
61 [email protected] 61 [email protected] "box"
62 [email protected] "box" 62 [email protected] " "
63 [email protected] " " 63 [email protected]
64 [email protected] 64 [email protected]
65 [email protected] 65 [email protected]
66 [email protected] 66 [email protected]
67 [email protected] 67 [email protected] "Inner"
68 [email protected] "Inner" 68 [email protected] "("
69 [email protected] "(" 69 [email protected]
70 [email protected] 70 [email protected] "box"
71 [email protected] "box" 71 [email protected] " "
72 [email protected] " " 72 [email protected]
73 [email protected] 73 [email protected] "&"
74 [email protected] "&" 74 [email protected]
75 [email protected] 75 [email protected]
76 [email protected] 76 [email protected] "x"
77 [email protected] "x" 77 [email protected] ")"
78 [email protected] ")" 78 [email protected] " "
79 [email protected] " " 79 [email protected] "}"
80 [email protected] "}" 80 [email protected] " "
81 [email protected] " " 81 [email protected] "="
82 [email protected] "=" 82 [email protected] " "
83 [email protected] " " 83 [email protected]
84 [email protected] 84 [email protected] "("
85 [email protected] "(" 85 [email protected] ")"
86 [email protected] ")" 86 [email protected] ";"
87 [email protected] ";" 87 [email protected] "\n "
88 [email protected] "\n " 88 [email protected]
89 [email protected] 89 [email protected] "let"
90 [email protected] "let" 90 [email protected] " "
91 [email protected] " " 91 [email protected]
92 [email protected] 92 [email protected] "box"
93 [email protected] "box" 93 [email protected] " "
94 [email protected] " " 94 [email protected]
95 [email protected] 95 [email protected] "ref"
96 [email protected] "ref" 96 [email protected] " "
97 [email protected] " " 97 [email protected] "mut"
98 [email protected] "mut" 98 [email protected] " "
99 [email protected] " " 99 [email protected]
100 [email protected] 100 [email protected] "i"
101 [email protected] "i" 101 [email protected] " "
102 [email protected] " " 102 [email protected] "="
103 [email protected] "=" 103 [email protected] " "
104 [email protected] " " 104 [email protected]
105 [email protected] 105 [email protected] "("
106 [email protected] "(" 106 [email protected] ")"
107 [email protected] ")" 107 [email protected] ";"
108 [email protected] ";" 108 [email protected] "\n"
109 [email protected] "\n" 109 [email protected] "}"
110 [email protected] "}"
111 [email protected] "\n" 110 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast
index e0b50d8be..8d8b9597b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast
@@ -9,448 +9,447 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] ".."
19 [email protected] ".." 19 [email protected] " "
20 [email protected] " " 20 [email protected] "="
21 [email protected] "=" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "("
24 [email protected] "(" 24 [email protected] ")"
25 [email protected] ")" 25 [email protected] ";"
26 [email protected] ";" 26 [email protected] "\n "
27 [email protected] "\n " 27 [email protected] "//"
28 [email protected] "//" 28 [email protected] "\n "
29 [email protected] "\n " 29 [email protected] "// Tuples"
30 [email protected] "// Tuples" 30 [email protected] "\n "
31 [email protected] "\n " 31 [email protected] "//"
32 [email protected] "//" 32 [email protected] "\n "
33 [email protected] "\n " 33 [email protected]
34 [email protected] 34 [email protected] "let"
35 [email protected] "let" 35 [email protected] " "
36 [email protected] " " 36 [email protected]
37 [email protected] 37 [email protected] "("
38 [email protected] "(" 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected] "a"
41 [email protected] "a" 41 [email protected] ","
42 [email protected] "," 42 [email protected] " "
43 [email protected] " " 43 [email protected]
44 [email protected] 44 [email protected] ".."
45 [email protected] ".." 45 [email protected] ")"
46 [email protected] ")" 46 [email protected] " "
47 [email protected] " " 47 [email protected] "="
48 [email protected] "=" 48 [email protected] " "
49 [email protected] " " 49 [email protected]
50 [email protected] 50 [email protected] "("
51 [email protected] "(" 51 [email protected] ")"
52 [email protected] ")" 52 [email protected] ";"
53 [email protected] ";" 53 [email protected] "\n "
54 [email protected] "\n " 54 [email protected]
55 [email protected] 55 [email protected] "let"
56 [email protected] "let" 56 [email protected] " "
57 [email protected] " " 57 [email protected]
58 [email protected] 58 [email protected] "("
59 [email protected] "(" 59 [email protected]
60 [email protected] 60 [email protected]
61 [email protected] 61 [email protected] "a"
62 [email protected] "a" 62 [email protected] ","
63 [email protected] "," 63 [email protected] " "
64 [email protected] " " 64 [email protected]
65 [email protected] 65 [email protected] ".."
66 [email protected] ".." 66 [email protected] ","
67 [email protected] "," 67 [email protected] ")"
68 [email protected] ")" 68 [email protected] " "
69 [email protected] " " 69 [email protected] "="
70 [email protected] "=" 70 [email protected] " "
71 [email protected] " " 71 [email protected]
72 [email protected] 72 [email protected] "("
73 [email protected] "(" 73 [email protected] ")"
74 [email protected] ")" 74 [email protected] ";"
75 [email protected] ";" 75 [email protected] "\n "
76 [email protected] "\n " 76 [email protected]
77 [email protected] 77 [email protected] "let"
78 [email protected] "let" 78 [email protected] " "
79 [email protected] " " 79 [email protected]
80 [email protected] 80 [email protected]
81 [email protected] 81 [email protected]
82 [email protected] 82 [email protected]
83 [email protected] 83 [email protected] "Tuple"
84 [email protected] "Tuple" 84 [email protected] "("
85 [email protected] "(" 85 [email protected]
86 [email protected] 86 [email protected]
87 [email protected] 87 [email protected] "a"
88 [email protected] "a" 88 [email protected] ","
89 [email protected] "," 89 [email protected] " "
90 [email protected] " " 90 [email protected]
91 [email protected] 91 [email protected] ".."
92 [email protected] ".." 92 [email protected] ")"
93 [email protected] ")" 93 [email protected] " "
94 [email protected] " " 94 [email protected] "="
95 [email protected] "=" 95 [email protected] " "
96 [email protected] " " 96 [email protected]
97 [email protected] 97 [email protected] "("
98 [email protected] "(" 98 [email protected] ")"
99 [email protected] ")" 99 [email protected] ";"
100 [email protected] ";" 100 [email protected] "\n "
101 [email protected] "\n " 101 [email protected]
102 [email protected] 102 [email protected] "let"
103 [email protected] "let" 103 [email protected] " "
104 [email protected] " " 104 [email protected]
105 [email protected] 105 [email protected]
106 [email protected] 106 [email protected]
107 [email protected] 107 [email protected]
108 [email protected] 108 [email protected] "Tuple"
109 [email protected] "Tuple" 109 [email protected] "("
110 [email protected] "(" 110 [email protected]
111 [email protected] 111 [email protected]
112 [email protected] 112 [email protected] "a"
113 [email protected] "a" 113 [email protected] ","
114 [email protected] "," 114 [email protected] " "
115 [email protected] " " 115 [email protected]
116 [email protected] 116 [email protected] ".."
117 [email protected] ".." 117 [email protected] ","
118 [email protected] "," 118 [email protected] ")"
119 [email protected] ")" 119 [email protected] " "
120 [email protected] " " 120 [email protected] "="
121 [email protected] "=" 121 [email protected] " "
122 [email protected] " " 122 [email protected]
123 [email protected] 123 [email protected] "("
124 [email protected] "(" 124 [email protected] ")"
125 [email protected] ")" 125 [email protected] ";"
126 [email protected] ";" 126 [email protected] "\n "
127 [email protected] "\n " 127 [email protected]
128 [email protected] 128 [email protected] "let"
129 [email protected] "let" 129 [email protected] " "
130 [email protected] " " 130 [email protected]
131 [email protected] 131 [email protected] "("
132 [email protected] "(" 132 [email protected]
133 [email protected] 133 [email protected] ".."
134 [email protected] ".." 134 [email protected] ","
135 [email protected] "," 135 [email protected] " "
136 [email protected] " " 136 [email protected]
137 [email protected] 137 [email protected] ".."
138 [email protected] ".." 138 [email protected] ")"
139 [email protected] ")" 139 [email protected] " "
140 [email protected] " " 140 [email protected] "="
141 [email protected] "=" 141 [email protected] " "
142 [email protected] " " 142 [email protected]
143 [email protected] 143 [email protected] "("
144 [email protected] "(" 144 [email protected] ")"
145 [email protected] ")" 145 [email protected] ";"
146 [email protected] ";" 146 [email protected] "\n "
147 [email protected] "\n " 147 [email protected]
148 [email protected] 148 [email protected] "let"
149 [email protected] "let" 149 [email protected] " "
150 [email protected] " " 150 [email protected]
151 [email protected] 151 [email protected]
152 [email protected] 152 [email protected]
153 [email protected] 153 [email protected]
154 [email protected] 154 [email protected] "Tuple"
155 [email protected] "Tuple" 155 [email protected] "("
156 [email protected] "(" 156 [email protected]
157 [email protected] 157 [email protected] ".."
158 [email protected] ".." 158 [email protected] ","
159 [email protected] "," 159 [email protected] " "
160 [email protected] " " 160 [email protected]
161 [email protected] 161 [email protected] ".."
162 [email protected] ".." 162 [email protected] ")"
163 [email protected] ")" 163 [email protected] " "
164 [email protected] " " 164 [email protected] "="
165 [email protected] "=" 165 [email protected] " "
166 [email protected] " " 166 [email protected]
167 [email protected] 167 [email protected] "("
168 [email protected] "(" 168 [email protected] ")"
169 [email protected] ")" 169 [email protected] ";"
170 [email protected] ";" 170 [email protected] "\n "
171 [email protected] "\n " 171 [email protected]
172 [email protected] 172 [email protected] "let"
173 [email protected] "let" 173 [email protected] " "
174 [email protected] " " 174 [email protected]
175 [email protected] 175 [email protected] "("
176 [email protected] "(" 176 [email protected]
177 [email protected] 177 [email protected] ".."
178 [email protected] ".." 178 [email protected] ","
179 [email protected] "," 179 [email protected] " "
180 [email protected] " " 180 [email protected]
181 [email protected] 181 [email protected]
182 [email protected] 182 [email protected] "a"
183 [email protected] "a" 183 [email protected] ","
184 [email protected] "," 184 [email protected] " "
185 [email protected] " " 185 [email protected]
186 [email protected] 186 [email protected] ".."
187 [email protected] ".." 187 [email protected] ")"
188 [email protected] ")" 188 [email protected] " "
189 [email protected] " " 189 [email protected] "="
190 [email protected] "=" 190 [email protected] " "
191 [email protected] " " 191 [email protected]
192 [email protected] 192 [email protected] "("
193 [email protected] "(" 193 [email protected] ")"
194 [email protected] ")" 194 [email protected] ";"
195 [email protected] ";" 195 [email protected] "\n "
196 [email protected] "\n " 196 [email protected]
197 [email protected] 197 [email protected] "let"
198 [email protected] "let" 198 [email protected] " "
199 [email protected] " " 199 [email protected]
200 [email protected] 200 [email protected]
201 [email protected] 201 [email protected]
202 [email protected] 202 [email protected]
203 [email protected] 203 [email protected] "Tuple"
204 [email protected] "Tuple" 204 [email protected] "("
205 [email protected] "(" 205 [email protected]
206 [email protected] 206 [email protected] ".."
207 [email protected] ".." 207 [email protected] ","
208 [email protected] "," 208 [email protected] " "
209 [email protected] " " 209 [email protected]
210 [email protected] 210 [email protected]
211 [email protected] 211 [email protected] "a"
212 [email protected] "a" 212 [email protected] ","
213 [email protected] "," 213 [email protected] " "
214 [email protected] " " 214 [email protected]
215 [email protected] 215 [email protected] ".."
216 [email protected] ".." 216 [email protected] ")"
217 [email protected] ")" 217 [email protected] " "
218 [email protected] " " 218 [email protected] "="
219 [email protected] "=" 219 [email protected] " "
220 [email protected] " " 220 [email protected]
221 [email protected] 221 [email protected] "("
222 [email protected] "(" 222 [email protected] ")"
223 [email protected] ")" 223 [email protected] ";"
224 [email protected] ";" 224 [email protected] "\n "
225 [email protected] "\n " 225 [email protected] "//"
226 [email protected] "//" 226 [email protected] "\n "
227 [email protected] "\n " 227 [email protected] "// Slices"
228 [email protected] "// Slices" 228 [email protected] "\n "
229 [email protected] "\n " 229 [email protected] "//"
230 [email protected] "//" 230 [email protected] "\n "
231 [email protected] "\n " 231 [email protected]
232 [email protected] 232 [email protected] "let"
233 [email protected] "let" 233 [email protected] " "
234 [email protected] " " 234 [email protected]
235 [email protected] 235 [email protected] "["
236 [email protected] "[" 236 [email protected]
237 [email protected] 237 [email protected] ".."
238 [email protected] ".." 238 [email protected] "]"
239 [email protected] "]" 239 [email protected] " "
240 [email protected] " " 240 [email protected] "="
241 [email protected] "=" 241 [email protected] " "
242 [email protected] " " 242 [email protected]
243 [email protected] 243 [email protected] "("
244 [email protected] "(" 244 [email protected] ")"
245 [email protected] ")" 245 [email protected] ";"
246 [email protected] ";" 246 [email protected] "\n "
247 [email protected] "\n " 247 [email protected]
248 [email protected] 248 [email protected] "let"
249 [email protected] "let" 249 [email protected] " "
250 [email protected] " " 250 [email protected]
251 [email protected] 251 [email protected] "["
252 [email protected] "[" 252 [email protected]
253 [email protected] 253 [email protected]
254 [email protected] 254 [email protected] "head"
255 [email protected] "head" 255 [email protected] ","
256 [email protected] "," 256 [email protected] " "
257 [email protected] " " 257 [email protected]
258 [email protected] 258 [email protected] ".."
259 [email protected] ".." 259 [email protected] "]"
260 [email protected] "]" 260 [email protected] " "
261 [email protected] " " 261 [email protected] "="
262 [email protected] "=" 262 [email protected] " "
263 [email protected] " " 263 [email protected]
264 [email protected] 264 [email protected] "("
265 [email protected] "(" 265 [email protected] ")"
266 [email protected] ")" 266 [email protected] ";"
267 [email protected] ";" 267 [email protected] "\n "
268 [email protected] "\n " 268 [email protected]
269 [email protected] 269 [email protected] "let"
270 [email protected] "let" 270 [email protected] " "
271 [email protected] " " 271 [email protected]
272 [email protected] 272 [email protected] "["
273 [email protected] "[" 273 [email protected]
274 [email protected] 274 [email protected]
275 [email protected] 275 [email protected] "head"
276 [email protected] "head" 276 [email protected] ","
277 [email protected] "," 277 [email protected] " "
278 [email protected] " " 278 [email protected]
279 [email protected] 279 [email protected]
280 [email protected] 280 [email protected] "tail"
281 [email protected] "tail" 281 [email protected] " "
282 [email protected] " " 282 [email protected] "@"
283 [email protected] "@" 283 [email protected] " "
284 [email protected] " " 284 [email protected]
285 [email protected] 285 [email protected] ".."
286 [email protected] ".." 286 [email protected] "]"
287 [email protected] "]" 287 [email protected] " "
288 [email protected] " " 288 [email protected] "="
289 [email protected] "=" 289 [email protected] " "
290 [email protected] " " 290 [email protected]
291 [email protected] 291 [email protected] "("
292 [email protected] "(" 292 [email protected] ")"
293 [email protected] ")" 293 [email protected] ";"
294 [email protected] ";" 294 [email protected] "\n "
295 [email protected] "\n " 295 [email protected]
296 [email protected] 296 [email protected] "let"
297 [email protected] "let" 297 [email protected] " "
298 [email protected] " " 298 [email protected]
299 [email protected] 299 [email protected] "["
300 [email protected] "[" 300 [email protected]
301 [email protected] 301 [email protected]
302 [email protected] 302 [email protected] "head"
303 [email protected] "head" 303 [email protected] ","
304 [email protected] "," 304 [email protected] " "
305 [email protected] " " 305 [email protected]
306 [email protected] 306 [email protected] ".."
307 [email protected] ".." 307 [email protected] ","
308 [email protected] "," 308 [email protected] " "
309 [email protected] " " 309 [email protected]
310 [email protected] 310 [email protected]
311 [email protected] 311 [email protected] "cons"
312 [email protected] "cons" 312 [email protected] "]"
313 [email protected] "]" 313 [email protected] " "
314 [email protected] " " 314 [email protected] "="
315 [email protected] "=" 315 [email protected] " "
316 [email protected] " " 316 [email protected]
317 [email protected] 317 [email protected] "("
318 [email protected] "(" 318 [email protected] ")"
319 [email protected] ")" 319 [email protected] ";"
320 [email protected] ";" 320 [email protected] "\n "
321 [email protected] "\n " 321 [email protected]
322 [email protected] 322 [email protected] "let"
323 [email protected] "let" 323 [email protected] " "
324 [email protected] " " 324 [email protected]
325 [email protected] 325 [email protected] "["
326 [email protected] "[" 326 [email protected]
327 [email protected] 327 [email protected]
328 [email protected] 328 [email protected] "head"
329 [email protected] "head" 329 [email protected] ","
330 [email protected] "," 330 [email protected] " "
331 [email protected] " " 331 [email protected]
332 [email protected] 332 [email protected]
333 [email protected] 333 [email protected] "mid"
334 [email protected] "mid" 334 [email protected] " "
335 [email protected] " " 335 [email protected] "@"
336 [email protected] "@" 336 [email protected] " "
337 [email protected] " " 337 [email protected]
338 [email protected] 338 [email protected] ".."
339 [email protected] ".." 339 [email protected] ","
340 [email protected] "," 340 [email protected] " "
341 [email protected] " " 341 [email protected]
342 [email protected] 342 [email protected]
343 [email protected] 343 [email protected] "cons"
344 [email protected] "cons" 344 [email protected] "]"
345 [email protected] "]" 345 [email protected] " "
346 [email protected] " " 346 [email protected] "="
347 [email protected] "=" 347 [email protected] " "
348 [email protected] " " 348 [email protected]
349 [email protected] 349 [email protected] "("
350 [email protected] "(" 350 [email protected] ")"
351 [email protected] ")" 351 [email protected] ";"
352 [email protected] ";" 352 [email protected] "\n "
353 [email protected] "\n " 353 [email protected]
354 [email protected] 354 [email protected] "let"
355 [email protected] "let" 355 [email protected] " "
356 [email protected] " " 356 [email protected]
357 [email protected] 357 [email protected] "["
358 [email protected] "[" 358 [email protected]
359 [email protected] 359 [email protected]
360 [email protected] 360 [email protected] "head"
361 [email protected] "head" 361 [email protected] ","
362 [email protected] "," 362 [email protected] " "
363 [email protected] " " 363 [email protected]
364 [email protected] 364 [email protected] ".."
365 [email protected] ".." 365 [email protected] ","
366 [email protected] "," 366 [email protected] " "
367 [email protected] " " 367 [email protected]
368 [email protected] 368 [email protected] ".."
369 [email protected] ".." 369 [email protected] ","
370 [email protected] "," 370 [email protected] " "
371 [email protected] " " 371 [email protected]
372 [email protected] 372 [email protected]
373 [email protected] 373 [email protected] "cons"
374 [email protected] "cons" 374 [email protected] "]"
375 [email protected] "]" 375 [email protected] " "
376 [email protected] " " 376 [email protected] "="
377 [email protected] "=" 377 [email protected] " "
378 [email protected] " " 378 [email protected]
379 [email protected] 379 [email protected] "("
380 [email protected] "(" 380 [email protected] ")"
381 [email protected] ")" 381 [email protected] ";"
382 [email protected] ";" 382 [email protected] "\n "
383 [email protected] "\n " 383 [email protected]
384 [email protected] 384 [email protected] "let"
385 [email protected] "let" 385 [email protected] " "
386 [email protected] " " 386 [email protected]
387 [email protected] 387 [email protected] "["
388 [email protected] "[" 388 [email protected]
389 [email protected] 389 [email protected]
390 [email protected] 390 [email protected] "head"
391 [email protected] "head" 391 [email protected] ","
392 [email protected] "," 392 [email protected] " "
393 [email protected] " " 393 [email protected]
394 [email protected] 394 [email protected] ".."
395 [email protected] ".." 395 [email protected] ","
396 [email protected] "," 396 [email protected] " "
397 [email protected] " " 397 [email protected]
398 [email protected] 398 [email protected]
399 [email protected] 399 [email protected] "mid"
400 [email protected] "mid" 400 [email protected] ","
401 [email protected] "," 401 [email protected] " "
402 [email protected] " " 402 [email protected]
403 [email protected] 403 [email protected]
404 [email protected] 404 [email protected] "tail"
405 [email protected] "tail" 405 [email protected] " "
406 [email protected] " " 406 [email protected] "@"
407 [email protected] "@" 407 [email protected] " "
408 [email protected] " " 408 [email protected]
409 [email protected] 409 [email protected] ".."
410 [email protected] ".." 410 [email protected] "]"
411 [email protected] "]" 411 [email protected] " "
412 [email protected] " " 412 [email protected] "="
413 [email protected] "=" 413 [email protected] " "
414 [email protected] " " 414 [email protected]
415 [email protected] 415 [email protected] "("
416 [email protected] "(" 416 [email protected] ")"
417 [email protected] ")" 417 [email protected] ";"
418 [email protected] ";" 418 [email protected] "\n "
419 [email protected] "\n " 419 [email protected]
420 [email protected] 420 [email protected] "let"
421 [email protected] "let" 421 [email protected] " "
422 [email protected] " " 422 [email protected]
423 [email protected] 423 [email protected] "["
424 [email protected] "[" 424 [email protected]
425 [email protected] 425 [email protected]
426 [email protected] 426 [email protected] "head"
427 [email protected] "head" 427 [email protected] ","
428 [email protected] "," 428 [email protected] " "
429 [email protected] " " 429 [email protected]
430 [email protected] 430 [email protected] ".."
431 [email protected] ".." 431 [email protected] ","
432 [email protected] "," 432 [email protected] " "
433 [email protected] " " 433 [email protected]
434 [email protected] 434 [email protected]
435 [email protected] 435 [email protected] "mid"
436 [email protected] "mid" 436 [email protected] ","
437 [email protected] "," 437 [email protected] " "
438 [email protected] " " 438 [email protected]
439 [email protected] 439 [email protected] ".."
440 [email protected] ".." 440 [email protected] ","
441 [email protected] "," 441 [email protected] " "
442 [email protected] " " 442 [email protected]
443 [email protected] 443 [email protected]
444 [email protected] 444 [email protected] "cons"
445 [email protected] "cons" 445 [email protected] "]"
446 [email protected] "]" 446 [email protected] " "
447 [email protected] " " 447 [email protected] "="
448 [email protected] "=" 448 [email protected] " "
449 [email protected] " " 449 [email protected]
450 [email protected] 450 [email protected] "("
451 [email protected] "(" 451 [email protected] ")"
452 [email protected] ")" 452 [email protected] ";"
453 [email protected] ";" 453 [email protected] "\n"
454 [email protected] "\n" 454 [email protected] "}"
455 [email protected] "}"
456 [email protected] "\n" 455 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast
index 10434b637..7c092d518 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast
@@ -9,68 +9,67 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected] "S"
22 [email protected] "S" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected] "{"
25 [email protected] "{" 25 [email protected] " "
26 [email protected] " " 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected] "0"
29 [email protected] "0" 29 [email protected] ":"
30 [email protected] ":" 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected] "1"
34 [email protected] "1" 34 [email protected] " "
35 [email protected] " " 35 [email protected] "}"
36 [email protected] "}" 36 [email protected] " "
37 [email protected] " " 37 [email protected] "="
38 [email protected] "=" 38 [email protected] " "
39 [email protected] " " 39 [email protected]
40 [email protected] 40 [email protected] "("
41 [email protected] "(" 41 [email protected] ")"
42 [email protected] ")" 42 [email protected] ";"
43 [email protected] ";" 43 [email protected] "\n "
44 [email protected] "\n " 44 [email protected]
45 [email protected] 45 [email protected] "let"
46 [email protected] "let" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected]
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected] "S"
52 [email protected] "S" 52 [email protected] " "
53 [email protected] " " 53 [email protected]
54 [email protected] 54 [email protected] "{"
55 [email protected] "{" 55 [email protected] " "
56 [email protected] " " 56 [email protected]
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected] "x"
59 [email protected] "x" 59 [email protected] ":"
60 [email protected] ":" 60 [email protected] " "
61 [email protected] " " 61 [email protected]
62 [email protected] 62 [email protected]
63 [email protected] 63 [email protected] "1"
64 [email protected] "1" 64 [email protected] " "
65 [email protected] " " 65 [email protected] "}"
66 [email protected] "}" 66 [email protected] " "
67 [email protected] " " 67 [email protected] "="
68 [email protected] "=" 68 [email protected] " "
69 [email protected] " " 69 [email protected]
70 [email protected] 70 [email protected] "("
71 [email protected] "(" 71 [email protected] ")"
72 [email protected] ")" 72 [email protected] ";"
73 [email protected] ";" 73 [email protected] "\n"
74 [email protected] "\n" 74 [email protected] "}"
75 [email protected] "}"
76 [email protected] "\n" 75 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast b/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast
index 66ad546b9..8382a4f96 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast
@@ -9,35 +9,34 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "_"
19 [email protected] "_" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "="
21 [email protected] "=" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected] "&"
25 [email protected] "&" 25 [email protected]
26 [email protected] 26 [email protected] "1"
27 [email protected] "1" 27 [email protected] " "
28 [email protected] " " 28 [email protected] "as"
29 [email protected] "as" 29 [email protected] " "
30 [email protected] " " 30 [email protected]
31 [email protected] 31 [email protected] "*"
32 [email protected] "*" 32 [email protected] "const"
33 [email protected] "const" 33 [email protected] " "
34 [email protected] " " 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected] "i32"
39 [email protected] "i32" 39 [email protected] ";"
40 [email protected] ";" 40 [email protected] "\n"
41 [email protected] "\n" 41 [email protected] "}"
42 [email protected] "}"
43 [email protected] "\n" 42 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast
index c2e290a62..f43dfbe63 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast
@@ -9,29 +9,28 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "foo"
20 [email protected] "foo" 20 [email protected]
21 [email protected] 21 [email protected] "("
22 [email protected] "(" 22 [email protected]
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected] "#"
25 [email protected] "#" 25 [email protected] "["
26 [email protected] "[" 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected] "attr"
30 [email protected] "attr" 30 [email protected] "]"
31 [email protected] "]" 31 [email protected] " "
32 [email protected] " " 32 [email protected] "92"
33 [email protected] "92" 33 [email protected] ")"
34 [email protected] ")" 34 [email protected] "\n"
35 [email protected] "\n" 35 [email protected] "}"
36 [email protected] "}"
37 [email protected] "\n" 36 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast
index dad3dfe4d..ecac05950 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast
@@ -9,62 +9,61 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "foo"
20 [email protected] "foo" 20 [email protected] " "
21 [email protected] " " 21 [email protected] "="
22 [email protected] "=" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "|"
26 [email protected] "|" 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected] "bar"
30 [email protected] "bar" 30 [email protected] ","
31 [email protected] "," 31 [email protected] " "
32 [email protected] " " 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "baz"
36 [email protected] "baz" 36 [email protected] ":"
37 [email protected] ":" 37 [email protected] " "
38 [email protected] " " 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected]
42 [email protected] 42 [email protected] "Baz"
43 [email protected] "Baz" 43 [email protected] ","
44 [email protected] "," 44 [email protected] " "
45 [email protected] " " 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected] "qux"
49 [email protected] "qux" 49 [email protected] ":"
50 [email protected] ":" 50 [email protected] " "
51 [email protected] " " 51 [email protected]
52 [email protected] 52 [email protected]
53 [email protected] 53 [email protected]
54 [email protected] 54 [email protected]
55 [email protected] 55 [email protected]
56 [email protected] 56 [email protected] "Qux"
57 [email protected] "Qux" 57 [email protected] "::"
58 [email protected] "::" 58 [email protected]
59 [email protected] 59 [email protected]
60 [email protected] 60 [email protected] "Quux"
61 [email protected] "Quux" 61 [email protected] "|"
62 [email protected] "|" 62 [email protected] " "
63 [email protected] " " 63 [email protected]
64 [email protected] 64 [email protected] "("
65 [email protected] "(" 65 [email protected] ")"
66 [email protected] ")" 66 [email protected] ";"
67 [email protected] ";" 67 [email protected] "\n"
68 [email protected] "\n" 68 [email protected] "}"
69 [email protected] "}"
70 [email protected] "\n" 69 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast
index 3110bf5c0..092833417 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast
@@ -38,7 +38,6 @@ [email protected]
38 [email protected] ")" 38 [email protected] ")"
39 [email protected] " " 39 [email protected] " "
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected] "{"
42 [email protected] "{" 42 [email protected] "}"
43 [email protected] "}"
44 [email protected] "\n" 43 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast b/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast
index 3f3e6a9a2..88d512f1a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast
@@ -9,104 +9,103 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "match"
16 [email protected] "match" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "("
19 [email protected] "(" 19 [email protected] ")"
20 [email protected] ")" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "{"
23 [email protected] "{" 23 [email protected] "\n "
24 [email protected] "\n " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "("
27 [email protected] "(" 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected] "_"
30 [email protected] "_" 30 [email protected] " "
31 [email protected] " " 31 [email protected] "|"
32 [email protected] "|" 32 [email protected] " "
33 [email protected] " " 33 [email protected]
34 [email protected] 34 [email protected] "_"
35 [email protected] "_" 35 [email protected] ")"
36 [email protected] ")" 36 [email protected] " "
37 [email protected] " " 37 [email protected] "=>"
38 [email protected] "=>" 38 [email protected] " "
39 [email protected] " " 39 [email protected]
40 [email protected] 40 [email protected] "("
41 [email protected] "(" 41 [email protected] ")"
42 [email protected] ")" 42 [email protected] ","
43 [email protected] "," 43 [email protected] "\n "
44 [email protected] "\n " 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected] "&"
47 [email protected] "&" 47 [email protected]
48 [email protected] 48 [email protected] "("
49 [email protected] "(" 49 [email protected]
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected] "_"
52 [email protected] "_" 52 [email protected] " "
53 [email protected] " " 53 [email protected] "|"
54 [email protected] "|" 54 [email protected] " "
55 [email protected] " " 55 [email protected]
56 [email protected] 56 [email protected] "_"
57 [email protected] "_" 57 [email protected] ")"
58 [email protected] ")" 58 [email protected] " "
59 [email protected] " " 59 [email protected] "=>"
60 [email protected] "=>" 60 [email protected] " "
61 [email protected] " " 61 [email protected]
62 [email protected] 62 [email protected] "("
63 [email protected] "(" 63 [email protected] ")"
64 [email protected] ")" 64 [email protected] ","
65 [email protected] "," 65 [email protected] "\n "
66 [email protected] "\n " 66 [email protected]
67 [email protected] 67 [email protected]
68 [email protected] 68 [email protected] "("
69 [email protected] "(" 69 [email protected]
70 [email protected] 70 [email protected]
71 [email protected] 71 [email protected] "_"
72 [email protected] "_" 72 [email protected] " "
73 [email protected] " " 73 [email protected] "|"
74 [email protected] "|" 74 [email protected] " "
75 [email protected] " " 75 [email protected]
76 [email protected] 76 [email protected] "_"
77 [email protected] "_" 77 [email protected] ","
78 [email protected] "," 78 [email protected] ")"
79 [email protected] ")" 79 [email protected] " "
80 [email protected] " " 80 [email protected] "=>"
81 [email protected] "=>" 81 [email protected] " "
82 [email protected] " " 82 [email protected]
83 [email protected] 83 [email protected] "("
84 [email protected] "(" 84 [email protected] ")"
85 [email protected] ")" 85 [email protected] ","
86 [email protected] "," 86 [email protected] "\n "
87 [email protected] "\n " 87 [email protected]
88 [email protected] 88 [email protected]
89 [email protected] 89 [email protected] "["
90 [email protected] "[" 90 [email protected]
91 [email protected] 91 [email protected]
92 [email protected] 92 [email protected] "_"
93 [email protected] "_" 93 [email protected] " "
94 [email protected] " " 94 [email protected] "|"
95 [email protected] "|" 95 [email protected] " "
96 [email protected] " " 96 [email protected]
97 [email protected] 97 [email protected] "_"
98 [email protected] "_" 98 [email protected] ","
99 [email protected] "," 99 [email protected] "]"
100 [email protected] "]" 100 [email protected] " "
101 [email protected] " " 101 [email protected] "=>"
102 [email protected] "=>" 102 [email protected] " "
103 [email protected] " " 103 [email protected]
104 [email protected] 104 [email protected] "("
105 [email protected] "(" 105 [email protected] ")"
106 [email protected] ")" 106 [email protected] ","
107 [email protected] "," 107 [email protected] "\n "
108 [email protected] "\n " 108 [email protected] "}"
109 [email protected] "}" 109 [email protected] "\n"
110 [email protected] "\n" 110 [email protected] "}"
111 [email protected] "}"
112 [email protected] "\n" 111 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast b/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast
index 50db9e967..bd9e8d40f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast
@@ -9,30 +9,28 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "v"
21 [email protected] "v" 21 [email protected] " "
22 [email protected] " " 22 [email protected] "="
23 [email protected] "=" 23 [email protected] " "
24 [email protected] " " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "{"
27 [email protected] 27 [email protected]
28 [email protected] "{" 28 [email protected] "1"
29 [email protected] 29 [email protected] "}"
30 [email protected] "1" 30 [email protected] "&"
31 [email protected] "}" 31 [email protected]
32 [email protected] "&" 32 [email protected] "2"
33 [email protected] 33 [email protected] ";"
34 [email protected] "2" 34 [email protected] "\n"
35 [email protected] ";" 35 [email protected] "}"
36 [email protected] "\n"
37 [email protected] "}"
38 [email protected] "\n" 36 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast
index c05e05bf3..08333a325 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast
@@ -9,37 +9,35 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] " "
14 [email protected] " " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected] "|"
19 [email protected] "|" 19 [email protected] "|"
20 [email protected] "|" 20 [email protected] " "
21 [email protected] " " 21 [email protected]
22 [email protected] 22 [email protected] "->"
23 [email protected] "->" 23 [email protected] " "
24 [email protected] " " 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected] "i32"
29 [email protected] "i32" 29 [email protected] " "
30 [email protected] " " 30 [email protected]
31 [email protected] 31 [email protected] "{"
32 [email protected] 32 [email protected] " "
33 [email protected] "{" 33 [email protected]
34 [email protected] " " 34 [email protected] "92"
35 [email protected] 35 [email protected] " "
36 [email protected] "92" 36 [email protected] "}"
37 [email protected] " " 37 [email protected]
38 [email protected] "}" 38 [email protected] "("
39 [email protected] 39 [email protected] ")"
40 [email protected] "(" 40 [email protected] ";"
41 [email protected] ")" 41 [email protected] " "
42 [email protected] ";" 42 [email protected] "}"
43 [email protected] " "
44 [email protected] "}"
45 [email protected] "\n" 43 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rast b/crates/ra_syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rast
index beb6d8010..5f09e4f4a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0159_try_macro_fallback.rast
@@ -9,27 +9,26 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] " "
14 [email protected] " " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "try"
20 [email protected] "try" 20 [email protected] "!"
21 [email protected] "!" 21 [email protected]
22 [email protected] 22 [email protected] "("
23 [email protected] "(" 23 [email protected] "Ok"
24 [email protected] "Ok" 24 [email protected]
25 [email protected] 25 [email protected] "("
26 [email protected] "(" 26 [email protected]
27 [email protected] 27 [email protected] "("
28 [email protected] "(" 28 [email protected] ")"
29 [email protected] ")" 29 [email protected] ")"
30 [email protected] ")" 30 [email protected] ")"
31 [email protected] ")" 31 [email protected] ";"
32 [email protected] ";" 32 [email protected] " "
33 [email protected] " " 33 [email protected] "}"
34 [email protected] "}"
35 [email protected] "\n" 34 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rast
new file mode 100644
index 000000000..9efebd8b8
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rast
@@ -0,0 +1,26 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "f"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "\'label"
18 [email protected] ":"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "}"
23 [email protected] ";"
24 [email protected] " "
25 [email protected] "}"
26 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rs b/crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rs
new file mode 100644
index 000000000..18b4ff4b1
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0161_labeled_block.rs
@@ -0,0 +1 @@
fn f() { 'label: {}; }
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rast
new file mode 100644
index 000000000..4991f2c36
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rast
@@ -0,0 +1,23 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "f"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected] "unsafe"
16 [email protected] " "
17 [email protected]
18 [email protected] "{"
19 [email protected] " "
20 [email protected] "}"
21 [email protected] " "
22 [email protected] "}"
23 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rs b/crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rs
new file mode 100644
index 000000000..dfb9b2a1c
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0162_unsafe_block.rs
@@ -0,0 +1 @@
fn f() { unsafe { } }
diff --git a/crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast b/crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast
index 993ba72b6..0ec237f8e 100644
--- a/crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast
@@ -9,8 +9,7 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n"
14 [email protected] "\n" 14 [email protected] "}"
15 [email protected] "}"
16 [email protected] "\n" 15 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast b/crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast
index 353bf2d2e..37b452ec4 100644
--- a/crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast
@@ -36,10 +36,9 @@ [email protected]
36 [email protected] ")" 36 [email protected] ")"
37 [email protected] " " 37 [email protected] " "
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected] "{"
40 [email protected] "{" 40 [email protected] "\n "
41 [email protected] "\n " 41 [email protected] "}"
42 [email protected] "}"
43 [email protected] "\n " 42 [email protected] "\n "
44 [email protected] 43 [email protected]
45 [email protected] "struct" 44 [email protected] "struct"
diff --git a/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast b/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast
index 3919cc78b..0b9bc58e8 100644
--- a/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast
@@ -31,9 +31,8 @@ [email protected]
31 [email protected] ")" 31 [email protected] ")"
32 [email protected] " " 32 [email protected] " "
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected] "{"
35 [email protected] "{" 35 [email protected] "}"
36 [email protected] "}"
37 [email protected] "\n\n" 36 [email protected] "\n\n"
38 [email protected] 37 [email protected]
39 [email protected] 38 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/ok/0012_visibility.rast b/crates/ra_syntax/test_data/parser/ok/0012_visibility.rast
index 750a045ef..980b34049 100644
--- a/crates/ra_syntax/test_data/parser/ok/0012_visibility.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0012_visibility.rast
@@ -9,9 +9,8 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "}"
14 [email protected] "}"
15 [email protected] "\n" 14 [email protected] "\n"
16 [email protected] 15 [email protected]
17 [email protected] 16 [email protected]
@@ -26,9 +25,8 @@ [email protected]
26 [email protected] ")" 25 [email protected] ")"
27 [email protected] " " 26 [email protected] " "
28 [email protected] 27 [email protected]
29 [email protected] 28 [email protected] "{"
30 [email protected] "{" 29 [email protected] "}"
31 [email protected] "}"
32 [email protected] "\n" 30 [email protected] "\n"
33 [email protected] 31 [email protected]
34 [email protected] 32 [email protected]
@@ -46,9 +44,8 @@ [email protected]
46 [email protected] ")" 44 [email protected] ")"
47 [email protected] " " 45 [email protected] " "
48 [email protected] 46 [email protected]
49 [email protected] 47 [email protected] "{"
50 [email protected] "{" 48 [email protected] "}"
51 [email protected] "}"
52 [email protected] "\n" 49 [email protected] "\n"
53 [email protected] 50 [email protected]
54 [email protected] 51 [email protected]
@@ -66,9 +63,8 @@ [email protected]
66 [email protected] ")" 63 [email protected] ")"
67 [email protected] " " 64 [email protected] " "
68 [email protected] 65 [email protected]
69 [email protected] 66 [email protected] "{"
70 [email protected] "{" 67 [email protected] "}"
71 [email protected] "}"
72 [email protected] "\n" 68 [email protected] "\n"
73 [email protected] 69 [email protected]
74 [email protected] 70 [email protected]
@@ -101,7 +97,6 @@ [email protected]
101 [email protected] ")" 97 [email protected] ")"
102 [email protected] " " 98 [email protected] " "
103 [email protected] 99 [email protected]
104 [email protected] 100 [email protected] "{"
105 [email protected] "{" 101 [email protected] "}"
106 [email protected] "}"
107 [email protected] "\n" 102 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast b/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast
index a5a90df7b..05d9c05ad 100644
--- a/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast
@@ -1,4 +1,4 @@
1SOURCE_FILE@0..65 1SOURCE_FILE@0..38
2 [email protected] 2 [email protected]
3 [email protected] "use" 3 [email protected] "use"
4 [email protected] " " 4 [email protected] " "
@@ -31,27 +31,3 @@ [email protected]
31 [email protected] "bar" 31 [email protected] "bar"
32 [email protected] ";" 32 [email protected] ";"
33 [email protected] "\n" 33 [email protected] "\n"
34 [email protected]
35 [email protected] "use"
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] "self"
45 [email protected] "::"
46 [email protected]
47 [email protected]
48 [email protected] "a"
49 [email protected] "::"
50 [email protected]
51 [email protected] "super"
52 [email protected] "::"
53 [email protected]
54 [email protected]
55 [email protected] "bar"
56 [email protected] ";"
57 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rs b/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rs
index faf6a42c7..9d9eb9917 100644
--- a/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rs
+++ b/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rs
@@ -1,3 +1,2 @@
1use self::foo; 1use self::foo;
2use super::super::bar; 2use super::super::bar;
3use ::self::a::super::bar;
diff --git a/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast b/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast
index b5747aacd..964cbf5dd 100644
--- a/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast
@@ -23,7 +23,6 @@ [email protected]
23 [email protected] ")" 23 [email protected] ")"
24 [email protected] " " 24 [email protected] " "
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "{"
27 [email protected] "{" 27 [email protected] "}"
28 [email protected] "}"
29 [email protected] "\n" 28 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast b/crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast
index 643a1d16c..873791f50 100644
--- a/crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast
@@ -12,10 +12,9 @@ [email protected]
12 [email protected] ")" 12 [email protected] ")"
13 [email protected] " " 13 [email protected] " "
14 [email protected] 14 [email protected]
15 [email protected] 15 [email protected] "{"
16 [email protected] "{" 16 [email protected] "\n"
17 [email protected] "\n" 17 [email protected] "}"
18 [email protected] "}"
19 [email protected] "\n\n" 18 [email protected] "\n\n"
20 [email protected] 19 [email protected]
21 [email protected] 20 [email protected]
@@ -32,10 +31,9 @@ [email protected]
32 [email protected] ")" 31 [email protected] ")"
33 [email protected] " " 32 [email protected] " "
34 [email protected] 33 [email protected]
35 [email protected] 34 [email protected] "{"
36 [email protected] "{" 35 [email protected] "\n"
37 [email protected] "\n" 36 [email protected] "}"
38 [email protected] "}"
39 [email protected] "\n\n" 37 [email protected] "\n\n"
40 [email protected] 38 [email protected]
41 [email protected] 39 [email protected]
@@ -52,8 +50,7 @@ [email protected]
52 [email protected] ")" 50 [email protected] ")"
53 [email protected] " " 51 [email protected] " "
54 [email protected] 52 [email protected]
55 [email protected] 53 [email protected] "{"
56 [email protected] "{" 54 [email protected] "\n"
57 [email protected] "\n" 55 [email protected] "}"
58 [email protected] "}"
59 [email protected] "\n" 56 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast b/crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast
index 60af55837..5701f566e 100644
--- a/crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast
@@ -9,25 +9,23 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "extern"
17 [email protected] "extern" 17 [email protected] " "
18 [email protected] " " 18 [email protected] "fn"
19 [email protected] "fn" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected] "f"
22 [email protected] "f" 22 [email protected]
23 [email protected] 23 [email protected] "("
24 [email protected] "(" 24 [email protected] ")"
25 [email protected] ")" 25 [email protected] " "
26 [email protected] " " 26 [email protected]
27 [email protected] 27 [email protected] "{"
28 [email protected] 28 [email protected] "}"
29 [email protected] "{" 29 [email protected] "\n"
30 [email protected] "}" 30 [email protected] "}"
31 [email protected] "\n"
32 [email protected] "}"
33 [email protected] "\n" 31 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast b/crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast
index 4432c0163..b029d8692 100644
--- a/crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast
@@ -9,24 +9,22 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "const"
16 [email protected] "const" 16 [email protected] " "
17 [email protected] " " 17 [email protected] "fn"
18 [email protected] "fn" 18 [email protected] " "
19 [email protected] " " 19 [email protected]
20 [email protected] 20 [email protected] "f"
21 [email protected] "f" 21 [email protected]
22 [email protected] 22 [email protected] "("
23 [email protected] "(" 23 [email protected] ")"
24 [email protected] ")" 24 [email protected] " "
25 [email protected] " " 25 [email protected]
26 [email protected] 26 [email protected] "{"
27 [email protected] 27 [email protected] "}"
28 [email protected] "{" 28 [email protected] "\n"
29 [email protected] "}" 29 [email protected] "}"
30 [email protected] "\n"
31 [email protected] "}"
32 [email protected] "\n" 30 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast b/crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast
index c0162c609..299bbd136 100644
--- a/crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast
@@ -9,35 +9,33 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "unsafe"
16 [email protected] "unsafe" 16 [email protected] " "
17 [email protected] " " 17 [email protected] "fn"
18 [email protected] "fn" 18 [email protected] " "
19 [email protected] " " 19 [email protected]
20 [email protected] 20 [email protected] "f"
21 [email protected] "f" 21 [email protected]
22 [email protected] 22 [email protected] "("
23 [email protected] "(" 23 [email protected] ")"
24 [email protected] ")" 24 [email protected] " "
25 [email protected] " " 25 [email protected]
26 [email protected] 26 [email protected] "{"
27 [email protected] 27 [email protected] "}"
28 [email protected] "{" 28 [email protected] "\n "
29 [email protected] "}" 29 [email protected]
30 [email protected] "\n " 30 [email protected] "unsafe"
31 [email protected] 31 [email protected] " "
32 [email protected] "unsafe" 32 [email protected]
33 [email protected] " " 33 [email protected] "{"
34 [email protected] 34 [email protected] " "
35 [email protected] "{" 35 [email protected]
36 [email protected] " " 36 [email protected] "92"
37 [email protected] 37 [email protected] " "
38 [email protected] "92" 38 [email protected] "}"
39 [email protected] " " 39 [email protected] "\n"
40 [email protected] "}" 40 [email protected] "}"
41 [email protected] "\n"
42 [email protected] "}"
43 [email protected] "\n" 41 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast b/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast
index 6c0daef52..de3c4b786 100644
--- a/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast
@@ -9,178 +9,177 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "x"
20 [email protected] "x" 20 [email protected] " "
21 [email protected] " " 21 [email protected] "="
22 [email protected] "=" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "1"
27 [email protected] "1" 27 [email protected] " "
28 [email protected] " " 28 [email protected] "+"
29 [email protected] "+" 29 [email protected] " "
30 [email protected] " " 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected] "2"
34 [email protected] "2" 34 [email protected] " "
35 [email protected] " " 35 [email protected] "*"
36 [email protected] "*" 36 [email protected] " "
37 [email protected] " " 37 [email protected]
38 [email protected] 38 [email protected] "3"
39 [email protected] "3" 39 [email protected] " "
40 [email protected] " " 40 [email protected] "%"
41 [email protected] "%" 41 [email protected] " "
42 [email protected] " " 42 [email protected]
43 [email protected] 43 [email protected] "4"
44 [email protected] "4" 44 [email protected] " "
45 [email protected] " " 45 [email protected] "-"
46 [email protected] "-" 46 [email protected] " "
47 [email protected] " " 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected] "5"
50 [email protected] "5" 50 [email protected] " "
51 [email protected] " " 51 [email protected] "/"
52 [email protected] "/" 52 [email protected] " "
53 [email protected] " " 53 [email protected]
54 [email protected] 54 [email protected] "6"
55 [email protected] "6" 55 [email protected] ";"
56 [email protected] ";" 56 [email protected] "\n "
57 [email protected] "\n " 57 [email protected]
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected]
60 [email protected] 60 [email protected] "1"
61 [email protected] "1" 61 [email protected] " "
62 [email protected] " " 62 [email protected] "+"
63 [email protected] "+" 63 [email protected] " "
64 [email protected] " " 64 [email protected]
65 [email protected] 65 [email protected]
66 [email protected] 66 [email protected] "2"
67 [email protected] "2" 67 [email protected] " "
68 [email protected] " " 68 [email protected] "*"
69 [email protected] "*" 69 [email protected] " "
70 [email protected] " " 70 [email protected]
71 [email protected] 71 [email protected] "3"
72 [email protected] "3" 72 [email protected] ";"
73 [email protected] ";" 73 [email protected] "\n "
74 [email protected] "\n " 74 [email protected]
75 [email protected] 75 [email protected]
76 [email protected] 76 [email protected]
77 [email protected] 77 [email protected] "1"
78 [email protected] "1" 78 [email protected] " "
79 [email protected] " " 79 [email protected] "<<"
80 [email protected] "<<" 80 [email protected] " "
81 [email protected] " " 81 [email protected]
82 [email protected] 82 [email protected]
83 [email protected] 83 [email protected] "2"
84 [email protected] "2" 84 [email protected] " "
85 [email protected] " " 85 [email protected] "+"
86 [email protected] "+" 86 [email protected] " "
87 [email protected] " " 87 [email protected]
88 [email protected] 88 [email protected] "3"
89 [email protected] "3" 89 [email protected] ";"
90 [email protected] ";" 90 [email protected] "\n "
91 [email protected] "\n " 91 [email protected]
92 [email protected] 92 [email protected]
93 [email protected] 93 [email protected]
94 [email protected] 94 [email protected] "1"
95 [email protected] "1" 95 [email protected] " "
96 [email protected] " " 96 [email protected] "&"
97 [email protected] "&" 97 [email protected] " "
98 [email protected] " " 98 [email protected]
99 [email protected] 99 [email protected]
100 [email protected] 100 [email protected] "2"
101 [email protected] "2" 101 [email protected] " "
102 [email protected] " " 102 [email protected] ">>"
103 [email protected] ">>" 103 [email protected] " "
104 [email protected] " " 104 [email protected]
105 [email protected] 105 [email protected] "3"
106 [email protected] "3" 106 [email protected] ";"
107 [email protected] ";" 107 [email protected] "\n "
108 [email protected] "\n " 108 [email protected]
109 [email protected] 109 [email protected]
110 [email protected] 110 [email protected]
111 [email protected] 111 [email protected] "1"
112 [email protected] "1" 112 [email protected] " "
113 [email protected] " " 113 [email protected] "^"
114 [email protected] "^" 114 [email protected] " "
115 [email protected] " " 115 [email protected]
116 [email protected] 116 [email protected]
117 [email protected] 117 [email protected] "2"
118 [email protected] "2" 118 [email protected] " "
119 [email protected] " " 119 [email protected] "&"
120 [email protected] "&" 120 [email protected] " "
121 [email protected] " " 121 [email protected]
122 [email protected] 122 [email protected] "3"
123 [email protected] "3" 123 [email protected] ";"
124 [email protected] ";" 124 [email protected] "\n "
125 [email protected] "\n " 125 [email protected]
126 [email protected] 126 [email protected]
127 [email protected] 127 [email protected]
128 [email protected] 128 [email protected] "1"
129 [email protected] "1" 129 [email protected] " "
130 [email protected] " " 130 [email protected] "|"
131 [email protected] "|" 131 [email protected] " "
132 [email protected] " " 132 [email protected]
133 [email protected] 133 [email protected]
134 [email protected] 134 [email protected] "2"
135 [email protected] "2" 135 [email protected] " "
136 [email protected] " " 136 [email protected] "^"
137 [email protected] "^" 137 [email protected] " "
138 [email protected] " " 138 [email protected]
139 [email protected] 139 [email protected] "3"
140 [email protected] "3" 140 [email protected] ";"
141 [email protected] ";" 141 [email protected] "\n "
142 [email protected] "\n " 142 [email protected]
143 [email protected] 143 [email protected]
144 [email protected] 144 [email protected]
145 [email protected] 145 [email protected] "1"
146 [email protected] "1" 146 [email protected] " "
147 [email protected] " " 147 [email protected] "=="
148 [email protected] "==" 148 [email protected] " "
149 [email protected] " " 149 [email protected]
150 [email protected] 150 [email protected]
151 [email protected] 151 [email protected] "2"
152 [email protected] "2" 152 [email protected] " "
153 [email protected] " " 153 [email protected] "|"
154 [email protected] "|" 154 [email protected] " "
155 [email protected] " " 155 [email protected]
156 [email protected] 156 [email protected] "3"
157 [email protected] "3" 157 [email protected] ";"
158 [email protected] ";" 158 [email protected] "\n "
159 [email protected] "\n " 159 [email protected]
160 [email protected] 160 [email protected]
161 [email protected] 161 [email protected]
162 [email protected] 162 [email protected] "1"
163 [email protected] "1" 163 [email protected] " "
164 [email protected] " " 164 [email protected] "&&"
165 [email protected] "&&" 165 [email protected] " "
166 [email protected] " " 166 [email protected]
167 [email protected] 167 [email protected]
168 [email protected] 168 [email protected] "2"
169 [email protected] "2" 169 [email protected] " "
170 [email protected] " " 170 [email protected] "=="
171 [email protected] "==" 171 [email protected] " "
172 [email protected] " " 172 [email protected]
173 [email protected] 173 [email protected] "3"
174 [email protected] "3" 174 [email protected] ";"
175 [email protected] ";" 175 [email protected] "\n "
176 [email protected] "\n " 176 [email protected] "//1 || 2 && 2;"
177 [email protected] "//1 || 2 && 2;" 177 [email protected] "\n "
178 [email protected] "\n " 178 [email protected] "//1 .. 2 || 3;"
179 [email protected] "//1 .. 2 || 3;" 179 [email protected] "\n "
180 [email protected] "\n " 180 [email protected] "//1 = 2 .. 3;"
181 [email protected] "//1 = 2 .. 3;" 181 [email protected] "\n "
182 [email protected] "\n " 182 [email protected] "//---&*1 - --2 * 9;"
183 [email protected] "//---&*1 - --2 * 9;" 183 [email protected] "\n"
184 [email protected] "\n" 184 [email protected] "}"
185 [email protected] "}"
186 [email protected] "\n" 185 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast b/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast
index 8177bd89b..dc47d68a6 100644
--- a/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast
@@ -9,144 +9,143 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] ".."
17 [email protected] ".." 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "1"
20 [email protected] "1" 20 [email protected] " "
21 [email protected] " " 21 [email protected] "+"
22 [email protected] "+" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected] "1"
25 [email protected] "1" 25 [email protected] ";"
26 [email protected] ";" 26 [email protected] "\n "
27 [email protected] "\n " 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected] ".."
31 [email protected] ".." 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "z"
36 [email protected] "z" 36 [email protected] " "
37 [email protected] " " 37 [email protected] "="
38 [email protected] "=" 38 [email protected] " "
39 [email protected] " " 39 [email protected]
40 [email protected] 40 [email protected] "2"
41 [email protected] "2" 41 [email protected] ";"
42 [email protected] ";" 42 [email protected] "\n "
43 [email protected] "\n " 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected] "x"
50 [email protected] "x" 50 [email protected] " "
51 [email protected] " " 51 [email protected] "="
52 [email protected] "=" 52 [email protected] " "
53 [email protected] " " 53 [email protected]
54 [email protected] 54 [email protected]
55 [email protected] 55 [email protected] "false"
56 [email protected] "false" 56 [email protected] ".."
57 [email protected] ".." 57 [email protected]
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected] "1"
60 [email protected] "1" 60 [email protected] " "
61 [email protected] " " 61 [email protected] "=="
62 [email protected] "==" 62 [email protected] " "
63 [email protected] " " 63 [email protected]
64 [email protected] 64 [email protected] "1"
65 [email protected] "1" 65 [email protected] ";"
66 [email protected] ";" 66 [email protected] "\n "
67 [email protected] "\n " 67 [email protected]
68 [email protected] 68 [email protected] "let"
69 [email protected] "let" 69 [email protected] " "
70 [email protected] " " 70 [email protected]
71 [email protected] 71 [email protected]
72 [email protected] 72 [email protected] "x"
73 [email protected] "x" 73 [email protected] " "
74 [email protected] " " 74 [email protected] "="
75 [email protected] "=" 75 [email protected] " "
76 [email protected] " " 76 [email protected]
77 [email protected] 77 [email protected]
78 [email protected] 78 [email protected] "1"
79 [email protected] "1" 79 [email protected] ".."
80 [email protected] ".." 80 [email protected] ";"
81 [email protected] ";" 81 [email protected] "\n \n "
82 [email protected] "\n \n " 82 [email protected]
83 [email protected] 83 [email protected]
84 [email protected] 84 [email protected] "..="
85 [email protected] "..=" 85 [email protected]
86 [email protected] 86 [email protected]
87 [email protected] 87 [email protected] "1"
88 [email protected] "1" 88 [email protected] " "
89 [email protected] " " 89 [email protected] "+"
90 [email protected] "+" 90 [email protected] " "
91 [email protected] " " 91 [email protected]
92 [email protected] 92 [email protected] "1"
93 [email protected] "1" 93 [email protected] ";"
94 [email protected] ";" 94 [email protected] "\n "
95 [email protected] "\n " 95 [email protected]
96 [email protected] 96 [email protected]
97 [email protected] 97 [email protected]
98 [email protected] 98 [email protected] "..="
99 [email protected] "..=" 99 [email protected]
100 [email protected] 100 [email protected]
101 [email protected] 101 [email protected]
102 [email protected] 102 [email protected]
103 [email protected] 103 [email protected] "z"
104 [email protected] "z" 104 [email protected] " "
105 [email protected] " " 105 [email protected] "="
106 [email protected] "=" 106 [email protected] " "
107 [email protected] " " 107 [email protected]
108 [email protected] 108 [email protected] "2"
109 [email protected] "2" 109 [email protected] ";"
110 [email protected] ";" 110 [email protected] "\n "
111 [email protected] "\n " 111 [email protected]
112 [email protected] 112 [email protected]
113 [email protected] 113 [email protected]
114 [email protected] 114 [email protected]
115 [email protected] 115 [email protected]
116 [email protected] 116 [email protected]
117 [email protected] 117 [email protected] "x"
118 [email protected] "x" 118 [email protected] " "
119 [email protected] " " 119 [email protected] "="
120 [email protected] "=" 120 [email protected] " "
121 [email protected] " " 121 [email protected]
122 [email protected] 122 [email protected]
123 [email protected] 123 [email protected] "false"
124 [email protected] "false" 124 [email protected] "..="
125 [email protected] "..=" 125 [email protected]
126 [email protected] 126 [email protected]
127 [email protected] 127 [email protected] "1"
128 [email protected] "1" 128 [email protected] " "
129 [email protected] " " 129 [email protected] "=="
130 [email protected] "==" 130 [email protected] " "
131 [email protected] " " 131 [email protected]
132 [email protected] 132 [email protected] "1"
133 [email protected] "1" 133 [email protected] ";"
134 [email protected] ";" 134 [email protected] "\n "
135 [email protected] "\n " 135 [email protected]
136 [email protected] 136 [email protected] "let"
137 [email protected] "let" 137 [email protected] " "
138 [email protected] " " 138 [email protected]
139 [email protected] 139 [email protected]
140 [email protected] 140 [email protected] "x"
141 [email protected] "x" 141 [email protected] " "
142 [email protected] " " 142 [email protected] "="
143 [email protected] "=" 143 [email protected] " "
144 [email protected] " " 144 [email protected]
145 [email protected] 145 [email protected]
146 [email protected] 146 [email protected] "1"
147 [email protected] "1" 147 [email protected] ".."
148 [email protected] ".." 148 [email protected] ";"
149 [email protected] ";" 149 [email protected] "\n"
150 [email protected] "\n" 150 [email protected] "}"
151 [email protected] "}"
152 [email protected] "\n" 151 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast b/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast
index 953930f6c..86c3b46c4 100644
--- a/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast
@@ -9,56 +9,55 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] "_"
19 [email protected] "_" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "="
21 [email protected] "=" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "\'c\'u32"
24 [email protected] "\'c\'u32" 24 [email protected] ";"
25 [email protected] ";" 25 [email protected] "\n "
26 [email protected] "\n " 26 [email protected]
27 [email protected] 27 [email protected] "let"
28 [email protected] "let" 28 [email protected] " "
29 [email protected] " " 29 [email protected]
30 [email protected] 30 [email protected] "_"
31 [email protected] "_" 31 [email protected] " "
32 [email protected] " " 32 [email protected] "="
33 [email protected] "=" 33 [email protected] " "
34 [email protected] " " 34 [email protected]
35 [email protected] 35 [email protected] "\"string\"invalid"
36 [email protected] "\"string\"invalid" 36 [email protected] ";"
37 [email protected] ";" 37 [email protected] "\n "
38 [email protected] "\n " 38 [email protected]
39 [email protected] 39 [email protected] "let"
40 [email protected] "let" 40 [email protected] " "
41 [email protected] " " 41 [email protected]
42 [email protected] 42 [email protected] "_"
43 [email protected] "_" 43 [email protected] " "
44 [email protected] " " 44 [email protected] "="
45 [email protected] "=" 45 [email protected] " "
46 [email protected] " " 46 [email protected]
47 [email protected] 47 [email protected] "b\'b\'_suff"
48 [email protected] "b\'b\'_suff" 48 [email protected] ";"
49 [email protected] ";" 49 [email protected] "\n "
50 [email protected] "\n " 50 [email protected]
51 [email protected] 51 [email protected] "let"
52 [email protected] "let" 52 [email protected] " "
53 [email protected] " " 53 [email protected]
54 [email protected] 54 [email protected] "_"
55 [email protected] "_" 55 [email protected] " "
56 [email protected] " " 56 [email protected] "="
57 [email protected] "=" 57 [email protected] " "
58 [email protected] " " 58 [email protected]
59 [email protected] 59 [email protected] "b\"bs\"invalid"
60 [email protected] "b\"bs\"invalid" 60 [email protected] ";"
61 [email protected] ";" 61 [email protected] "\n"
62 [email protected] "\n" 62 [email protected] "}"
63 [email protected] "}"
64 [email protected] "\n" 63 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast b/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast
index 68eb16bbd..8d76c4e0b 100644
--- a/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast
@@ -85,7 +85,6 @@ [email protected]
85 [email protected] "," 85 [email protected] ","
86 [email protected] "\n" 86 [email protected] "\n"
87 [email protected] 87 [email protected]
88 [email protected] 88 [email protected] "{"
89 [email protected] "{" 89 [email protected] "}"
90 [email protected] "}"
91 [email protected] "\n" 90 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast b/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast
index 3977faa60..13b730ded 100644
--- a/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast
@@ -11,210 +11,205 @@ [email protected]
11 [email protected] ")" 11 [email protected] ")"
12 [email protected] " " 12 [email protected] " "
13 [email protected] 13 [email protected]
14 [email protected] 14 [email protected] "{"
15 [email protected] "{" 15 [email protected] "\n "
16 [email protected] "\n " 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "\'empty_block"
20 [email protected] "\'empty_block" 20 [email protected] ":"
21 [email protected] ":" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "{"
24 [email protected] "{" 24 [email protected] "}"
25 [email protected] "}" 25 [email protected] "\n\n "
26 [email protected] "\n\n " 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected] "\'block"
30 [email protected] "\'block" 30 [email protected] ":"
31 [email protected] ":" 31 [email protected] " "
32 [email protected] " " 32 [email protected]
33 [email protected] 33 [email protected] "{"
34 [email protected] "{" 34 [email protected] "\n "
35 [email protected] "\n " 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected] "do_thing"
42 [email protected] "do_thing" 42 [email protected]
43 [email protected] 43 [email protected] "("
44 [email protected] "(" 44 [email protected] ")"
45 [email protected] ")" 45 [email protected] ";"
46 [email protected] ";" 46 [email protected] "\n "
47 [email protected] "\n " 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected] "if"
50 [email protected] "if" 50 [email protected] " "
51 [email protected] " " 51 [email protected]
52 [email protected] 52 [email protected]
53 [email protected] 53 [email protected]
54 [email protected] 54 [email protected]
55 [email protected] 55 [email protected]
56 [email protected] 56 [email protected]
57 [email protected] 57 [email protected] "condition_not_met"
58 [email protected] "condition_not_met" 58 [email protected]
59 [email protected] 59 [email protected] "("
60 [email protected] "(" 60 [email protected] ")"
61 [email protected] ")" 61 [email protected] " "
62 [email protected] " " 62 [email protected]
63 [email protected] 63 [email protected] "{"
64 [email protected] 64 [email protected] "\n "
65 [email protected] "{" 65 [email protected]
66 [email protected] "\n " 66 [email protected]
67 [email protected] 67 [email protected] "break"
68 [email protected] 68 [email protected] " "
69 [email protected] "break" 69 [email protected] "\'block"
70 [email protected] " " 70 [email protected] ";"
71 [email protected] "\'block" 71 [email protected] "\n "
72 [email protected] ";" 72 [email protected] "}"
73 [email protected] "\n " 73 [email protected] "\n "
74 [email protected] "}" 74 [email protected]
75 [email protected] "\n " 75 [email protected]
76 [email protected] 76 [email protected]
77 [email protected] 77 [email protected]
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected]
80 [email protected] 80 [email protected] "do_next_thing"
81 [email protected] 81 [email protected]
82 [email protected] "do_next_thing" 82 [email protected] "("
83 [email protected] 83 [email protected] ")"
84 [email protected] "(" 84 [email protected] ";"
85 [email protected] ")" 85 [email protected] "\n "
86 [email protected] ";" 86 [email protected]
87 [email protected] "\n " 87 [email protected]
88 [email protected] 88 [email protected] "if"
89 [email protected] 89 [email protected] " "
90 [email protected] "if" 90 [email protected]
91 [email protected] " " 91 [email protected]
92 [email protected] 92 [email protected]
93 [email protected] 93 [email protected]
94 [email protected] 94 [email protected]
95 [email protected] 95 [email protected]
96 [email protected] 96 [email protected] "condition_not_met"
97 [email protected] 97 [email protected]
98 [email protected] "condition_not_met" 98 [email protected] "("
99 [email protected] 99 [email protected] ")"
100 [email protected] "(" 100 [email protected] " "
101 [email protected] ")" 101 [email protected]
102 [email protected] " " 102 [email protected] "{"
103 [email protected] 103 [email protected] "\n "
104 [email protected] 104 [email protected]
105 [email protected] "{" 105 [email protected]
106 [email protected] "\n " 106 [email protected] "break"
107 [email protected] 107 [email protected] " "
108 [email protected] 108 [email protected] "\'block"
109 [email protected] "break" 109 [email protected] ";"
110 [email protected] " " 110 [email protected] "\n "
111 [email protected] "\'block" 111 [email protected] "}"
112 [email protected] ";" 112 [email protected] "\n "
113 [email protected] "\n " 113 [email protected]
114 [email protected] "}" 114 [email protected]
115 [email protected] "\n " 115 [email protected]
116 [email protected] 116 [email protected]
117 [email protected] 117 [email protected]
118 [email protected] 118 [email protected]
119 [email protected] 119 [email protected] "do_last_thing"
120 [email protected] 120 [email protected]
121 [email protected] 121 [email protected] "("
122 [email protected] "do_last_thing" 122 [email protected] ")"
123 [email protected] 123 [email protected] ";"
124 [email protected] "(" 124 [email protected] "\n "
125 [email protected] ")" 125 [email protected] "}"
126 [email protected] ";" 126 [email protected] "\n\n "
127 [email protected] "\n " 127 [email protected]
128 [email protected] "}" 128 [email protected] "let"
129 [email protected] "\n\n " 129 [email protected] " "
130 [email protected] 130 [email protected]
131 [email protected] "let" 131 [email protected]
132 [email protected] " " 132 [email protected] "result"
133 [email protected] 133 [email protected] " "
134 [email protected] 134 [email protected] "="
135 [email protected] "result" 135 [email protected] " "
136 [email protected] " " 136 [email protected]
137 [email protected] "=" 137 [email protected]
138 [email protected] " " 138 [email protected] "\'block"
139 [email protected] 139 [email protected] ":"
140 [email protected] 140 [email protected] " "
141 [email protected] "\'block" 141 [email protected]
142 [email protected] ":" 142 [email protected] "{"
143 [email protected] " " 143 [email protected] "\n "
144 [email protected] 144 [email protected]
145 [email protected] "{" 145 [email protected]
146 [email protected] "\n " 146 [email protected] "if"
147 [email protected] 147 [email protected] " "
148 [email protected] 148 [email protected]
149 [email protected] "if" 149 [email protected]
150 [email protected] " " 150 [email protected]
151 [email protected] 151 [email protected]
152 [email protected] 152 [email protected]
153 [email protected] 153 [email protected]
154 [email protected] 154 [email protected] "foo"
155 [email protected] 155 [email protected]
156 [email protected] 156 [email protected] "("
157 [email protected] "foo" 157 [email protected] ")"
158 [email protected] 158 [email protected] " "
159 [email protected] "(" 159 [email protected]
160 [email protected] ")" 160 [email protected] "{"
161 [email protected] " " 161 [email protected] "\n "
162 [email protected] 162 [email protected] "// comment"
163 [email protected] 163 [email protected] "\n "
164 [email protected] "{" 164 [email protected]
165 [email protected] "\n " 165 [email protected]
166 [email protected] "// comment" 166 [email protected] "break"
167 [email protected] "\n " 167 [email protected] " "
168 [email protected] 168 [email protected] "\'block"
169 [email protected] 169 [email protected] " "
170 [email protected] "break" 170 [email protected]
171 [email protected] " " 171 [email protected] "1"
172 [email protected] "\'block" 172 [email protected] ";"
173 [email protected] " " 173 [email protected] "\n "
174 [email protected] 174 [email protected] "}"
175 [email protected] "1" 175 [email protected] "\n "
176 [email protected] ";" 176 [email protected]
177 [email protected] "\n " 177 [email protected]
178 [email protected] "}" 178 [email protected] "if"
179 [email protected] "\n " 179 [email protected] " "
180 [email protected] 180 [email protected]
181 [email protected] 181 [email protected]
182 [email protected] "if" 182 [email protected]
183 [email protected] " " 183 [email protected]
184 [email protected] 184 [email protected]
185 [email protected] 185 [email protected]
186 [email protected] 186 [email protected] "bar"
187 [email protected] 187 [email protected]
188 [email protected] 188 [email protected] "("
189 [email protected] 189 [email protected] ")"
190 [email protected] "bar" 190 [email protected] " "
191 [email protected] 191 [email protected]
192 [email protected] "(" 192 [email protected] "{"
193 [email protected] ")" 193 [email protected] "\n "
194 [email protected] " " 194 [email protected] "/* comment */"
195 [email protected] 195 [email protected] "\n "
196 [email protected] 196 [email protected]
197 [email protected] "{" 197 [email protected]
198 [email protected] "\n " 198 [email protected] "break"
199 [email protected] "/* comment */" 199 [email protected] " "
200 [email protected] "\n " 200 [email protected] "\'block"
201 [email protected] 201 [email protected] " "
202 [email protected] 202 [email protected]
203 [email protected] "break" 203 [email protected] "2"
204 [email protected] " " 204 [email protected] ";"
205 [email protected] "\'block" 205 [email protected] "\n "
206 [email protected] " " 206 [email protected] "}"
207 [email protected] 207 [email protected] "\n "
208 [email protected] "2" 208 [email protected]
209 [email protected] ";" 209 [email protected] "3"
210 [email protected] "\n " 210 [email protected] "\n "
211 [email protected] "}" 211 [email protected] "}"
212 [email protected] "\n " 212 [email protected] ";"
213 [email protected] 213 [email protected] "\n"
214 [email protected] "3" 214 [email protected] "}"
215 [email protected] "\n "
216 [email protected] "}"
217 [email protected] ";"
218 [email protected] "\n"
219 [email protected] "}"
220 [email protected] "\n" 215 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast b/crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast
index 3b9e8c71c..21874ae3a 100644
--- a/crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast
@@ -9,34 +9,33 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "make_query"
21 [email protected] "make_query" 21 [email protected]
22 [email protected] 22 [email protected] "("
23 [email protected] "(" 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected] "crate"
29 [email protected] "crate" 29 [email protected] "::"
30 [email protected] "::" 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected] "module_map"
33 [email protected] "module_map" 33 [email protected] "::"
34 [email protected] "::" 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected] "module_tree"
37 [email protected] "module_tree" 37 [email protected] ")"
38 [email protected] ")" 38 [email protected] ";"
39 [email protected] ";" 39 [email protected] "\n"
40 [email protected] "\n" 40 [email protected] "}"
41 [email protected] "}"
42 [email protected] "\n" 41 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast
index 9af689635..eb59d6e17 100644
--- a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast
@@ -139,33 +139,32 @@ [email protected]
139 [email protected] "bool" 139 [email protected] "bool"
140 [email protected] " " 140 [email protected] " "
141 [email protected] 141 [email protected]
142 [email protected] 142 [email protected] "{"
143 [email protected] "{" 143 [email protected] " "
144 [email protected] " " 144 [email protected]
145 [email protected] 145 [email protected] "let"
146 [email protected] "let" 146 [email protected] " "
147 [email protected] " " 147 [email protected]
148 [email protected] 148 [email protected]
149 [email protected] 149 [email protected] "_x"
150 [email protected] "_x" 150 [email protected] ":"
151 [email protected] ":" 151 [email protected] " "
152 [email protected] " " 152 [email protected]
153 [email protected] 153 [email protected]
154 [email protected] 154 [email protected]
155 [email protected] 155 [email protected]
156 [email protected] 156 [email protected] "bool"
157 [email protected] "bool" 157 [email protected] " "
158 [email protected] " " 158 [email protected] "="
159 [email protected] "=" 159 [email protected] " "
160 [email protected] " " 160 [email protected]
161 [email protected] 161 [email protected] "return"
162 [email protected] "return" 162 [email protected] " "
163 [email protected] " " 163 [email protected]
164 [email protected] 164 [email protected] "true"
165 [email protected] "true" 165 [email protected] ";"
166 [email protected] ";" 166 [email protected] " "
167 [email protected] " " 167 [email protected] "}"
168 [email protected] "}"
169 [email protected] "\n\n" 168 [email protected] "\n\n"
170 [email protected] 169 [email protected]
171 [email protected] "fn" 170 [email protected] "fn"
@@ -177,48 +176,46 @@ [email protected]
177 [email protected] ")" 176 [email protected] ")"
178 [email protected] " " 177 [email protected] " "
179 [email protected] 178 [email protected]
180 [email protected] 179 [email protected] "{"
181 [email protected] "{" 180 [email protected] "\n "
182 [email protected] "\n " 181 [email protected]
183 [email protected] 182 [email protected] "fn"
184 [email protected] "fn" 183 [email protected] " "
185 [email protected] " " 184 [email protected]
186 [email protected] 185 [email protected] "f"
187 [email protected] "f" 186 [email protected]
188 [email protected] 187 [email protected] "("
189 [email protected] "(" 188 [email protected]
190 [email protected] 189 [email protected]
191 [email protected] 190 [email protected]
192 [email protected] 191 [email protected] "_x"
193 [email protected] "_x" 192 [email protected] ":"
194 [email protected] ":" 193 [email protected] " "
195 [email protected] " " 194 [email protected]
196 [email protected] 195 [email protected] "("
197 [email protected] "(" 196 [email protected] ")"
198 [email protected] ")" 197 [email protected] ")"
199 [email protected] ")" 198 [email protected] " "
200 [email protected] " " 199 [email protected]
201 [email protected] 200 [email protected] "{"
202 [email protected] 201 [email protected] " "
203 [email protected] "{" 202 [email protected] "}"
204 [email protected] " " 203 [email protected] "\n "
205 [email protected] "}" 204 [email protected]
206 [email protected] "\n " 205 [email protected]
207 [email protected] 206 [email protected]
208 [email protected] 207 [email protected]
209 [email protected] 208 [email protected]
210 [email protected] 209 [email protected]
211 [email protected] 210 [email protected] "f"
212 [email protected] 211 [email protected]
213 [email protected] "f" 212 [email protected] "("
214 [email protected] 213 [email protected]
215 [email protected] "(" 214 [email protected] "return"
216 [email protected] 215 [email protected] ")"
217 [email protected] "return" 216 [email protected] ";"
218 [email protected] ")" 217 [email protected] "\n"
219 [email protected] ";" 218 [email protected] "}"
220 [email protected] "\n"
221 [email protected] "}"
222 [email protected] "\n\n" 219 [email protected] "\n\n"
223 [email protected] 220 [email protected]
224 [email protected] "fn" 221 [email protected] "fn"
@@ -230,189 +227,185 @@ [email protected]
230 [email protected] ")" 227 [email protected] ")"
231 [email protected] " " 228 [email protected] " "
232 [email protected] 229 [email protected]
233 [email protected] 230 [email protected] "{"
234 [email protected] "{" 231 [email protected] "\n "
235 [email protected] "\n " 232 [email protected]
236 [email protected] 233 [email protected] "fn"
237 [email protected] "fn" 234 [email protected] " "
238 [email protected] " " 235 [email protected]
239 [email protected] 236 [email protected] "the"
240 [email protected] "the" 237 [email protected]
241 [email protected] 238 [email protected] "("
242 [email protected] "(" 239 [email protected]
243 [email protected] 240 [email protected]
244 [email protected] 241 [email protected]
245 [email protected] 242 [email protected] "x"
246 [email protected] "x" 243 [email protected] ":"
247 [email protected] ":" 244 [email protected] " "
248 [email protected] " " 245 [email protected]
249 [email protected] 246 [email protected] "&"
250 [email protected] "&" 247 [email protected]
251 [email protected] 248 [email protected]
252 [email protected] 249 [email protected]
253 [email protected] 250 [email protected]
254 [email protected] 251 [email protected] "Cell"
255 [email protected] "Cell" 252 [email protected]
256 [email protected] 253 [email protected] "<"
257 [email protected] "<" 254 [email protected]
258 [email protected] 255 [email protected]
259 [email protected] 256 [email protected]
260 [email protected] 257 [email protected]
261 [email protected] 258 [email protected]
262 [email protected] 259 [email protected] "bool"
263 [email protected] "bool" 260 [email protected] ">"
264 [email protected] ">" 261 [email protected] ")"
265 [email protected] ")" 262 [email protected] " "
266 [email protected] " " 263 [email protected]
267 [email protected] 264 [email protected] "{"
268 [email protected] 265 [email protected] "\n "
269 [email protected] "{" 266 [email protected]
270 [email protected] "\n " 267 [email protected]
271 [email protected] 268 [email protected] "return"
272 [email protected] 269 [email protected] " "
273 [email protected] "return" 270 [email protected]
274 [email protected] " " 271 [email protected] "while"
275 [email protected] 272 [email protected] " "
276 [email protected] "while" 273 [email protected]
277 [email protected] " " 274 [email protected]
278 [email protected] 275 [email protected] "!"
279 [email protected] 276 [email protected]
280 [email protected] "!" 277 [email protected]
281 [email protected] 278 [email protected]
282 [email protected] 279 [email protected]
283 [email protected] 280 [email protected]
284 [email protected] 281 [email protected] "x"
285 [email protected] 282 [email protected] "."
286 [email protected] "x" 283 [email protected]
287 [email protected] "." 284 [email protected] "get"
288 [email protected] 285 [email protected]
289 [email protected] "get" 286 [email protected] "("
290 [email protected] 287 [email protected] ")"
291 [email protected] "(" 288 [email protected] " "
292 [email protected] ")" 289 [email protected]
293 [email protected] " " 290 [email protected] "{"
294 [email protected] 291 [email protected] " "
295 [email protected] 292 [email protected]
296 [email protected] "{" 293 [email protected]
297 [email protected] " " 294 [email protected]
298 [email protected] 295 [email protected]
299 [email protected] 296 [email protected]
300 [email protected] 297 [email protected]
301 [email protected] 298 [email protected] "x"
302 [email protected] 299 [email protected] "."
303 [email protected] 300 [email protected]
304 [email protected] "x" 301 [email protected] "set"
305 [email protected] "." 302 [email protected]
306 [email protected] 303 [email protected] "("
307 [email protected] "set" 304 [email protected]
308 [email protected] 305 [email protected] "true"
309 [email protected] "(" 306 [email protected] ")"
310 [email protected] 307 [email protected] ";"
311 [email protected] "true" 308 [email protected] " "
312 [email protected] ")" 309 [email protected] "}"
313 [email protected] ";" 310 [email protected] ";"
314 [email protected] " " 311 [email protected] "\n "
315 [email protected] "}" 312 [email protected] "}"
316 [email protected] ";" 313 [email protected] "\n "
317 [email protected] "\n " 314 [email protected]
318 [email protected] "}" 315 [email protected] "let"
319 [email protected] "\n " 316 [email protected] " "
320 [email protected] 317 [email protected]
321 [email protected] "let" 318 [email protected]
322 [email protected] " " 319 [email protected] "i"
323 [email protected] 320 [email protected] " "
324 [email protected] 321 [email protected] "="
325 [email protected] "i" 322 [email protected] " "
326 [email protected] " " 323 [email protected]
327 [email protected] "=" 324 [email protected] "&"
328 [email protected] " " 325 [email protected]
329 [email protected] 326 [email protected]
330 [email protected] "&" 327 [email protected]
331 [email protected] 328 [email protected]
332 [email protected] 329 [email protected]
333 [email protected] 330 [email protected]
334 [email protected] 331 [email protected] "Cell"
335 [email protected] 332 [email protected] "::"
336 [email protected] 333 [email protected]
337 [email protected] "Cell" 334 [email protected]
338 [email protected] "::" 335 [email protected] "new"
339 [email protected] 336 [email protected]
340 [email protected] 337 [email protected] "("
341 [email protected] "new" 338 [email protected]
342 [email protected] 339 [email protected] "false"
343 [email protected] "(" 340 [email protected] ")"
344 [email protected] 341 [email protected] ";"
345 [email protected] "false" 342 [email protected] "\n "
346 [email protected] ")" 343 [email protected]
347 [email protected] ";" 344 [email protected] "let"
348 [email protected] "\n " 345 [email protected] " "
349 [email protected] 346 [email protected]
350 [email protected] "let" 347 [email protected]
351 [email protected] " " 348 [email protected] "dont"
352 [email protected] 349 [email protected] " "
353 [email protected] 350 [email protected] "="
354 [email protected] "dont" 351 [email protected] " "
355 [email protected] " " 352 [email protected]
356 [email protected] "=" 353 [email protected] "{"
357 [email protected] " " 354 [email protected]
358 [email protected] 355 [email protected]
359 [email protected] 356 [email protected] "|"
360 [email protected] "{" 357 [email protected] "|"
361 [email protected] 358 [email protected]
362 [email protected] 359 [email protected]
363 [email protected] "|" 360 [email protected]
364 [email protected] "|" 361 [email protected]
365 [email protected] 362 [email protected]
366 [email protected] 363 [email protected] "the"
367 [email protected] 364 [email protected]
368 [email protected] 365 [email protected] "("
369 [email protected] 366 [email protected]
370 [email protected] "the" 367 [email protected]
371 [email protected] 368 [email protected]
372 [email protected] "(" 369 [email protected]
373 [email protected] 370 [email protected] "i"
374 [email protected] 371 [email protected] ")"
375 [email protected] 372 [email protected] "}"
376 [email protected] 373 [email protected] ";"
377 [email protected] "i" 374 [email protected] "\n "
378 [email protected] ")" 375 [email protected]
379 [email protected] "}" 376 [email protected]
380 [email protected] ";" 377 [email protected]
381 [email protected] "\n " 378 [email protected]
382 [email protected] 379 [email protected]
383 [email protected] 380 [email protected]
384 [email protected] 381 [email protected] "dont"
385 [email protected] 382 [email protected]
386 [email protected] 383 [email protected] "("
387 [email protected] 384 [email protected] ")"
388 [email protected] "dont" 385 [email protected] ";"
389 [email protected] 386 [email protected] "\n "
390 [email protected] "(" 387 [email protected]
391 [email protected] ")" 388 [email protected]
392 [email protected] ";" 389 [email protected]
393 [email protected] "\n " 390 [email protected]
394 [email protected] 391 [email protected]
395 [email protected] 392 [email protected] "assert"
396 [email protected] 393 [email protected] "!"
397 [email protected] 394 [email protected]
398 [email protected] 395 [email protected] "("
399 [email protected] "assert" 396 [email protected]
400 [email protected] "!" 397 [email protected] "("
401 [email protected] 398 [email protected] "i"
402 [email protected] "(" 399 [email protected] "."
403 [email protected] 400 [email protected] "get"
404 [email protected] "(" 401 [email protected]
405 [email protected] "i" 402 [email protected] "("
406 [email protected] "." 403 [email protected] ")"
407 [email protected] "get" 404 [email protected] ")"
408 [email protected] 405 [email protected] ")"
409 [email protected] "(" 406 [email protected] ";"
410 [email protected] ")" 407 [email protected] "\n"
411 [email protected] ")" 408 [email protected] "}"
412 [email protected] ")"
413 [email protected] ";"
414 [email protected] "\n"
415 [email protected] "}"
416 [email protected] "\n\n" 409 [email protected] "\n\n"
417 [email protected] 410 [email protected]
418 [email protected] "fn" 411 [email protected] "fn"
@@ -424,170 +417,160 @@ [email protected]
424 [email protected] ")" 417 [email protected] ")"
425 [email protected] " " 418 [email protected] " "
426 [email protected] 419 [email protected]
427 [email protected] 420 [email protected] "{"
428 [email protected] "{" 421 [email protected] "\n "
429 [email protected] "\n " 422 [email protected]
430 [email protected] 423 [email protected] "loop"
431 [email protected] "loop" 424 [email protected] " "
432 [email protected] " " 425 [email protected]
433 [email protected] 426 [email protected] "{"
434 [email protected] 427 [email protected] "\n "
435 [email protected] "{" 428 [email protected]
436 [email protected] "\n " 429 [email protected]
437 [email protected] 430 [email protected] "while"
438 [email protected] 431 [email protected] " "
439 [email protected] "while" 432 [email protected]
440 [email protected] " " 433 [email protected]
441 [email protected] 434 [email protected] "("
442 [email protected] 435 [email protected]
443 [email protected] "(" 436 [email protected] "return"
444 [email protected] 437 [email protected] ")"
445 [email protected] "return" 438 [email protected] " "
446 [email protected] ")" 439 [email protected]
447 [email protected] " " 440 [email protected] "{"
448 [email protected] 441 [email protected] "\n "
449 [email protected] 442 [email protected]
450 [email protected] "{" 443 [email protected] "if"
451 [email protected] "\n " 444 [email protected] " "
452 [email protected] 445 [email protected]
453 [email protected] "if" 446 [email protected]
454 [email protected] " " 447 [email protected] "("
455 [email protected] 448 [email protected]
456 [email protected] 449 [email protected] "return"
457 [email protected] "(" 450 [email protected] ")"
458 [email protected] 451 [email protected] " "
459 [email protected] "return" 452 [email protected]
460 [email protected] ")" 453 [email protected] "{"
461 [email protected] " " 454 [email protected] "\n "
462 [email protected] 455 [email protected]
463 [email protected] 456 [email protected]
464 [email protected] "{" 457 [email protected] "match"
465 [email protected] "\n " 458 [email protected] " "
466 [email protected] 459 [email protected]
467 [email protected] 460 [email protected] "("
468 [email protected] "match" 461 [email protected]
469 [email protected] " " 462 [email protected] "return"
470 [email protected] 463 [email protected] ")"
471 [email protected] "(" 464 [email protected] " "
472 [email protected] 465 [email protected]
473 [email protected] "return" 466 [email protected] "{"
474 [email protected] ")" 467 [email protected] "\n "
475 [email protected] " " 468 [email protected]
476 [email protected] 469 [email protected]
477 [email protected] "{" 470 [email protected]
478 [email protected] "\n " 471 [email protected] "1"
479 [email protected] 472 [email protected] " "
480 [email protected] 473 [email protected] "=>"
481 [email protected] 474 [email protected] " "
482 [email protected] "1" 475 [email protected]
483 [email protected] " " 476 [email protected] "{"
484 [email protected] "=>" 477 [email protected] "\n ..."
485 [email protected] " " 478 [email protected]
486 [email protected] 479 [email protected] "if"
487 [email protected] 480 [email protected] " "
488 [email protected] "{" 481 [email protected]
489 [email protected] "\n ..." 482 [email protected]
490 [email protected] 483 [email protected] "("
491 [email protected] "if" 484 [email protected]
492 [email protected] " " 485 [email protected] "return"
493 [email protected] 486 [email protected] ")"
494 [email protected] 487 [email protected] " "
495 [email protected] "(" 488 [email protected]
496 [email protected] 489 [email protected] "{"
497 [email protected] "return" 490 [email protected] "\n ..."
498 [email protected] ")" 491 [email protected]
499 [email protected] " " 492 [email protected] "return"
500 [email protected] 493 [email protected] "\n ..."
501 [email protected] 494 [email protected] "}"
502 [email protected] "{" 495 [email protected] " "
503 [email protected] "\n ..." 496 [email protected] "else"
504 [email protected] 497 [email protected] " "
505 [email protected] "return" 498 [email protected]
506 [email protected] "\n ..." 499 [email protected] "{"
507 [email protected] "}" 500 [email protected] "\n ..."
508 [email protected] " " 501 [email protected]
509 [email protected] "else" 502 [email protected] "return"
510 [email protected] " " 503 [email protected] "\n ..."
511 [email protected] 504 [email protected] "}"
512 [email protected] 505 [email protected] "\n "
513 [email protected] "{" 506 [email protected] "}"
514 [email protected] "\n ..." 507 [email protected] "\n "
515 [email protected] 508 [email protected]
516 [email protected] "return" 509 [email protected]
517 [email protected] "\n ..." 510 [email protected] "_"
518 [email protected] "}" 511 [email protected] " "
519 [email protected] "\n " 512 [email protected] "=>"
520 [email protected] "}" 513 [email protected] " "
521 [email protected] "\n " 514 [email protected]
522 [email protected] 515 [email protected] "{"
523 [email protected] 516 [email protected] " "
524 [email protected] "_" 517 [email protected]
525 [email protected] " " 518 [email protected] "return"
526 [email protected] "=>" 519 [email protected] " "
527 [email protected] " " 520 [email protected] "}"
528 [email protected] 521 [email protected] "\n "
529 [email protected] 522 [email protected] "}"
530 [email protected] "{" 523 [email protected] ";"
531 [email protected] " " 524 [email protected] "\n "
532 [email protected] 525 [email protected] "}"
533 [email protected] "return" 526 [email protected] " "
534 [email protected] " " 527 [email protected] "else"
535 [email protected] "}" 528 [email protected] " "
536 [email protected] "\n " 529 [email protected]
537 [email protected] "}" 530 [email protected] "if"
538 [email protected] ";" 531 [email protected] " "
539 [email protected] "\n " 532 [email protected]
540 [email protected] "}" 533 [email protected]
541 [email protected] " " 534 [email protected] "("
542 [email protected] "else" 535 [email protected]
543 [email protected] " " 536 [email protected] "return"
544 [email protected] 537 [email protected] ")"
545 [email protected] "if" 538 [email protected] " "
546 [email protected] " " 539 [email protected]
547 [email protected] 540 [email protected] "{"
548 [email protected] 541 [email protected] "\n "
549 [email protected] "(" 542 [email protected]
550 [email protected] 543 [email protected]
551 [email protected] "return" 544 [email protected] "return"
552 [email protected] ")" 545 [email protected] ";"
553 [email protected] " " 546 [email protected] "\n "
554 [email protected] 547 [email protected] "}"
555 [email protected] 548 [email protected] "\n "
556 [email protected] "{" 549 [email protected] "}"
557 [email protected] "\n " 550 [email protected] "\n "
558 [email protected] 551 [email protected]
559 [email protected] 552 [email protected] "if"
560 [email protected] "return" 553 [email protected] " "
561 [email protected] ";" 554 [email protected]
562 [email protected] "\n " 555 [email protected]
563 [email protected] "}" 556 [email protected] "("
564 [email protected] "\n " 557 [email protected]
565 [email protected] "}" 558 [email protected] "return"
566 [email protected] "\n " 559 [email protected] ")"
567 [email protected] 560 [email protected] " "
568 [email protected] "if" 561 [email protected]
569 [email protected] " " 562 [email protected] "{"
570 [email protected] 563 [email protected] " "
571 [email protected] 564 [email protected]
572 [email protected] "(" 565 [email protected]
573 [email protected] 566 [email protected] "break"
574 [email protected] "return" 567 [email protected] ";"
575 [email protected] ")" 568 [email protected] " "
576 [email protected] " " 569 [email protected] "}"
577 [email protected] 570 [email protected] "\n "
578 [email protected] 571 [email protected] "}"
579 [email protected] "{" 572 [email protected] "\n"
580 [email protected] " " 573 [email protected] "}"
581 [email protected]
582 [email protected]
583 [email protected] "break"
584 [email protected] ";"
585 [email protected] " "
586 [email protected] "}"
587 [email protected] "\n "
588 [email protected] "}"
589 [email protected] "\n"
590 [email protected] "}"
591 [email protected] "\n\n" 574 [email protected] "\n\n"
592 [email protected] 575 [email protected]
593 [email protected] "fn" 576 [email protected] "fn"
@@ -599,233 +582,232 @@ [email protected]
599 [email protected] ")" 582 [email protected] ")"
600 [email protected] " " 583 [email protected] " "
601 [email protected] 584 [email protected]
602 [email protected] 585 [email protected] "{"
603 [email protected] "{" 586 [email protected] "\n "
604 [email protected] "\n " 587 [email protected]
605 [email protected] 588 [email protected] "let"
606 [email protected] "let" 589 [email protected] " "
607 [email protected] " " 590 [email protected]
608 [email protected] 591 [email protected] "mut"
609 [email protected] "mut" 592 [email protected] " "
610 [email protected] " " 593 [email protected]
611 [email protected] 594 [email protected] "_x"
612 [email protected] "_x" 595 [email protected] ":"
613 [email protected] ":" 596 [email protected] " "
614 [email protected] " " 597 [email protected]
615 [email protected] 598 [email protected]
616 [email protected] 599 [email protected]
617 [email protected] 600 [email protected]
618 [email protected] 601 [email protected] "isize"
619 [email protected] "isize" 602 [email protected] ";"
620 [email protected] ";" 603 [email protected] "\n "
621 [email protected] "\n " 604 [email protected]
622 [email protected] 605 [email protected] "let"
623 [email protected] "let" 606 [email protected] " "
624 [email protected] " " 607 [email protected]
625 [email protected] 608 [email protected] "mut"
626 [email protected] "mut" 609 [email protected] " "
627 [email protected] " " 610 [email protected]
628 [email protected] 611 [email protected] "_y"
629 [email protected] "_y" 612 [email protected] " "
630 [email protected] " " 613 [email protected] "="
631 [email protected] "=" 614 [email protected] " "
632 [email protected] " " 615 [email protected]
633 [email protected] 616 [email protected]
634 [email protected] 617 [email protected] "("
635 [email protected] "(" 618 [email protected]
636 [email protected] 619 [email protected]
637 [email protected] 620 [email protected]
638 [email protected] 621 [email protected]
639 [email protected] 622 [email protected]
640 [email protected] 623 [email protected] "_x"
641 [email protected] "_x" 624 [email protected] " "
642 [email protected] " " 625 [email protected] "="
643 [email protected] "=" 626 [email protected] " "
644 [email protected] " " 627 [email protected]
645 [email protected] 628 [email protected] "0"
646 [email protected] "0" 629 [email protected] ")"
647 [email protected] ")" 630 [email protected] " "
648 [email protected] " " 631 [email protected] "=="
649 [email protected] "==" 632 [email protected] " "
650 [email protected] " " 633 [email protected]
651 [email protected] 634 [email protected] "("
652 [email protected] "(" 635 [email protected]
653 [email protected] 636 [email protected]
654 [email protected] 637 [email protected]
655 [email protected] 638 [email protected]
656 [email protected] 639 [email protected]
657 [email protected] 640 [email protected] "_x"
658 [email protected] "_x" 641 [email protected] " "
659 [email protected] " " 642 [email protected] "="
660 [email protected] "=" 643 [email protected] " "
661 [email protected] " " 644 [email protected]
662 [email protected] 645 [email protected] "0"
663 [email protected] "0" 646 [email protected] ")"
664 [email protected] ")" 647 [email protected] ";"
665 [email protected] ";" 648 [email protected] "\n "
666 [email protected] "\n " 649 [email protected]
667 [email protected] 650 [email protected] "let"
668 [email protected] "let" 651 [email protected] " "
669 [email protected] " " 652 [email protected]
670 [email protected] 653 [email protected] "mut"
671 [email protected] "mut" 654 [email protected] " "
672 [email protected] " " 655 [email protected]
673 [email protected] 656 [email protected] "_z"
674 [email protected] "_z" 657 [email protected] " "
675 [email protected] " " 658 [email protected] "="
676 [email protected] "=" 659 [email protected] " "
677 [email protected] " " 660 [email protected]
678 [email protected] 661 [email protected]
679 [email protected] 662 [email protected] "("
680 [email protected] "(" 663 [email protected]
681 [email protected] 664 [email protected]
682 [email protected] 665 [email protected]
683 [email protected] 666 [email protected]
684 [email protected] 667 [email protected]
685 [email protected] 668 [email protected] "_x"
686 [email protected] "_x" 669 [email protected] " "
687 [email protected] " " 670 [email protected] "="
688 [email protected] "=" 671 [email protected] " "
689 [email protected] " " 672 [email protected]
690 [email protected] 673 [email protected] "0"
691 [email protected] "0" 674 [email protected] ")"
692 [email protected] ")" 675 [email protected] " "
693 [email protected] " " 676 [email protected] "<"
694 [email protected] "<" 677 [email protected] " "
695 [email protected] " " 678 [email protected]
696 [email protected] 679 [email protected] "("
697 [email protected] "(" 680 [email protected]
698 [email protected] 681 [email protected]
699 [email protected] 682 [email protected]
700 [email protected] 683 [email protected]
701 [email protected] 684 [email protected]
702 [email protected] 685 [email protected] "_x"
703 [email protected] "_x" 686 [email protected] " "
704 [email protected] " " 687 [email protected] "="
705 [email protected] "=" 688 [email protected] " "
706 [email protected] " " 689 [email protected]
707 [email protected] 690 [email protected] "0"
708 [email protected] "0" 691 [email protected] ")"
709 [email protected] ")" 692 [email protected] ";"
710 [email protected] ";" 693 [email protected] "\n "
711 [email protected] "\n " 694 [email protected]
712 [email protected] 695 [email protected] "let"
713 [email protected] "let" 696 [email protected] " "
714 [email protected] " " 697 [email protected]
715 [email protected] 698 [email protected]
716 [email protected] 699 [email protected] "_a"
717 [email protected] "_a" 700 [email protected] " "
718 [email protected] " " 701 [email protected] "="
719 [email protected] "=" 702 [email protected] " "
720 [email protected] " " 703 [email protected]
721 [email protected] 704 [email protected]
722 [email protected] 705 [email protected] "("
723 [email protected] "(" 706 [email protected]
724 [email protected] 707 [email protected]
725 [email protected] 708 [email protected]
726 [email protected] 709 [email protected]
727 [email protected] 710 [email protected]
728 [email protected] 711 [email protected] "_x"
729 [email protected] "_x" 712 [email protected] " "
730 [email protected] " " 713 [email protected] "+="
731 [email protected] "+=" 714 [email protected] " "
732 [email protected] " " 715 [email protected]
733 [email protected] 716 [email protected] "0"
734 [email protected] "0" 717 [email protected] ")"
735 [email protected] ")" 718 [email protected] " "
736 [email protected] " " 719 [email protected] "=="
737 [email protected] "==" 720 [email protected] " "
738 [email protected] " " 721 [email protected]
739 [email protected] 722 [email protected] "("
740 [email protected] "(" 723 [email protected]
741 [email protected] 724 [email protected]
742 [email protected] 725 [email protected]
743 [email protected] 726 [email protected]
744 [email protected] 727 [email protected]
745 [email protected] 728 [email protected] "_x"
746 [email protected] "_x" 729 [email protected] " "
747 [email protected] " " 730 [email protected] "="
748 [email protected] "=" 731 [email protected] " "
749 [email protected] " " 732 [email protected]
750 [email protected] 733 [email protected] "0"
751 [email protected] "0" 734 [email protected] ")"
752 [email protected] ")" 735 [email protected] ";"
753 [email protected] ";" 736 [email protected] "\n "
754 [email protected] "\n " 737 [email protected]
755 [email protected] 738 [email protected] "let"
756 [email protected] "let" 739 [email protected] " "
757 [email protected] " " 740 [email protected]
758 [email protected] 741 [email protected]
759 [email protected] 742 [email protected] "_b"
760 [email protected] "_b" 743 [email protected] " "
761 [email protected] " " 744 [email protected] "="
762 [email protected] "=" 745 [email protected] " "
763 [email protected] " " 746 [email protected]
764 [email protected] 747 [email protected]
765 [email protected] 748 [email protected]
766 [email protected] 749 [email protected]
767 [email protected] 750 [email protected]
768 [email protected] 751 [email protected]
769 [email protected] 752 [email protected] "swap"
770 [email protected] "swap" 753 [email protected]
771 [email protected] 754 [email protected] "("
772 [email protected] "(" 755 [email protected]
773 [email protected] 756 [email protected] "&"
774 [email protected] "&" 757 [email protected] "mut"
775 [email protected] "mut" 758 [email protected] " "
776 [email protected] " " 759 [email protected]
777 [email protected] 760 [email protected]
778 [email protected] 761 [email protected]
779 [email protected] 762 [email protected]
780 [email protected] 763 [email protected] "_y"
781 [email protected] "_y" 764 [email protected] ","
782 [email protected] "," 765 [email protected] " "
783 [email protected] " " 766 [email protected]
784 [email protected] 767 [email protected] "&"
785 [email protected] "&" 768 [email protected] "mut"
786 [email protected] "mut" 769 [email protected] " "
787 [email protected] " " 770 [email protected]
788 [email protected] 771 [email protected]
789 [email protected] 772 [email protected]
790 [email protected] 773 [email protected]
791 [email protected] 774 [email protected] "_z"
792 [email protected] "_z" 775 [email protected] ")"
793 [email protected] ")" 776 [email protected] " "
794 [email protected] " " 777 [email protected] "=="
795 [email protected] "==" 778 [email protected] " "
796 [email protected] " " 779 [email protected]
797 [email protected] 780 [email protected]
798 [email protected] 781 [email protected]
799 [email protected] 782 [email protected]
800 [email protected] 783 [email protected]
801 [email protected] 784 [email protected] "swap"
802 [email protected] "swap" 785 [email protected]
803 [email protected] 786 [email protected] "("
804 [email protected] "(" 787 [email protected]
805 [email protected] 788 [email protected] "&"
806 [email protected] "&" 789 [email protected] "mut"
807 [email protected] "mut" 790 [email protected] " "
808 [email protected] " " 791 [email protected]
809 [email protected] 792 [email protected]
810 [email protected] 793 [email protected]
811 [email protected] 794 [email protected]
812 [email protected] 795 [email protected] "_y"
813 [email protected] "_y" 796 [email protected] ","
814 [email protected] "," 797 [email protected] " "
815 [email protected] " " 798 [email protected]
816 [email protected] 799 [email protected] "&"
817 [email protected] "&" 800 [email protected] "mut"
818 [email protected] "mut" 801 [email protected] " "
819 [email protected] " " 802 [email protected]
820 [email protected] 803 [email protected]
821 [email protected] 804 [email protected]
822 [email protected] 805 [email protected]
823 [email protected] 806 [email protected] "_z"
824 [email protected] "_z" 807 [email protected] ")"
825 [email protected] ")" 808 [email protected] ";"
826 [email protected] ";" 809 [email protected] "\n"
827 [email protected] "\n" 810 [email protected] "}"
828 [email protected] "}"
829 [email protected] "\n\n" 811 [email protected] "\n\n"
830 [email protected] 812 [email protected]
831 [email protected] "fn" 813 [email protected] "fn"
@@ -846,167 +828,165 @@ [email protected]
846 [email protected] "usize" 828 [email protected] "usize"
847 [email protected] " " 829 [email protected] " "
848 [email protected] 830 [email protected]
849 [email protected] 831 [email protected] "{"
850 [email protected] "{" 832 [email protected] "\n "
851 [email protected] "\n " 833 [email protected]
852 [email protected] 834 [email protected] "fn"
853 [email protected] "fn" 835 [email protected] " "
854 [email protected] " " 836 [email protected]
855 [email protected] 837 [email protected] "p"
856 [email protected] "p" 838 [email protected]
857 [email protected] 839 [email protected] "("
858 [email protected] "(" 840 [email protected] ")"
859 [email protected] ")" 841 [email protected] " "
860 [email protected] " " 842 [email protected]
861 [email protected] 843 [email protected] "->"
862 [email protected] "->" 844 [email protected] " "
863 [email protected] " " 845 [email protected]
864 [email protected] 846 [email protected]
865 [email protected] 847 [email protected]
866 [email protected] 848 [email protected]
867 [email protected] 849 [email protected] "bool"
868 [email protected] "bool" 850 [email protected] " "
869 [email protected] " " 851 [email protected]
870 [email protected] 852 [email protected] "{"
871 [email protected] 853 [email protected] " "
872 [email protected] "{" 854 [email protected]
873 [email protected] " " 855 [email protected] "true"
874 [email protected] 856 [email protected] " "
875 [email protected] "true" 857 [email protected] "}"
876 [email protected] " " 858 [email protected] "\n "
877 [email protected] "}" 859 [email protected]
878 [email protected] "\n " 860 [email protected] "let"
879 [email protected] 861 [email protected] " "
880 [email protected] "let" 862 [email protected]
881 [email protected] " " 863 [email protected]
882 [email protected] 864 [email protected] "_a"
883 [email protected] 865 [email protected] " "
884 [email protected] "_a" 866 [email protected] "="
885 [email protected] " " 867 [email protected] " "
886 [email protected] "=" 868 [email protected]
887 [email protected] " " 869 [email protected] "("
888 [email protected] 870 [email protected]
889 [email protected] "(" 871 [email protected]
890 [email protected] 872 [email protected]
891 [email protected] 873 [email protected]
892 [email protected] 874 [email protected]
893 [email protected] 875 [email protected] "assert"
894 [email protected] 876 [email protected] "!"
895 [email protected] "assert" 877 [email protected]
896 [email protected] "!" 878 [email protected] "("
897 [email protected] 879 [email protected]
898 [email protected] "(" 880 [email protected] "("
899 [email protected] 881 [email protected] "true"
900 [email protected] "(" 882 [email protected] ")"
901 [email protected] "true" 883 [email protected] ")"
902 [email protected] ")" 884 [email protected] " "
903 [email protected] ")" 885 [email protected] "=="
904 [email protected] " " 886 [email protected] " "
905 [email protected] "==" 887 [email protected]
906 [email protected] " " 888 [email protected] "("
907 [email protected] 889 [email protected]
908 [email protected] "(" 890 [email protected]
909 [email protected] 891 [email protected]
910 [email protected] 892 [email protected]
911 [email protected] 893 [email protected] "assert"
912 [email protected] 894 [email protected] "!"
913 [email protected] "assert" 895 [email protected]
914 [email protected] "!" 896 [email protected] "("
915 [email protected] 897 [email protected] "p"
916 [email protected] "(" 898 [email protected]
917 [email protected] "p" 899 [email protected] "("
918 [email protected] 900 [email protected] ")"
919 [email protected] "(" 901 [email protected] ")"
920 [email protected] ")" 902 [email protected] ")"
921 [email protected] ")" 903 [email protected] ")"
922 [email protected] ")" 904 [email protected] ";"
923 [email protected] ")" 905 [email protected] "\n "
924 [email protected] ";" 906 [email protected]
925 [email protected] "\n " 907 [email protected] "let"
926 [email protected] 908 [email protected] " "
927 [email protected] "let" 909 [email protected]
928 [email protected] " " 910 [email protected]
929 [email protected] 911 [email protected] "_c"
930 [email protected] 912 [email protected] " "
931 [email protected] "_c" 913 [email protected] "="
932 [email protected] " " 914 [email protected] " "
933 [email protected] "=" 915 [email protected]
934 [email protected] " " 916 [email protected] "("
935 [email protected] 917 [email protected]
936 [email protected] "(" 918 [email protected]
937 [email protected] 919 [email protected]
938 [email protected] 920 [email protected]
939 [email protected] 921 [email protected]
940 [email protected] 922 [email protected] "assert"
941 [email protected] 923 [email protected] "!"
942 [email protected] "assert" 924 [email protected]
943 [email protected] "!" 925 [email protected] "("
944 [email protected] 926 [email protected]
945 [email protected] "(" 927 [email protected] "("
946 [email protected] 928 [email protected] "p"
947 [email protected] "(" 929 [email protected]
948 [email protected] "p" 930 [email protected] "("
949 [email protected] 931 [email protected] ")"
950 [email protected] "(" 932 [email protected] ")"
951 [email protected] ")" 933 [email protected] ")"
952 [email protected] ")" 934 [email protected] " "
953 [email protected] ")" 935 [email protected] "=="
954 [email protected] " " 936 [email protected] " "
955 [email protected] "==" 937 [email protected]
956 [email protected] " " 938 [email protected] "("
957 [email protected] 939 [email protected] ")"
958 [email protected] "(" 940 [email protected] ")"
959 [email protected] ")" 941 [email protected] ";"
960 [email protected] ")" 942 [email protected] "\n "
961 [email protected] ";" 943 [email protected]
962 [email protected] "\n " 944 [email protected] "let"
963 [email protected] 945 [email protected] " "
964 [email protected] "let" 946 [email protected]
965 [email protected] " " 947 [email protected]
966 [email protected] 948 [email protected] "_b"
967 [email protected] 949 [email protected] ":"
968 [email protected] "_b" 950 [email protected] " "
969 [email protected] ":" 951 [email protected]
970 [email protected] " " 952 [email protected]
971 [email protected] 953 [email protected]
972 [email protected] 954 [email protected]
973 [email protected] 955 [email protected] "bool"
974 [email protected] 956 [email protected] " "
975 [email protected] "bool" 957 [email protected] "="
976 [email protected] " " 958 [email protected] " "
977 [email protected] "=" 959 [email protected]
978 [email protected] " " 960 [email protected] "("
979 [email protected] 961 [email protected]
980 [email protected] "(" 962 [email protected]
981 [email protected] 963 [email protected]
982 [email protected] 964 [email protected]
983 [email protected] 965 [email protected]
984 [email protected] 966 [email protected] "println"
985 [email protected] 967 [email protected] "!"
986 [email protected] "println" 968 [email protected]
987 [email protected] "!" 969 [email protected] "("
988 [email protected] 970 [email protected] "\"{}\""
989 [email protected] "(" 971 [email protected] ","
990 [email protected] "\"{}\"" 972 [email protected] " "
991 [email protected] "," 973 [email protected] "0"
992 [email protected] " " 974 [email protected] ")"
993 [email protected] "0" 975 [email protected] " "
994 [email protected] ")" 976 [email protected] "=="
995 [email protected] " " 977 [email protected] " "
996 [email protected] "==" 978 [email protected]
997 [email protected] " " 979 [email protected] "("
998 [email protected] 980 [email protected]
999 [email protected] "(" 981 [email protected] "return"
1000 [email protected] 982 [email protected] " "
1001 [email protected] "return" 983 [email protected]
1002 [email protected] " " 984 [email protected] "0"
1003 [email protected] 985 [email protected] ")"
1004 [email protected] "0" 986 [email protected] ")"
1005 [email protected] ")" 987 [email protected] ";"
1006 [email protected] ")" 988 [email protected] "\n"
1007 [email protected] ";" 989 [email protected] "}"
1008 [email protected] "\n"
1009 [email protected] "}"
1010 [email protected] "\n\n" 990 [email protected] "\n\n"
1011 [email protected] 991 [email protected]
1012 [email protected] "fn" 992 [email protected] "fn"
@@ -1018,144 +998,138 @@ [email protected]
1018 [email protected] ")" 998 [email protected] ")"
1019 [email protected] " " 999 [email protected] " "
1020 [email protected] 1000 [email protected]
1021 [email protected] 1001 [email protected] "{"
1022 [email protected] "{" 1002 [email protected] "\n "
1023 [email protected] "\n " 1003 [email protected]
1024 [email protected] 1004 [email protected]
1025 [email protected] 1005 [email protected] "loop"
1026 [email protected] "loop" 1006 [email protected] " "
1027 [email protected] " " 1007 [email protected]
1028 [email protected] 1008 [email protected] "{"
1029 [email protected] 1009 [email protected] " "
1030 [email protected] "{" 1010 [email protected]
1031 [email protected] " " 1011 [email protected] "if"
1032 [email protected] 1012 [email protected] " "
1033 [email protected] "if" 1013 [email protected]
1034 [email protected] " " 1014 [email protected]
1035 [email protected] 1015 [email protected] "break"
1036 [email protected] 1016 [email protected] " "
1037 [email protected] "break" 1017 [email protected]
1038 [email protected] " " 1018 [email protected] "{"
1039 [email protected] 1019 [email protected] " "
1040 [email protected] 1020 [email protected] "}"
1041 [email protected] "{" 1021 [email protected] " "
1042 [email protected] " " 1022 [email protected] "}"
1043 [email protected] "}" 1023 [email protected] "\n "
1044 [email protected] " " 1024 [email protected]
1045 [email protected] "}" 1025 [email protected] "let"
1046 [email protected] "\n " 1026 [email protected] " "
1047 [email protected] 1027 [email protected]
1048 [email protected] "let" 1028 [email protected] "mut"
1049 [email protected] " " 1029 [email protected] " "
1050 [email protected] 1030 [email protected]
1051 [email protected] "mut" 1031 [email protected] "i"
1052 [email protected] " " 1032 [email protected] " "
1053 [email protected] 1033 [email protected] "="
1054 [email protected] "i" 1034 [email protected] " "
1055 [email protected] " " 1035 [email protected]
1056 [email protected] "=" 1036 [email protected] "0"
1057 [email protected] " " 1037 [email protected] ";"
1058 [email protected] 1038 [email protected] "\n "
1059 [email protected] "0" 1039 [email protected]
1060 [email protected] ";" 1040 [email protected] "loop"
1061 [email protected] "\n " 1041 [email protected] " "
1062 [email protected] 1042 [email protected]
1063 [email protected] "loop" 1043 [email protected] "{"
1064 [email protected] " " 1044 [email protected] " "
1065 [email protected] 1045 [email protected]
1066 [email protected] 1046 [email protected]
1067 [email protected] "{" 1047 [email protected]
1068 [email protected] " " 1048 [email protected]
1069 [email protected] 1049 [email protected]
1070 [email protected] 1050 [email protected]
1071 [email protected] 1051 [email protected] "i"
1072 [email protected] 1052 [email protected] " "
1073 [email protected] 1053 [email protected] "+="
1074 [email protected] 1054 [email protected] " "
1075 [email protected] "i" 1055 [email protected]
1076 [email protected] " " 1056 [email protected] "1"
1077 [email protected] "+=" 1057 [email protected] ";"
1078 [email protected] " " 1058 [email protected] " "
1079 [email protected] 1059 [email protected]
1080 [email protected] "1" 1060 [email protected]
1081 [email protected] ";" 1061 [email protected] "if"
1082 [email protected] " " 1062 [email protected] " "
1083 [email protected] 1063 [email protected]
1084 [email protected] 1064 [email protected]
1085 [email protected] "if" 1065 [email protected]
1086 [email protected] " " 1066 [email protected]
1087 [email protected] 1067 [email protected]
1088 [email protected] 1068 [email protected]
1089 [email protected] 1069 [email protected] "i"
1090 [email protected] 1070 [email protected] " "
1091 [email protected] 1071 [email protected] "=="
1092 [email protected] 1072 [email protected] " "
1093 [email protected] "i" 1073 [email protected]
1094 [email protected] " " 1074 [email protected] "1"
1095 [email protected] "==" 1075 [email protected] " "
1096 [email protected] " " 1076 [email protected]
1097 [email protected] 1077 [email protected] "{"
1098 [email protected] "1" 1078 [email protected] " "
1099 [email protected] " " 1079 [email protected]
1100 [email protected] 1080 [email protected] "match"
1101 [email protected] 1081 [email protected] " "
1102 [email protected] "{" 1082 [email protected]
1103 [email protected] " " 1083 [email protected] "("
1104 [email protected] 1084 [email protected]
1105 [email protected] "match" 1085 [email protected] "continue"
1106 [email protected] " " 1086 [email protected] ")"
1107 [email protected] 1087 [email protected] " "
1108 [email protected] "(" 1088 [email protected]
1109 [email protected] 1089 [email protected] "{"
1110 [email protected] "continue" 1090 [email protected] " "
1111 [email protected] ")" 1091 [email protected]
1112 [email protected] " " 1092 [email protected]
1113 [email protected] 1093 [email protected]
1114 [email protected] "{" 1094 [email protected] "1"
1115 [email protected] " " 1095 [email protected] " "
1116 [email protected] 1096 [email protected] "=>"
1117 [email protected] 1097 [email protected] " "
1118 [email protected] 1098 [email protected]
1119 [email protected] "1" 1099 [email protected] "{"
1120 [email protected] " " 1100 [email protected] " "
1121 [email protected] "=>" 1101 [email protected] "}"
1122 [email protected] " " 1102 [email protected] ","
1123 [email protected] 1103 [email protected] " "
1124 [email protected] 1104 [email protected]
1125 [email protected] "{" 1105 [email protected]
1126 [email protected] " " 1106 [email protected] "_"
1127 [email protected] "}" 1107 [email protected] " "
1128 [email protected] "," 1108 [email protected] "=>"
1129 [email protected] " " 1109 [email protected] " "
1130 [email protected] 1110 [email protected]
1131 [email protected] 1111 [email protected]
1132 [email protected] "_" 1112 [email protected]
1133 [email protected] " " 1113 [email protected]
1134 [email protected] "=>" 1114 [email protected] "panic"
1135 [email protected] " " 1115 [email protected] "!"
1136 [email protected] 1116 [email protected]
1137 [email protected] 1117 [email protected] "("
1138 [email protected] 1118 [email protected] "\"wat\""
1139 [email protected] 1119 [email protected] ")"
1140 [email protected] "panic" 1120 [email protected] " "
1141 [email protected] "!" 1121 [email protected] "}"
1142 [email protected] 1122 [email protected] " "
1143 [email protected] "(" 1123 [email protected] "}"
1144 [email protected] "\"wat\"" 1124 [email protected] "\n "
1145 [email protected] ")" 1125 [email protected]
1146 [email protected] " " 1126 [email protected]
1147 [email protected] "}" 1127 [email protected] "break"
1148 [email protected] " " 1128 [email protected] ";"
1149 [email protected] "}" 1129 [email protected] " "
1150 [email protected] "\n " 1130 [email protected] "}"
1151 [email protected] 1131 [email protected] "\n"
1152 [email protected] 1132 [email protected] "}"
1153 [email protected] "break"
1154 [email protected] ";"
1155 [email protected] " "
1156 [email protected] "}"
1157 [email protected] "\n"
1158 [email protected] "}"
1159 [email protected] "\n\n" 1133 [email protected] "\n\n"
1160 [email protected] 1134 [email protected]
1161 [email protected] "fn" 1135 [email protected] "fn"
@@ -1167,31 +1141,30 @@ [email protected]
1167 [email protected] ")" 1141 [email protected] ")"
1168 [email protected] " " 1142 [email protected] " "
1169 [email protected] 1143 [email protected]
1170 [email protected] 1144 [email protected] "{"
1171 [email protected] "{" 1145 [email protected] " "
1172 [email protected] " " 1146 [email protected]
1173 [email protected] 1147 [email protected] "let"
1174 [email protected] "let" 1148 [email protected] " "
1175 [email protected] " " 1149 [email protected]
1176 [email protected] 1150 [email protected]
1177 [email protected] 1151 [email protected] "_evil"
1178 [email protected] "_evil" 1152 [email protected] " "
1179 [email protected] " " 1153 [email protected] "="
1180 [email protected] "=" 1154 [email protected] " "
1181 [email protected] " " 1155 [email protected]
1182 [email protected] 1156 [email protected]
1183 [email protected] 1157 [email protected]
1184 [email protected] 1158 [email protected]
1185 [email protected] 1159 [email protected] "println"
1186 [email protected] "println" 1160 [email protected] "!"
1187 [email protected] "!" 1161 [email protected]
1188 [email protected] 1162 [email protected] "("
1189 [email protected] "(" 1163 [email protected] "\"lincoln\""
1190 [email protected] "\"lincoln\"" 1164 [email protected] ")"
1191 [email protected] ")" 1165 [email protected] ";"
1192 [email protected] ";" 1166 [email protected] " "
1193 [email protected] " " 1167 [email protected] "}"
1194 [email protected] "}"
1195 [email protected] "\n\n" 1168 [email protected] "\n\n"
1196 [email protected] 1169 [email protected]
1197 [email protected] "fn" 1170 [email protected] "fn"
@@ -1203,114 +1176,113 @@ [email protected]
1203 [email protected] ")" 1176 [email protected] ")"
1204 [email protected] " " 1177 [email protected] " "
1205 [email protected] 1178 [email protected]
1206 [email protected] 1179 [email protected] "{"
1207 [email protected] "{" 1180 [email protected] "\n "
1208 [email protected] "\n " 1181 [email protected]
1209 [email protected] 1182 [email protected]
1210 [email protected] 1183 [email protected]
1211 [email protected] 1184 [email protected]
1212 [email protected] 1185 [email protected]
1213 [email protected] 1186 [email protected] "assert_eq"
1214 [email protected] "assert_eq" 1187 [email protected] "!"
1215 [email protected] "!" 1188 [email protected]
1216 [email protected] 1189 [email protected] "("
1217 [email protected] "(" 1190 [email protected] "String"
1218 [email protected] "String" 1191 [email protected] ":"
1219 [email protected] ":" 1192 [email protected] ":"
1220 [email protected] ":" 1193 [email protected] "from"
1221 [email protected] "from" 1194 [email protected]
1222 [email protected] 1195 [email protected] "("
1223 [email protected] "(" 1196 [email protected] "\".................... ..."
1224 [email protected] "\".................... ..." 1197 [email protected] ")"
1225 [email protected] ")" 1198 [email protected] ","
1226 [email protected] "," 1199 [email protected] "\n "
1227 [email protected] "\n " 1200 [email protected] "format"
1228 [email protected] "format" 1201 [email protected] "!"
1229 [email protected] "!" 1202 [email protected]
1230 [email protected] 1203 [email protected] "("
1231 [email protected] "(" 1204 [email protected] "\"{:?}\""
1232 [email protected] "\"{:?}\"" 1205 [email protected] ","
1233 [email protected] "," 1206 [email protected] " "
1234 [email protected] " " 1207 [email protected] "."
1235 [email protected] "." 1208 [email protected] "."
1236 [email protected] "." 1209 [email protected] " "
1237 [email protected] " " 1210 [email protected] "."
1238 [email protected] "." 1211 [email protected] "."
1239 [email protected] "." 1212 [email protected] " "
1240 [email protected] " " 1213 [email protected] "."
1241 [email protected] "." 1214 [email protected] "."
1242 [email protected] "." 1215 [email protected] " "
1243 [email protected] " " 1216 [email protected] "."
1244 [email protected] "." 1217 [email protected] "."
1245 [email protected] "." 1218 [email protected] " "
1246 [email protected] " " 1219 [email protected] "."
1247 [email protected] "." 1220 [email protected] "."
1248 [email protected] "." 1221 [email protected] " "
1249 [email protected] " " 1222 [email protected] "."
1250 [email protected] "." 1223 [email protected] "."
1251 [email protected] "." 1224 [email protected] " "
1252 [email protected] " " 1225 [email protected] "."
1253 [email protected] "." 1226 [email protected] "."
1254 [email protected] "." 1227 [email protected] " "
1255 [email protected] " " 1228 [email protected] "."
1256 [email protected] "." 1229 [email protected] "."
1257 [email protected] "." 1230 [email protected] " "
1258 [email protected] " " 1231 [email protected] "."
1259 [email protected] "." 1232 [email protected] "."
1260 [email protected] "." 1233 [email protected] " "
1261 [email protected] " " 1234 [email protected] "."
1262 [email protected] "." 1235 [email protected] "."
1263 [email protected] "." 1236 [email protected] " "
1264 [email protected] " " 1237 [email protected] "."
1265 [email protected] "." 1238 [email protected] "."
1266 [email protected] "." 1239 [email protected] " "
1267 [email protected] " " 1240 [email protected] "."
1268 [email protected] "." 1241 [email protected] "."
1269 [email protected] "." 1242 [email protected] " "
1270 [email protected] " " 1243 [email protected] "."
1271 [email protected] "." 1244 [email protected] "."
1272 [email protected] "." 1245 [email protected] "\n ..."
1273 [email protected] "\n ..." 1246 [email protected] "."
1274 [email protected] "." 1247 [email protected] "."
1275 [email protected] "." 1248 [email protected] " "
1276 [email protected] " " 1249 [email protected] "."
1277 [email protected] "." 1250 [email protected] "."
1278 [email protected] "." 1251 [email protected] " "
1279 [email protected] " " 1252 [email protected] "."
1280 [email protected] "." 1253 [email protected] "."
1281 [email protected] "." 1254 [email protected] " "
1282 [email protected] " " 1255 [email protected] "."
1283 [email protected] "." 1256 [email protected] "."
1284 [email protected] "." 1257 [email protected] " "
1285 [email protected] " " 1258 [email protected] "."
1286 [email protected] "." 1259 [email protected] "."
1287 [email protected] "." 1260 [email protected] " "
1288 [email protected] " " 1261 [email protected] "."
1289 [email protected] "." 1262 [email protected] "."
1290 [email protected] "." 1263 [email protected] " "
1291 [email protected] " " 1264 [email protected] "."
1292 [email protected] "." 1265 [email protected] "."
1293 [email protected] "." 1266 [email protected] " "
1294 [email protected] " " 1267 [email protected] "."
1295 [email protected] "." 1268 [email protected] "."
1296 [email protected] "." 1269 [email protected] " "
1297 [email protected] " " 1270 [email protected] "."
1298 [email protected] "." 1271 [email protected] "."
1299 [email protected] "." 1272 [email protected] " "
1300 [email protected] " " 1273 [email protected] "."
1301 [email protected] "." 1274 [email protected] "."
1302 [email protected] "." 1275 [email protected] " "
1303 [email protected] " " 1276 [email protected] "."
1304 [email protected] "." 1277 [email protected] "."
1305 [email protected] "." 1278 [email protected] " "
1306 [email protected] " " 1279 [email protected] "."
1307 [email protected] "." 1280 [email protected] "."
1308 [email protected] "." 1281 [email protected] ")"
1309 [email protected] ")" 1282 [email protected] ")"
1310 [email protected] ")" 1283 [email protected] ";"
1311 [email protected] ";" 1284 [email protected] "\n"
1312 [email protected] "\n" 1285 [email protected] "}"
1313 [email protected] "}"
1314 [email protected] "\n\n" 1286 [email protected] "\n\n"
1315 [email protected] 1287 [email protected]
1316 [email protected] "fn" 1288 [email protected] "fn"
@@ -1333,170 +1305,168 @@ [email protected]
1333 [email protected] ")" 1305 [email protected] ")"
1334 [email protected] " " 1306 [email protected] " "
1335 [email protected] 1307 [email protected]
1336 [email protected] 1308 [email protected] "{"
1337 [email protected] "{" 1309 [email protected] "\n "
1338 [email protected] "\n " 1310 [email protected]
1339 [email protected] 1311 [email protected] "if"
1340 [email protected] "if" 1312 [email protected] " "
1341 [email protected] " " 1313 [email protected]
1342 [email protected] 1314 [email protected]
1343 [email protected] 1315 [email protected]
1344 [email protected] 1316 [email protected]
1345 [email protected] 1317 [email protected]
1346 [email protected] 1318 [email protected]
1347 [email protected] 1319 [email protected] "u8"
1348 [email protected] "u8" 1320 [email protected] " "
1349 [email protected] " " 1321 [email protected] "!="
1350 [email protected] "!=" 1322 [email protected] " "
1351 [email protected] " " 1323 [email protected]
1352 [email protected] 1324 [email protected] "0u8"
1353 [email protected] "0u8" 1325 [email protected] " "
1354 [email protected] " " 1326 [email protected]
1355 [email protected] 1327 [email protected] "{"
1356 [email protected] 1328 [email protected] "\n "
1357 [email protected] "{" 1329 [email protected]
1358 [email protected] "\n " 1330 [email protected]
1359 [email protected] 1331 [email protected]
1360 [email protected] 1332 [email protected]
1361 [email protected] 1333 [email protected]
1362 [email protected] 1334 [email protected] "assert_eq"
1363 [email protected] 1335 [email protected] "!"
1364 [email protected] "assert_eq" 1336 [email protected]
1365 [email protected] "!" 1337 [email protected] "("
1366 [email protected] 1338 [email protected] "8u8"
1367 [email protected] "(" 1339 [email protected] ","
1368 [email protected] "8u8" 1340 [email protected] " "
1369 [email protected] "," 1341 [email protected]
1370 [email protected] " " 1342 [email protected] "{"
1371 [email protected] 1343 [email protected] "\n "
1372 [email protected] "{" 1344 [email protected] "macro_rules"
1373 [email protected] "\n " 1345 [email protected] "!"
1374 [email protected] "macro_rules" 1346 [email protected] " "
1375 [email protected] "!" 1347 [email protected] "u8"
1376 [email protected] " " 1348 [email protected] " "
1377 [email protected] "u8" 1349 [email protected]
1378 [email protected] " " 1350 [email protected] "{"
1379 [email protected] 1351 [email protected] "\n "
1380 [email protected] "{" 1352 [email protected]
1381 [email protected] "\n " 1353 [email protected] "("
1382 [email protected] 1354 [email protected] "u8"
1383 [email protected] "(" 1355 [email protected] ")"
1384 [email protected] "u8" 1356 [email protected] " "
1385 [email protected] ")" 1357 [email protected] "="
1386 [email protected] " " 1358 [email protected] ">"
1387 [email protected] "=" 1359 [email protected] " "
1388 [email protected] ">" 1360 [email protected]
1389 [email protected] " " 1361 [email protected] "{"
1390 [email protected] 1362 [email protected] "\n "
1391 [email protected] "{" 1363 [email protected] "mod"
1392 [email protected] "\n " 1364 [email protected] " "
1393 [email protected] "mod" 1365 [email protected] "u8"
1394 [email protected] " " 1366 [email protected] " "
1395 [email protected] "u8" 1367 [email protected]
1396 [email protected] " " 1368 [email protected] "{"
1397 [email protected] 1369 [email protected] "\n ..."
1398 [email protected] "{" 1370 [email protected] "pub"
1399 [email protected] "\n ..." 1371 [email protected] " "
1400 [email protected] "pub" 1372 [email protected] "fn"
1401 [email protected] " " 1373 [email protected] " "
1402 [email protected] "fn" 1374 [email protected] "u8"
1403 [email protected] " " 1375 [email protected] "<"
1404 [email protected] "u8" 1376 [email protected] "\'u8"
1405 [email protected] "<" 1377 [email protected] ":"
1406 [email protected] "\'u8" 1378 [email protected] " "
1407 [email protected] ":" 1379 [email protected] "\'u8"
1408 [email protected] " " 1380 [email protected] " "
1409 [email protected] "\'u8" 1381 [email protected] "+"
1410 [email protected] " " 1382 [email protected] " "
1411 [email protected] "+" 1383 [email protected] "\'u8"
1412 [email protected] " " 1384 [email protected] ">"
1413 [email protected] "\'u8" 1385 [email protected]
1414 [email protected] ">" 1386 [email protected] "("
1415 [email protected] 1387 [email protected] "u8"
1416 [email protected] "(" 1388 [email protected] ":"
1417 [email protected] "u8" 1389 [email protected] " "
1418 [email protected] ":" 1390 [email protected] "&"
1419 [email protected] " " 1391 [email protected] "\'u8"
1420 [email protected] "&" 1392 [email protected] " "
1421 [email protected] "\'u8" 1393 [email protected] "u8"
1422 [email protected] " " 1394 [email protected] ")"
1423 [email protected] "u8" 1395 [email protected] " "
1424 [email protected] ")" 1396 [email protected] "-"
1425 [email protected] " " 1397 [email protected] ">"
1426 [email protected] "-" 1398 [email protected] " "
1427 [email protected] ">" 1399 [email protected] "&"
1428 [email protected] " " 1400 [email protected] "\'u8"
1429 [email protected] "&" 1401 [email protected] " "
1430 [email protected] "\'u8" 1402 [email protected] "u8"
1431 [email protected] " " 1403 [email protected] " "
1432 [email protected] "u8" 1404 [email protected]
1433 [email protected] " " 1405 [email protected] "{"
1434 [email protected] 1406 [email protected] "\n ..."
1435 [email protected] "{" 1407 [email protected] "\"u8\""
1436 [email protected] "\n ..." 1408 [email protected] ";"
1437 [email protected] "\"u8\"" 1409 [email protected] "\n ..."
1438 [email protected] ";" 1410 [email protected] "u8"
1439 [email protected] "\n ..." 1411 [email protected] "\n ..."
1440 [email protected] "u8" 1412 [email protected] "}"
1441 [email protected] "\n ..." 1413 [email protected] "\n "
1442 [email protected] "}" 1414 [email protected] "}"
1443 [email protected] "\n " 1415 [email protected] "\n "
1444 [email protected] "}" 1416 [email protected] "}"
1445 [email protected] "\n " 1417 [email protected] ";"
1446 [email protected] "}" 1418 [email protected] "\n "
1447 [email protected] ";" 1419 [email protected] "}"
1448 [email protected] "\n " 1420 [email protected] "\n\n "
1449 [email protected] "}" 1421 [email protected] "u8"
1450 [email protected] "\n\n " 1422 [email protected] "!"
1451 [email protected] "u8" 1423 [email protected]
1452 [email protected] "!" 1424 [email protected] "("
1453 [email protected] 1425 [email protected] "u8"
1454 [email protected] "(" 1426 [email protected] ")"
1455 [email protected] "u8" 1427 [email protected] ";"
1456 [email protected] ")" 1428 [email protected] "\n "
1457 [email protected] ";" 1429 [email protected] "let"
1458 [email protected] "\n " 1430 [email protected] " "
1459 [email protected] "let" 1431 [email protected] "&"
1460 [email protected] " " 1432 [email protected] "u8"
1461 [email protected] "&" 1433 [email protected] ":"
1462 [email protected] "u8" 1434 [email protected] " "
1463 [email protected] ":" 1435 [email protected] "&"
1464 [email protected] " " 1436 [email protected] "u8"
1465 [email protected] "&" 1437 [email protected] " "
1466 [email protected] "u8" 1438 [email protected] "="
1467 [email protected] " " 1439 [email protected] " "
1468 [email protected] "=" 1440 [email protected] "u8"
1469 [email protected] " " 1441 [email protected] ":"
1470 [email protected] "u8" 1442 [email protected] ":"
1471 [email protected] ":" 1443 [email protected] "u8"
1472 [email protected] ":" 1444 [email protected]
1473 [email protected] "u8" 1445 [email protected] "("
1474 [email protected] 1446 [email protected] "&"
1475 [email protected] "(" 1447 [email protected] "8u8"
1476 [email protected] "&" 1448 [email protected] ")"
1477 [email protected] "8u8" 1449 [email protected] ";"
1478 [email protected] ")" 1450 [email protected] "\n "
1479 [email protected] ";" 1451 [email protected] "crate"
1480 [email protected] "\n " 1452 [email protected] ":"
1481 [email protected] "crate" 1453 [email protected] ":"
1482 [email protected] ":" 1454 [email protected] "u8"
1483 [email protected] ":" 1455 [email protected]
1484 [email protected] "u8" 1456 [email protected] "("
1485 [email protected] 1457 [email protected] "0u8"
1486 [email protected] "(" 1458 [email protected] ")"
1487 [email protected] "0u8" 1459 [email protected] ";"
1488 [email protected] ")" 1460 [email protected] "\n "
1489 [email protected] ";" 1461 [email protected] "u8"
1490 [email protected] "\n " 1462 [email protected] "\n "
1491 [email protected] "u8" 1463 [email protected] "}"
1492 [email protected] "\n " 1464 [email protected] ")"
1493 [email protected] "}" 1465 [email protected] ";"
1494 [email protected] ")" 1466 [email protected] "\n "
1495 [email protected] ";" 1467 [email protected] "}"
1496 [email protected] "\n " 1468 [email protected] "\n"
1497 [email protected] "}" 1469 [email protected] "}"
1498 [email protected] "\n"
1499 [email protected] "}"
1500 [email protected] "\n\n" 1470 [email protected] "\n\n"
1501 [email protected] 1471 [email protected]
1502 [email protected] "fn" 1472 [email protected] "fn"
@@ -1508,76 +1478,75 @@ [email protected]
1508 [email protected] ")" 1478 [email protected] ")"
1509 [email protected] " " 1479 [email protected] " "
1510 [email protected] 1480 [email protected]
1511 [email protected] 1481 [email protected] "{"
1512 [email protected] "{" 1482 [email protected] "\n "
1513 [email protected] "\n " 1483 [email protected]
1514 [email protected] 1484 [email protected]
1515 [email protected] 1485 [email protected]
1516 [email protected] 1486 [email protected]
1517 [email protected] 1487 [email protected]
1518 [email protected] 1488 [email protected] "assert_eq"
1519 [email protected] "assert_eq" 1489 [email protected] "!"
1520 [email protected] "!" 1490 [email protected]
1521 [email protected] 1491 [email protected] "("
1522 [email protected] "(" 1492 [email protected] "String"
1523 [email protected] "String" 1493 [email protected] ":"
1524 [email protected] ":" 1494 [email protected] ":"
1525 [email protected] ":" 1495 [email protected] "from"
1526 [email protected] "from" 1496 [email protected]
1527 [email protected] 1497 [email protected] "("
1528 [email protected] "(" 1498 [email protected] "\"><>\""
1529 [email protected] "\"><>\"" 1499 [email protected] ")"
1530 [email protected] ")" 1500 [email protected] ","
1531 [email protected] "," 1501 [email protected] "\n "
1532 [email protected] "\n " 1502 [email protected] "String"
1533 [email protected] "String" 1503 [email protected] ":"
1534 [email protected] ":" 1504 [email protected] ":"
1535 [email protected] ":" 1505 [email protected] "<"
1536 [email protected] "<" 1506 [email protected] ">"
1537 [email protected] ">" 1507 [email protected] ":"
1538 [email protected] ":" 1508 [email protected] ":"
1539 [email protected] ":" 1509 [email protected] "from"
1540 [email protected] "from" 1510 [email protected] ":"
1541 [email protected] ":" 1511 [email protected] ":"
1542 [email protected] ":" 1512 [email protected] "<"
1543 [email protected] "<" 1513 [email protected] ">"
1544 [email protected] ">" 1514 [email protected]
1545 [email protected] 1515 [email protected] "("
1546 [email protected] "(" 1516 [email protected] "\"><>\""
1547 [email protected] "\"><>\"" 1517 [email protected] ")"
1548 [email protected] ")" 1518 [email protected] "."
1549 [email protected] "." 1519 [email protected] "chars"
1550 [email protected] "chars" 1520 [email protected] ":"
1551 [email protected] ":" 1521 [email protected] ":"
1552 [email protected] ":" 1522 [email protected] "<"
1553 [email protected] "<" 1523 [email protected] ">"
1554 [email protected] ">" 1524 [email protected]
1555 [email protected] 1525 [email protected] "("
1556 [email protected] "(" 1526 [email protected] ")"
1557 [email protected] ")" 1527 [email protected] "."
1558 [email protected] "." 1528 [email protected] "rev"
1559 [email protected] "rev" 1529 [email protected] ":"
1560 [email protected] ":" 1530 [email protected] ":"
1561 [email protected] ":" 1531 [email protected] "<"
1562 [email protected] "<" 1532 [email protected] ">"
1563 [email protected] ">" 1533 [email protected]
1564 [email protected] 1534 [email protected] "("
1565 [email protected] "(" 1535 [email protected] ")"
1566 [email protected] ")" 1536 [email protected] "."
1567 [email protected] "." 1537 [email protected] "collect"
1568 [email protected] "collect" 1538 [email protected] ":"
1569 [email protected] ":" 1539 [email protected] ":"
1570 [email protected] ":" 1540 [email protected] "<"
1571 [email protected] "<" 1541 [email protected] "String"
1572 [email protected] "String" 1542 [email protected] ">"
1573 [email protected] ">" 1543 [email protected]
1574 [email protected] 1544 [email protected] "("
1575 [email protected] "(" 1545 [email protected] ")"
1576 [email protected] ")" 1546 [email protected] ")"
1577 [email protected] ")" 1547 [email protected] ";"
1578 [email protected] ";" 1548 [email protected] "\n"
1579 [email protected] "\n" 1549 [email protected] "}"
1580 [email protected] "}"
1581 [email protected] "\n\n" 1550 [email protected] "\n\n"
1582 [email protected] 1551 [email protected]
1583 [email protected] "fn" 1552 [email protected] "fn"
@@ -1589,47 +1558,46 @@ [email protected]
1589 [email protected] ")" 1558 [email protected] ")"
1590 [email protected] " " 1559 [email protected] " "
1591 [email protected] 1560 [email protected]
1592 [email protected] 1561 [email protected] "{"
1593 [email protected] "{" 1562 [email protected] "\n "
1594 [email protected] "\n " 1563 [email protected]
1595 [email protected] 1564 [email protected] "union"
1596 [email protected] "union" 1565 [email protected] " "
1597 [email protected] " " 1566 [email protected]
1598 [email protected] 1567 [email protected] "union"
1599 [email protected] "union" 1568 [email protected]
1600 [email protected] 1569 [email protected] "<"
1601 [email protected] "<" 1570 [email protected]
1602 [email protected] 1571 [email protected] "\'union"
1603 [email protected] "\'union" 1572 [email protected] ">"
1604 [email protected] ">" 1573 [email protected] " "
1605 [email protected] " " 1574 [email protected]
1606 [email protected] 1575 [email protected] "{"
1607 [email protected] "{" 1576 [email protected] " "
1608 [email protected] " " 1577 [email protected]
1609 [email protected] 1578 [email protected]
1610 [email protected] 1579 [email protected] "union"
1611 [email protected] "union" 1580 [email protected] ":"
1612 [email protected] ":" 1581 [email protected] " "
1613 [email protected] " " 1582 [email protected]
1614 [email protected] 1583 [email protected] "&"
1615 [email protected] "&" 1584 [email protected] "\'union"
1616 [email protected] "\'union" 1585 [email protected] " "
1617 [email protected] " " 1586 [email protected]
1618 [email protected] 1587 [email protected]
1619 [email protected] 1588 [email protected]
1620 [email protected] 1589 [email protected]
1621 [email protected] 1590 [email protected] "union"
1622 [email protected] "union" 1591 [email protected]
1623 [email protected] 1592 [email protected] "<"
1624 [email protected] "<" 1593 [email protected]
1625 [email protected] 1594 [email protected] "\'union"
1626 [email protected] "\'union" 1595 [email protected] ">"
1627 [email protected] ">" 1596 [email protected] ","
1628 [email protected] "," 1597 [email protected] " "
1629 [email protected] " " 1598 [email protected] "}"
1630 [email protected] "}" 1599 [email protected] "\n"
1631 [email protected] "\n" 1600 [email protected] "}"
1632 [email protected] "}"
1633 [email protected] "\n\n" 1601 [email protected] "\n\n"
1634 [email protected] 1602 [email protected]
1635 [email protected] "fn" 1603 [email protected] "fn"
@@ -1641,121 +1609,118 @@ [email protected]
1641 [email protected] ")" 1609 [email protected] ")"
1642 [email protected] " " 1610 [email protected] " "
1643 [email protected] 1611 [email protected]
1644 [email protected] 1612 [email protected] "{"
1645 [email protected] "{" 1613 [email protected] "\n "
1646 [email protected] "\n " 1614 [email protected]
1647 [email protected] 1615 [email protected] "let"
1648 [email protected] "let" 1616 [email protected] " "
1649 [email protected] " " 1617 [email protected]
1650 [email protected] 1618 [email protected]
1651 [email protected] 1619 [email protected] "val"
1652 [email protected] "val" 1620 [email protected] " "
1653 [email protected] " " 1621 [email protected] "="
1654 [email protected] "=" 1622 [email protected] " "
1655 [email protected] " " 1623 [email protected]
1656 [email protected] 1624 [email protected] "!"
1657 [email protected] "!" 1625 [email protected]
1658 [email protected] 1626 [email protected] "("
1659 [email protected] "(" 1627 [email protected]
1660 [email protected] 1628 [email protected]
1661 [email protected] 1629 [email protected]
1662 [email protected] 1630 [email protected] "("
1663 [email protected] "(" 1631 [email protected]
1664 [email protected] 1632 [email protected]
1665 [email protected] 1633 [email protected] "|"
1666 [email protected] "|" 1634 [email protected]
1667 [email protected] 1635 [email protected]
1668 [email protected] 1636 [email protected] "("
1669 [email protected] "(" 1637 [email protected]
1670 [email protected] 1638 [email protected] ".."
1671 [email protected] ".." 1639 [email protected] ")"
1672 [email protected] ")" 1640 [email protected] ":"
1673 [email protected] ":" 1641 [email protected]
1674 [email protected] 1642 [email protected] "("
1675 [email protected] "(" 1643 [email protected]
1676 [email protected] 1644 [email protected] "_"
1677 [email protected] "_" 1645 [email protected] ","
1678 [email protected] "," 1646 [email protected]
1679 [email protected] 1647 [email protected] "_"
1680 [email protected] "_" 1648 [email protected] ")"
1681 [email protected] ")" 1649 [email protected] ","
1682 [email protected] "," 1650 [email protected]
1683 [email protected] 1651 [email protected]
1684 [email protected] 1652 [email protected]
1685 [email protected] 1653 [email protected] "__"
1686 [email protected] "__" 1654 [email protected] "@"
1687 [email protected] "@" 1655 [email protected]
1688 [email protected] 1656 [email protected] "_"
1689 [email protected] "_" 1657 [email protected] "|"
1690 [email protected] "|" 1658 [email protected]
1691 [email protected] 1659 [email protected]
1692 [email protected] 1660 [email protected]
1693 [email protected] 1661 [email protected]
1694 [email protected] 1662 [email protected] "__"
1695 [email protected] "__" 1663 [email protected] ")"
1696 [email protected] ")" 1664 [email protected]
1697 [email protected] 1665 [email protected] "("
1698 [email protected] "(" 1666 [email protected]
1699 [email protected] 1667 [email protected] "("
1700 [email protected] "(" 1668 [email protected]
1701 [email protected] 1669 [email protected] "&"
1702 [email protected] "&" 1670 [email protected]
1703 [email protected] 1671 [email protected] "*"
1704 [email protected] "*" 1672 [email protected]
1705 [email protected] 1673 [email protected] "\"\\\\\""
1706 [email protected] "\"\\\\\"" 1674 [email protected] ","
1707 [email protected] "," 1675 [email protected]
1708 [email protected] 1676 [email protected] "\'🤔\'"
1709 [email protected] "\'🤔\'" 1677 [email protected] ")"
1710 [email protected] ")" 1678 [email protected] "/**/"
1711 [email protected] "/**/" 1679 [email protected] ","
1712 [email protected] "," 1680 [email protected]
1713 [email protected] 1681 [email protected] "{"
1714 [email protected] 1682 [email protected] "}"
1715 [email protected] "{" 1683 [email protected] ")"
1716 [email protected] "}" 1684 [email protected] "=="
1717 [email protected] ")" 1685 [email protected]
1718 [email protected] "==" 1686 [email protected] "{"
1719 [email protected] 1687 [email protected]
1720 [email protected] 1688 [email protected]
1721 [email protected] "{" 1689 [email protected] "&"
1722 [email protected] 1690 [email protected]
1723 [email protected] 1691 [email protected]
1724 [email protected] "&" 1692 [email protected] "["
1725 [email protected] 1693 [email protected]
1726 [email protected] 1694 [email protected] "..="
1727 [email protected] "[" 1695 [email protected]
1728 [email protected] 1696 [email protected] ".."
1729 [email protected] "..=" 1697 [email protected] "]"
1730 [email protected] 1698 [email protected] "["
1731 [email protected] ".." 1699 [email protected]
1732 [email protected] "]" 1700 [email protected] ".."
1733 [email protected] "[" 1701 [email protected] "]"
1734 [email protected] 1702 [email protected] ";"
1735 [email protected] ".." 1703 [email protected] "}"
1736 [email protected] "]" 1704 [email protected] ")"
1737 [email protected] ";" 1705 [email protected] "//"
1738 [email protected] "}" 1706 [email protected] "\n "
1739 [email protected] ")" 1707 [email protected] ";"
1740 [email protected] "//" 1708 [email protected] "\n "
1741 [email protected] "\n " 1709 [email protected]
1742 [email protected] ";" 1710 [email protected]
1743 [email protected] "\n " 1711 [email protected]
1744 [email protected] 1712 [email protected]
1745 [email protected] 1713 [email protected]
1746 [email protected] 1714 [email protected] "assert"
1747 [email protected] 1715 [email protected] "!"
1748 [email protected] 1716 [email protected]
1749 [email protected] "assert" 1717 [email protected] "("
1750 [email protected] "!" 1718 [email protected] "!"
1751 [email protected] 1719 [email protected] "val"
1752 [email protected] "(" 1720 [email protected] ")"
1753 [email protected] "!" 1721 [email protected] ";"
1754 [email protected] "val" 1722 [email protected] "\n"
1755 [email protected] ")" 1723 [email protected] "}"
1756 [email protected] ";"
1757 [email protected] "\n"
1758 [email protected] "}"
1759 [email protected] "\n\n" 1724 [email protected] "\n\n"
1760 [email protected] 1725 [email protected]
1761 [email protected] "fn" 1726 [email protected] "fn"
@@ -1791,306 +1756,305 @@ [email protected]
1791 [email protected] "Debug" 1756 [email protected] "Debug"
1792 [email protected] " " 1757 [email protected] " "
1793 [email protected] 1758 [email protected]
1794 [email protected] 1759 [email protected] "{"
1795 [email protected] "{" 1760 [email protected] "\n "
1796 [email protected] "\n " 1761 [email protected]
1797 [email protected] 1762 [email protected] "..="
1798 [email protected] "..=" 1763 [email protected]
1799 [email protected] 1764 [email protected] "..="
1800 [email protected] "..=" 1765 [email protected]
1801 [email protected] 1766 [email protected] ".."
1802 [email protected] ".." 1767 [email protected] " "
1803 [email protected] " " 1768 [email protected]
1804 [email protected] 1769 [email protected] ".."
1805 [email protected] ".." 1770 [email protected] " "
1806 [email protected] " " 1771 [email protected]
1807 [email protected] 1772 [email protected] ".."
1808 [email protected] ".." 1773 [email protected] " "
1809 [email protected] " " 1774 [email protected]
1810 [email protected] 1775 [email protected] ".."
1811 [email protected] ".." 1776 [email protected] " "
1812 [email protected] " " 1777 [email protected]
1813 [email protected] 1778 [email protected] ".."
1814 [email protected] ".." 1779 [email protected] " "
1815 [email protected] " " 1780 [email protected]
1816 [email protected] 1781 [email protected] ".."
1817 [email protected] ".." 1782 [email protected] " "
1818 [email protected] " " 1783 [email protected]
1819 [email protected] 1784 [email protected] ".."
1820 [email protected] ".." 1785 [email protected] " "
1821 [email protected] " " 1786 [email protected]
1822 [email protected] 1787 [email protected] ".."
1823 [email protected] ".." 1788 [email protected] " "
1824 [email protected] " " 1789 [email protected]
1825 [email protected] 1790 [email protected] ".."
1826 [email protected] ".." 1791 [email protected] " "
1827 [email protected] " " 1792 [email protected]
1828 [email protected] 1793 [email protected] ".."
1829 [email protected] ".." 1794 [email protected] " "
1830 [email protected] " " 1795 [email protected]
1831 [email protected] 1796 [email protected] ".."
1832 [email protected] ".." 1797 [email protected] " "
1833 [email protected] " " 1798 [email protected]
1834 [email protected] 1799 [email protected] "..="
1835 [email protected] "..=" 1800 [email protected]
1836 [email protected] 1801 [email protected] ".."
1837 [email protected] ".." 1802 [email protected] " "
1838 [email protected] " " 1803 [email protected]
1839 [email protected] 1804 [email protected] ".."
1840 [email protected] ".." 1805 [email protected] "\n "
1841 [email protected] "\n " 1806 [email protected]
1842 [email protected] 1807 [email protected] "..="
1843 [email protected] "..=" 1808 [email protected]
1844 [email protected] 1809 [email protected] ".."
1845 [email protected] ".." 1810 [email protected] " "
1846 [email protected] " " 1811 [email protected]
1847 [email protected] 1812 [email protected] "..="
1848 [email protected] "..=" 1813 [email protected]
1849 [email protected] 1814 [email protected] ".."
1850 [email protected] ".." 1815 [email protected] " "
1851 [email protected] " " 1816 [email protected]
1852 [email protected] 1817 [email protected] ".."
1853 [email protected] ".." 1818 [email protected] " "
1854 [email protected] " " 1819 [email protected]
1855 [email protected] 1820 [email protected] ".."
1856 [email protected] ".." 1821 [email protected] " "
1857 [email protected] " " 1822 [email protected]
1858 [email protected] 1823 [email protected] ".."
1859 [email protected] ".." 1824 [email protected] " "
1860 [email protected] " " 1825 [email protected]
1861 [email protected] 1826 [email protected] ".."
1862 [email protected] ".." 1827 [email protected] " "
1863 [email protected] " " 1828 [email protected]
1864 [email protected] 1829 [email protected] ".."
1865 [email protected] ".." 1830 [email protected] " "
1866 [email protected] " " 1831 [email protected]
1867 [email protected] 1832 [email protected] ".."
1868 [email protected] ".." 1833 [email protected] " "
1869 [email protected] " " 1834 [email protected]
1870 [email protected] 1835 [email protected] ".."
1871 [email protected] ".." 1836 [email protected] " "
1872 [email protected] " " 1837 [email protected]
1873 [email protected] 1838 [email protected] ".."
1874 [email protected] ".." 1839 [email protected] " "
1875 [email protected] " " 1840 [email protected]
1876 [email protected] 1841 [email protected] "..="
1877 [email protected] "..=" 1842 [email protected]
1878 [email protected] 1843 [email protected] "..="
1879 [email protected] "..=" 1844 [email protected]
1880 [email protected] 1845 [email protected] "..="
1881 [email protected] "..=" 1846 [email protected]
1882 [email protected] 1847 [email protected] ".."
1883 [email protected] ".." 1848 [email protected] "\n "
1884 [email protected] "\n " 1849 [email protected]
1885 [email protected] 1850 [email protected] "..="
1886 [email protected] "..=" 1851 [email protected]
1887 [email protected] 1852 [email protected] ".."
1888 [email protected] ".." 1853 [email protected] " "
1889 [email protected] " " 1854 [email protected]
1890 [email protected] 1855 [email protected] "..="
1891 [email protected] "..=" 1856 [email protected]
1892 [email protected] 1857 [email protected] ".."
1893 [email protected] ".." 1858 [email protected] " "
1894 [email protected] " " 1859 [email protected]
1895 [email protected] 1860 [email protected] "..="
1896 [email protected] "..=" 1861 [email protected]
1897 [email protected] 1862 [email protected] ".."
1898 [email protected] ".." 1863 [email protected] " "
1899 [email protected] " " 1864 [email protected]
1900 [email protected] 1865 [email protected] "..="
1901 [email protected] "..=" 1866 [email protected]
1902 [email protected] 1867 [email protected] ".."
1903 [email protected] ".." 1868 [email protected] " "
1904 [email protected] " " 1869 [email protected]
1905 [email protected] 1870 [email protected] ".."
1906 [email protected] ".." 1871 [email protected] " "
1907 [email protected] " " 1872 [email protected]
1908 [email protected] 1873 [email protected] "..="
1909 [email protected] "..=" 1874 [email protected]
1910 [email protected] 1875 [email protected] "..="
1911 [email protected] "..=" 1876 [email protected]
1912 [email protected] 1877 [email protected] ".."
1913 [email protected] ".." 1878 [email protected] " "
1914 [email protected] " " 1879 [email protected]
1915 [email protected] 1880 [email protected] ".."
1916 [email protected] ".." 1881 [email protected] " "
1917 [email protected] " " 1882 [email protected]
1918 [email protected] 1883 [email protected] "..="
1919 [email protected] "..=" 1884 [email protected]
1920 [email protected] 1885 [email protected] ".."
1921 [email protected] ".." 1886 [email protected] " "
1922 [email protected] " " 1887 [email protected]
1923 [email protected] 1888 [email protected] ".."
1924 [email protected] ".." 1889 [email protected] "\n "
1925 [email protected] "\n " 1890 [email protected]
1926 [email protected] 1891 [email protected] "..="
1927 [email protected] "..=" 1892 [email protected]
1928 [email protected] 1893 [email protected] "..="
1929 [email protected] "..=" 1894 [email protected]
1930 [email protected] 1895 [email protected] ".."
1931 [email protected] ".." 1896 [email protected] " "
1932 [email protected] " " 1897 [email protected]
1933 [email protected] 1898 [email protected] ".."
1934 [email protected] ".." 1899 [email protected] " "
1935 [email protected] " " 1900 [email protected]
1936 [email protected] 1901 [email protected] "..="
1937 [email protected] "..=" 1902 [email protected]
1938 [email protected] 1903 [email protected] ".."
1939 [email protected] ".." 1904 [email protected] " "
1940 [email protected] " " 1905 [email protected]
1941 [email protected] 1906 [email protected] "..="
1942 [email protected] "..=" 1907 [email protected]
1943 [email protected] 1908 [email protected] ".."
1944 [email protected] ".." 1909 [email protected] " "
1945 [email protected] " " 1910 [email protected]
1946 [email protected] 1911 [email protected] "..="
1947 [email protected] "..=" 1912 [email protected]
1948 [email protected] 1913 [email protected] ".."
1949 [email protected] ".." 1914 [email protected] " "
1950 [email protected] " " 1915 [email protected]
1951 [email protected] 1916 [email protected] ".."
1952 [email protected] ".." 1917 [email protected] " "
1953 [email protected] " " 1918 [email protected]
1954 [email protected] 1919 [email protected] ".."
1955 [email protected] ".." 1920 [email protected] " "
1956 [email protected] " " 1921 [email protected]
1957 [email protected] 1922 [email protected] ".."
1958 [email protected] ".." 1923 [email protected] " "
1959 [email protected] " " 1924 [email protected]
1960 [email protected] 1925 [email protected] "..="
1961 [email protected] "..=" 1926 [email protected]
1962 [email protected] 1927 [email protected] ".."
1963 [email protected] ".." 1928 [email protected] " "
1964 [email protected] " " 1929 [email protected]
1965 [email protected] 1930 [email protected] ".."
1966 [email protected] ".." 1931 [email protected] "\n "
1967 [email protected] "\n " 1932 [email protected]
1968 [email protected] 1933 [email protected] "..="
1969 [email protected] "..=" 1934 [email protected]
1970 [email protected] 1935 [email protected] ".."
1971 [email protected] ".." 1936 [email protected] " "
1972 [email protected] " " 1937 [email protected]
1973 [email protected] 1938 [email protected] "..="
1974 [email protected] "..=" 1939 [email protected]
1975 [email protected] 1940 [email protected] ".."
1976 [email protected] ".." 1941 [email protected] " "
1977 [email protected] " " 1942 [email protected]
1978 [email protected] 1943 [email protected] "..="
1979 [email protected] "..=" 1944 [email protected]
1980 [email protected] 1945 [email protected] ".."
1981 [email protected] ".." 1946 [email protected] " "
1982 [email protected] " " 1947 [email protected]
1983 [email protected] 1948 [email protected] "..="
1984 [email protected] "..=" 1949 [email protected]
1985 [email protected] 1950 [email protected] ".."
1986 [email protected] ".." 1951 [email protected] " "
1987 [email protected] " " 1952 [email protected]
1988 [email protected] 1953 [email protected] ".."
1989 [email protected] ".." 1954 [email protected] " "
1990 [email protected] " " 1955 [email protected]
1991 [email protected] 1956 [email protected] "..="
1992 [email protected] "..=" 1957 [email protected]
1993 [email protected] 1958 [email protected] ".."
1994 [email protected] ".." 1959 [email protected] " "
1995 [email protected] " " 1960 [email protected]
1996 [email protected] 1961 [email protected] ".."
1997 [email protected] ".." 1962 [email protected] " "
1998 [email protected] " " 1963 [email protected]
1999 [email protected] 1964 [email protected] ".."
2000 [email protected] ".." 1965 [email protected] " "
2001 [email protected] " " 1966 [email protected]
2002 [email protected] 1967 [email protected] "..="
2003 [email protected] "..=" 1968 [email protected]
2004 [email protected] 1969 [email protected] ".."
2005 [email protected] ".." 1970 [email protected] " "
2006 [email protected] " " 1971 [email protected]
2007 [email protected] 1972 [email protected] ".."
2008 [email protected] ".." 1973 [email protected] "\n "
2009 [email protected] "\n " 1974 [email protected]
2010 [email protected] 1975 [email protected] "..="
2011 [email protected] "..=" 1976 [email protected]
2012 [email protected] 1977 [email protected] ".."
2013 [email protected] ".." 1978 [email protected] " "
2014 [email protected] " " 1979 [email protected]
2015 [email protected] 1980 [email protected] "..="
2016 [email protected] "..=" 1981 [email protected]
2017 [email protected] 1982 [email protected] ".."
2018 [email protected] ".." 1983 [email protected] " "
2019 [email protected] " " 1984 [email protected]
2020 [email protected] 1985 [email protected] "..="
2021 [email protected] "..=" 1986 [email protected]
2022 [email protected] 1987 [email protected] ".."
2023 [email protected] ".." 1988 [email protected] " "
2024 [email protected] " " 1989 [email protected]
2025 [email protected] 1990 [email protected] "..="
2026 [email protected] "..=" 1991 [email protected]
2027 [email protected] 1992 [email protected] ".."
2028 [email protected] ".." 1993 [email protected] " "
2029 [email protected] " " 1994 [email protected]
2030 [email protected] 1995 [email protected] ".."
2031 [email protected] ".." 1996 [email protected] " "
2032 [email protected] " " 1997 [email protected]
2033 [email protected] 1998 [email protected] ".."
2034 [email protected] ".." 1999 [email protected] " "
2035 [email protected] " " 2000 [email protected]
2036 [email protected] 2001 [email protected] "..="
2037 [email protected] "..=" 2002 [email protected]
2038 [email protected] 2003 [email protected] ".."
2039 [email protected] ".." 2004 [email protected] " "
2040 [email protected] " " 2005 [email protected]
2041 [email protected] 2006 [email protected] ".."
2042 [email protected] ".." 2007 [email protected] " "
2043 [email protected] " " 2008 [email protected]
2044 [email protected] 2009 [email protected] "..="
2045 [email protected] "..=" 2010 [email protected]
2046 [email protected] 2011 [email protected] ".."
2047 [email protected] ".." 2012 [email protected] " "
2048 [email protected] " " 2013 [email protected]
2049 [email protected] 2014 [email protected] ".."
2050 [email protected] ".." 2015 [email protected] "\n "
2051 [email protected] "\n " 2016 [email protected]
2052 [email protected] 2017 [email protected] "..="
2053 [email protected] "..=" 2018 [email protected]
2054 [email protected] 2019 [email protected] ".."
2055 [email protected] ".." 2020 [email protected] " "
2056 [email protected] " " 2021 [email protected]
2057 [email protected] 2022 [email protected] "..="
2058 [email protected] "..=" 2023 [email protected]
2059 [email protected] 2024 [email protected] ".."
2060 [email protected] ".." 2025 [email protected] " "
2061 [email protected] " " 2026 [email protected]
2062 [email protected] 2027 [email protected] ".."
2063 [email protected] ".." 2028 [email protected] " "
2064 [email protected] " " 2029 [email protected]
2065 [email protected] 2030 [email protected] "..="
2066 [email protected] "..=" 2031 [email protected]
2067 [email protected] 2032 [email protected] "..="
2068 [email protected] "..=" 2033 [email protected]
2069 [email protected] 2034 [email protected] ".."
2070 [email protected] ".." 2035 [email protected] " "
2071 [email protected] " " 2036 [email protected]
2072 [email protected] 2037 [email protected] "..="
2073 [email protected] "..=" 2038 [email protected]
2074 [email protected] 2039 [email protected] "..="
2075 [email protected] "..=" 2040 [email protected]
2076 [email protected] 2041 [email protected] ".."
2077 [email protected] ".." 2042 [email protected] " "
2078 [email protected] " " 2043 [email protected]
2079 [email protected] 2044 [email protected] ".."
2080 [email protected] ".." 2045 [email protected] " "
2081 [email protected] " " 2046 [email protected]
2082 [email protected] 2047 [email protected] ".."
2083 [email protected] ".." 2048 [email protected] " "
2084 [email protected] " " 2049 [email protected]
2085 [email protected] 2050 [email protected] "..="
2086 [email protected] "..=" 2051 [email protected]
2087 [email protected] 2052 [email protected] ".."
2088 [email protected] ".." 2053 [email protected] " "
2089 [email protected] " " 2054 [email protected]
2090 [email protected] 2055 [email protected] ".."
2091 [email protected] ".." 2056 [email protected] "\n"
2092 [email protected] "\n" 2057 [email protected] "}"
2093 [email protected] "}"
2094 [email protected] "\n\n" 2058 [email protected] "\n\n"
2095 [email protected] 2059 [email protected]
2096 [email protected] "fn" 2060 [email protected] "fn"
@@ -2102,30 +2066,29 @@ [email protected]
2102 [email protected] ")" 2066 [email protected] ")"
2103 [email protected] " " 2067 [email protected] " "
2104 [email protected] 2068 [email protected]
2105 [email protected] 2069 [email protected] "{"
2106 [email protected] "{" 2070 [email protected] "\n "
2107 [email protected] "\n " 2071 [email protected] ";"
2108 [email protected] ";" 2072 [email protected] ";"
2109 [email protected] ";" 2073 [email protected] ";"
2110 [email protected] ";" 2074 [email protected]
2111 [email protected] 2075 [email protected]
2112 [email protected] 2076 [email protected] "("
2113 [email protected] "(" 2077 [email protected] ")"
2114 [email protected] ")" 2078 [email protected] ";"
2115 [email protected] ";" 2079 [email protected] ";"
2116 [email protected] ";" 2080 [email protected] ";"
2117 [email protected] ";" 2081 [email protected] ";"
2118 [email protected] ";" 2082 [email protected] ";"
2119 [email protected] ";" 2083 [email protected] ";"
2120 [email protected] ";" 2084 [email protected] ";"
2121 [email protected] ";" 2085 [email protected] ";"
2122 [email protected] ";" 2086 [email protected] ";"
2123 [email protected] ";" 2087 [email protected]
2124 [email protected] 2088 [email protected] "("
2125 [email protected] "(" 2089 [email protected] ")"
2126 [email protected] ")" 2090 [email protected] "\n"
2127 [email protected] "\n" 2091 [email protected] "}"
2128 [email protected] "}"
2129 [email protected] "\n\n" 2092 [email protected] "\n\n"
2130 [email protected] 2093 [email protected]
2131 [email protected] 2094 [email protected]
@@ -2140,190 +2103,189 @@ [email protected]
2140 [email protected] ")" 2103 [email protected] ")"
2141 [email protected] " " 2104 [email protected] " "
2142 [email protected] 2105 [email protected]
2143 [email protected] 2106 [email protected] "{"
2144 [email protected] "{" 2107 [email protected] "\n "
2145 [email protected] "\n " 2108 [email protected]
2146 [email protected] 2109 [email protected]
2147 [email protected] 2110 [email protected]
2148 [email protected] 2111 [email protected]
2149 [email protected] 2112 [email protected]
2150 [email protected] 2113 [email protected]
2151 [email protected] 2114 [email protected] "strange"
2152 [email protected] "strange" 2115 [email protected]
2153 [email protected] 2116 [email protected] "("
2154 [email protected] "(" 2117 [email protected] ")"
2155 [email protected] ")" 2118 [email protected] ";"
2156 [email protected] ";" 2119 [email protected] "\n "
2157 [email protected] "\n " 2120 [email protected]
2158 [email protected] 2121 [email protected]
2159 [email protected] 2122 [email protected]
2160 [email protected] 2123 [email protected]
2161 [email protected] 2124 [email protected]
2162 [email protected] 2125 [email protected]
2163 [email protected] 2126 [email protected] "funny"
2164 [email protected] "funny" 2127 [email protected]
2165 [email protected] 2128 [email protected] "("
2166 [email protected] "(" 2129 [email protected] ")"
2167 [email protected] ")" 2130 [email protected] ";"
2168 [email protected] ";" 2131 [email protected] "\n "
2169 [email protected] "\n " 2132 [email protected]
2170 [email protected] 2133 [email protected]
2171 [email protected] 2134 [email protected]
2172 [email protected] 2135 [email protected]
2173 [email protected] 2136 [email protected]
2174 [email protected] 2137 [email protected]
2175 [email protected] 2138 [email protected] "what"
2176 [email protected] "what" 2139 [email protected]
2177 [email protected] 2140 [email protected] "("
2178 [email protected] "(" 2141 [email protected] ")"
2179 [email protected] ")" 2142 [email protected] ";"
2180 [email protected] ";" 2143 [email protected] "\n "
2181 [email protected] "\n " 2144 [email protected]
2182 [email protected] 2145 [email protected]
2183 [email protected] 2146 [email protected]
2184 [email protected] 2147 [email protected]
2185 [email protected] 2148 [email protected]
2186 [email protected] 2149 [email protected]
2187 [email protected] 2150 [email protected] "zombiejesus"
2188 [email protected] "zombiejesus" 2151 [email protected]
2189 [email protected] 2152 [email protected] "("
2190 [email protected] "(" 2153 [email protected] ")"
2191 [email protected] ")" 2154 [email protected] ";"
2192 [email protected] ";" 2155 [email protected] "\n "
2193 [email protected] "\n " 2156 [email protected]
2194 [email protected] 2157 [email protected]
2195 [email protected] 2158 [email protected]
2196 [email protected] 2159 [email protected]
2197 [email protected] 2160 [email protected]
2198 [email protected] 2161 [email protected]
2199 [email protected] 2162 [email protected] "notsure"
2200 [email protected] "notsure" 2163 [email protected]
2201 [email protected] 2164 [email protected] "("
2202 [email protected] "(" 2165 [email protected] ")"
2203 [email protected] ")" 2166 [email protected] ";"
2204 [email protected] ";" 2167 [email protected] "\n "
2205 [email protected] "\n " 2168 [email protected]
2206 [email protected] 2169 [email protected]
2207 [email protected] 2170 [email protected]
2208 [email protected] 2171 [email protected]
2209 [email protected] 2172 [email protected]
2210 [email protected] 2173 [email protected]
2211 [email protected] 2174 [email protected] "canttouchthis"
2212 [email protected] "canttouchthis" 2175 [email protected]
2213 [email protected] 2176 [email protected] "("
2214 [email protected] "(" 2177 [email protected] ")"
2215 [email protected] ")" 2178 [email protected] ";"
2216 [email protected] ";" 2179 [email protected] "\n "
2217 [email protected] "\n " 2180 [email protected]
2218 [email protected] 2181 [email protected]
2219 [email protected] 2182 [email protected]
2220 [email protected] 2183 [email protected]
2221 [email protected] 2184 [email protected]
2222 [email protected] 2185 [email protected]
2223 [email protected] 2186 [email protected] "angrydome"
2224 [email protected] "angrydome" 2187 [email protected]
2225 [email protected] 2188 [email protected] "("
2226 [email protected] "(" 2189 [email protected] ")"
2227 [email protected] ")" 2190 [email protected] ";"
2228 [email protected] ";" 2191 [email protected] "\n "
2229 [email protected] "\n " 2192 [email protected]
2230 [email protected] 2193 [email protected]
2231 [email protected] 2194 [email protected]
2232 [email protected] 2195 [email protected]
2233 [email protected] 2196 [email protected]
2234 [email protected] 2197 [email protected]
2235 [email protected] 2198 [email protected] "evil_lincoln"
2236 [email protected] "evil_lincoln" 2199 [email protected]
2237 [email protected] 2200 [email protected] "("
2238 [email protected] "(" 2201 [email protected] ")"
2239 [email protected] ")" 2202 [email protected] ";"
2240 [email protected] ";" 2203 [email protected] "\n "
2241 [email protected] "\n " 2204 [email protected]
2242 [email protected] 2205 [email protected]
2243 [email protected] 2206 [email protected]
2244 [email protected] 2207 [email protected]
2245 [email protected] 2208 [email protected]
2246 [email protected] 2209 [email protected]
2247 [email protected] 2210 [email protected] "dots"
2248 [email protected] "dots" 2211 [email protected]
2249 [email protected] 2212 [email protected] "("
2250 [email protected] "(" 2213 [email protected] ")"
2251 [email protected] ")" 2214 [email protected] ";"
2252 [email protected] ";" 2215 [email protected] "\n "
2253 [email protected] "\n " 2216 [email protected]
2254 [email protected] 2217 [email protected]
2255 [email protected] 2218 [email protected]
2256 [email protected] 2219 [email protected]
2257 [email protected] 2220 [email protected]
2258 [email protected] 2221 [email protected]
2259 [email protected] 2222 [email protected] "u8"
2260 [email protected] "u8" 2223 [email protected]
2261 [email protected] 2224 [email protected] "("
2262 [email protected] "(" 2225 [email protected]
2263 [email protected] 2226 [email protected] "8u8"
2264 [email protected] "8u8" 2227 [email protected] ")"
2265 [email protected] ")" 2228 [email protected] ";"
2266 [email protected] ";" 2229 [email protected] "\n "
2267 [email protected] "\n " 2230 [email protected]
2268 [email protected] 2231 [email protected]
2269 [email protected] 2232 [email protected]
2270 [email protected] 2233 [email protected]
2271 [email protected] 2234 [email protected]
2272 [email protected] 2235 [email protected]
2273 [email protected] 2236 [email protected] "fishy"
2274 [email protected] "fishy" 2237 [email protected]
2275 [email protected] 2238 [email protected] "("
2276 [email protected] "(" 2239 [email protected] ")"
2277 [email protected] ")" 2240 [email protected] ";"
2278 [email protected] ";" 2241 [email protected] "\n "
2279 [email protected] "\n " 2242 [email protected]
2280 [email protected] 2243 [email protected]
2281 [email protected] 2244 [email protected]
2282 [email protected] 2245 [email protected]
2283 [email protected] 2246 [email protected]
2284 [email protected] 2247 [email protected]
2285 [email protected] 2248 [email protected] "union"
2286 [email protected] "union" 2249 [email protected]
2287 [email protected] 2250 [email protected] "("
2288 [email protected] "(" 2251 [email protected] ")"
2289 [email protected] ")" 2252 [email protected] ";"
2290 [email protected] ";" 2253 [email protected] "\n "
2291 [email protected] "\n " 2254 [email protected]
2292 [email protected] 2255 [email protected]
2293 [email protected] 2256 [email protected]
2294 [email protected] 2257 [email protected]
2295 [email protected] 2258 [email protected]
2296 [email protected] 2259 [email protected]
2297 [email protected] 2260 [email protected] "special_characters"
2298 [email protected] "special_characters" 2261 [email protected]
2299 [email protected] 2262 [email protected] "("
2300 [email protected] "(" 2263 [email protected] ")"
2301 [email protected] ")" 2264 [email protected] ";"
2302 [email protected] ";" 2265 [email protected] "\n "
2303 [email protected] "\n " 2266 [email protected]
2304 [email protected] 2267 [email protected]
2305 [email protected] 2268 [email protected]
2306 [email protected] 2269 [email protected]
2307 [email protected] 2270 [email protected]
2308 [email protected] 2271 [email protected]
2309 [email protected] 2272 [email protected] "punch_card"
2310 [email protected] "punch_card" 2273 [email protected]
2311 [email protected] 2274 [email protected] "("
2312 [email protected] "(" 2275 [email protected] ")"
2313 [email protected] ")" 2276 [email protected] ";"
2314 [email protected] ";" 2277 [email protected] "\n "
2315 [email protected] "\n " 2278 [email protected]
2316 [email protected] 2279 [email protected]
2317 [email protected] 2280 [email protected]
2318 [email protected] 2281 [email protected]
2319 [email protected] 2282 [email protected]
2320 [email protected] 2283 [email protected]
2321 [email protected] 2284 [email protected] "ktulhu"
2322 [email protected] "ktulhu" 2285 [email protected]
2323 [email protected] 2286 [email protected] "("
2324 [email protected] "(" 2287 [email protected] ")"
2325 [email protected] ")" 2288 [email protected] ";"
2326 [email protected] ";" 2289 [email protected] "\n"
2327 [email protected] "\n" 2290 [email protected] "}"
2328 [email protected] "}"
2329 [email protected] "\n" 2291 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast b/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast
index 8f616623b..a64a82e94 100644
--- a/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast
@@ -76,18 +76,17 @@ [email protected]
76 [email protected] "," 76 [email protected] ","
77 [email protected] "\n" 77 [email protected] "\n"
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected] "{"
80 [email protected] "{" 80 [email protected] "\n "
81 [email protected] "\n " 81 [email protected]
82 [email protected] 82 [email protected]
83 [email protected] 83 [email protected] "\"\""
84 [email protected] "\"\"" 84 [email protected] "."
85 [email protected] "." 85 [email protected]
86 [email protected] 86 [email protected] "to_owned"
87 [email protected] "to_owned" 87 [email protected]
88 [email protected] 88 [email protected] "("
89 [email protected] "(" 89 [email protected] ")"
90 [email protected] ")" 90 [email protected] "\n"
91 [email protected] "\n" 91 [email protected] "}"
92 [email protected] "}"
93 [email protected] "\n" 92 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast b/crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast
index 14d82feb0..7fd414090 100644
--- a/crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast
@@ -38,6 +38,5 @@ [email protected]
38 [email protected] "Foo" 38 [email protected] "Foo"
39 [email protected] " " 39 [email protected] " "
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected] "{"
42 [email protected] "{" 42 [email protected] "}"
43 [email protected] "}"
diff --git a/crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast b/crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast
index d38a60665..17be2c238 100644
--- a/crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast
@@ -9,8 +9,7 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n"
14 [email protected] "\n" 14 [email protected] "}"
15 [email protected] "}"
16 [email protected] "\n" 15 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast b/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast
index db25bc2b8..acf32a852 100644
--- a/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast
@@ -9,42 +9,41 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] " "
14 [email protected] " " 14 [email protected]
15 [email protected] 15 [email protected] "let"
16 [email protected] "let" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "r#struct"
20 [email protected] "r#struct" 20 [email protected] " "
21 [email protected] " " 21 [email protected] "="
22 [email protected] "=" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected] "92"
25 [email protected] "92" 25 [email protected] ";"
26 [email protected] ";" 26 [email protected] " "
27 [email protected] " " 27 [email protected]
28 [email protected] 28 [email protected] "let"
29 [email protected] "let" 29 [email protected] " "
30 [email protected] " " 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected] "r#trait"
33 [email protected] "r#trait" 33 [email protected] " "
34 [email protected] " " 34 [email protected] "="
35 [email protected] "=" 35 [email protected] " "
36 [email protected] " " 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected] "r#struct"
42 [email protected] "r#struct" 42 [email protected] " "
43 [email protected] " " 43 [email protected] "*"
44 [email protected] "*" 44 [email protected] " "
45 [email protected] " " 45 [email protected]
46 [email protected] 46 [email protected] "2"
47 [email protected] "2" 47 [email protected] ";"
48 [email protected] ";" 48 [email protected] " "
49 [email protected] " " 49 [email protected] "}"
50 [email protected] "}"
diff --git a/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast b/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast
index 9704bea95..468982b74 100644
--- a/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast
@@ -39,20 +39,19 @@ [email protected]
39 [email protected] "bool" 39 [email protected] "bool"
40 [email protected] " " 40 [email protected] " "
41 [email protected] 41 [email protected]
42 [email protected] 42 [email protected] "{"
43 [email protected] "{" 43 [email protected] "\n "
44 [email protected] "\n " 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected] "unimplemented"
49 [email protected] "unimplemented" 49 [email protected] "!"
50 [email protected] "!" 50 [email protected]
51 [email protected] 51 [email protected] "("
52 [email protected] "(" 52 [email protected] ")"
53 [email protected] ")" 53 [email protected] "\n "
54 [email protected] "\n " 54 [email protected] "}"
55 [email protected] "}"
56 [email protected] "\n" 55 [email protected] "\n"
57 [email protected] "}" 56 [email protected] "}"
58 [email protected] "\n\n" 57 [email protected] "\n\n"
@@ -76,9 +75,8 @@ [email protected]
76 [email protected] ")" 75 [email protected] ")"
77 [email protected] " " 76 [email protected] " "
78 [email protected] 77 [email protected]
79 [email protected] 78 [email protected] "{"
80 [email protected] "{" 79 [email protected] "}"
81 [email protected] "}"
82 [email protected] "\n\n" 80 [email protected] "\n\n"
83 [email protected] 81 [email protected]
84 [email protected] "fn" 82 [email protected] "fn"
@@ -90,37 +88,36 @@ [email protected]
90 [email protected] ")" 88 [email protected] ")"
91 [email protected] " " 89 [email protected] " "
92 [email protected] 90 [email protected]
93 [email protected] 91 [email protected] "{"
94 [email protected] "{" 92 [email protected] "\n "
95 [email protected] "\n " 93 [email protected]
96 [email protected] 94 [email protected]
97 [email protected] 95 [email protected]
98 [email protected] 96 [email protected]
99 [email protected] 97 [email protected]
100 [email protected] 98 [email protected] "baz"
101 [email protected] "baz" 99 [email protected]
102 [email protected] 100 [email protected] "("
103 [email protected] "(" 101 [email protected]
104 [email protected] 102 [email protected]
105 [email protected] 103 [email protected]
106 [email protected] 104 [email protected]
107 [email protected] 105 [email protected]
108 [email protected] 106 [email protected] "<"
109 [email protected] "<" 107 [email protected]
110 [email protected] 108 [email protected]
111 [email protected] 109 [email protected]
112 [email protected] 110 [email protected]
113 [email protected] 111 [email protected] "Foo"
114 [email protected] "Foo" 112 [email protected] ">"
115 [email protected] ">" 113 [email protected] "::"
116 [email protected] "::" 114 [email protected]
117 [email protected] 115 [email protected]
118 [email protected] 116 [email protected] "bar"
119 [email protected] "bar" 117 [email protected]
120 [email protected] 118 [email protected] "("
121 [email protected] "(" 119 [email protected] ")"
122 [email protected] ")" 120 [email protected] ")"
123 [email protected] ")" 121 [email protected] "\n"
124 [email protected] "\n" 122 [email protected] "}"
125 [email protected] "}"
126 [email protected] "\n" 123 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast b/crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast
index 6e5b25748..900eeb445 100644
--- a/crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast
@@ -40,71 +40,70 @@ [email protected]
40 [email protected] ")" 40 [email protected] ")"
41 [email protected] " " 41 [email protected] " "
42 [email protected] 42 [email protected]
43 [email protected] 43 [email protected] "{"
44 [email protected] "{" 44 [email protected] "\n "
45 [email protected] "\n " 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected]
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected]
53 [email protected] 53 [email protected] "Repr"
54 [email protected] "Repr" 54 [email protected] " "
55 [email protected] " " 55 [email protected]
56 [email protected] 56 [email protected] "{"
57 [email protected] "{" 57 [email protected] " "
58 [email protected] " " 58 [email protected]
59 [email protected] 59 [email protected]
60 [email protected] 60 [email protected] "raw"
61 [email protected] "raw" 61 [email protected] ":"
62 [email protected] ":" 62 [email protected] " "
63 [email protected] " " 63 [email protected]
64 [email protected] 64 [email protected] "["
65 [email protected] "[" 65 [email protected]
66 [email protected] 66 [email protected] "0"
67 [email protected] "0" 67 [email protected] "]"
68 [email protected] "]" 68 [email protected] " "
69 [email protected] " " 69 [email protected] "}"
70 [email protected] "}" 70 [email protected] "."
71 [email protected] "." 71 [email protected]
72 [email protected] 72 [email protected] "raw"
73 [email protected] "raw" 73 [email protected] "["
74 [email protected] "[" 74 [email protected]
75 [email protected] 75 [email protected] "0"
76 [email protected] "0" 76 [email protected] "]"
77 [email protected] "]" 77 [email protected] " "
78 [email protected] " " 78 [email protected] "="
79 [email protected] "=" 79 [email protected] " "
80 [email protected] " " 80 [email protected]
81 [email protected] 81 [email protected] "0"
82 [email protected] "0" 82 [email protected] ";"
83 [email protected] ";" 83 [email protected] "\n "
84 [email protected] "\n " 84 [email protected]
85 [email protected] 85 [email protected]
86 [email protected] 86 [email protected]
87 [email protected] 87 [email protected]
88 [email protected] 88 [email protected]
89 [email protected] 89 [email protected]
90 [email protected] 90 [email protected] "Repr"
91 [email protected] "Repr" 91 [email protected]
92 [email protected] 92 [email protected] "{"
93 [email protected] "{" 93 [email protected]
94 [email protected] 94 [email protected]
95 [email protected] 95 [email protected] "raw"
96 [email protected] "raw" 96 [email protected] ":"
97 [email protected] ":" 97 [email protected]
98 [email protected] 98 [email protected] "["
99 [email protected] "[" 99 [email protected]
100 [email protected] 100 [email protected] "0"
101 [email protected] "0" 101 [email protected] "]"
102 [email protected] "]" 102 [email protected] "}"
103 [email protected] "}" 103 [email protected]
104 [email protected] 104 [email protected] "("
105 [email protected] "(" 105 [email protected] ")"
106 [email protected] ")" 106 [email protected] ";"
107 [email protected] ";" 107 [email protected] "\n"
108 [email protected] "\n" 108 [email protected] "}"
109 [email protected] "}"
110 [email protected] "\n" 109 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast
index f1eef3be0..6d941487b 100644
--- a/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast
@@ -11,66 +11,65 @@ [email protected]
11 [email protected] ")" 11 [email protected] ")"
12 [email protected] " " 12 [email protected] " "
13 [email protected] 13 [email protected]
14 [email protected] 14 [email protected] "{"
15 [email protected] "{" 15 [email protected] "\n "
16 [email protected] "\n " 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected] "#"
19 [email protected] "#" 19 [email protected] "["
20 [email protected] "[" 20 [email protected]
21 [email protected] 21 [email protected]
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected] "cfg"
24 [email protected] "cfg" 24 [email protected]
25 [email protected] 25 [email protected] "("
26 [email protected] "(" 26 [email protected] "feature"
27 [email protected] "feature" 27 [email protected] " "
28 [email protected] " " 28 [email protected] "="
29 [email protected] "=" 29 [email protected] " "
30 [email protected] " " 30 [email protected] "\"backtrace\""
31 [email protected] "\"backtrace\"" 31 [email protected] ")"
32 [email protected] ")" 32 [email protected] "]"
33 [email protected] "]" 33 [email protected] "\n "
34 [email protected] "\n " 34 [email protected] "let"
35 [email protected] "let" 35 [email protected] " "
36 [email protected] " " 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected] "exit_code"
39 [email protected] "exit_code" 39 [email protected] " "
40 [email protected] " " 40 [email protected] "="
41 [email protected] "=" 41 [email protected] " "
42 [email protected] " " 42 [email protected]
43 [email protected] 43 [email protected]
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected] "panic"
49 [email protected] "panic" 49 [email protected] "::"
50 [email protected] "::" 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected] "catch_unwind"
53 [email protected] "catch_unwind" 53 [email protected]
54 [email protected] 54 [email protected] "("
55 [email protected] "(" 55 [email protected]
56 [email protected] 56 [email protected] "move"
57 [email protected] "move" 57 [email protected] " "
58 [email protected] " " 58 [email protected]
59 [email protected] 59 [email protected] "|"
60 [email protected] "|" 60 [email protected] "|"
61 [email protected] "|" 61 [email protected] " "
62 [email protected] " " 62 [email protected]
63 [email protected] 63 [email protected]
64 [email protected] 64 [email protected]
65 [email protected] 65 [email protected]
66 [email protected] 66 [email protected]
67 [email protected] 67 [email protected] "main"
68 [email protected] "main" 68 [email protected]
69 [email protected] 69 [email protected] "("
70 [email protected] "(" 70 [email protected] ")"
71 [email protected] ")" 71 [email protected] ")"
72 [email protected] ")" 72 [email protected] ";"
73 [email protected] ";" 73 [email protected] "\n"
74 [email protected] "\n" 74 [email protected] "}"
75 [email protected] "}"
76 [email protected] "\n" 75 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast
index f79feec19..e8b095251 100644
--- a/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast
@@ -9,86 +9,83 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "#"
16 [email protected] "#" 16 [email protected] "!"
17 [email protected] "!" 17 [email protected] "["
18 [email protected] "[" 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected] "doc"
22 [email protected] "doc" 22 [email protected]
23 [email protected] 23 [email protected] "("
24 [email protected] "(" 24 [email protected] "\"Inner attributes all ..."
25 [email protected] "\"Inner attributes all ..." 25 [email protected] ")"
26 [email protected] ")" 26 [email protected] "]"
27 [email protected] "]" 27 [email protected] "\n "
28 [email protected] "\n " 28 [email protected] "//! As are ModuleDoc ..."
29 [email protected] "//! As are ModuleDoc ..." 29 [email protected] "\n "
30 [email protected] "\n " 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected] "{"
33 [email protected] 33 [email protected] "\n "
34 [email protected] "{" 34 [email protected]
35 [email protected] "\n " 35 [email protected] "#"
36 [email protected] 36 [email protected] "!"
37 [email protected] "#" 37 [email protected] "["
38 [email protected] "!" 38 [email protected]
39 [email protected] "[" 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected] "doc"
42 [email protected] 42 [email protected]
43 [email protected] "doc" 43 [email protected] "("
44 [email protected] 44 [email protected] "\"Inner attributes are ..."
45 [email protected] "(" 45 [email protected] ")"
46 [email protected] "\"Inner attributes are ..." 46 [email protected] "]"
47 [email protected] ")" 47 [email protected] "\n "
48 [email protected] "]" 48 [email protected]
49 [email protected] "\n " 49 [email protected] "#"
50 [email protected] 50 [email protected] "!"
51 [email protected] "#" 51 [email protected] "["
52 [email protected] "!" 52 [email protected]
53 [email protected] "[" 53 [email protected]
54 [email protected] 54 [email protected]
55 [email protected] 55 [email protected] "doc"
56 [email protected] 56 [email protected]
57 [email protected] "doc" 57 [email protected] "("
58 [email protected] 58 [email protected] "\"Being validated is n ..."
59 [email protected] "(" 59 [email protected] ")"
60 [email protected] "\"Being validated is n ..." 60 [email protected] "]"
61 [email protected] ")" 61 [email protected] "\n "
62 [email protected] "]" 62 [email protected] "//! As are ModuleDoc ..."
63 [email protected] "\n " 63 [email protected] "\n "
64 [email protected] "//! As are ModuleDoc ..." 64 [email protected] "}"
65 [email protected] "\n " 65 [email protected] ";"
66 [email protected] "}" 66 [email protected] "\n "
67 [email protected] ";" 67 [email protected]
68 [email protected] "\n " 68 [email protected] "{"
69 [email protected] 69 [email protected] "\n "
70 [email protected] 70 [email protected]
71 [email protected] "{" 71 [email protected] "#"
72 [email protected] "\n " 72 [email protected] "!"
73 [email protected] 73 [email protected] "["
74 [email protected] "#" 74 [email protected]
75 [email protected] "!" 75 [email protected]
76 [email protected] "[" 76 [email protected]
77 [email protected] 77 [email protected] "doc"
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected] "("
80 [email protected] "doc" 80 [email protected] "\"Inner attributes are ..."
81 [email protected] 81 [email protected] ")"
82 [email protected] "(" 82 [email protected] "]"
83 [email protected] "\"Inner attributes are ..." 83 [email protected] "\n "
84 [email protected] ")" 84 [email protected] "//! As are ModuleDoc ..."
85 [email protected] "]" 85 [email protected] "\n "
86 [email protected] "\n " 86 [email protected] "}"
87 [email protected] "//! As are ModuleDoc ..." 87 [email protected] "\n"
88 [email protected] "\n " 88 [email protected] "}"
89 [email protected] "}"
90 [email protected] "\n"
91 [email protected] "}"
92 [email protected] "\n\n" 89 [email protected] "\n\n"
93 [email protected] "// https://github.com ..." 90 [email protected] "// https://github.com ..."
94 [email protected] "\n" 91 [email protected] "\n"
@@ -156,26 +153,25 @@ [email protected]
156 [email protected] ")" 153 [email protected] ")"
157 [email protected] " " 154 [email protected] " "
158 [email protected] 155 [email protected]
159 [email protected] 156 [email protected] "{"
160 [email protected] "{" 157 [email protected] "\n "
161 [email protected] "\n " 158 [email protected]
162 [email protected] 159 [email protected] "#"
163 [email protected] "#" 160 [email protected] "!"
164 [email protected] "!" 161 [email protected] "["
165 [email protected] "[" 162 [email protected]
166 [email protected] 163 [email protected]
167 [email protected] 164 [email protected]
168 [email protected] 165 [email protected] "allow"
169 [email protected] "allow" 166 [email protected]
170 [email protected] 167 [email protected] "("
171 [email protected] "(" 168 [email protected] "unused_variables"
172 [email protected] "unused_variables" 169 [email protected] ")"
173 [email protected] ")" 170 [email protected] "]"
174 [email protected] "]" 171 [email protected] " "
175 [email protected] " " 172 [email protected] "// this is `inner_at ..."
176 [email protected] "// this is `inner_at ..." 173 [email protected] "\n "
177 [email protected] "\n " 174 [email protected] "}"
178 [email protected] "}"
179 [email protected] "\n" 175 [email protected] "\n"
180 [email protected] "}" 176 [email protected] "}"
181 [email protected] "\n" 177 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast b/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast
index 1cf12d670..38e44e48a 100644
--- a/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast
@@ -11,252 +11,250 @@ [email protected]
11 [email protected] ")" 11 [email protected] ")"
12 [email protected] " " 12 [email protected] " "
13 [email protected] 13 [email protected]
14 [email protected] 14 [email protected] "{"
15 [email protected] "{" 15 [email protected] "\n "
16 [email protected] "\n " 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected] "match"
19 [email protected] "match" 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected]
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "Some"
26 [email protected] "Some" 26 [email protected]
27 [email protected] 27 [email protected] "("
28 [email protected] "(" 28 [email protected]
29 [email protected] 29 [email protected] "-"
30 [email protected] "-" 30 [email protected]
31 [email protected] 31 [email protected] "1"
32 [email protected] "1" 32 [email protected] ")"
33 [email protected] ")" 33 [email protected] " "
34 [email protected] " " 34 [email protected]
35 [email protected] 35 [email protected] "{"
36 [email protected] "{" 36 [email protected] "\n "
37 [email protected] "\n " 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected]
42 [email protected] 42 [email protected] "Some"
43 [email protected] "Some" 43 [email protected] "("
44 [email protected] "(" 44 [email protected]
45 [email protected] 45 [email protected] "-"
46 [email protected] "-" 46 [email protected]
47 [email protected] 47 [email protected] "1"
48 [email protected] "1" 48 [email protected] ")"
49 [email protected] ")" 49 [email protected] " "
50 [email protected] " " 50 [email protected] "=>"
51 [email protected] "=>" 51 [email protected] " "
52 [email protected] " " 52 [email protected]
53 [email protected] 53 [email protected] "("
54 [email protected] "(" 54 [email protected] ")"
55 [email protected] ")" 55 [email protected] ","
56 [email protected] "," 56 [email protected] "\n "
57 [email protected] "\n " 57 [email protected]
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected] "_"
60 [email protected] "_" 60 [email protected] " "
61 [email protected] " " 61 [email protected] "=>"
62 [email protected] "=>" 62 [email protected] " "
63 [email protected] " " 63 [email protected]
64 [email protected] 64 [email protected] "("
65 [email protected] "(" 65 [email protected] ")"
66 [email protected] ")" 66 [email protected] ","
67 [email protected] "," 67 [email protected] "\n "
68 [email protected] "\n " 68 [email protected] "}"
69 [email protected] "}" 69 [email protected] "\n\n "
70 [email protected] "\n\n " 70 [email protected]
71 [email protected] 71 [email protected]
72 [email protected] 72 [email protected] "match"
73 [email protected] "match" 73 [email protected] " "
74 [email protected] " " 74 [email protected]
75 [email protected] 75 [email protected]
76 [email protected] 76 [email protected]
77 [email protected] 77 [email protected]
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected] "Some"
80 [email protected] "Some" 80 [email protected]
81 [email protected] 81 [email protected] "("
82 [email protected] "(" 82 [email protected]
83 [email protected] 83 [email protected] "("
84 [email protected] "(" 84 [email protected]
85 [email protected] 85 [email protected] "-"
86 [email protected] "-" 86 [email protected]
87 [email protected] 87 [email protected] "1"
88 [email protected] "1" 88 [email protected] ","
89 [email protected] "," 89 [email protected] " "
90 [email protected] " " 90 [email protected]
91 [email protected] 91 [email protected] "-"
92 [email protected] "-" 92 [email protected]
93 [email protected] 93 [email protected] "1"
94 [email protected] "1" 94 [email protected] ")"
95 [email protected] ")" 95 [email protected] ")"
96 [email protected] ")" 96 [email protected] " "
97 [email protected] " " 97 [email protected]
98 [email protected] 98 [email protected] "{"
99 [email protected] "{" 99 [email protected] "\n "
100 [email protected] "\n " 100 [email protected]
101 [email protected] 101 [email protected]
102 [email protected] 102 [email protected]
103 [email protected] 103 [email protected]
104 [email protected] 104 [email protected]
105 [email protected] 105 [email protected] "Some"
106 [email protected] "Some" 106 [email protected] "("
107 [email protected] "(" 107 [email protected]
108 [email protected] 108 [email protected] "("
109 [email protected] "(" 109 [email protected]
110 [email protected] 110 [email protected] "-"
111 [email protected] "-" 111 [email protected]
112 [email protected] 112 [email protected] "1"
113 [email protected] "1" 113 [email protected] ","
114 [email protected] "," 114 [email protected] " "
115 [email protected] " " 115 [email protected]
116 [email protected] 116 [email protected] "-"
117 [email protected] "-" 117 [email protected]
118 [email protected] 118 [email protected] "1"
119 [email protected] "1" 119 [email protected] ")"
120 [email protected] ")" 120 [email protected] ")"
121 [email protected] ")" 121 [email protected] " "
122 [email protected] " " 122 [email protected] "=>"
123 [email protected] "=>" 123 [email protected] " "
124 [email protected] " " 124 [email protected]
125 [email protected] 125 [email protected] "("
126 [email protected] "(" 126 [email protected] ")"
127 [email protected] ")" 127 [email protected] ","
128 [email protected] "," 128 [email protected] "\n "
129 [email protected] "\n " 129 [email protected]
130 [email protected] 130 [email protected]
131 [email protected] 131 [email protected] "_"
132 [email protected] "_" 132 [email protected] " "
133 [email protected] " " 133 [email protected] "=>"
134 [email protected] "=>" 134 [email protected] " "
135 [email protected] " " 135 [email protected]
136 [email protected] 136 [email protected] "("
137 [email protected] "(" 137 [email protected] ")"
138 [email protected] ")" 138 [email protected] ","
139 [email protected] "," 139 [email protected] "\n "
140 [email protected] "\n " 140 [email protected] "}"
141 [email protected] "}" 141 [email protected] "\n\n "
142 [email protected] "\n\n " 142 [email protected]
143 [email protected] 143 [email protected]
144 [email protected] 144 [email protected] "match"
145 [email protected] "match" 145 [email protected] " "
146 [email protected] " " 146 [email protected]
147 [email protected] 147 [email protected]
148 [email protected] 148 [email protected]
149 [email protected] 149 [email protected]
150 [email protected] 150 [email protected]
151 [email protected] 151 [email protected]
152 [email protected] 152 [email protected] "A"
153 [email protected] "A" 153 [email protected] "::"
154 [email protected] "::" 154 [email protected]
155 [email protected] 155 [email protected]
156 [email protected] 156 [email protected] "B"
157 [email protected] "B" 157 [email protected]
158 [email protected] 158 [email protected] "("
159 [email protected] "(" 159 [email protected]
160 [email protected] 160 [email protected] "-"
161 [email protected] "-" 161 [email protected]
162 [email protected] 162 [email protected] "1"
163 [email protected] "1" 163 [email protected] ","
164 [email protected] "," 164 [email protected] " "
165 [email protected] " " 165 [email protected]
166 [email protected] 166 [email protected] "-"
167 [email protected] "-" 167 [email protected]
168 [email protected] 168 [email protected] "1"
169 [email protected] "1" 169 [email protected] ")"
170 [email protected] ")" 170 [email protected] " "
171 [email protected] " " 171 [email protected]
172 [email protected] 172 [email protected] "{"
173 [email protected] "{" 173 [email protected] "\n "
174 [email protected] "\n " 174 [email protected]
175 [email protected] 175 [email protected]
176 [email protected] 176 [email protected]
177 [email protected] 177 [email protected]
178 [email protected] 178 [email protected]
179 [email protected] 179 [email protected]
180 [email protected] 180 [email protected] "A"
181 [email protected] "A" 181 [email protected] "::"
182 [email protected] "::" 182 [email protected]
183 [email protected] 183 [email protected]
184 [email protected] 184 [email protected] "B"
185 [email protected] "B" 185 [email protected] "("
186 [email protected] "(" 186 [email protected]
187 [email protected] 187 [email protected] "-"
188 [email protected] "-" 188 [email protected]
189 [email protected] 189 [email protected] "1"
190 [email protected] "1" 190 [email protected] ","
191 [email protected] "," 191 [email protected] " "
192 [email protected] " " 192 [email protected]
193 [email protected] 193 [email protected] "-"
194 [email protected] "-" 194 [email protected]
195 [email protected] 195 [email protected] "1"
196 [email protected] "1" 196 [email protected] ")"
197 [email protected] ")" 197 [email protected] " "
198 [email protected] " " 198 [email protected] "=>"
199 [email protected] "=>" 199 [email protected] " "
200 [email protected] " " 200 [email protected]
201 [email protected] 201 [email protected] "("
202 [email protected] "(" 202 [email protected] ")"
203 [email protected] ")" 203 [email protected] ","
204 [email protected] "," 204 [email protected] "\n "
205 [email protected] "\n " 205 [email protected]
206 [email protected] 206 [email protected]
207 [email protected] 207 [email protected] "_"
208 [email protected] "_" 208 [email protected] " "
209 [email protected] " " 209 [email protected] "=>"
210 [email protected] "=>" 210 [email protected] " "
211 [email protected] " " 211 [email protected]
212 [email protected] 212 [email protected] "("
213 [email protected] "(" 213 [email protected] ")"
214 [email protected] ")" 214 [email protected] ","
215 [email protected] "," 215 [email protected] "\n "
216 [email protected] "\n " 216 [email protected] "}"
217 [email protected] "}" 217 [email protected] "\n\n "
218 [email protected] "\n\n " 218 [email protected]
219 [email protected] 219 [email protected] "if"
220 [email protected] "if" 220 [email protected] " "
221 [email protected] " " 221 [email protected]
222 [email protected] 222 [email protected] "let"
223 [email protected] "let" 223 [email protected] " "
224 [email protected] " " 224 [email protected]
225 [email protected] 225 [email protected]
226 [email protected] 226 [email protected]
227 [email protected] 227 [email protected]
228 [email protected] 228 [email protected] "Some"
229 [email protected] "Some" 229 [email protected] "("
230 [email protected] "(" 230 [email protected]
231 [email protected] 231 [email protected] "-"
232 [email protected] "-" 232 [email protected]
233 [email protected] 233 [email protected] "1"
234 [email protected] "1" 234 [email protected] ")"
235 [email protected] ")" 235 [email protected] " "
236 [email protected] " " 236 [email protected] "="
237 [email protected] "=" 237 [email protected] " "
238 [email protected] " " 238 [email protected]
239 [email protected] 239 [email protected]
240 [email protected] 240 [email protected]
241 [email protected] 241 [email protected]
242 [email protected] 242 [email protected]
243 [email protected] 243 [email protected] "Some"
244 [email protected] "Some" 244 [email protected]
245 [email protected] 245 [email protected] "("
246 [email protected] "(" 246 [email protected]
247 [email protected] 247 [email protected] "-"
248 [email protected] "-" 248 [email protected]
249 [email protected] 249 [email protected] "1"
250 [email protected] "1" 250 [email protected] ")"
251 [email protected] ")" 251 [email protected] " "
252 [email protected] " " 252 [email protected]
253 [email protected] 253 [email protected] "{"
254 [email protected] 254 [email protected] "\n "
255 [email protected] "{" 255 [email protected] "}"
256 [email protected] "\n " 256 [email protected] "\n"
257 [email protected] "}" 257 [email protected] "}"
258 [email protected] "\n"
259 [email protected] "}"
260 [email protected] "\n\n" 258 [email protected] "\n\n"
261 [email protected] 259 [email protected]
262 [email protected] "enum" 260 [email protected] "enum"
@@ -317,7 +315,6 @@ [email protected]
317 [email protected] ")" 315 [email protected] ")"
318 [email protected] " " 316 [email protected] " "
319 [email protected] 317 [email protected]
320 [email protected] 318 [email protected] "{"
321 [email protected] "{" 319 [email protected] "}"
322 [email protected] "}"
323 [email protected] "\n" 320 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast b/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast
index 9c2701bf7..28233c5d0 100644
--- a/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast
@@ -11,191 +11,190 @@ [email protected]
11 [email protected] ")" 11 [email protected] ")"
12 [email protected] " " 12 [email protected] " "
13 [email protected] 13 [email protected]
14 [email protected] 14 [email protected] "{"
15 [email protected] "{" 15 [email protected] "\n "
16 [email protected] "\n " 16 [email protected]
17 [email protected] 17 [email protected] "let"
18 [email protected] "let" 18 [email protected] " "
19 [email protected] " " 19 [email protected]
20 [email protected] 20 [email protected] "mut"
21 [email protected] "mut" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "a"
24 [email protected] "a" 24 [email protected] " "
25 [email protected] " " 25 [email protected] "="
26 [email protected] "=" 26 [email protected] " "
27 [email protected] " " 27 [email protected]
28 [email protected] 28 [email protected] "0"
29 [email protected] "0" 29 [email protected] ";"
30 [email protected] ";" 30 [email protected] "\n "
31 [email protected] "\n " 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected] "a"
38 [email protected] "a" 38 [email protected] " "
39 [email protected] " " 39 [email protected] "+="
40 [email protected] "+=" 40 [email protected] " "
41 [email protected] " " 41 [email protected]
42 [email protected] 42 [email protected] "1"
43 [email protected] "1" 43 [email protected] ";"
44 [email protected] ";" 44 [email protected] "\n "
45 [email protected] "\n " 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected]
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected] "a"
52 [email protected] "a" 52 [email protected] " "
53 [email protected] " " 53 [email protected] "-="
54 [email protected] "-=" 54 [email protected] " "
55 [email protected] " " 55 [email protected]
56 [email protected] 56 [email protected] "2"
57 [email protected] "2" 57 [email protected] ";"
58 [email protected] ";" 58 [email protected] "\n "
59 [email protected] "\n " 59 [email protected]
60 [email protected] 60 [email protected]
61 [email protected] 61 [email protected]
62 [email protected] 62 [email protected]
63 [email protected] 63 [email protected]
64 [email protected] 64 [email protected]
65 [email protected] 65 [email protected] "a"
66 [email protected] "a" 66 [email protected] " "
67 [email protected] " " 67 [email protected] "*="
68 [email protected] "*=" 68 [email protected] " "
69 [email protected] " " 69 [email protected]
70 [email protected] 70 [email protected] "3"
71 [email protected] "3" 71 [email protected] ";"
72 [email protected] ";" 72 [email protected] "\n "
73 [email protected] "\n " 73 [email protected]
74 [email protected] 74 [email protected]
75 [email protected] 75 [email protected]
76 [email protected] 76 [email protected]
77 [email protected] 77 [email protected]
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected] "a"
80 [email protected] "a" 80 [email protected] " "
81 [email protected] " " 81 [email protected] "%="
82 [email protected] "%=" 82 [email protected] " "
83 [email protected] " " 83 [email protected]
84 [email protected] 84 [email protected] "4"
85 [email protected] "4" 85 [email protected] ";"
86 [email protected] ";" 86 [email protected] "\n "
87 [email protected] "\n " 87 [email protected]
88 [email protected] 88 [email protected]
89 [email protected] 89 [email protected]
90 [email protected] 90 [email protected]
91 [email protected] 91 [email protected]
92 [email protected] 92 [email protected]
93 [email protected] 93 [email protected] "a"
94 [email protected] "a" 94 [email protected] " "
95 [email protected] " " 95 [email protected] "/="
96 [email protected] "/=" 96 [email protected] " "
97 [email protected] " " 97 [email protected]
98 [email protected] 98 [email protected] "5"
99 [email protected] "5" 99 [email protected] ";"
100 [email protected] ";" 100 [email protected] "\n "
101 [email protected] "\n " 101 [email protected]
102 [email protected] 102 [email protected]
103 [email protected] 103 [email protected]
104 [email protected] 104 [email protected]
105 [email protected] 105 [email protected]
106 [email protected] 106 [email protected]
107 [email protected] 107 [email protected] "a"
108 [email protected] "a" 108 [email protected] " "
109 [email protected] " " 109 [email protected] "|="
110 [email protected] "|=" 110 [email protected] " "
111 [email protected] " " 111 [email protected]
112 [email protected] 112 [email protected] "6"
113 [email protected] "6" 113 [email protected] ";"
114 [email protected] ";" 114 [email protected] "\n "
115 [email protected] "\n " 115 [email protected]
116 [email protected] 116 [email protected]
117 [email protected] 117 [email protected]
118 [email protected] 118 [email protected]
119 [email protected] 119 [email protected]
120 [email protected] 120 [email protected]
121 [email protected] 121 [email protected] "a"
122 [email protected] "a" 122 [email protected] " "
123 [email protected] " " 123 [email protected] "&="
124 [email protected] "&=" 124 [email protected] " "
125 [email protected] " " 125 [email protected]
126 [email protected] 126 [email protected] "7"
127 [email protected] "7" 127 [email protected] ";"
128 [email protected] ";" 128 [email protected] "\n "
129 [email protected] "\n " 129 [email protected]
130 [email protected] 130 [email protected]
131 [email protected] 131 [email protected]
132 [email protected] 132 [email protected]
133 [email protected] 133 [email protected]
134 [email protected] 134 [email protected]
135 [email protected] 135 [email protected] "a"
136 [email protected] "a" 136 [email protected] " "
137 [email protected] " " 137 [email protected] "^="
138 [email protected] "^=" 138 [email protected] " "
139 [email protected] " " 139 [email protected]
140 [email protected] 140 [email protected] "8"
141 [email protected] "8" 141 [email protected] ";"
142 [email protected] ";" 142 [email protected] "\n "
143 [email protected] "\n " 143 [email protected]
144 [email protected] 144 [email protected]
145 [email protected] 145 [email protected]
146 [email protected] 146 [email protected]
147 [email protected] 147 [email protected]
148 [email protected] 148 [email protected]
149 [email protected] 149 [email protected] "a"
150 [email protected] "a" 150 [email protected] " "
151 [email protected] " " 151 [email protected] "<="
152 [email protected] "<=" 152 [email protected] " "
153 [email protected] " " 153 [email protected]
154 [email protected] 154 [email protected] "9"
155 [email protected] "9" 155 [email protected] ";"
156 [email protected] ";" 156 [email protected] "\n "
157 [email protected] "\n " 157 [email protected]
158 [email protected] 158 [email protected]
159 [email protected] 159 [email protected]
160 [email protected] 160 [email protected]
161 [email protected] 161 [email protected]
162 [email protected] 162 [email protected]
163 [email protected] 163 [email protected] "a"
164 [email protected] "a" 164 [email protected] " "
165 [email protected] " " 165 [email protected] ">="
166 [email protected] ">=" 166 [email protected] " "
167 [email protected] " " 167 [email protected]
168 [email protected] 168 [email protected] "10"
169 [email protected] "10" 169 [email protected] ";"
170 [email protected] ";" 170 [email protected] "\n "
171 [email protected] "\n " 171 [email protected]
172 [email protected] 172 [email protected]
173 [email protected] 173 [email protected]
174 [email protected] 174 [email protected]
175 [email protected] 175 [email protected]
176 [email protected] 176 [email protected]
177 [email protected] 177 [email protected] "a"
178 [email protected] "a" 178 [email protected] " "
179 [email protected] " " 179 [email protected] ">>="
180 [email protected] ">>=" 180 [email protected] " "
181 [email protected] " " 181 [email protected]
182 [email protected] 182 [email protected] "11"
183 [email protected] "11" 183 [email protected] ";"
184 [email protected] ";" 184 [email protected] "\n "
185 [email protected] "\n " 185 [email protected]
186 [email protected] 186 [email protected]
187 [email protected] 187 [email protected]
188 [email protected] 188 [email protected]
189 [email protected] 189 [email protected]
190 [email protected] 190 [email protected]
191 [email protected] 191 [email protected] "a"
192 [email protected] "a" 192 [email protected] " "
193 [email protected] " " 193 [email protected] "<<="
194 [email protected] "<<=" 194 [email protected] " "
195 [email protected] " " 195 [email protected]
196 [email protected] 196 [email protected] "12"
197 [email protected] "12" 197 [email protected] ";"
198 [email protected] ";" 198 [email protected] "\n"
199 [email protected] "\n" 199 [email protected] "}"
200 [email protected] "}"
201 [email protected] "\n" 200 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0049_async_block.rast b/crates/ra_syntax/test_data/parser/ok/0049_async_block.rast
index 750527bb9..0569488f8 100644
--- a/crates/ra_syntax/test_data/parser/ok/0049_async_block.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0049_async_block.rast
@@ -9,28 +9,27 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected] "async"
17 [email protected] "async" 17 [email protected] " "
18 [email protected] " " 18 [email protected]
19 [email protected] 19 [email protected] "{"
20 [email protected] "{" 20 [email protected] "}"
21 [email protected] "}" 21 [email protected] ";"
22 [email protected] ";" 22 [email protected] "\n "
23 [email protected] "\n " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "async"
26 [email protected] "async" 26 [email protected] " "
27 [email protected] " " 27 [email protected] "move"
28 [email protected] "move" 28 [email protected] " "
29 [email protected] " " 29 [email protected]
30 [email protected] 30 [email protected] "{"
31 [email protected] "{" 31 [email protected] "}"
32 [email protected] "}" 32 [email protected] ";"
33 [email protected] ";" 33 [email protected] "\n"
34 [email protected] "\n" 34 [email protected] "}"
35 [email protected] "}"
36 [email protected] "\n\n" 35 [email protected] "\n\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast b/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast
index b5577e933..7847da085 100644
--- a/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast
@@ -49,9 +49,8 @@ [email protected]
49 [email protected] ")" 49 [email protected] ")"
50 [email protected] " " 50 [email protected] " "
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected] "{"
53 [email protected] "{" 53 [email protected] "}"
54 [email protected] "}"
55 [email protected] "\n\n" 54 [email protected] "\n\n"
56 [email protected] 55 [email protected]
57 [email protected] "fn" 56 [email protected] "fn"
@@ -63,30 +62,29 @@ [email protected]
63 [email protected] ")" 62 [email protected] ")"
64 [email protected] " " 63 [email protected] " "
65 [email protected] 64 [email protected]
66 [email protected] 65 [email protected] "{"
67 [email protected] "{" 66 [email protected] "\n "
68 [email protected] "\n " 67 [email protected]
69 [email protected] 68 [email protected]
70 [email protected] 69 [email protected]
71 [email protected] 70 [email protected]
72 [email protected] 71 [email protected]
73 [email protected] 72 [email protected] "foo"
74 [email protected] "foo" 73 [email protected]
75 [email protected] 74 [email protected] "("
76 [email protected] "(" 75 [email protected]
77 [email protected] 76 [email protected] "async"
78 [email protected] "async" 77 [email protected] " "
79 [email protected] " " 78 [email protected] "move"
80 [email protected] "move" 79 [email protected] " "
81 [email protected] " " 80 [email protected]
82 [email protected] 81 [email protected] "{"
83 [email protected] "{" 82 [email protected] " "
84 [email protected] " " 83 [email protected]
85 [email protected] 84 [email protected] "12"
86 [email protected] "12" 85 [email protected] " "
87 [email protected] " " 86 [email protected] "}"
88 [email protected] "}" 87 [email protected] ")"
89 [email protected] ")" 88 [email protected] "\n"
90 [email protected] "\n" 89 [email protected] "}"
91 [email protected] "}"
92 [email protected] "\n" 90 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast
index 6aacc2141..816740a7c 100644
--- a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast
@@ -38,9 +38,8 @@ [email protected]
38 [email protected] ")" 38 [email protected] ")"
39 [email protected] " " 39 [email protected] " "
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected] "{"
42 [email protected] "{" 42 [email protected] "}"
43 [email protected] "}"
44 [email protected] "\n" 43 [email protected] "\n"
45 [email protected] 44 [email protected]
46 [email protected] "fn" 45 [email protected] "fn"
@@ -72,9 +71,8 @@ [email protected]
72 [email protected] ")" 71 [email protected] ")"
73 [email protected] " " 72 [email protected] " "
74 [email protected] 73 [email protected]
75 [email protected] 74 [email protected] "{"
76 [email protected] "{" 75 [email protected] "}"
77 [email protected] "}"
78 [email protected] "\n\n" 76 [email protected] "\n\n"
79 [email protected] 77 [email protected]
80 [email protected] 78 [email protected]
@@ -185,9 +183,8 @@ [email protected]
185 [email protected] "(" 183 [email protected] "("
186 [email protected] ")" 184 [email protected] ")"
187 [email protected] 185 [email protected]
188 [email protected] 186 [email protected] "{"
189 [email protected] "{" 187 [email protected] "}"
190 [email protected] "}"
191 [email protected] "\n\n" 188 [email protected] "\n\n"
192 [email protected] 189 [email protected]
193 [email protected] "trait" 190 [email protected] "trait"
@@ -287,9 +284,8 @@ [email protected]
287 [email protected] ")" 284 [email protected] ")"
288 [email protected] " " 285 [email protected] " "
289 [email protected] 286 [email protected]
290 [email protected] 287 [email protected] "{"
291 [email protected] "{" 288 [email protected] "}"
292 [email protected] "}"
293 [email protected] "\n " 289 [email protected] "\n "
294 [email protected] 290 [email protected]
295 [email protected] "fn" 291 [email protected] "fn"
@@ -312,9 +308,8 @@ [email protected]
312 [email protected] ")" 308 [email protected] ")"
313 [email protected] " " 309 [email protected] " "
314 [email protected] 310 [email protected]
315 [email protected] 311 [email protected] "{"
316 [email protected] "{" 312 [email protected] "}"
317 [email protected] "}"
318 [email protected] "\n " 313 [email protected] "\n "
319 [email protected] 314 [email protected]
320 [email protected] "fn" 315 [email protected] "fn"
@@ -338,9 +333,8 @@ [email protected]
338 [email protected] ")" 333 [email protected] ")"
339 [email protected] " " 334 [email protected] " "
340 [email protected] 335 [email protected]
341 [email protected] 336 [email protected] "{"
342 [email protected] "{" 337 [email protected] "}"
343 [email protected] "}"
344 [email protected] "\n " 338 [email protected] "\n "
345 [email protected] 339 [email protected]
346 [email protected] "fn" 340 [email protected] "fn"
@@ -371,9 +365,8 @@ [email protected]
371 [email protected] ")" 365 [email protected] ")"
372 [email protected] " " 366 [email protected] " "
373 [email protected] 367 [email protected]
374 [email protected] 368 [email protected] "{"
375 [email protected] "{" 369 [email protected] "}"
376 [email protected] "}"
377 [email protected] "\n " 370 [email protected] "\n "
378 [email protected] 371 [email protected]
379 [email protected] "fn" 372 [email protected] "fn"
@@ -404,9 +397,8 @@ [email protected]
404 [email protected] ")" 397 [email protected] ")"
405 [email protected] " " 398 [email protected] " "
406 [email protected] 399 [email protected]
407 [email protected] 400 [email protected] "{"
408 [email protected] "{" 401 [email protected] "}"
409 [email protected] "}"
410 [email protected] "\n " 402 [email protected] "\n "
411 [email protected] 403 [email protected]
412 [email protected] "fn" 404 [email protected] "fn"
@@ -439,9 +431,8 @@ [email protected]
439 [email protected] ")" 431 [email protected] ")"
440 [email protected] " " 432 [email protected] " "
441 [email protected] 433 [email protected]
442 [email protected] 434 [email protected] "{"
443 [email protected] "{" 435 [email protected] "}"
444 [email protected] "}"
445 [email protected] "\n " 436 [email protected] "\n "
446 [email protected] 437 [email protected]
447 [email protected] "fn" 438 [email protected] "fn"
@@ -471,9 +462,8 @@ [email protected]
471 [email protected] ")" 462 [email protected] ")"
472 [email protected] " " 463 [email protected] " "
473 [email protected] 464 [email protected]
474 [email protected] 465 [email protected] "{"
475 [email protected] "{" 466 [email protected] "}"
476 [email protected] "}"
477 [email protected] "\n " 467 [email protected] "\n "
478 [email protected] 468 [email protected]
479 [email protected] "fn" 469 [email protected] "fn"
@@ -512,8 +502,7 @@ [email protected]
512 [email protected] ")" 502 [email protected] ")"
513 [email protected] " " 503 [email protected] " "
514 [email protected] 504 [email protected]
515 [email protected] 505 [email protected] "{"
516 [email protected] "{" 506 [email protected] "}"
517 [email protected] "}"
518 [email protected] "\n" 507 [email protected] "\n"
519 [email protected] "}" 508 [email protected] "}"
diff --git a/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast b/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast
index f376f86a7..65cfa7bc5 100644
--- a/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast
@@ -9,73 +9,70 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "for"
16 [email protected] "for" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected] "_x"
20 [email protected] "_x" 20 [email protected] " "
21 [email protected] " " 21 [email protected] "in"
22 [email protected] "in" 22 [email protected] " "
23 [email protected] " " 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "0"
26 [email protected] "0" 26 [email protected] " "
27 [email protected] " " 27 [email protected] ".."
28 [email protected] ".." 28 [email protected] " "
29 [email protected] " " 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected] "("
32 [email protected] "(" 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected] "0"
35 [email protected] "0" 35 [email protected] " "
36 [email protected] " " 36 [email protected] ".."
37 [email protected] ".." 37 [email protected] " "
38 [email protected] " " 38 [email protected]
39 [email protected] 39 [email protected] "{"
40 [email protected] 40 [email protected]
41 [email protected] "{" 41 [email protected]
42 [email protected] 42 [email protected] "1"
43 [email protected] 43 [email protected] " "
44 [email protected] "1" 44 [email protected] "+"
45 [email protected] " " 45 [email protected] " "
46 [email protected] "+" 46 [email protected]
47 [email protected] " " 47 [email protected] "2"
48 [email protected] 48 [email protected] "}"
49 [email protected] "2" 49 [email protected] ")"
50 [email protected] "}" 50 [email protected] "."
51 [email protected] ")" 51 [email protected]
52 [email protected] "." 52 [email protected] "sum"
53 [email protected] 53 [email protected]
54 [email protected] "sum" 54 [email protected] "::"
55 [email protected] 55 [email protected] "<"
56 [email protected] "::" 56 [email protected]
57 [email protected] "<" 57 [email protected]
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected]
60 [email protected] 60 [email protected]
61 [email protected] 61 [email protected] "u32"
62 [email protected] 62 [email protected] ">"
63 [email protected] "u32" 63 [email protected]
64 [email protected] ">" 64 [email protected] "("
65 [email protected] 65 [email protected] ")"
66 [email protected] "(" 66 [email protected] " "
67 [email protected] ")" 67 [email protected]
68 [email protected] " " 68 [email protected] "{"
69 [email protected] 69 [email protected] "\n "
70 [email protected] 70 [email protected]
71 [email protected] "{" 71 [email protected]
72 [email protected] "\n " 72 [email protected] "break"
73 [email protected] 73 [email protected] ";"
74 [email protected] 74 [email protected] "\n "
75 [email protected] "break" 75 [email protected] "}"
76 [email protected] ";" 76 [email protected] "\n"
77 [email protected] "\n " 77 [email protected] "}"
78 [email protected] "}"
79 [email protected] "\n"
80 [email protected] "}"
81 [email protected] "\n" 78 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast b/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast
index f20819bd2..d6aec7ab9 100644
--- a/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast
@@ -32,9 +32,8 @@ [email protected]
32 [email protected] ">" 32 [email protected] ">"
33 [email protected] " " 33 [email protected] " "
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "{"
36 [email protected] "{" 36 [email protected] "}"
37 [email protected] "}"
38 [email protected] "\n\n" 37 [email protected] "\n\n"
39 [email protected] 38 [email protected]
40 [email protected] "fn" 39 [email protected] "fn"
@@ -75,9 +74,8 @@ [email protected]
75 [email protected] ")" 74 [email protected] ")"
76 [email protected] " " 75 [email protected] " "
77 [email protected] 76 [email protected]
78 [email protected] 77 [email protected] "{"
79 [email protected] "{" 78 [email protected] "}"
80 [email protected] "}"
81 [email protected] "\n\n" 79 [email protected] "\n\n"
82 [email protected] 80 [email protected]
83 [email protected] "fn" 81 [email protected] "fn"
@@ -120,7 +118,6 @@ [email protected]
120 [email protected] ")" 118 [email protected] ")"
121 [email protected] " " 119 [email protected] " "
122 [email protected] 120 [email protected]
123 [email protected] 121 [email protected] "{"
124 [email protected] "{" 122 [email protected] "}"
125 [email protected] "}"
126 [email protected] "\n" 123 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast b/crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast
index dcdb3cc6d..9e0cec35f 100644
--- a/crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast
@@ -22,29 +22,28 @@ [email protected]
22 [email protected] ")" 22 [email protected] ")"
23 [email protected] " " 23 [email protected] " "
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected] "{"
26 [email protected] "{" 26 [email protected] "\n "
27 [email protected] "\n " 27 [email protected]
28 [email protected] 28 [email protected] "let"
29 [email protected] "let" 29 [email protected] " "
30 [email protected] " " 30 [email protected]
31 [email protected] 31 [email protected] "("
32 [email protected] "(" 32 [email protected] ")"
33 [email protected] ")" 33 [email protected] ":"
34 [email protected] ":" 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected] "::"
38 [email protected] "::" 38 [email protected]
39 [email protected] 39 [email protected] "X"
40 [email protected] "X" 40 [email protected] " "
41 [email protected] " " 41 [email protected] "="
42 [email protected] "=" 42 [email protected] " "
43 [email protected] " " 43 [email protected]
44 [email protected] 44 [email protected] "("
45 [email protected] "(" 45 [email protected] ")"
46 [email protected] ")" 46 [email protected] ";"
47 [email protected] ";" 47 [email protected] "\n"
48 [email protected] "\n" 48 [email protected] "}"
49 [email protected] "}"
50 [email protected] "\n" 49 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast b/crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast
index 6176a9620..7fa3033ac 100644
--- a/crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast
@@ -9,58 +9,56 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "if"
16 [email protected] "if" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected]
22 [email protected] 22 [email protected] "1.0f32"
23 [email protected] "1.0f32" 23 [email protected] "."
24 [email protected] "." 24 [email protected]
25 [email protected] 25 [email protected] "floor"
26 [email protected] "floor" 26 [email protected]
27 [email protected] 27 [email protected] "("
28 [email protected] "(" 28 [email protected] ")"
29 [email protected] ")" 29 [email protected] " "
30 [email protected] " " 30 [email protected] "as"
31 [email protected] "as" 31 [email protected] " "
32 [email protected] " " 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected] "i64"
37 [email protected] "i64" 37 [email protected] " "
38 [email protected] " " 38 [email protected] "!="
39 [email protected] "!=" 39 [email protected] " "
40 [email protected] " " 40 [email protected]
41 [email protected] 41 [email protected]
42 [email protected] 42 [email protected]
43 [email protected] 43 [email protected] "1.0f32"
44 [email protected] "1.0f32" 44 [email protected] "."
45 [email protected] "." 45 [email protected]
46 [email protected] 46 [email protected] "floor"
47 [email protected] "floor" 47 [email protected]
48 [email protected] 48 [email protected] "("
49 [email protected] "(" 49 [email protected] ")"
50 [email protected] ")" 50 [email protected] " "
51 [email protected] " " 51 [email protected] "as"
52 [email protected] "as" 52 [email protected] " "
53 [email protected] " " 53 [email protected]
54 [email protected] 54 [email protected]
55 [email protected] 55 [email protected]
56 [email protected] 56 [email protected]
57 [email protected] 57 [email protected] "i64"
58 [email protected] "i64" 58 [email protected] " "
59 [email protected] " " 59 [email protected]
60 [email protected] 60 [email protected] "{"
61 [email protected] 61 [email protected] "}"
62 [email protected] "{" 62 [email protected] "\n"
63 [email protected] "}" 63 [email protected] "}"
64 [email protected] "\n"
65 [email protected] "}"
66 [email protected] "\n" 64 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast b/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast
index 342fe23f5..d93968016 100644
--- a/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast
@@ -20,9 +20,8 @@ [email protected]
20 [email protected] ")" 20 [email protected] ")"
21 [email protected] " " 21 [email protected] " "
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected] "{"
24 [email protected] "{" 24 [email protected] "}"
25 [email protected] "}"
26 [email protected] "\n\n" 25 [email protected] "\n\n"
27 [email protected] 26 [email protected]
28 [email protected] "fn" 27 [email protected] "fn"
@@ -34,26 +33,24 @@ [email protected]
34 [email protected] ")" 33 [email protected] ")"
35 [email protected] " " 34 [email protected] " "
36 [email protected] 35 [email protected]
37 [email protected] 36 [email protected] "{"
38 [email protected] "{" 37 [email protected] "\n "
39 [email protected] "\n " 38 [email protected]
40 [email protected] 39 [email protected]
41 [email protected] 40 [email protected]
42 [email protected] 41 [email protected]
43 [email protected] 42 [email protected]
44 [email protected] 43 [email protected]
45 [email protected] 44 [email protected] "foo"
46 [email protected] "foo" 45 [email protected]
47 [email protected] 46 [email protected] "("
48 [email protected] "(" 47 [email protected]
49 [email protected] 48 [email protected] "loop"
50 [email protected] "loop" 49 [email protected] " "
51 [email protected] " " 50 [email protected]
52 [email protected] 51 [email protected] "{"
53 [email protected] 52 [email protected] "}"
54 [email protected] "{" 53 [email protected] ")"
55 [email protected] "}" 54 [email protected] ";"
56 [email protected] ")" 55 [email protected] "\n"
57 [email protected] ";" 56 [email protected] "}"
58 [email protected] "\n"
59 [email protected] "}"
diff --git a/crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast b/crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast
index 360b6e044..b5c72ee36 100644
--- a/crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast
@@ -9,89 +9,88 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected] "1"
19 [email protected] "1" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "+"
21 [email protected] "+" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected] "*"
24 [email protected] "*" 24 [email protected]
25 [email protected] 25 [email protected] "&"
26 [email protected] "&" 26 [email protected]
27 [email protected] 27 [email protected] "2"
28 [email protected] "2" 28 [email protected] " "
29 [email protected] " " 29 [email protected] "+"
30 [email protected] "+" 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected] "3"
33 [email protected] "3" 33 [email protected] ";"
34 [email protected] ";" 34 [email protected] "\n "
35 [email protected] "\n " 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected] "*"
39 [email protected] "*" 39 [email protected]
40 [email protected] 40 [email protected] "&"
41 [email protected] "&" 41 [email protected]
42 [email protected] 42 [email protected] "1"
43 [email protected] "1" 43 [email protected] " "
44 [email protected] " " 44 [email protected] "as"
45 [email protected] "as" 45 [email protected] " "
46 [email protected] " " 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected]
50 [email protected] 50 [email protected] "u64"
51 [email protected] "u64" 51 [email protected] ";"
52 [email protected] ";" 52 [email protected] "\n "
53 [email protected] "\n " 53 [email protected]
54 [email protected] 54 [email protected]
55 [email protected] 55 [email protected] "*"
56 [email protected] "*" 56 [email protected]
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected]
60 [email protected] 60 [email protected]
61 [email protected] 61 [email protected] "x"
62 [email protected] "x" 62 [email protected]
63 [email protected] 63 [email protected] "("
64 [email protected] "(" 64 [email protected]
65 [email protected] 65 [email protected] "1"
66 [email protected] "1" 66 [email protected] ")"
67 [email protected] ")" 67 [email protected] ";"
68 [email protected] ";" 68 [email protected] "\n "
69 [email protected] "\n " 69 [email protected]
70 [email protected] 70 [email protected]
71 [email protected] 71 [email protected] "&"
72 [email protected] "&" 72 [email protected]
73 [email protected] 73 [email protected]
74 [email protected] 74 [email protected]
75 [email protected] 75 [email protected]
76 [email protected] 76 [email protected]
77 [email protected] 77 [email protected] "x"
78 [email protected] "x" 78 [email protected] "["
79 [email protected] "[" 79 [email protected]
80 [email protected] 80 [email protected] "1"
81 [email protected] "1" 81 [email protected] "]"
82 [email protected] "]" 82 [email protected] ";"
83 [email protected] ";" 83 [email protected] "\n "
84 [email protected] "\n " 84 [email protected]
85 [email protected] 85 [email protected]
86 [email protected] 86 [email protected]
87 [email protected] 87 [email protected] "-"
88 [email protected] "-" 88 [email protected]
89 [email protected] 89 [email protected] "1"
90 [email protected] "1" 90 [email protected] ".."
91 [email protected] ".." 91 [email protected]
92 [email protected] 92 [email protected] "2"
93 [email protected] "2" 93 [email protected] ";"
94 [email protected] ";" 94 [email protected] "\n"
95 [email protected] "\n" 95 [email protected] "}"
96 [email protected] "}"
97 [email protected] "\n" 96 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast b/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast
index 225b1d0b6..ddcb139c1 100644
--- a/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast
@@ -9,93 +9,89 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected] "Some"
21 [email protected] "Some" 21 [email protected]
22 [email protected] 22 [email protected] "("
23 [email protected] "(" 23 [email protected]
24 [email protected] 24 [email protected] "for"
25 [email protected] "for" 25 [email protected] " "
26 [email protected] " " 26 [email protected]
27 [email protected] 27 [email protected] "_"
28 [email protected] "_" 28 [email protected] " "
29 [email protected] " " 29 [email protected] "in"
30 [email protected] "in" 30 [email protected] " "
31 [email protected] " " 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected] "["
34 [email protected] "[" 34 [email protected]
35 [email protected] 35 [email protected] "1"
36 [email protected] "1" 36 [email protected] "]"
37 [email protected] "]" 37 [email protected] "."
38 [email protected] "." 38 [email protected]
39 [email protected] 39 [email protected] "into_iter"
40 [email protected] "into_iter" 40 [email protected]
41 [email protected] 41 [email protected] "("
42 [email protected] "(" 42 [email protected] ")"
43 [email protected] ")" 43 [email protected] " "
44 [email protected] " " 44 [email protected]
45 [email protected] 45 [email protected] "{"
46 [email protected] 46 [email protected] "}"
47 [email protected] "{" 47 [email protected] ")"
48 [email protected] "}" 48 [email protected] ";"
49 [email protected] ")" 49 [email protected] "\n "
50 [email protected] ";" 50 [email protected]
51 [email protected] "\n " 51 [email protected]
52 [email protected] 52 [email protected]
53 [email protected] 53 [email protected]
54 [email protected] 54 [email protected]
55 [email protected] 55 [email protected]
56 [email protected] 56 [email protected] "Some"
57 [email protected] 57 [email protected]
58 [email protected] "Some" 58 [email protected] "("
59 [email protected] 59 [email protected]
60 [email protected] "(" 60 [email protected] "loop"
61 [email protected] 61 [email protected] " "
62 [email protected] "loop" 62 [email protected]
63 [email protected] " " 63 [email protected] "{"
64 [email protected] 64 [email protected] " "
65 [email protected] 65 [email protected]
66 [email protected] "{" 66 [email protected]
67 [email protected] " " 67 [email protected] "break"
68 [email protected] 68 [email protected] ";"
69 [email protected] 69 [email protected] " "
70 [email protected] "break" 70 [email protected] "}"
71 [email protected] ";" 71 [email protected] ")"
72 [email protected] " " 72 [email protected] ";"
73 [email protected] "}" 73 [email protected] "\n "
74 [email protected] ")" 74 [email protected]
75 [email protected] ";" 75 [email protected]
76 [email protected] "\n " 76 [email protected]
77 [email protected] 77 [email protected]
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected]
80 [email protected] 80 [email protected] "Some"
81 [email protected] 81 [email protected]
82 [email protected] 82 [email protected] "("
83 [email protected] "Some" 83 [email protected]
84 [email protected] 84 [email protected] "while"
85 [email protected] "(" 85 [email protected] " "
86 [email protected] 86 [email protected]
87 [email protected] "while" 87 [email protected]
88 [email protected] " " 88 [email protected] "true"
89 [email protected] 89 [email protected] " "
90 [email protected] 90 [email protected]
91 [email protected] "true" 91 [email protected] "{"
92 [email protected] " " 92 [email protected] "}"
93 [email protected] 93 [email protected] ")"
94 [email protected] 94 [email protected] ";"
95 [email protected] "{" 95 [email protected] "\n"
96 [email protected] "}" 96 [email protected] "}"
97 [email protected] ")"
98 [email protected] ";"
99 [email protected] "\n"
100 [email protected] "}"
101 [email protected] "\n" 97 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0060_as_range.rast b/crates/ra_syntax/test_data/parser/ok/0060_as_range.rast
index a52a08ed0..098152fc3 100644
--- a/crates/ra_syntax/test_data/parser/ok/0060_as_range.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0060_as_range.rast
@@ -9,48 +9,47 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected] "0"
19 [email protected] "0" 19 [email protected] " "
20 [email protected] " " 20 [email protected] "as"
21 [email protected] "as" 21 [email protected] " "
22 [email protected] " " 22 [email protected]
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] 26 [email protected] "usize"
27 [email protected] "usize" 27 [email protected] " "
28 [email protected] " " 28 [email protected] ".."
29 [email protected] ".." 29 [email protected] ";"
30 [email protected] ";" 30 [email protected] "\n "
31 [email protected] "\n " 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] 33 [email protected]
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected] "1"
36 [email protected] "1" 36 [email protected] " "
37 [email protected] " " 37 [email protected] "+"
38 [email protected] "+" 38 [email protected] " "
39 [email protected] " " 39 [email protected]
40 [email protected] 40 [email protected]
41 [email protected] 41 [email protected] "2"
42 [email protected] "2" 42 [email protected] " "
43 [email protected] " " 43 [email protected] "as"
44 [email protected] "as" 44 [email protected] " "
45 [email protected] " " 45 [email protected]
46 [email protected] 46 [email protected]
47 [email protected] 47 [email protected]
48 [email protected] 48 [email protected]
49 [email protected] 49 [email protected] "usize"
50 [email protected] "usize" 50 [email protected] " "
51 [email protected] " " 51 [email protected] ".."
52 [email protected] ".." 52 [email protected] ";"
53 [email protected] ";" 53 [email protected] "\n"
54 [email protected] "\n" 54 [email protected] "}"
55 [email protected] "}"
56 [email protected] "\n" 55 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast b/crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast
index b8974c942..c6e982976 100644
--- a/crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast
@@ -9,19 +9,18 @@ [email protected]
9 [email protected] ")" 9 [email protected] ")"
10 [email protected] " " 10 [email protected] " "
11 [email protected] 11 [email protected]
12 [email protected] 12 [email protected] "{"
13 [email protected] "{" 13 [email protected] "\n "
14 [email protected] "\n " 14 [email protected]
15 [email protected] 15 [email protected] "match"
16 [email protected] "match" 16 [email protected] " "
17 [email protected] " " 17 [email protected]
18 [email protected] 18 [email protected] ".."
19 [email protected] ".." 19 [email protected] " "
20 [email protected] " " 20 [email protected]
21 [email protected] 21 [email protected] "{"
22 [email protected] "{" 22 [email protected] "\n "
23 [email protected] "\n " 23 [email protected] "}"
24 [email protected] "}" 24 [email protected] "\n"
25 [email protected] "\n" 25 [email protected] "}"
26 [email protected] "}"
27 [email protected] "\n" 26 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast b/crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast
index 46f370eec..bf791ee2b 100644
--- a/crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast
@@ -70,107 +70,106 @@ [email protected]
70 [email protected] ")" 70 [email protected] ")"
71 [email protected] " " 71 [email protected] " "
72 [email protected] 72 [email protected]
73 [email protected] 73 [email protected] "{"
74 [email protected] "{" 74 [email protected] "\n "
75 [email protected] "\n " 75 [email protected]
76 [email protected] 76 [email protected] "macro"
77 [email protected] "macro" 77 [email protected] " "
78 [email protected] " " 78 [email protected]
79 [email protected] 79 [email protected] "test_merge"
80 [email protected] "test_merge" 80 [email protected]
81 [email protected] 81 [email protected]
82 [email protected] 82 [email protected] "("
83 [email protected] "(" 83 [email protected]
84 [email protected] 84 [email protected] "["
85 [email protected] "[" 85 [email protected] "$"
86 [email protected] "$" 86 [email protected]
87 [email protected] 87 [email protected] "("
88 [email protected] "(" 88 [email protected] "$"
89 [email protected] "$" 89 [email protected] "input"
90 [email protected] "input" 90 [email protected] ":"
91 [email protected] ":" 91 [email protected] "expr"
92 [email protected] "expr" 92 [email protected] ")"
93 [email protected] ")" 93 [email protected] ","
94 [email protected] "," 94 [email protected] "*"
95 [email protected] "*" 95 [email protected] " "
96 [email protected] " " 96 [email protected] "$"
97 [email protected] "$" 97 [email protected]
98 [email protected] 98 [email protected] "("
99 [email protected] "(" 99 [email protected] ","
100 [email protected] "," 100 [email protected] ")"
101 [email protected] ")" 101 [email protected] "*"
102 [email protected] "*" 102 [email protected] "]"
103 [email protected] "]" 103 [email protected] ","
104 [email protected] "," 104 [email protected] " "
105 [email protected] " " 105 [email protected]
106 [email protected] 106 [email protected] "["
107 [email protected] "[" 107 [email protected] "$"
108 [email protected] "$" 108 [email protected]
109 [email protected] 109 [email protected] "("
110 [email protected] "(" 110 [email protected] "$"
111 [email protected] "$" 111 [email protected] "output"
112 [email protected] "output" 112 [email protected] ":"
113 [email protected] ":" 113 [email protected] "expr"
114 [email protected] "expr" 114 [email protected] ")"
115 [email protected] ")" 115 [email protected] ","
116 [email protected] "," 116 [email protected] "*"
117 [email protected] "*" 117 [email protected] " "
118 [email protected] " " 118 [email protected] "$"
119 [email protected] "$" 119 [email protected]
120 [email protected] 120 [email protected] "("
121 [email protected] "(" 121 [email protected] ","
122 [email protected] "," 122 [email protected] ")"
123 [email protected] ")" 123 [email protected] "*"
124 [email protected] "*" 124 [email protected] "]"
125 [email protected] "]" 125 [email protected] ")"
126 [email protected] ")" 126 [email protected] " "
127 [email protected] " " 127 [email protected]
128 [email protected] 128 [email protected] "{"
129 [email protected] "{" 129 [email protected] "\n "
130 [email protected] "\n " 130 [email protected] "assert_eq"
131 [email protected] "assert_eq" 131 [email protected] "!"
132 [email protected] "!" 132 [email protected]
133 [email protected] 133 [email protected] "("
134 [email protected] "(" 134 [email protected] "\n "
135 [email protected] "\n " 135 [email protected] "merge_use_trees"
136 [email protected] "merge_use_trees" 136 [email protected]
137 [email protected] 137 [email protected] "("
138 [email protected] "(" 138 [email protected] "parse_use_trees"
139 [email protected] "parse_use_trees" 139 [email protected] "!"
140 [email protected] "!" 140 [email protected]
141 [email protected] 141 [email protected] "("
142 [email protected] "(" 142 [email protected] "$"
143 [email protected] "$" 143 [email protected]
144 [email protected] 144 [email protected] "("
145 [email protected] "(" 145 [email protected] "$"
146 [email protected] "$" 146 [email protected] "input"
147 [email protected] "input" 147 [email protected] ","
148 [email protected] "," 148 [email protected] ")"
149 [email protected] ")" 149 [email protected] "*"
150 [email protected] "*" 150 [email protected] ")"
151 [email protected] ")" 151 [email protected] ")"
152 [email protected] ")" 152 [email protected] ","
153 [email protected] "," 153 [email protected] "\n "
154 [email protected] "\n " 154 [email protected] "parse_use_trees"
155 [email protected] "parse_use_trees" 155 [email protected] "!"
156 [email protected] "!" 156 [email protected]
157 [email protected] 157 [email protected] "("
158 [email protected] "(" 158 [email protected] "$"
159 [email protected] "$" 159 [email protected]
160 [email protected] 160 [email protected] "("
161 [email protected] "(" 161 [email protected] "$"
162 [email protected] "$" 162 [email protected] "output"
163 [email protected] "output" 163 [email protected] ","
164 [email protected] "," 164 [email protected] ")"
165 [email protected] ")" 165 [email protected] "*"
166 [email protected] "*" 166 [email protected] ")"
167 [email protected] ")" 167 [email protected] ","
168 [email protected] "," 168 [email protected] "\n "
169 [email protected] "\n " 169 [email protected] ")"
170 [email protected] ")" 170 [email protected] ";"
171 [email protected] ";" 171 [email protected] "\n "
172 [email protected] "\n " 172 [email protected] "}"
173 [email protected] "}" 173 [email protected] "\n"
174 [email protected] "\n" 174 [email protected] "}"
175 [email protected] "}"
176 [email protected] "\n" 175 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast b/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast
index 1cd77aa14..886b211d0 100644
--- a/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast
@@ -47,9 +47,8 @@ [email protected]
47 [email protected] ")" 47 [email protected] ")"
48 [email protected] " " 48 [email protected] " "
49 [email protected] 49 [email protected]
50 [email protected] 50 [email protected] "{"
51 [email protected] "{" 51 [email protected] "}"
52 [email protected] "}"
53 [email protected] "\n " 52 [email protected] "\n "
54 [email protected] 53 [email protected]
55 [email protected] "fn" 54 [email protected] "fn"
@@ -90,9 +89,8 @@ [email protected]
90 [email protected] ")" 89 [email protected] ")"
91 [email protected] " " 90 [email protected] " "
92 [email protected] 91 [email protected]
93 [email protected] 92 [email protected] "{"
94 [email protected] "{" 93 [email protected] "}"
95 [email protected] "}"
96 [email protected] "\n " 94 [email protected] "\n "
97 [email protected] 95 [email protected]
98 [email protected] "fn" 96 [email protected] "fn"
@@ -122,9 +120,8 @@ [email protected]
122 [email protected] ")" 120 [email protected] ")"
123 [email protected] " " 121 [email protected] " "
124 [email protected] 122 [email protected]
125 [email protected] 123 [email protected] "{"
126 [email protected] "{" 124 [email protected] "}"
127 [email protected] "}"
128 [email protected] "\n " 125 [email protected] "\n "
129 [email protected] 126 [email protected]
130 [email protected] "fn" 127 [email protected] "fn"
@@ -155,9 +152,8 @@ [email protected]
155 [email protected] ")" 152 [email protected] ")"
156 [email protected] " " 153 [email protected] " "
157 [email protected] 154 [email protected]
158 [email protected] 155 [email protected] "{"
159 [email protected] "{" 156 [email protected] "}"
160 [email protected] "}"
161 [email protected] "\n " 157 [email protected] "\n "
162 [email protected] 158 [email protected]
163 [email protected] "fn" 159 [email protected] "fn"
diff --git a/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast b/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast
index 4f9a14066..a0423806c 100644
--- a/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast
@@ -50,9 +50,8 @@ [email protected]
50 [email protected] ")" 50 [email protected] ")"
51 [email protected] " " 51 [email protected] " "
52 [email protected] 52 [email protected]
53 [email protected] 53 [email protected] "{"
54 [email protected] "{" 54 [email protected] "}"
55 [email protected] "}"
56 [email protected] "\n " 55 [email protected] "\n "
57 [email protected] 56 [email protected]
58 [email protected] "fn" 57 [email protected] "fn"
@@ -93,9 +92,8 @@ [email protected]
93 [email protected] ")" 92 [email protected] ")"
94 [email protected] " " 93 [email protected] " "
95 [email protected] 94 [email protected]
96 [email protected] 95 [email protected] "{"
97 [email protected] "{" 96 [email protected] "}"
98 [email protected] "}"
99 [email protected] "\n " 97 [email protected] "\n "
100 [email protected] 98 [email protected]
101 [email protected] "fn" 99 [email protected] "fn"
@@ -125,9 +123,8 @@ [email protected]
125 [email protected] ")" 123 [email protected] ")"
126 [email protected] " " 124 [email protected] " "
127 [email protected] 125 [email protected]
128 [email protected] 126 [email protected] "{"
129 [email protected] "{" 127 [email protected] "}"
130 [email protected] "}"
131 [email protected] "\n " 128 [email protected] "\n "
132 [email protected] 129 [email protected]
133 [email protected] "fn" 130 [email protected] "fn"
@@ -158,9 +155,8 @@ [email protected]
158 [email protected] ")" 155 [email protected] ")"
159 [email protected] " " 156 [email protected] " "
160 [email protected] 157 [email protected]
161 [email protected] 158 [email protected] "{"
162 [email protected] "{" 159 [email protected] "}"
163 [email protected] "}"
164 [email protected] "\n" 160 [email protected] "\n"
165 [email protected] "}" 161 [email protected] "}"
166 [email protected] "\n" 162 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast b/crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast
index 3294f4901..d1fffdd63 100644
--- a/crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast
@@ -11,7 +11,6 @@ [email protected]
11 [email protected] ")" 11 [email protected] ")"
12 [email protected] " " 12 [email protected] " "
13 [email protected] 13 [email protected]
14 [email protected] 14 [email protected] "{"
15 [email protected] "{" 15 [email protected] "}"
16 [email protected] "}"
17 [email protected] "\n" 16 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast b/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
index 633b14000..eb2f8eb3c 100644
--- a/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
@@ -55,7 +55,6 @@ [email protected]
55 [email protected] "Send" 55 [email protected] "Send"
56 [email protected] " " 56 [email protected] " "
57 [email protected] 57 [email protected]
58 [email protected] 58 [email protected] "{"
59 [email protected] "{" 59 [email protected] "}"
60 [email protected] "}"
61 [email protected] "\n" 60 [email protected] "\n"
diff --git a/crates/rust-analyzer/src/caps.rs b/crates/rust-analyzer/src/caps.rs
index e22ab8402..44222d8bd 100644
--- a/crates/rust-analyzer/src/caps.rs
+++ b/crates/rust-analyzer/src/caps.rs
@@ -3,13 +3,13 @@
3use crate::semantic_tokens; 3use crate::semantic_tokens;
4 4
5use lsp_types::{ 5use lsp_types::{
6 CallHierarchyServerCapability, CodeActionProviderCapability, CodeLensOptions, 6 CallHierarchyServerCapability, CodeActionOptions, CodeActionProviderCapability,
7 CompletionOptions, DocumentOnTypeFormattingOptions, FoldingRangeProviderCapability, 7 CodeLensOptions, CompletionOptions, DocumentOnTypeFormattingOptions,
8 ImplementationProviderCapability, RenameOptions, RenameProviderCapability, SaveOptions, 8 FoldingRangeProviderCapability, ImplementationProviderCapability, RenameOptions,
9 SelectionRangeProviderCapability, SemanticTokensDocumentProvider, SemanticTokensLegend, 9 RenameProviderCapability, SaveOptions, SelectionRangeProviderCapability,
10 SemanticTokensOptions, ServerCapabilities, SignatureHelpOptions, TextDocumentSyncCapability, 10 SemanticTokensDocumentProvider, SemanticTokensLegend, SemanticTokensOptions,
11 TextDocumentSyncKind, TextDocumentSyncOptions, TypeDefinitionProviderCapability, 11 ServerCapabilities, SignatureHelpOptions, TextDocumentSyncCapability, TextDocumentSyncKind,
12 WorkDoneProgressOptions, 12 TextDocumentSyncOptions, TypeDefinitionProviderCapability, WorkDoneProgressOptions,
13}; 13};
14 14
15pub fn server_capabilities() -> ServerCapabilities { 15pub fn server_capabilities() -> ServerCapabilities {
@@ -40,7 +40,20 @@ pub fn server_capabilities() -> ServerCapabilities {
40 document_highlight_provider: Some(true), 40 document_highlight_provider: Some(true),
41 document_symbol_provider: Some(true), 41 document_symbol_provider: Some(true),
42 workspace_symbol_provider: Some(true), 42 workspace_symbol_provider: Some(true),
43 code_action_provider: Some(CodeActionProviderCapability::Simple(true)), 43 code_action_provider: Some(CodeActionProviderCapability::Options(CodeActionOptions {
44 // Advertise support for all built-in CodeActionKinds
45 code_action_kinds: Some(vec![
46 lsp_types::code_action_kind::EMPTY.to_string(),
47 lsp_types::code_action_kind::QUICKFIX.to_string(),
48 lsp_types::code_action_kind::REFACTOR.to_string(),
49 lsp_types::code_action_kind::REFACTOR_EXTRACT.to_string(),
50 lsp_types::code_action_kind::REFACTOR_INLINE.to_string(),
51 lsp_types::code_action_kind::REFACTOR_REWRITE.to_string(),
52 lsp_types::code_action_kind::SOURCE.to_string(),
53 lsp_types::code_action_kind::SOURCE_ORGANIZE_IMPORTS.to_string(),
54 ]),
55 work_done_progress_options: Default::default(),
56 })),
44 code_lens_provider: Some(CodeLensOptions { resolve_provider: Some(true) }), 57 code_lens_provider: Some(CodeLensOptions { resolve_provider: Some(true) }),
45 document_formatting_provider: Some(true), 58 document_formatting_provider: Some(true),
46 document_range_formatting_provider: None, 59 document_range_formatting_provider: None,
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs
index 74a63e32a..15b7c6912 100644
--- a/crates/rust-analyzer/src/config.rs
+++ b/crates/rust-analyzer/src/config.rs
@@ -49,7 +49,6 @@ pub enum FilesWatcher {
49 49
50#[derive(Debug, Clone)] 50#[derive(Debug, Clone)]
51pub struct NotificationsConfig { 51pub struct NotificationsConfig {
52 pub workspace_loaded: bool,
53 pub cargo_toml_not_found: bool, 52 pub cargo_toml_not_found: bool,
54} 53}
55 54
@@ -70,6 +69,7 @@ pub struct ClientCapsConfig {
70 pub location_link: bool, 69 pub location_link: bool,
71 pub line_folding_only: bool, 70 pub line_folding_only: bool,
72 pub hierarchical_symbols: bool, 71 pub hierarchical_symbols: bool,
72 pub code_action_literals: bool,
73} 73}
74 74
75impl Default for Config { 75impl Default for Config {
@@ -82,10 +82,7 @@ impl Default for Config {
82 lru_capacity: None, 82 lru_capacity: None,
83 proc_macro_srv: None, 83 proc_macro_srv: None,
84 files: FilesConfig { watcher: FilesWatcher::Notify, exclude: Vec::new() }, 84 files: FilesConfig { watcher: FilesWatcher::Notify, exclude: Vec::new() },
85 notifications: NotificationsConfig { 85 notifications: NotificationsConfig { cargo_toml_not_found: true },
86 workspace_loaded: true,
87 cargo_toml_not_found: true,
88 },
89 86
90 cargo: CargoConfig::default(), 87 cargo: CargoConfig::default(),
91 rustfmt: RustfmtConfig::Rustfmt { extra_args: Vec::new() }, 88 rustfmt: RustfmtConfig::Rustfmt { extra_args: Vec::new() },
@@ -128,7 +125,6 @@ impl Config {
128 Some("client") => FilesWatcher::Client, 125 Some("client") => FilesWatcher::Client,
129 Some("notify") | _ => FilesWatcher::Notify 126 Some("notify") | _ => FilesWatcher::Notify
130 }; 127 };
131 set(value, "/notifications/workspaceLoaded", &mut self.notifications.workspace_loaded);
132 set(value, "/notifications/cargoTomlNotFound", &mut self.notifications.cargo_toml_not_found); 128 set(value, "/notifications/cargoTomlNotFound", &mut self.notifications.cargo_toml_not_found);
133 129
134 set(value, "/cargo/noDefaultFeatures", &mut self.cargo.no_default_features); 130 set(value, "/cargo/noDefaultFeatures", &mut self.cargo.no_default_features);
@@ -221,6 +217,11 @@ impl Config {
221 { 217 {
222 self.client_caps.hierarchical_symbols = value 218 self.client_caps.hierarchical_symbols = value
223 } 219 }
220 if let Some(value) =
221 caps.code_action.as_ref().and_then(|it| Some(it.code_action_literal_support.is_some()))
222 {
223 self.client_caps.code_action_literals = value;
224 }
224 self.completion.allow_snippets(false); 225 self.completion.allow_snippets(false);
225 if let Some(completion) = &caps.completion { 226 if let Some(completion) = &caps.completion {
226 if let Some(completion_item) = &completion.completion_item { 227 if let Some(completion_item) = &completion.completion_item {
diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs
index 7e7f05b6d..401fae755 100644
--- a/crates/rust-analyzer/src/main_loop.rs
+++ b/crates/rust-analyzer/src/main_loop.rs
@@ -415,8 +415,7 @@ fn loop_turn(
415 }); 415 });
416 } 416 }
417 417
418 let show_progress = 418 let show_progress = !loop_state.workspace_loaded;
419 !loop_state.workspace_loaded && world_state.config.notifications.workspace_loaded;
420 419
421 if !loop_state.workspace_loaded 420 if !loop_state.workspace_loaded
422 && loop_state.roots_scanned == loop_state.roots_total 421 && loop_state.roots_scanned == loop_state.roots_total
diff --git a/crates/rust-analyzer/src/main_loop/handlers.rs b/crates/rust-analyzer/src/main_loop/handlers.rs
index 8db2dfa0c..c7a96ba93 100644
--- a/crates/rust-analyzer/src/main_loop/handlers.rs
+++ b/crates/rust-analyzer/src/main_loop/handlers.rs
@@ -19,8 +19,7 @@ use lsp_types::{
19 TextEdit, Url, WorkspaceEdit, 19 TextEdit, Url, WorkspaceEdit,
20}; 20};
21use ra_ide::{ 21use ra_ide::{
22 Assist, AssistId, FileId, FilePosition, FileRange, Query, RangeInfo, Runnable, RunnableKind, 22 Assist, FileId, FilePosition, FileRange, Query, RangeInfo, Runnable, RunnableKind, SearchScope,
23 SearchScope,
24}; 23};
25use ra_prof::profile; 24use ra_prof::profile;
26use ra_syntax::{AstNode, SyntaxKind, TextRange, TextSize}; 25use ra_syntax::{AstNode, SyntaxKind, TextRange, TextSize};
@@ -47,11 +46,11 @@ use crate::{
47pub fn handle_analyzer_status(world: WorldSnapshot, _: ()) -> Result<String> { 46pub fn handle_analyzer_status(world: WorldSnapshot, _: ()) -> Result<String> {
48 let _p = profile("handle_analyzer_status"); 47 let _p = profile("handle_analyzer_status");
49 let mut buf = world.status(); 48 let mut buf = world.status();
50 format_to!(buf, "\n\nrequests:"); 49 format_to!(buf, "\n\nrequests:\n");
51 let requests = world.latest_requests.read(); 50 let requests = world.latest_requests.read();
52 for (is_last, r) in requests.iter() { 51 for (is_last, r) in requests.iter() {
53 let mark = if is_last { "*" } else { " " }; 52 let mark = if is_last { "*" } else { " " };
54 format_to!(buf, "{}{:4} {:<36}{}ms", mark, r.id, r.method, r.duration.as_millis()); 53 format_to!(buf, "{}{:4} {:<36}{}ms\n", mark, r.id, r.method, r.duration.as_millis());
55 } 54 }
56 Ok(buf) 55 Ok(buf)
57} 56}
@@ -401,11 +400,7 @@ pub fn handle_runnables(
401 range: Default::default(), 400 range: Default::default(),
402 label: format!("cargo {} -p {}", cmd, spec.package), 401 label: format!("cargo {} -p {}", cmd, spec.package),
403 bin: "cargo".to_string(), 402 bin: "cargo".to_string(),
404 args: { 403 args: vec![cmd.to_string(), "--package".to_string(), spec.package.clone()],
405 let mut args = vec![cmd.to_string()];
406 spec.clone().push_to(&mut args);
407 args
408 },
409 extra_args: Vec::new(), 404 extra_args: Vec::new(),
410 env: FxHashMap::default(), 405 env: FxHashMap::default(),
411 cwd: workspace_root.map(|root| root.to_owned()), 406 cwd: workspace_root.map(|root| root.to_owned()),
@@ -702,15 +697,9 @@ fn create_single_code_action(assist: Assist, world: &WorldSnapshot) -> Result<Co
702 arguments: Some(vec![arg]), 697 arguments: Some(vec![arg]),
703 }; 698 };
704 699
705 let kind = match assist.id {
706 AssistId("introduce_variable") => Some("refactor.extract.variable".to_string()),
707 AssistId("add_custom_impl") => Some("refactor.rewrite.add_custom_impl".to_string()),
708 _ => None,
709 };
710
711 Ok(CodeAction { 700 Ok(CodeAction {
712 title, 701 title,
713 kind, 702 kind: Some(String::new()),
714 diagnostics: None, 703 diagnostics: None,
715 edit: None, 704 edit: None,
716 command: Some(command), 705 command: Some(command),
@@ -812,6 +801,23 @@ pub fn handle_code_action(
812 } 801 }
813 } 802 }
814 803
804 // If the client only supports commands then filter the list
805 // and remove and actions that depend on edits.
806 if !world.config.client_caps.code_action_literals {
807 // FIXME: use drain_filter once it hits stable.
808 res = res
809 .into_iter()
810 .filter_map(|it| match it {
811 cmd @ lsp_types::CodeActionOrCommand::Command(_) => Some(cmd),
812 lsp_types::CodeActionOrCommand::CodeAction(action) => match action.command {
813 Some(cmd) if action.edit.is_none() => {
814 Some(lsp_types::CodeActionOrCommand::Command(cmd))
815 }
816 _ => None,
817 },
818 })
819 .collect();
820 }
815 Ok(Some(res)) 821 Ok(Some(res))
816} 822}
817 823
diff --git a/crates/rust-analyzer/tests/heavy_tests/main.rs b/crates/rust-analyzer/tests/heavy_tests/main.rs
index 07b8114c6..a218da76d 100644
--- a/crates/rust-analyzer/tests/heavy_tests/main.rs
+++ b/crates/rust-analyzer/tests/heavy_tests/main.rs
@@ -149,7 +149,7 @@ fn main() {}
149 "cwd": server.path().join("foo") 149 "cwd": server.path().join("foo")
150 }, 150 },
151 { 151 {
152 "args": [ "check", "--package", "foo", "--test", "spam" ], 152 "args": [ "check", "--package", "foo" ],
153 "extraArgs": [], 153 "extraArgs": [],
154 "bin": "cargo", 154 "bin": "cargo",
155 "env": {}, 155 "env": {},
@@ -161,7 +161,7 @@ fn main() {}
161 "cwd": server.path().join("foo") 161 "cwd": server.path().join("foo")
162 }, 162 },
163 { 163 {
164 "args": [ "test", "--package", "foo", "--test", "spam" ], 164 "args": [ "test", "--package", "foo" ],
165 "extraArgs": [], 165 "extraArgs": [],
166 "bin": "cargo", 166 "bin": "cargo",
167 "env": {}, 167 "env": {},
diff --git a/crates/rust-analyzer/tests/heavy_tests/support.rs b/crates/rust-analyzer/tests/heavy_tests/support.rs
index e4fe3411a..8d47ee4f6 100644
--- a/crates/rust-analyzer/tests/heavy_tests/support.rs
+++ b/crates/rust-analyzer/tests/heavy_tests/support.rs
@@ -77,7 +77,11 @@ impl<'a> Project<'a> {
77 let roots = self.roots.into_iter().map(|root| tmp_dir.path().join(root)).collect(); 77 let roots = self.roots.into_iter().map(|root| tmp_dir.path().join(root)).collect();
78 78
79 let mut config = Config { 79 let mut config = Config {
80 client_caps: ClientCapsConfig { location_link: true, ..Default::default() }, 80 client_caps: ClientCapsConfig {
81 location_link: true,
82 code_action_literals: true,
83 ..Default::default()
84 },
81 with_sysroot: self.with_sysroot, 85 with_sysroot: self.with_sysroot,
82 ..Config::default() 86 ..Config::default()
83 }; 87 };