├── .cargo
└── config.toml
├── .editorconfig
├── .git-blame-ignore-revs
├── .gitattributes
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ ├── feature_request.md
│ └── question.md
├── actions
│ └── github-release
│ │ ├── Dockerfile
│ │ ├── README.md
│ │ ├── action.yml
│ │ ├── main.js
│ │ └── package.json
├── pull_request_template.md
├── rust.json
└── workflows
│ ├── ci.yaml
│ ├── release.yaml
│ └── verus.yml
├── .gitignore
├── .typos.toml
├── .vscode
├── extensions.json
├── launch.json
└── tasks.json
├── CONTRIBUTING.md
├── Cargo.lock
├── Cargo.toml
├── LICENSE-APACHE
├── LICENSE-MIT
├── PRIVACY.md
├── README.md
├── assets
├── logo-square.svg
└── logo-wide.svg
├── bench_data
├── glorious_old_parser
└── numerous_macro_rules
├── clippy.toml
├── crates
├── base-db
│ ├── Cargo.toml
│ └── src
│ │ ├── change.rs
│ │ ├── input.rs
│ │ └── lib.rs
├── cfg
│ ├── Cargo.toml
│ └── src
│ │ ├── cfg_expr.rs
│ │ ├── dnf.rs
│ │ ├── lib.rs
│ │ └── tests.rs
├── flycheck
│ ├── Cargo.toml
│ └── src
│ │ ├── command.rs
│ │ ├── lib.rs
│ │ └── test_runner.rs
├── hir-def
│ ├── Cargo.toml
│ └── src
│ │ ├── attr.rs
│ │ ├── body.rs
│ │ ├── body
│ │ ├── lower.rs
│ │ ├── pretty.rs
│ │ ├── scope.rs
│ │ ├── tests.rs
│ │ └── tests
│ │ │ └── block.rs
│ │ ├── builtin_type.rs
│ │ ├── child_by_source.rs
│ │ ├── data.rs
│ │ ├── data
│ │ └── adt.rs
│ │ ├── db.rs
│ │ ├── dyn_map.rs
│ │ ├── dyn_map
│ │ └── keys.rs
│ │ ├── expander.rs
│ │ ├── find_path.rs
│ │ ├── generics.rs
│ │ ├── hir.rs
│ │ ├── hir
│ │ ├── format_args.rs
│ │ └── type_ref.rs
│ │ ├── import_map.rs
│ │ ├── item_scope.rs
│ │ ├── item_tree.rs
│ │ ├── item_tree
│ │ ├── lower.rs
│ │ ├── pretty.rs
│ │ └── tests.rs
│ │ ├── lang_item.rs
│ │ ├── lib.rs
│ │ ├── lower.rs
│ │ ├── macro_expansion_tests
│ │ ├── builtin_derive_macro.rs
│ │ ├── builtin_fn_macro.rs
│ │ ├── mbe.rs
│ │ ├── mbe
│ │ │ ├── matching.rs
│ │ │ ├── meta_syntax.rs
│ │ │ ├── metavar_expr.rs
│ │ │ ├── regression.rs
│ │ │ └── tt_conversion.rs
│ │ ├── mod.rs
│ │ └── proc_macros.rs
│ │ ├── nameres.rs
│ │ ├── nameres
│ │ ├── attr_resolution.rs
│ │ ├── collector.rs
│ │ ├── diagnostics.rs
│ │ ├── mod_resolution.rs
│ │ ├── path_resolution.rs
│ │ ├── proc_macro.rs
│ │ ├── tests.rs
│ │ └── tests
│ │ │ ├── globs.rs
│ │ │ ├── incremental.rs
│ │ │ ├── macros.rs
│ │ │ ├── mod_resolution.rs
│ │ │ └── primitives.rs
│ │ ├── path.rs
│ │ ├── path
│ │ └── lower.rs
│ │ ├── per_ns.rs
│ │ ├── pretty.rs
│ │ ├── resolver.rs
│ │ ├── src.rs
│ │ ├── test_db.rs
│ │ ├── trace.rs
│ │ └── visibility.rs
├── hir-expand
│ ├── Cargo.toml
│ └── src
│ │ ├── attrs.rs
│ │ ├── builtin_attr_macro.rs
│ │ ├── builtin_derive_macro.rs
│ │ ├── builtin_fn_macro.rs
│ │ ├── cfg_process.rs
│ │ ├── change.rs
│ │ ├── db.rs
│ │ ├── declarative.rs
│ │ ├── eager.rs
│ │ ├── files.rs
│ │ ├── fixup.rs
│ │ ├── hygiene.rs
│ │ ├── inert_attr_macro.rs
│ │ ├── lib.rs
│ │ ├── mod_path.rs
│ │ ├── name.rs
│ │ ├── proc_macro.rs
│ │ ├── quote.rs
│ │ └── span_map.rs
├── hir-ty
│ ├── Cargo.toml
│ └── src
│ │ ├── autoderef.rs
│ │ ├── builder.rs
│ │ ├── chalk_db.rs
│ │ ├── chalk_ext.rs
│ │ ├── consteval.rs
│ │ ├── consteval
│ │ ├── tests.rs
│ │ └── tests
│ │ │ └── intrinsics.rs
│ │ ├── db.rs
│ │ ├── diagnostics.rs
│ │ ├── diagnostics
│ │ ├── decl_check.rs
│ │ ├── decl_check
│ │ │ └── case_conv.rs
│ │ ├── expr.rs
│ │ ├── match_check.rs
│ │ ├── match_check
│ │ │ ├── pat_analysis.rs
│ │ │ └── pat_util.rs
│ │ └── unsafe_check.rs
│ │ ├── display.rs
│ │ ├── generics.rs
│ │ ├── infer.rs
│ │ ├── infer
│ │ ├── cast.rs
│ │ ├── closure.rs
│ │ ├── coerce.rs
│ │ ├── expr.rs
│ │ ├── mutability.rs
│ │ ├── pat.rs
│ │ ├── path.rs
│ │ └── unify.rs
│ │ ├── inhabitedness.rs
│ │ ├── interner.rs
│ │ ├── lang_items.rs
│ │ ├── layout.rs
│ │ ├── layout
│ │ ├── adt.rs
│ │ ├── target.rs
│ │ ├── tests.rs
│ │ └── tests
│ │ │ └── closure.rs
│ │ ├── lib.rs
│ │ ├── lower.rs
│ │ ├── mapping.rs
│ │ ├── method_resolution.rs
│ │ ├── mir.rs
│ │ ├── mir
│ │ ├── borrowck.rs
│ │ ├── eval.rs
│ │ ├── eval
│ │ │ ├── shim.rs
│ │ │ ├── shim
│ │ │ │ └── simd.rs
│ │ │ └── tests.rs
│ │ ├── lower.rs
│ │ ├── lower
│ │ │ ├── as_place.rs
│ │ │ └── pattern_matching.rs
│ │ ├── monomorphization.rs
│ │ └── pretty.rs
│ │ ├── primitive.rs
│ │ ├── test_db.rs
│ │ ├── tests.rs
│ │ ├── tests
│ │ ├── coercion.rs
│ │ ├── diagnostics.rs
│ │ ├── display_source_code.rs
│ │ ├── incremental.rs
│ │ ├── macros.rs
│ │ ├── method_resolution.rs
│ │ ├── never_type.rs
│ │ ├── patterns.rs
│ │ ├── regression.rs
│ │ ├── simple.rs
│ │ └── traits.rs
│ │ ├── tls.rs
│ │ ├── traits.rs
│ │ └── utils.rs
├── hir
│ ├── Cargo.toml
│ └── src
│ │ ├── attrs.rs
│ │ ├── db.rs
│ │ ├── diagnostics.rs
│ │ ├── display.rs
│ │ ├── from_id.rs
│ │ ├── has_source.rs
│ │ ├── lib.rs
│ │ ├── semantics.rs
│ │ ├── semantics
│ │ └── source_to_def.rs
│ │ ├── source_analyzer.rs
│ │ ├── symbols.rs
│ │ ├── term_search.rs
│ │ └── term_search
│ │ ├── expr.rs
│ │ └── tactics.rs
├── ide-assists
│ ├── Cargo.toml
│ └── src
│ │ ├── assist_config.rs
│ │ ├── assist_context.rs
│ │ ├── handlers
│ │ ├── add_braces.rs
│ │ ├── add_explicit_type.rs
│ │ ├── add_label_to_loop.rs
│ │ ├── add_lifetime_to_type.rs
│ │ ├── add_missing_impl_members.rs
│ │ ├── add_missing_match_arms.rs
│ │ ├── add_return_type.rs
│ │ ├── add_turbo_fish.rs
│ │ ├── apply_demorgan.rs
│ │ ├── auto_import.rs
│ │ ├── bind_unused_param.rs
│ │ ├── bool_to_enum.rs
│ │ ├── change_visibility.rs
│ │ ├── convert_bool_then.rs
│ │ ├── convert_comment_block.rs
│ │ ├── convert_comment_from_or_to_doc.rs
│ │ ├── convert_from_to_tryfrom.rs
│ │ ├── convert_integer_literal.rs
│ │ ├── convert_into_to_from.rs
│ │ ├── convert_iter_for_each_to_for.rs
│ │ ├── convert_let_else_to_match.rs
│ │ ├── convert_match_to_let_else.rs
│ │ ├── convert_named_struct_to_tuple_struct.rs
│ │ ├── convert_nested_function_to_closure.rs
│ │ ├── convert_to_guarded_return.rs
│ │ ├── convert_tuple_return_type_to_struct.rs
│ │ ├── convert_tuple_struct_to_named_struct.rs
│ │ ├── convert_two_arm_bool_match_to_matches_macro.rs
│ │ ├── convert_while_to_loop.rs
│ │ ├── destructure_struct_binding.rs
│ │ ├── destructure_tuple_binding.rs
│ │ ├── desugar_doc_comment.rs
│ │ ├── expand_glob_import.rs
│ │ ├── extract_expressions_from_format_string.rs
│ │ ├── extract_function.rs
│ │ ├── extract_module.rs
│ │ ├── extract_struct_from_enum_variant.rs
│ │ ├── extract_type_alias.rs
│ │ ├── extract_variable.rs
│ │ ├── fill_record_pattern_fields.rs
│ │ ├── fix_visibility.rs
│ │ ├── flip_binexpr.rs
│ │ ├── flip_comma.rs
│ │ ├── flip_trait_bound.rs
│ │ ├── generate_constant.rs
│ │ ├── generate_default_from_enum_variant.rs
│ │ ├── generate_default_from_new.rs
│ │ ├── generate_delegate_methods.rs
│ │ ├── generate_delegate_trait.rs
│ │ ├── generate_deref.rs
│ │ ├── generate_derive.rs
│ │ ├── generate_documentation_template.rs
│ │ ├── generate_enum_is_method.rs
│ │ ├── generate_enum_projection_method.rs
│ │ ├── generate_enum_variant.rs
│ │ ├── generate_from_impl_for_enum.rs
│ │ ├── generate_function.rs
│ │ ├── generate_getter_or_setter.rs
│ │ ├── generate_impl.rs
│ │ ├── generate_is_empty_from_len.rs
│ │ ├── generate_mut_trait_impl.rs
│ │ ├── generate_new.rs
│ │ ├── generate_trait_from_impl.rs
│ │ ├── inline_call.rs
│ │ ├── inline_const_as_literal.rs
│ │ ├── inline_local_variable.rs
│ │ ├── inline_macro.rs
│ │ ├── inline_type_alias.rs
│ │ ├── into_to_qualified_from.rs
│ │ ├── introduce_named_generic.rs
│ │ ├── introduce_named_lifetime.rs
│ │ ├── invert_if.rs
│ │ ├── merge_imports.rs
│ │ ├── merge_match_arms.rs
│ │ ├── merge_nested_if.rs
│ │ ├── move_bounds.rs
│ │ ├── move_const_to_impl.rs
│ │ ├── move_from_mod_rs.rs
│ │ ├── move_guard.rs
│ │ ├── move_module_to_file.rs
│ │ ├── move_to_mod_rs.rs
│ │ ├── normalize_import.rs
│ │ ├── number_representation.rs
│ │ ├── promote_local_to_const.rs
│ │ ├── proof_action.rs
│ │ ├── proof_action
│ │ │ ├── apply_induction.rs
│ │ │ ├── convert_imply_to_if.rs
│ │ │ ├── decompose_failing_assert.rs
│ │ │ ├── insert_assert_by_block.rs
│ │ │ ├── insert_failing_postcondition.rs
│ │ │ ├── insert_failing_precondition.rs
│ │ │ ├── intro_assume_false.rs
│ │ │ ├── intro_forall.rs
│ │ │ ├── intro_forall_implies.rs
│ │ │ ├── intro_matching_assertions.rs
│ │ │ ├── remove_redundant_assertion.rs
│ │ │ ├── reveal_opaque_above.rs
│ │ │ ├── reveal_opaque_in_by_block.rs
│ │ │ ├── seq_index_inbound.rs
│ │ │ ├── split_imply_ensures.rs
│ │ │ ├── split_smaller_or_equal_to.rs
│ │ │ └── weakest_pre_step.rs
│ │ ├── pull_assignment_up.rs
│ │ ├── qualify_method_call.rs
│ │ ├── qualify_path.rs
│ │ ├── raw_string.rs
│ │ ├── remove_dbg.rs
│ │ ├── remove_mut.rs
│ │ ├── remove_parentheses.rs
│ │ ├── remove_unused_imports.rs
│ │ ├── remove_unused_param.rs
│ │ ├── reorder_fields.rs
│ │ ├── reorder_impl_items.rs
│ │ ├── replace_arith_op.rs
│ │ ├── replace_derive_with_manual_impl.rs
│ │ ├── replace_if_let_with_match.rs
│ │ ├── replace_is_method_with_if_let_method.rs
│ │ ├── replace_let_with_if_let.rs
│ │ ├── replace_method_eager_lazy.rs
│ │ ├── replace_named_generic_with_impl.rs
│ │ ├── replace_qualified_name_with_use.rs
│ │ ├── replace_string_with_char.rs
│ │ ├── replace_try_expr_with_match.rs
│ │ ├── replace_turbofish_with_explicit_type.rs
│ │ ├── sort_items.rs
│ │ ├── split_import.rs
│ │ ├── term_search.rs
│ │ ├── toggle_async_sugar.rs
│ │ ├── toggle_ignore.rs
│ │ ├── unmerge_match_arm.rs
│ │ ├── unmerge_use.rs
│ │ ├── unnecessary_async.rs
│ │ ├── unqualify_method_call.rs
│ │ ├── unwrap_block.rs
│ │ ├── unwrap_result_return_type.rs
│ │ ├── unwrap_tuple.rs
│ │ ├── wrap_return_type_in_result.rs
│ │ └── wrap_unwrap_cfg_attr.rs
│ │ ├── lib.rs
│ │ ├── proof_plumber_api.rs
│ │ ├── proof_plumber_api
│ │ ├── inline_function_api.rs
│ │ ├── proof_action_context.rs
│ │ ├── run_fmt.rs
│ │ ├── run_verus.rs
│ │ ├── semantic_info.rs
│ │ ├── verus_error.rs
│ │ ├── vst_ext.rs
│ │ └── vst_from_text.rs
│ │ ├── tests.rs
│ │ ├── tests
│ │ └── generated.rs
│ │ ├── utils.rs
│ │ └── utils
│ │ ├── gen_trait_fn_body.rs
│ │ ├── ref_field_expr.rs
│ │ └── suggest_name.rs
├── ide-completion
│ ├── Cargo.toml
│ └── src
│ │ ├── completions.rs
│ │ ├── completions
│ │ ├── attribute.rs
│ │ ├── attribute
│ │ │ ├── cfg.rs
│ │ │ ├── derive.rs
│ │ │ ├── lint.rs
│ │ │ ├── macro_use.rs
│ │ │ └── repr.rs
│ │ ├── dot.rs
│ │ ├── env_vars.rs
│ │ ├── expr.rs
│ │ ├── extern_abi.rs
│ │ ├── extern_crate.rs
│ │ ├── field.rs
│ │ ├── flyimport.rs
│ │ ├── fn_param.rs
│ │ ├── format_string.rs
│ │ ├── item_list.rs
│ │ ├── item_list
│ │ │ └── trait_impl.rs
│ │ ├── keyword.rs
│ │ ├── lifetime.rs
│ │ ├── mod_.rs
│ │ ├── pattern.rs
│ │ ├── postfix.rs
│ │ ├── postfix
│ │ │ └── format_like.rs
│ │ ├── record.rs
│ │ ├── snippet.rs
│ │ ├── type.rs
│ │ ├── use_.rs
│ │ └── vis.rs
│ │ ├── config.rs
│ │ ├── context.rs
│ │ ├── context
│ │ ├── analysis.rs
│ │ └── tests.rs
│ │ ├── item.rs
│ │ ├── lib.rs
│ │ ├── render.rs
│ │ ├── render
│ │ ├── const_.rs
│ │ ├── function.rs
│ │ ├── literal.rs
│ │ ├── macro_.rs
│ │ ├── pattern.rs
│ │ ├── type_alias.rs
│ │ ├── union_literal.rs
│ │ └── variant.rs
│ │ ├── snippet.rs
│ │ ├── tests.rs
│ │ └── tests
│ │ ├── attribute.rs
│ │ ├── expression.rs
│ │ ├── flyimport.rs
│ │ ├── fn_param.rs
│ │ ├── item.rs
│ │ ├── item_list.rs
│ │ ├── pattern.rs
│ │ ├── predicate.rs
│ │ ├── proc_macros.rs
│ │ ├── record.rs
│ │ ├── special.rs
│ │ ├── type_pos.rs
│ │ ├── use_tree.rs
│ │ └── visibility.rs
├── ide-db
│ ├── Cargo.toml
│ └── src
│ │ ├── active_parameter.rs
│ │ ├── apply_change.rs
│ │ ├── assists.rs
│ │ ├── defs.rs
│ │ ├── documentation.rs
│ │ ├── famous_defs.rs
│ │ ├── generated
│ │ └── lints.rs
│ │ ├── helpers.rs
│ │ ├── imports
│ │ ├── import_assets.rs
│ │ ├── insert_use.rs
│ │ ├── insert_use
│ │ │ └── tests.rs
│ │ └── merge_imports.rs
│ │ ├── items_locator.rs
│ │ ├── label.rs
│ │ ├── lib.rs
│ │ ├── path_transform.rs
│ │ ├── prime_caches.rs
│ │ ├── prime_caches
│ │ └── topologic_sort.rs
│ │ ├── rename.rs
│ │ ├── rust_doc.rs
│ │ ├── search.rs
│ │ ├── source_change.rs
│ │ ├── symbol_index.rs
│ │ ├── syntax_helpers
│ │ ├── format_string.rs
│ │ ├── format_string_exprs.rs
│ │ ├── insert_whitespace_into_node.rs
│ │ └── node_ext.rs
│ │ ├── test_data
│ │ ├── test_doc_alias.txt
│ │ └── test_symbol_index_collection.txt
│ │ ├── traits.rs
│ │ ├── ty_filter.rs
│ │ └── use_trivial_constructor.rs
├── ide-diagnostics
│ ├── Cargo.toml
│ └── src
│ │ ├── handlers
│ │ ├── break_outside_of_loop.rs
│ │ ├── expected_function.rs
│ │ ├── field_shorthand.rs
│ │ ├── inactive_code.rs
│ │ ├── incoherent_impl.rs
│ │ ├── incorrect_case.rs
│ │ ├── invalid_derive_target.rs
│ │ ├── json_is_not_rust.rs
│ │ ├── macro_error.rs
│ │ ├── malformed_derive.rs
│ │ ├── mismatched_arg_count.rs
│ │ ├── missing_fields.rs
│ │ ├── missing_match_arms.rs
│ │ ├── missing_unsafe.rs
│ │ ├── moved_out_of_ref.rs
│ │ ├── mutability_errors.rs
│ │ ├── no_such_field.rs
│ │ ├── non_exhaustive_let.rs
│ │ ├── private_assoc_item.rs
│ │ ├── private_field.rs
│ │ ├── remove_trailing_return.rs
│ │ ├── remove_unnecessary_else.rs
│ │ ├── replace_filter_map_next_with_find_map.rs
│ │ ├── trait_impl_incorrect_safety.rs
│ │ ├── trait_impl_missing_assoc_item.rs
│ │ ├── trait_impl_orphan.rs
│ │ ├── trait_impl_redundant_assoc_item.rs
│ │ ├── type_mismatch.rs
│ │ ├── typed_hole.rs
│ │ ├── undeclared_label.rs
│ │ ├── unimplemented_builtin_macro.rs
│ │ ├── unlinked_file.rs
│ │ ├── unreachable_label.rs
│ │ ├── unresolved_assoc_item.rs
│ │ ├── unresolved_extern_crate.rs
│ │ ├── unresolved_field.rs
│ │ ├── unresolved_ident.rs
│ │ ├── unresolved_import.rs
│ │ ├── unresolved_macro_call.rs
│ │ ├── unresolved_method.rs
│ │ ├── unresolved_module.rs
│ │ ├── unresolved_proc_macro.rs
│ │ ├── unused_variables.rs
│ │ └── useless_braces.rs
│ │ ├── lib.rs
│ │ └── tests.rs
├── ide-ssr
│ ├── Cargo.toml
│ └── src
│ │ ├── errors.rs
│ │ ├── fragments.rs
│ │ ├── from_comment.rs
│ │ ├── lib.rs
│ │ ├── matching.rs
│ │ ├── nester.rs
│ │ ├── parsing.rs
│ │ ├── replacing.rs
│ │ ├── resolving.rs
│ │ ├── search.rs
│ │ └── tests.rs
├── ide
│ ├── Cargo.toml
│ └── src
│ │ ├── annotations.rs
│ │ ├── annotations
│ │ └── fn_references.rs
│ │ ├── call_hierarchy.rs
│ │ ├── doc_links.rs
│ │ ├── doc_links
│ │ ├── intra_doc_links.rs
│ │ └── tests.rs
│ │ ├── expand_macro.rs
│ │ ├── extend_selection.rs
│ │ ├── fetch_crates.rs
│ │ ├── file_structure.rs
│ │ ├── fixture.rs
│ │ ├── folding_ranges.rs
│ │ ├── goto_declaration.rs
│ │ ├── goto_definition.rs
│ │ ├── goto_implementation.rs
│ │ ├── goto_type_definition.rs
│ │ ├── highlight_related.rs
│ │ ├── hover.rs
│ │ ├── hover
│ │ ├── render.rs
│ │ └── tests.rs
│ │ ├── inlay_hints.rs
│ │ ├── inlay_hints
│ │ ├── adjustment.rs
│ │ ├── bind_pat.rs
│ │ ├── binding_mode.rs
│ │ ├── chaining.rs
│ │ ├── closing_brace.rs
│ │ ├── closure_captures.rs
│ │ ├── closure_ret.rs
│ │ ├── discriminant.rs
│ │ ├── fn_lifetime_fn.rs
│ │ ├── implicit_drop.rs
│ │ ├── implicit_static.rs
│ │ ├── param_name.rs
│ │ └── range_exclusive.rs
│ │ ├── interpret_function.rs
│ │ ├── join_lines.rs
│ │ ├── lib.rs
│ │ ├── markdown_remove.rs
│ │ ├── markup.rs
│ │ ├── matching_brace.rs
│ │ ├── moniker.rs
│ │ ├── move_item.rs
│ │ ├── navigation_target.rs
│ │ ├── parent_module.rs
│ │ ├── references.rs
│ │ ├── rename.rs
│ │ ├── runnables.rs
│ │ ├── shuffle_crate_graph.rs
│ │ ├── signature_help.rs
│ │ ├── ssr.rs
│ │ ├── static_index.rs
│ │ ├── status.rs
│ │ ├── syntax_highlighting.rs
│ │ ├── syntax_highlighting
│ │ ├── escape.rs
│ │ ├── format.rs
│ │ ├── highlight.rs
│ │ ├── highlights.rs
│ │ ├── html.rs
│ │ ├── inject.rs
│ │ ├── injector.rs
│ │ ├── macro_.rs
│ │ ├── tags.rs
│ │ ├── test_data
│ │ │ ├── highlight_assoc_functions.html
│ │ │ ├── highlight_attributes.html
│ │ │ ├── highlight_block_mod_items.html
│ │ │ ├── highlight_const.html
│ │ │ ├── highlight_crate_root.html
│ │ │ ├── highlight_default_library.html
│ │ │ ├── highlight_doctest.html
│ │ │ ├── highlight_extern_crate.html
│ │ │ ├── highlight_general.html
│ │ │ ├── highlight_injection.html
│ │ │ ├── highlight_keywords.html
│ │ │ ├── highlight_lifetimes.html
│ │ │ ├── highlight_macros.html
│ │ │ ├── highlight_module_docs_inline.html
│ │ │ ├── highlight_module_docs_outline.html
│ │ │ ├── highlight_operators.html
│ │ │ ├── highlight_rainbow.html
│ │ │ ├── highlight_strings.html
│ │ │ └── highlight_unsafe.html
│ │ └── tests.rs
│ │ ├── syntax_tree.rs
│ │ ├── test_explorer.rs
│ │ ├── typing.rs
│ │ ├── typing
│ │ └── on_enter.rs
│ │ ├── view_crate_graph.rs
│ │ ├── view_hir.rs
│ │ ├── view_item_tree.rs
│ │ ├── view_memory_layout.rs
│ │ └── view_mir.rs
├── intern
│ ├── Cargo.toml
│ └── src
│ │ └── lib.rs
├── limit
│ ├── Cargo.toml
│ └── src
│ │ └── lib.rs
├── load-cargo
│ ├── Cargo.toml
│ └── src
│ │ └── lib.rs
├── mbe
│ ├── Cargo.toml
│ └── src
│ │ ├── benchmark.rs
│ │ ├── expander.rs
│ │ ├── expander
│ │ ├── matcher.rs
│ │ └── transcriber.rs
│ │ ├── lib.rs
│ │ ├── parser.rs
│ │ ├── syntax_bridge.rs
│ │ ├── syntax_bridge
│ │ └── tests.rs
│ │ └── to_parser_input.rs
├── parser
│ ├── Cargo.toml
│ ├── src
│ │ ├── edition.rs
│ │ ├── event.rs
│ │ ├── grammar.rs
│ │ ├── grammar
│ │ │ ├── attributes.rs
│ │ │ ├── expressions.rs
│ │ │ ├── expressions
│ │ │ │ └── atom.rs
│ │ │ ├── generic_args.rs
│ │ │ ├── generic_params.rs
│ │ │ ├── items.rs
│ │ │ ├── items
│ │ │ │ ├── adt.rs
│ │ │ │ ├── consts.rs
│ │ │ │ ├── traits.rs
│ │ │ │ └── use_item.rs
│ │ │ ├── params.rs
│ │ │ ├── paths.rs
│ │ │ ├── patterns.rs
│ │ │ ├── types.rs
│ │ │ └── verus.rs
│ │ ├── input.rs
│ │ ├── lexed_str.rs
│ │ ├── lib.rs
│ │ ├── output.rs
│ │ ├── parser.rs
│ │ ├── shortcuts.rs
│ │ ├── syntax_kind.rs
│ │ ├── syntax_kind
│ │ │ └── generated.rs
│ │ ├── tests.rs
│ │ ├── tests
│ │ │ ├── prefix_entries.rs
│ │ │ ├── sourcegen_inline_tests.rs
│ │ │ └── top_entries.rs
│ │ └── token_set.rs
│ └── test_data
│ │ ├── lexer
│ │ ├── err
│ │ │ ├── byte_char_literals.rast
│ │ │ ├── byte_char_literals.rs
│ │ │ ├── byte_strings.rast
│ │ │ ├── byte_strings.rs
│ │ │ ├── c_strings.rast
│ │ │ ├── c_strings.rs
│ │ │ ├── char_literals.rast
│ │ │ ├── char_literals.rs
│ │ │ ├── empty_exponent.rast
│ │ │ ├── empty_exponent.rs
│ │ │ ├── empty_exponent.txt
│ │ │ ├── empty_int.rast
│ │ │ ├── empty_int.rs
│ │ │ ├── empty_int.txt
│ │ │ ├── lifetime_starts_with_a_number.rast
│ │ │ ├── lifetime_starts_with_a_number.rs
│ │ │ ├── lifetime_starts_with_a_number.txt
│ │ │ ├── strings.rast
│ │ │ ├── strings.rs
│ │ │ ├── unclosed_block_comment_at_eof.rast
│ │ │ ├── unclosed_block_comment_at_eof.rs
│ │ │ ├── unclosed_block_comment_at_eof.txt
│ │ │ ├── unclosed_block_comment_with_content.rast
│ │ │ ├── unclosed_block_comment_with_content.rs
│ │ │ ├── unclosed_block_comment_with_content.txt
│ │ │ ├── unclosed_byte_at_eof.rast
│ │ │ ├── unclosed_byte_at_eof.rs
│ │ │ ├── unclosed_byte_at_eof.txt
│ │ │ ├── unclosed_byte_string_at_eof.rast
│ │ │ ├── unclosed_byte_string_at_eof.rs
│ │ │ ├── unclosed_byte_string_at_eof.txt
│ │ │ ├── unclosed_byte_string_with_ascii_escape.rast
│ │ │ ├── unclosed_byte_string_with_ascii_escape.rs
│ │ │ ├── unclosed_byte_string_with_ascii_escape.txt
│ │ │ ├── unclosed_byte_string_with_ferris.rast
│ │ │ ├── unclosed_byte_string_with_ferris.rs
│ │ │ ├── unclosed_byte_string_with_ferris.txt
│ │ │ ├── unclosed_byte_string_with_slash.rast
│ │ │ ├── unclosed_byte_string_with_slash.rs
│ │ │ ├── unclosed_byte_string_with_slash.txt
│ │ │ ├── unclosed_byte_string_with_slash_double_quote.rast
│ │ │ ├── unclosed_byte_string_with_slash_double_quote.rs
│ │ │ ├── unclosed_byte_string_with_slash_double_quote.txt
│ │ │ ├── unclosed_byte_string_with_slash_n.rast
│ │ │ ├── unclosed_byte_string_with_slash_n.rs
│ │ │ ├── unclosed_byte_string_with_slash_n.txt
│ │ │ ├── unclosed_byte_string_with_space.rast
│ │ │ ├── unclosed_byte_string_with_space.rs
│ │ │ ├── unclosed_byte_string_with_space.txt
│ │ │ ├── unclosed_byte_string_with_unicode_escape.rast
│ │ │ ├── unclosed_byte_string_with_unicode_escape.rs
│ │ │ ├── unclosed_byte_string_with_unicode_escape.txt
│ │ │ ├── unclosed_byte_with_ascii_escape.rast
│ │ │ ├── unclosed_byte_with_ascii_escape.rs
│ │ │ ├── unclosed_byte_with_ascii_escape.txt
│ │ │ ├── unclosed_byte_with_ferris.rast
│ │ │ ├── unclosed_byte_with_ferris.rs
│ │ │ ├── unclosed_byte_with_ferris.txt
│ │ │ ├── unclosed_byte_with_slash.rast
│ │ │ ├── unclosed_byte_with_slash.rs
│ │ │ ├── unclosed_byte_with_slash.txt
│ │ │ ├── unclosed_byte_with_slash_n.rast
│ │ │ ├── unclosed_byte_with_slash_n.rs
│ │ │ ├── unclosed_byte_with_slash_n.txt
│ │ │ ├── unclosed_byte_with_slash_single_quote.rast
│ │ │ ├── unclosed_byte_with_slash_single_quote.rs
│ │ │ ├── unclosed_byte_with_slash_single_quote.txt
│ │ │ ├── unclosed_byte_with_space.rast
│ │ │ ├── unclosed_byte_with_space.rs
│ │ │ ├── unclosed_byte_with_space.txt
│ │ │ ├── unclosed_byte_with_unicode_escape.rast
│ │ │ ├── unclosed_byte_with_unicode_escape.rs
│ │ │ ├── unclosed_byte_with_unicode_escape.txt
│ │ │ ├── unclosed_char_at_eof.rast
│ │ │ ├── unclosed_char_at_eof.rs
│ │ │ ├── unclosed_char_at_eof.txt
│ │ │ ├── unclosed_char_with_ascii_escape.rast
│ │ │ ├── unclosed_char_with_ascii_escape.rs
│ │ │ ├── unclosed_char_with_ascii_escape.txt
│ │ │ ├── unclosed_char_with_ferris.rast
│ │ │ ├── unclosed_char_with_ferris.rs
│ │ │ ├── unclosed_char_with_ferris.txt
│ │ │ ├── unclosed_char_with_slash.rast
│ │ │ ├── unclosed_char_with_slash.rs
│ │ │ ├── unclosed_char_with_slash.txt
│ │ │ ├── unclosed_char_with_slash_n.rast
│ │ │ ├── unclosed_char_with_slash_n.rs
│ │ │ ├── unclosed_char_with_slash_n.txt
│ │ │ ├── unclosed_char_with_slash_single_quote.rast
│ │ │ ├── unclosed_char_with_slash_single_quote.rs
│ │ │ ├── unclosed_char_with_slash_single_quote.txt
│ │ │ ├── unclosed_char_with_space.rast
│ │ │ ├── unclosed_char_with_space.rs
│ │ │ ├── unclosed_char_with_space.txt
│ │ │ ├── unclosed_char_with_unicode_escape.rast
│ │ │ ├── unclosed_char_with_unicode_escape.rs
│ │ │ ├── unclosed_char_with_unicode_escape.txt
│ │ │ ├── unclosed_nested_block_comment_entirely.rast
│ │ │ ├── unclosed_nested_block_comment_entirely.rs
│ │ │ ├── unclosed_nested_block_comment_entirely.txt
│ │ │ ├── unclosed_nested_block_comment_partially.rast
│ │ │ ├── unclosed_nested_block_comment_partially.rs
│ │ │ ├── unclosed_nested_block_comment_partially.txt
│ │ │ ├── unclosed_raw_byte_string_at_eof.rast
│ │ │ ├── unclosed_raw_byte_string_at_eof.rs
│ │ │ ├── unclosed_raw_byte_string_at_eof.txt
│ │ │ ├── unclosed_raw_byte_string_with_ascii_escape.rast
│ │ │ ├── unclosed_raw_byte_string_with_ascii_escape.rs
│ │ │ ├── unclosed_raw_byte_string_with_ascii_escape.txt
│ │ │ ├── unclosed_raw_byte_string_with_ferris.rast
│ │ │ ├── unclosed_raw_byte_string_with_ferris.rs
│ │ │ ├── unclosed_raw_byte_string_with_ferris.txt
│ │ │ ├── unclosed_raw_byte_string_with_slash.rast
│ │ │ ├── unclosed_raw_byte_string_with_slash.rs
│ │ │ ├── unclosed_raw_byte_string_with_slash.txt
│ │ │ ├── unclosed_raw_byte_string_with_slash_n.rast
│ │ │ ├── unclosed_raw_byte_string_with_slash_n.rs
│ │ │ ├── unclosed_raw_byte_string_with_slash_n.txt
│ │ │ ├── unclosed_raw_byte_string_with_space.rast
│ │ │ ├── unclosed_raw_byte_string_with_space.rs
│ │ │ ├── unclosed_raw_byte_string_with_space.txt
│ │ │ ├── unclosed_raw_byte_string_with_unicode_escape.rast
│ │ │ ├── unclosed_raw_byte_string_with_unicode_escape.rs
│ │ │ ├── unclosed_raw_byte_string_with_unicode_escape.txt
│ │ │ ├── unclosed_raw_string_at_eof.rast
│ │ │ ├── unclosed_raw_string_at_eof.rs
│ │ │ ├── unclosed_raw_string_at_eof.txt
│ │ │ ├── unclosed_raw_string_with_ascii_escape.rast
│ │ │ ├── unclosed_raw_string_with_ascii_escape.rs
│ │ │ ├── unclosed_raw_string_with_ascii_escape.txt
│ │ │ ├── unclosed_raw_string_with_ferris.rast
│ │ │ ├── unclosed_raw_string_with_ferris.rs
│ │ │ ├── unclosed_raw_string_with_ferris.txt
│ │ │ ├── unclosed_raw_string_with_slash.rast
│ │ │ ├── unclosed_raw_string_with_slash.rs
│ │ │ ├── unclosed_raw_string_with_slash.txt
│ │ │ ├── unclosed_raw_string_with_slash_n.rast
│ │ │ ├── unclosed_raw_string_with_slash_n.rs
│ │ │ ├── unclosed_raw_string_with_slash_n.txt
│ │ │ ├── unclosed_raw_string_with_space.rast
│ │ │ ├── unclosed_raw_string_with_space.rs
│ │ │ ├── unclosed_raw_string_with_space.txt
│ │ │ ├── unclosed_raw_string_with_unicode_escape.rast
│ │ │ ├── unclosed_raw_string_with_unicode_escape.rs
│ │ │ ├── unclosed_raw_string_with_unicode_escape.txt
│ │ │ ├── unclosed_string_at_eof.rast
│ │ │ ├── unclosed_string_at_eof.rs
│ │ │ ├── unclosed_string_at_eof.txt
│ │ │ ├── unclosed_string_with_ascii_escape.rast
│ │ │ ├── unclosed_string_with_ascii_escape.rs
│ │ │ ├── unclosed_string_with_ascii_escape.txt
│ │ │ ├── unclosed_string_with_ferris.rast
│ │ │ ├── unclosed_string_with_ferris.rs
│ │ │ ├── unclosed_string_with_ferris.txt
│ │ │ ├── unclosed_string_with_slash.rast
│ │ │ ├── unclosed_string_with_slash.rs
│ │ │ ├── unclosed_string_with_slash.txt
│ │ │ ├── unclosed_string_with_slash_double_quote.rast
│ │ │ ├── unclosed_string_with_slash_double_quote.rs
│ │ │ ├── unclosed_string_with_slash_double_quote.txt
│ │ │ ├── unclosed_string_with_slash_n.rast
│ │ │ ├── unclosed_string_with_slash_n.rs
│ │ │ ├── unclosed_string_with_slash_n.txt
│ │ │ ├── unclosed_string_with_space.rast
│ │ │ ├── unclosed_string_with_space.rs
│ │ │ ├── unclosed_string_with_space.txt
│ │ │ ├── unclosed_string_with_unicode_escape.rast
│ │ │ ├── unclosed_string_with_unicode_escape.rs
│ │ │ ├── unclosed_string_with_unicode_escape.txt
│ │ │ ├── unstarted_raw_byte_string_at_eof.rast
│ │ │ ├── unstarted_raw_byte_string_at_eof.rs
│ │ │ ├── unstarted_raw_byte_string_at_eof.txt
│ │ │ ├── unstarted_raw_byte_string_with_ascii.rast
│ │ │ ├── unstarted_raw_byte_string_with_ascii.rs
│ │ │ ├── unstarted_raw_byte_string_with_ascii.txt
│ │ │ ├── unstarted_raw_string_at_eof.rast
│ │ │ ├── unstarted_raw_string_at_eof.rs
│ │ │ ├── unstarted_raw_string_at_eof.txt
│ │ │ ├── unstarted_raw_string_with_ascii.rast
│ │ │ ├── unstarted_raw_string_with_ascii.rs
│ │ │ └── unstarted_raw_string_with_ascii.txt
│ │ └── ok
│ │ │ ├── block_comment.rast
│ │ │ ├── block_comment.rs
│ │ │ ├── block_comment.txt
│ │ │ ├── byte_strings.rast
│ │ │ ├── byte_strings.rs
│ │ │ ├── byte_strings.txt
│ │ │ ├── chars.rast
│ │ │ ├── chars.rs
│ │ │ ├── chars.txt
│ │ │ ├── hello.rast
│ │ │ ├── hello.rs
│ │ │ ├── hello.txt
│ │ │ ├── ident.rast
│ │ │ ├── ident.rs
│ │ │ ├── ident.txt
│ │ │ ├── keywords.rast
│ │ │ ├── keywords.rs
│ │ │ ├── keywords.txt
│ │ │ ├── lifetimes.rast
│ │ │ ├── lifetimes.rs
│ │ │ ├── lifetimes.txt
│ │ │ ├── numbers.rast
│ │ │ ├── numbers.rs
│ │ │ ├── numbers.txt
│ │ │ ├── raw_ident.rast
│ │ │ ├── raw_ident.rs
│ │ │ ├── raw_ident.txt
│ │ │ ├── raw_strings.rast
│ │ │ ├── raw_strings.rs
│ │ │ ├── raw_strings.txt
│ │ │ ├── single_line_comments.rast
│ │ │ ├── single_line_comments.rs
│ │ │ ├── single_line_comments.txt
│ │ │ ├── strings.rast
│ │ │ ├── strings.rs
│ │ │ ├── strings.txt
│ │ │ ├── symbols.rast
│ │ │ ├── symbols.rs
│ │ │ ├── symbols.txt
│ │ │ ├── whitespace.rast
│ │ │ ├── whitespace.rs
│ │ │ └── whitespace.txt
│ │ └── parser
│ │ ├── err
│ │ ├── 0000_struct_field_missing_comma.rast
│ │ ├── 0000_struct_field_missing_comma.rs
│ │ ├── 0001_item_recovery_in_file.rast
│ │ ├── 0001_item_recovery_in_file.rs
│ │ ├── 0002_duplicate_shebang.rast
│ │ ├── 0002_duplicate_shebang.rs
│ │ ├── 0003_C++_semicolon.rast
│ │ ├── 0003_C++_semicolon.rs
│ │ ├── 0004_use_path_bad_segment.rast
│ │ ├── 0004_use_path_bad_segment.rs
│ │ ├── 0005_attribute_recover.rast
│ │ ├── 0005_attribute_recover.rs
│ │ ├── 0006_named_field_recovery.rast
│ │ ├── 0006_named_field_recovery.rs
│ │ ├── 0007_stray_curly_in_file.rast
│ │ ├── 0007_stray_curly_in_file.rs
│ │ ├── 0008_item_block_recovery.rast
│ │ ├── 0008_item_block_recovery.rs
│ │ ├── 0009_broken_struct_type_parameter.rast
│ │ ├── 0009_broken_struct_type_parameter.rs
│ │ ├── 0010_unsafe_lambda_block.rast
│ │ ├── 0010_unsafe_lambda_block.rs
│ │ ├── 0011_extern_struct.rast
│ │ ├── 0011_extern_struct.rs
│ │ ├── 0012_broken_lambda.rast
│ │ ├── 0013_invalid_type.rast
│ │ ├── 0013_invalid_type.rs
│ │ ├── 0014_where_no_bounds.rast
│ │ ├── 0014_where_no_bounds.rs
│ │ ├── 0015_curly_in_params.rast
│ │ ├── 0015_curly_in_params.rs
│ │ ├── 0016_missing_semi.rast
│ │ ├── 0016_missing_semi.rs
│ │ ├── 0017_incomplete_binexpr.rast
│ │ ├── 0017_incomplete_binexpr.rs
│ │ ├── 0018_incomplete_fn.rast
│ │ ├── 0018_incomplete_fn.rs
│ │ ├── 0019_let_recover.rast
│ │ ├── 0019_let_recover.rs
│ │ ├── 0020_fn_recover.rast
│ │ ├── 0020_fn_recover.rs
│ │ ├── 0021_incomplete_param.rast
│ │ ├── 0021_incomplete_param.rs
│ │ ├── 0022_bad_exprs.rast
│ │ ├── 0022_bad_exprs.rs
│ │ ├── 0023_mismatched_paren.rast
│ │ ├── 0023_mismatched_paren.rs
│ │ ├── 0024_many_type_parens.rast
│ │ ├── 0024_many_type_parens.rs
│ │ ├── 0025_nope.rast
│ │ ├── 0025_nope.rs
│ │ ├── 0026_imp_recovery.rast
│ │ ├── 0026_imp_recovery.rs
│ │ ├── 0027_incomplete_where_for.rast
│ │ ├── 0027_incomplete_where_for.rs
│ │ ├── 0029_field_completion.rast
│ │ ├── 0029_field_completion.rs
│ │ ├── 0032_match_arms_inner_attrs.rast
│ │ ├── 0032_match_arms_inner_attrs.rs
│ │ ├── 0033_match_arms_outer_attrs.rast
│ │ ├── 0033_match_arms_outer_attrs.rs
│ │ ├── 0034_bad_box_pattern.rast
│ │ ├── 0034_bad_box_pattern.rs
│ │ ├── 0035_use_recover.rast
│ │ ├── 0035_use_recover.rs
│ │ ├── 0036_partial_use.rast
│ │ ├── 0036_partial_use.rs
│ │ ├── 0039_lambda_recovery.rast
│ │ ├── 0039_lambda_recovery.rs
│ │ ├── 0042_weird_blocks.rast
│ │ ├── 0042_weird_blocks.rs
│ │ ├── 0043_unexpected_for_type.rast
│ │ ├── 0043_unexpected_for_type.rs
│ │ ├── 0044_item_modifiers.rast
│ │ ├── 0044_item_modifiers.rs
│ │ ├── 0047_repeated_extern_modifier.rast
│ │ ├── 0047_repeated_extern_modifier.rs
│ │ ├── 0048_double_fish.rast
│ │ ├── 0048_double_fish.rs
│ │ ├── 0049_let_else_right_curly_brace_for.rast
│ │ ├── 0049_let_else_right_curly_brace_for.rs
│ │ ├── 0050_let_else_right_curly_brace_loop.rast
│ │ ├── 0050_let_else_right_curly_brace_loop.rs
│ │ ├── 0051_let_else_right_curly_brace_match.rast
│ │ ├── 0051_let_else_right_curly_brace_match.rs
│ │ ├── 0052_let_else_right_curly_brace_while.rast
│ │ ├── 0052_let_else_right_curly_brace_while.rs
│ │ ├── 0053_let_else_right_curly_brace_if.rast
│ │ ├── 0053_let_else_right_curly_brace_if.rs
│ │ ├── 0054_float_split_scientific_notation.rast
│ │ └── 0054_float_split_scientific_notation.rs
│ │ ├── inline
│ │ ├── err
│ │ │ ├── 0001_array_type_missing_semi.rast
│ │ │ ├── 0001_array_type_missing_semi.rs
│ │ │ ├── 0002_misplaced_label_err.rast
│ │ │ ├── 0002_misplaced_label_err.rs
│ │ │ ├── 0003_pointer_type_no_mutability.rast
│ │ │ ├── 0003_pointer_type_no_mutability.rs
│ │ │ ├── 0004_impl_type.rast
│ │ │ ├── 0004_impl_type.rs
│ │ │ ├── 0005_fn_pointer_type_missing_fn.rast
│ │ │ ├── 0005_fn_pointer_type_missing_fn.rs
│ │ │ ├── 0006_unsafe_block_in_mod.rast
│ │ │ ├── 0006_unsafe_block_in_mod.rs
│ │ │ ├── 0007_async_without_semicolon.rast
│ │ │ ├── 0007_async_without_semicolon.rs
│ │ │ ├── 0008_pub_expr.rast
│ │ │ ├── 0008_pub_expr.rs
│ │ │ ├── 0013_anonymous_static.rast
│ │ │ ├── 0013_anonymous_static.rs
│ │ │ ├── 0014_record_literal_before_ellipsis_recovery.rast
│ │ │ ├── 0014_record_literal_before_ellipsis_recovery.rs
│ │ │ ├── 0014_record_literal_missing_ellipsis_recovery.rast
│ │ │ ├── 0014_record_literal_missing_ellipsis_recovery.rs
│ │ │ ├── 0014_struct_field_recover.rast
│ │ │ ├── 0014_struct_field_recover.rs
│ │ │ ├── 0015_arg_list_recovery.rast
│ │ │ ├── 0015_arg_list_recovery.rs
│ │ │ ├── 0015_empty_segment.rast
│ │ │ ├── 0015_empty_segment.rs
│ │ │ ├── 0015_missing_fn_param_type.rast
│ │ │ ├── 0015_missing_fn_param_type.rs
│ │ │ ├── 0016_angled_path_without_qual.rast
│ │ │ ├── 0016_angled_path_without_qual.rs
│ │ │ ├── 0017_let_else_right_curly_brace.rast
│ │ │ ├── 0017_let_else_right_curly_brace.rs
│ │ │ ├── 0018_crate_visibility_empty_recover.rast
│ │ │ ├── 0018_crate_visibility_empty_recover.rs
│ │ │ ├── 0019_tuple_expr_leading_comma.rast
│ │ │ ├── 0019_tuple_expr_leading_comma.rs
│ │ │ ├── 0020_tuple_pat_leading_comma.rast
│ │ │ ├── 0020_tuple_pat_leading_comma.rs
│ │ │ ├── 0021_recover_from_missing_assoc_item_binding.rast
│ │ │ ├── 0021_recover_from_missing_assoc_item_binding.rs
│ │ │ ├── 0022_recover_from_missing_const_default.rast
│ │ │ ├── 0022_recover_from_missing_const_default.rs
│ │ │ ├── 0023_empty_param_slot.rast
│ │ │ ├── 0023_empty_param_slot.rs
│ │ │ ├── 0024_comma_after_functional_update_syntax.rast
│ │ │ ├── 0024_comma_after_functional_update_syntax.rs
│ │ │ ├── 0024_top_level_let.rast
│ │ │ ├── 0024_top_level_let.rs
│ │ │ ├── 0026_macro_rules_as_macro_name.rast
│ │ │ ├── 0026_macro_rules_as_macro_name.rs
│ │ │ ├── 0026_use_tree_list_err_recovery.rast
│ │ │ ├── 0026_use_tree_list_err_recovery.rs
│ │ │ ├── 0028_method_call_missing_argument_list.rast
│ │ │ ├── 0028_method_call_missing_argument_list.rs
│ │ │ ├── 0029_tuple_field_list_recovery.rast
│ │ │ ├── 0029_tuple_field_list_recovery.rs
│ │ │ ├── 0030_generic_arg_list_recover.rast
│ │ │ ├── 0030_generic_arg_list_recover.rs
│ │ │ ├── 0031_generic_param_list_recover.rast
│ │ │ ├── 0031_generic_param_list_recover.rs
│ │ │ ├── 0032_record_literal_field_eq_recovery.rast
│ │ │ ├── 0032_record_literal_field_eq_recovery.rs
│ │ │ ├── 0033_record_pat_field_eq_recovery.rast
│ │ │ ├── 0033_record_pat_field_eq_recovery.rs
│ │ │ ├── 0034_match_arms_recovery.rast
│ │ │ └── 0034_match_arms_recovery.rs
│ │ └── ok
│ │ │ ├── 0002_use_tree_list.rast
│ │ │ ├── 0002_use_tree_list.rs
│ │ │ ├── 0003_where_pred_for.rast
│ │ │ ├── 0003_where_pred_for.rs
│ │ │ ├── 0004_value_parameters_no_patterns.rast
│ │ │ ├── 0004_value_parameters_no_patterns.rs
│ │ │ ├── 0005_function_type_params.rast
│ │ │ ├── 0005_function_type_params.rs
│ │ │ ├── 0006_self_param.rast
│ │ │ ├── 0006_self_param.rs
│ │ │ ├── 0007_type_param_bounds.rast
│ │ │ ├── 0007_type_param_bounds.rs
│ │ │ ├── 0008_path_part.rast
│ │ │ ├── 0008_path_part.rs
│ │ │ ├── 0009_loop_expr.rast
│ │ │ ├── 0009_loop_expr.rs
│ │ │ ├── 0010_extern_block.rast
│ │ │ ├── 0010_extern_block.rs
│ │ │ ├── 0011_field_expr.rast
│ │ │ ├── 0011_field_expr.rs
│ │ │ ├── 0012_type_item_where_clause.rast
│ │ │ ├── 0012_type_item_where_clause.rs
│ │ │ ├── 0013_pointer_type_mut.rast
│ │ │ ├── 0013_pointer_type_mut.rs
│ │ │ ├── 0014_never_type.rast
│ │ │ ├── 0014_never_type.rs
│ │ │ ├── 0015_continue_expr.rast
│ │ │ ├── 0015_continue_expr.rs
│ │ │ ├── 0017_array_type.rast
│ │ │ ├── 0017_array_type.rs
│ │ │ ├── 0018_arb_self_types.rast
│ │ │ ├── 0018_arb_self_types.rs
│ │ │ ├── 0019_unary_expr.rast
│ │ │ ├── 0019_unary_expr.rs
│ │ │ ├── 0021_assoc_item_list.rast
│ │ │ ├── 0021_assoc_item_list.rs
│ │ │ ├── 0022_crate_visibility.rast
│ │ │ ├── 0022_crate_visibility.rs
│ │ │ ├── 0023_placeholder_type.rast
│ │ │ ├── 0023_placeholder_type.rs
│ │ │ ├── 0024_slice_pat.rast
│ │ │ ├── 0024_slice_pat.rs
│ │ │ ├── 0025_slice_type.rast
│ │ │ ├── 0025_slice_type.rs
│ │ │ ├── 0026_tuple_pat_fields.rast
│ │ │ ├── 0026_tuple_pat_fields.rs
│ │ │ ├── 0027_ref_pat.rast
│ │ │ ├── 0027_ref_pat.rs
│ │ │ ├── 0028_impl_trait_type.rast
│ │ │ ├── 0028_impl_trait_type.rs
│ │ │ ├── 0029_cast_expr.rast
│ │ │ ├── 0029_cast_expr.rs
│ │ │ ├── 0030_let_expr.rast
│ │ │ ├── 0030_let_expr.rs
│ │ │ ├── 0031_while_expr.rast
│ │ │ ├── 0031_while_expr.rs
│ │ │ ├── 0032_fn_pointer_type.rast
│ │ │ ├── 0032_fn_pointer_type.rs
│ │ │ ├── 0033_reference_type;.rast
│ │ │ ├── 0033_reference_type;.rs
│ │ │ ├── 0034_break_expr.rast
│ │ │ ├── 0034_break_expr.rs
│ │ │ ├── 0037_qual_paths.rast
│ │ │ ├── 0037_qual_paths.rs
│ │ │ ├── 0038_full_range_expr.rast
│ │ │ ├── 0038_full_range_expr.rs
│ │ │ ├── 0041_trait_item.rast
│ │ │ ├── 0041_trait_item.rs
│ │ │ ├── 0042_call_expr.rast
│ │ │ ├── 0042_call_expr.rs
│ │ │ ├── 0044_block_items.rast
│ │ │ ├── 0044_block_items.rs
│ │ │ ├── 0045_param_list_opt_patterns.rast
│ │ │ ├── 0045_param_list_opt_patterns.rs
│ │ │ ├── 0046_singleton_tuple_type.rast
│ │ │ ├── 0046_singleton_tuple_type.rs
│ │ │ ├── 0048_path_type_with_bounds.rast
│ │ │ ├── 0048_path_type_with_bounds.rs
│ │ │ ├── 0050_fn_decl.rast
│ │ │ ├── 0050_fn_decl.rs
│ │ │ ├── 0051_unit_type.rast
│ │ │ ├── 0051_unit_type.rs
│ │ │ ├── 0052_path_type.rast
│ │ │ ├── 0052_path_type.rs
│ │ │ ├── 0053_path_expr.rast
│ │ │ ├── 0053_path_expr.rs
│ │ │ ├── 0054_record_field_attrs.rast
│ │ │ ├── 0054_record_field_attrs.rs
│ │ │ ├── 0055_literal_pattern.rast
│ │ │ ├── 0055_literal_pattern.rs
│ │ │ ├── 0056_where_clause.rast
│ │ │ ├── 0056_where_clause.rs
│ │ │ ├── 0058_range_pat.rast
│ │ │ ├── 0058_range_pat.rs
│ │ │ ├── 0059_match_arms_commas.rast
│ │ │ ├── 0059_match_arms_commas.rs
│ │ │ ├── 0060_extern_crate.rast
│ │ │ ├── 0060_extern_crate.rs
│ │ │ ├── 0061_record_lit.rast
│ │ │ ├── 0061_record_lit.rs
│ │ │ ├── 0062_mod_contents.rast
│ │ │ ├── 0062_mod_contents.rs
│ │ │ ├── 0063_impl_item_neg.rast
│ │ │ ├── 0063_impl_item_neg.rs
│ │ │ ├── 0064_if_expr.rast
│ │ │ ├── 0064_if_expr.rs
│ │ │ ├── 0065_dyn_trait_type.rast
│ │ │ ├── 0065_dyn_trait_type.rs
│ │ │ ├── 0066_match_arm.rast
│ │ │ ├── 0066_match_arm.rs
│ │ │ ├── 0067_crate_path.rast
│ │ │ ├── 0067_crate_path.rs
│ │ │ ├── 0070_stmt_bin_expr_ambiguity.rast
│ │ │ ├── 0070_stmt_bin_expr_ambiguity.rs
│ │ │ ├── 0071_match_expr.rast
│ │ │ ├── 0071_match_expr.rs
│ │ │ ├── 0072_return_expr.rast
│ │ │ ├── 0072_return_expr.rs
│ │ │ ├── 0073_type_item_type_params.rast
│ │ │ ├── 0073_type_item_type_params.rs
│ │ │ ├── 0074_stmt_postfix_expr_ambiguity.rast
│ │ │ ├── 0074_stmt_postfix_expr_ambiguity.rs
│ │ │ ├── 0075_block.rast
│ │ │ ├── 0075_block.rs
│ │ │ ├── 0076_function_where_clause.rast
│ │ │ ├── 0076_function_where_clause.rs
│ │ │ ├── 0077_try_expr.rast
│ │ │ ├── 0077_try_expr.rs
│ │ │ ├── 0078_type_alias.rast
│ │ │ ├── 0078_type_alias.rs
│ │ │ ├── 0079_impl_item.rast
│ │ │ ├── 0079_impl_item.rs
│ │ │ ├── 0080_postfix_range.rast
│ │ │ ├── 0080_postfix_range.rs
│ │ │ ├── 0081_for_type.rast
│ │ │ ├── 0081_for_type.rs
│ │ │ ├── 0082_ref_expr.rast
│ │ │ ├── 0082_ref_expr.rs
│ │ │ ├── 0083_struct_items.rast
│ │ │ ├── 0084_paren_type.rast
│ │ │ ├── 0084_paren_type.rs
│ │ │ ├── 0085_expr_literals.rast
│ │ │ ├── 0085_expr_literals.rs
│ │ │ ├── 0086_function_ret_type.rast
│ │ │ ├── 0086_function_ret_type.rs
│ │ │ ├── 0088_break_ambiguity.rast
│ │ │ ├── 0088_break_ambiguity.rs
│ │ │ ├── 0090_type_param_default.rast
│ │ │ ├── 0090_type_param_default.rs
│ │ │ ├── 0092_fn_pointer_type_with_ret.rast
│ │ │ ├── 0092_fn_pointer_type_with_ret.rs
│ │ │ ├── 0093_index_expr.rast
│ │ │ ├── 0093_index_expr.rs
│ │ │ ├── 0095_placeholder_pat.rast
│ │ │ ├── 0095_placeholder_pat.rs
│ │ │ ├── 0096_no_semi_after_block.rast
│ │ │ ├── 0096_no_semi_after_block.rs
│ │ │ ├── 0099_param_list.rast
│ │ │ ├── 0099_param_list.rs
│ │ │ ├── 0100_for_expr.rast
│ │ │ ├── 0100_for_expr.rs
│ │ │ ├── 0102_record_pat_field_list.rast
│ │ │ ├── 0102_record_pat_field_list.rs
│ │ │ ├── 0103_array_expr.rast
│ │ │ ├── 0103_array_expr.rs
│ │ │ ├── 0104_path_fn_trait_args.rast
│ │ │ ├── 0104_path_fn_trait_args.rs
│ │ │ ├── 0106_lambda_expr.rast
│ │ │ ├── 0106_lambda_expr.rs
│ │ │ ├── 0107_method_call_expr.rast
│ │ │ ├── 0107_method_call_expr.rs
│ │ │ ├── 0108_tuple_expr.rast
│ │ │ ├── 0108_tuple_expr.rs
│ │ │ ├── 0109_label.rast
│ │ │ ├── 0109_label.rs
│ │ │ ├── 0111_tuple_pat.rast
│ │ │ ├── 0111_tuple_pat.rs
│ │ │ ├── 0112_bind_pat.rast
│ │ │ ├── 0112_bind_pat.rs
│ │ │ ├── 0113_nocontentexpr.rast
│ │ │ ├── 0113_nocontentexpr.rs
│ │ │ ├── 0114_tuple_struct_where.rast
│ │ │ ├── 0114_tuple_struct_where.rs
│ │ │ ├── 0115_tuple_field_attrs.rast
│ │ │ ├── 0115_tuple_field_attrs.rs
│ │ │ ├── 0117_macro_call_type.rast
│ │ │ ├── 0117_macro_call_type.rs
│ │ │ ├── 0118_match_guard.rast
│ │ │ ├── 0118_match_guard.rs
│ │ │ ├── 0120_match_arms_inner_attribute.rast
│ │ │ ├── 0120_match_arms_inner_attribute.rs
│ │ │ ├── 0121_match_arms_outer_attributes.rast
│ │ │ ├── 0121_match_arms_outer_attributes.rs
│ │ │ ├── 0123_param_list_vararg.rast
│ │ │ ├── 0123_param_list_vararg.rs
│ │ │ ├── 0125_record_literal_field_with_attr.rast
│ │ │ ├── 0125_record_literal_field_with_attr.rs
│ │ │ ├── 0126_attr_on_expr_stmt.rast
│ │ │ ├── 0126_attr_on_expr_stmt.rs
│ │ │ ├── 0129_marco_pat.rast
│ │ │ ├── 0129_marco_pat.rs
│ │ │ ├── 0130_let_stmt.rast
│ │ │ ├── 0130_let_stmt.rs
│ │ │ ├── 0130_try_block_expr.rast
│ │ │ ├── 0130_try_block_expr.rs
│ │ │ ├── 0131_existential_type.rast
│ │ │ ├── 0131_existential_type.rs
│ │ │ ├── 0134_nocontentexpr_after_item.rast
│ │ │ ├── 0134_nocontentexpr_after_item.rs
│ │ │ ├── 0137_await_expr.rast
│ │ │ ├── 0137_await_expr.rs
│ │ │ ├── 0138_associated_type_bounds.rast
│ │ │ ├── 0138_associated_type_bounds.rs
│ │ │ ├── 0138_expression_after_block.rast
│ │ │ ├── 0138_expression_after_block.rs
│ │ │ ├── 0138_self_param_outer_attr.rast
│ │ │ ├── 0138_self_param_outer_attr.rs
│ │ │ ├── 0139_param_outer_arg.rast
│ │ │ ├── 0139_param_outer_arg.rs
│ │ │ ├── 0142_for_range_from.rast
│ │ │ ├── 0142_for_range_from.rs
│ │ │ ├── 0143_box_pat.rast
│ │ │ ├── 0143_box_pat.rs
│ │ │ ├── 0144_dot_dot_pat.rast
│ │ │ ├── 0144_dot_dot_pat.rs
│ │ │ ├── 0145_record_pat_field.rast
│ │ │ ├── 0145_record_pat_field.rs
│ │ │ ├── 0146_as_precedence.rast
│ │ │ ├── 0146_as_precedence.rs
│ │ │ ├── 0147_const_param.rast
│ │ │ ├── 0147_const_param.rs
│ │ │ ├── 0147_macro_def.rast
│ │ │ ├── 0147_macro_def.rs
│ │ │ ├── 0150_array_attrs.rast
│ │ │ ├── 0150_array_attrs.rs
│ │ │ ├── 0150_impl_type_params.rast
│ │ │ ├── 0150_impl_type_params.rs
│ │ │ ├── 0151_fn.rast
│ │ │ ├── 0151_fn.rs
│ │ │ ├── 0151_trait_alias.rast
│ │ │ ├── 0151_trait_alias.rs
│ │ │ ├── 0152_arg_with_attr.rast
│ │ │ ├── 0152_arg_with_attr.rs
│ │ │ ├── 0153_pub_parens_typepath.rast
│ │ │ ├── 0153_pub_parens_typepath.rs
│ │ │ ├── 0154_fn_pointer_param_ident_path.rast
│ │ │ ├── 0154_fn_pointer_param_ident_path.rs
│ │ │ ├── 0154_no_dyn_trait_leading_for.rast
│ │ │ ├── 0154_no_dyn_trait_leading_for.rs
│ │ │ ├── 0154_tuple_attrs.rast
│ │ │ ├── 0154_tuple_attrs.rs
│ │ │ ├── 0155_closure_params.rast
│ │ │ ├── 0155_closure_params.rs
│ │ │ ├── 0156_const_block_pat.rast
│ │ │ ├── 0156_const_block_pat.rs
│ │ │ ├── 0156_fn_def_param.rast
│ │ │ ├── 0156_fn_def_param.rs
│ │ │ ├── 0156_or_pattern.rast
│ │ │ ├── 0156_or_pattern.rs
│ │ │ ├── 0157_fn_pointer_unnamed_arg.rast
│ │ │ ├── 0157_fn_pointer_unnamed_arg.rs
│ │ │ ├── 0157_variant_discriminant.rast
│ │ │ ├── 0157_variant_discriminant.rs
│ │ │ ├── 0158_binop_resets_statementness.rast
│ │ │ ├── 0158_binop_resets_statementness.rs
│ │ │ ├── 0158_lambda_ret_block.rast
│ │ │ ├── 0158_lambda_ret_block.rs
│ │ │ ├── 0158_macro_rules_non_brace.rast
│ │ │ ├── 0158_macro_rules_non_brace.rs
│ │ │ ├── 0159_try_macro_fallback.rast
│ │ │ ├── 0159_try_macro_fallback.rs
│ │ │ ├── 0159_yield_expr.rast
│ │ │ ├── 0159_yield_expr.rs
│ │ │ ├── 0160_crate_visibility_in.rast
│ │ │ ├── 0160_crate_visibility_in.rs
│ │ │ ├── 0160_try_macro_rules.rast
│ │ │ ├── 0160_try_macro_rules.rs
│ │ │ ├── 0161_impl_item_const.rast
│ │ │ ├── 0161_impl_item_const.rs
│ │ │ ├── 0161_labeled_block.rast
│ │ │ ├── 0161_labeled_block.rs
│ │ │ ├── 0162_default_async_unsafe_fn.rast
│ │ │ ├── 0162_default_async_unsafe_fn.rs
│ │ │ ├── 0163_default_async_fn.rast
│ │ │ ├── 0163_default_async_fn.rs
│ │ │ ├── 0163_default_unsafe_item.rast
│ │ │ ├── 0163_default_unsafe_item.rs
│ │ │ ├── 0164_default_item.rast
│ │ │ ├── 0164_default_item.rs
│ │ │ ├── 0164_type_path_in_pattern.rast
│ │ │ ├── 0164_type_path_in_pattern.rs
│ │ │ ├── 0166_half_open_range_pat.rast
│ │ │ ├── 0166_half_open_range_pat.rs
│ │ │ ├── 0168_extern_crate_rename.rast
│ │ │ ├── 0168_extern_crate_rename.rs
│ │ │ ├── 0168_extern_crate_self.rast
│ │ │ ├── 0168_extern_crate_self.rs
│ │ │ ├── 0169_mod_item.rast
│ │ │ ├── 0169_mod_item.rs
│ │ │ ├── 0170_mod_item_curly.rast
│ │ │ ├── 0170_mod_item_curly.rs
│ │ │ ├── 0170_tuple_struct.rast
│ │ │ ├── 0170_tuple_struct.rs
│ │ │ ├── 0171_struct_item.rast
│ │ │ ├── 0171_struct_item.rs
│ │ │ ├── 0172_const_item.rast
│ │ │ ├── 0172_const_item.rs
│ │ │ ├── 0172_record_field_list.rast
│ │ │ ├── 0172_record_field_list.rs
│ │ │ ├── 0173_anonymous_const.rast
│ │ │ ├── 0173_anonymous_const.rs
│ │ │ ├── 0173_macro_def_curly.rast
│ │ │ ├── 0173_macro_def_curly.rs
│ │ │ ├── 0173_union_item.rast
│ │ │ ├── 0173_union_item.rs
│ │ │ ├── 0174_trait_item_generic_params.rast
│ │ │ ├── 0174_trait_item_generic_params.rs
│ │ │ ├── 0174_unit_struct.rast
│ │ │ ├── 0174_unit_struct.rs
│ │ │ ├── 0174_use_tree_star.rast
│ │ │ ├── 0174_use_tree_star.rs
│ │ │ ├── 0175_trait_item_bounds.rast
│ │ │ ├── 0175_trait_item_bounds.rs
│ │ │ ├── 0176_trait_item_where_clause.rast
│ │ │ ├── 0176_trait_item_where_clause.rs
│ │ │ ├── 0176_use_tree_alias.rast
│ │ │ ├── 0176_use_tree_alias.rs
│ │ │ ├── 0177_assoc_item_list_inner_attrs.rast
│ │ │ ├── 0177_assoc_item_list_inner_attrs.rs
│ │ │ ├── 0177_trait_alias_where_clause.rast
│ │ │ ├── 0177_trait_alias_where_clause.rs
│ │ │ ├── 0177_use_tree.rast
│ │ │ ├── 0177_use_tree.rs
│ │ │ ├── 0177_use_tree_path.rast
│ │ │ ├── 0177_use_tree_path.rs
│ │ │ ├── 0178_use_tree_path_use_tree.rast
│ │ │ ├── 0178_use_tree_path_use_tree.rs
│ │ │ ├── 0179_use_tree_abs_star.rast
│ │ │ ├── 0179_use_tree_abs_star.rs
│ │ │ ├── 0180_use_tree_path_star.rast
│ │ │ ├── 0180_use_tree_path_star.rs
│ │ │ ├── 0181_generic_param_attribute.rast
│ │ │ ├── 0181_generic_param_attribute.rs
│ │ │ ├── 0181_use_item.rast
│ │ │ ├── 0181_use_item.rs
│ │ │ ├── 0182_lifetime_param.rast
│ │ │ ├── 0182_lifetime_param.rs
│ │ │ ├── 0183_const_arg_block.rast
│ │ │ ├── 0183_const_arg_block.rs
│ │ │ ├── 0183_type_param.rast
│ │ │ ├── 0183_type_param.rs
│ │ │ ├── 0184_const_arg.rast
│ │ │ ├── 0184_const_arg.rs
│ │ │ ├── 0184_generic_param_list.rast
│ │ │ ├── 0184_generic_param_list.rs
│ │ │ ├── 0185_assoc_type_bound.rast
│ │ │ ├── 0185_assoc_type_bound.rs
│ │ │ ├── 0186_lifetime_arg.rast
│ │ │ ├── 0186_lifetime_arg.rs
│ │ │ ├── 0187_assoc_type_eq.rast
│ │ │ ├── 0187_assoc_type_eq.rs
│ │ │ ├── 0188_const_param_default_path.rast
│ │ │ ├── 0188_const_param_default_path.rs
│ │ │ ├── 0189_const_arg_literal.rast
│ │ │ ├── 0189_const_arg_literal.rs
│ │ │ ├── 0190_generic_arg.rast
│ │ │ ├── 0190_generic_arg.rs
│ │ │ ├── 0191_const_arg_negative_number.rast
│ │ │ ├── 0191_const_arg_negative_number.rs
│ │ │ ├── 0192_const_arg_bool_literal.rast
│ │ │ ├── 0192_const_arg_bool_literal.rs
│ │ │ ├── 0193_let_stmt_init.rast
│ │ │ ├── 0193_let_stmt_init.rs
│ │ │ ├── 0194_let_else.rast
│ │ │ ├── 0194_let_else.rs
│ │ │ ├── 0194_let_stmt_ascription.rast
│ │ │ ├── 0194_let_stmt_ascription.rs
│ │ │ ├── 0194_macro_inside_generic_arg.rast
│ │ │ ├── 0194_macro_inside_generic_arg.rs
│ │ │ ├── 0196_pub_tuple_field.rast
│ │ │ ├── 0196_pub_tuple_field.rs
│ │ │ ├── 0197_destructuring_assignment_struct_rest_pattern.rast
│ │ │ ├── 0197_destructuring_assignment_struct_rest_pattern.rs
│ │ │ ├── 0198_destructuring_assignment_wildcard_pat.rast
│ │ │ ├── 0198_destructuring_assignment_wildcard_pat.rs
│ │ │ ├── 0199_const_param_default_expression.rast
│ │ │ ├── 0199_const_param_default_expression.rs
│ │ │ ├── 0199_effect_blocks.rast
│ │ │ ├── 0199_effect_blocks.rs
│ │ │ ├── 0199_type_item_where_clause_deprecated.rast
│ │ │ ├── 0199_type_item_where_clause_deprecated.rs
│ │ │ ├── 0200_assoc_const_eq.rast
│ │ │ ├── 0200_assoc_const_eq.rs
│ │ │ ├── 0200_const_param_default_literal.rast
│ │ │ ├── 0200_const_param_default_literal.rs
│ │ │ ├── 0201_question_for_type_trait_bound.rast
│ │ │ ├── 0201_question_for_type_trait_bound.rs
│ │ │ ├── 0202_typepathfn_with_coloncolon.rast
│ │ │ ├── 0202_typepathfn_with_coloncolon.rs
│ │ │ ├── 0203_closure_body_underscore_assignment.rast
│ │ │ ├── 0203_closure_body_underscore_assignment.rs
│ │ │ ├── 0204_yeet_expr.rast
│ │ │ ├── 0204_yeet_expr.rs
│ │ │ ├── 0205_const_closure.rast
│ │ │ ├── 0205_const_closure.rs
│ │ │ ├── 0207_builtin_expr.rast
│ │ │ ├── 0207_builtin_expr.rs
│ │ │ ├── 0207_exclusive_range_pat.rast
│ │ │ ├── 0207_exclusive_range_pat.rs
│ │ │ ├── 0208_associated_return_type_bounds.rast
│ │ │ ├── 0208_associated_return_type_bounds.rs
│ │ │ ├── 0208_bare_dyn_types_with_leading_lifetime.rast
│ │ │ ├── 0208_bare_dyn_types_with_leading_lifetime.rs
│ │ │ ├── 0208_closure_range_method_call.rast
│ │ │ ├── 0208_closure_range_method_call.rs
│ │ │ ├── 0208_macro_rules_as_macro_name.rast
│ │ │ ├── 0208_macro_rules_as_macro_name.rs
│ │ │ ├── 0209_bare_dyn_types_with_paren_as_generic_args.rast
│ │ │ ├── 0209_bare_dyn_types_with_paren_as_generic_args.rs
│ │ │ ├── 0209_become_expr.rast
│ │ │ ├── 0209_become_expr.rs
│ │ │ ├── 0211_async_trait_bound.rast
│ │ │ ├── 0211_async_trait_bound.rs
│ │ │ ├── 0212_const_trait_bound.rast
│ │ │ ├── 0212_const_trait_bound.rs
│ │ │ ├── 0213_metas.rast
│ │ │ └── 0213_metas.rs
│ │ └── ok
│ │ ├── 0000_empty.rast
│ │ ├── 0000_empty.rs
│ │ ├── 0001_struct_item.rast
│ │ ├── 0001_struct_item.rs
│ │ ├── 0002_struct_item_field.rast
│ │ ├── 0002_struct_item_field.rs
│ │ ├── 0004_file_shebang.rast
│ │ ├── 0004_file_shebang.rs
│ │ ├── 0005_fn_item.rast
│ │ ├── 0005_fn_item.rs
│ │ ├── 0006_inner_attributes.rast
│ │ ├── 0006_inner_attributes.rs
│ │ ├── 0007_extern_crate.rast
│ │ ├── 0007_extern_crate.rs
│ │ ├── 0008_mod_item.rast
│ │ ├── 0008_mod_item.rs
│ │ ├── 0009_use_item.rast
│ │ ├── 0009_use_item.rs
│ │ ├── 0010_use_path_segments.rast
│ │ ├── 0010_use_path_segments.rs
│ │ ├── 0011_outer_attribute.rast
│ │ ├── 0011_outer_attribute.rs
│ │ ├── 0012_visibility.rast
│ │ ├── 0012_visibility.rs
│ │ ├── 0013_use_path_self_super.rast
│ │ ├── 0013_use_path_self_super.rs
│ │ ├── 0014_use_tree.rast
│ │ ├── 0014_use_tree.rs
│ │ ├── 0015_use_tree.rast
│ │ ├── 0015_use_tree.rs
│ │ ├── 0016_struct_flavors.rast
│ │ ├── 0016_struct_flavors.rs
│ │ ├── 0017_attr_trailing_comma.rast
│ │ ├── 0017_attr_trailing_comma.rs
│ │ ├── 0018_struct_type_params.rast
│ │ ├── 0018_struct_type_params.rs
│ │ ├── 0019_enums.rast
│ │ ├── 0019_enums.rs
│ │ ├── 0020_type_param_bounds.rast
│ │ ├── 0020_type_param_bounds.rs
│ │ ├── 0022_empty_extern_block.rast
│ │ ├── 0022_empty_extern_block.rs
│ │ ├── 0023_static_items.rast
│ │ ├── 0023_static_items.rs
│ │ ├── 0024_const_item.rast
│ │ ├── 0024_const_item.rs
│ │ ├── 0025_extern_fn_in_block.rast
│ │ ├── 0025_extern_fn_in_block.rs
│ │ ├── 0026_const_fn_in_block.rast
│ │ ├── 0026_const_fn_in_block.rs
│ │ ├── 0027_unsafe_fn_in_block.rast
│ │ ├── 0027_unsafe_fn_in_block.rs
│ │ ├── 0028_operator_binding_power.rast
│ │ ├── 0028_operator_binding_power.rs
│ │ ├── 0029_range_forms.rast
│ │ ├── 0029_range_forms.rs
│ │ ├── 0030_string_suffixes.rast
│ │ ├── 0030_string_suffixes.rs
│ │ ├── 0030_traits.rast
│ │ ├── 0030_traits.rs
│ │ ├── 0031_extern.rast
│ │ ├── 0031_extern.rs
│ │ ├── 0032_where_for.rast
│ │ ├── 0032_where_for.rs
│ │ ├── 0033_label_break.rast
│ │ ├── 0033_label_break.rs
│ │ ├── 0034_crate_path_in_call.rast
│ │ ├── 0034_crate_path_in_call.rs
│ │ ├── 0035_weird_exprs.rast
│ │ ├── 0035_weird_exprs.rs
│ │ ├── 0036_fully_qualified.rast
│ │ ├── 0036_fully_qualified.rs
│ │ ├── 0037_mod.rast
│ │ ├── 0037_mod.rs
│ │ ├── 0038_where_pred_type.rast
│ │ ├── 0038_where_pred_type.rs
│ │ ├── 0039_raw_fn_item.rast
│ │ ├── 0039_raw_fn_item.rs
│ │ ├── 0040_raw_struct_item_field.rast
│ │ ├── 0040_raw_struct_item_field.rs
│ │ ├── 0041_raw_keywords.rast
│ │ ├── 0041_raw_keywords.rs
│ │ ├── 0042_ufcs_call_list.rast
│ │ ├── 0042_ufcs_call_list.rs
│ │ ├── 0043_complex_assignment.rast
│ │ ├── 0043_complex_assignment.rs
│ │ ├── 0044_let_attrs.rast
│ │ ├── 0044_let_attrs.rs
│ │ ├── 0045_block_attrs.rast
│ │ ├── 0045_block_attrs.rs
│ │ ├── 0046_extern_inner_attributes.rast
│ │ ├── 0046_extern_inner_attributes.rs
│ │ ├── 0047_minus_in_inner_pattern.rast
│ │ ├── 0047_minus_in_inner_pattern.rs
│ │ ├── 0048_compound_assignment.rast
│ │ ├── 0048_compound_assignment.rs
│ │ ├── 0049_async_block.rast
│ │ ├── 0049_async_block.rs
│ │ ├── 0050_async_block_as_argument.rast
│ │ ├── 0050_async_block_as_argument.rs
│ │ ├── 0051_parameter_attrs.rast
│ │ ├── 0051_parameter_attrs.rs
│ │ ├── 0052_for_range_block.rast
│ │ ├── 0052_for_range_block.rs
│ │ ├── 0053_outer_attribute_on_macro_rules.rast
│ │ ├── 0053_outer_attribute_on_macro_rules.rs
│ │ ├── 0054_qual_path_in_type_arg.rast
│ │ ├── 0054_qual_path_in_type_arg.rs
│ │ ├── 0055_dot_dot_dot.rast
│ │ ├── 0055_dot_dot_dot.rs
│ │ ├── 0056_neq_in_type.rast
│ │ ├── 0056_neq_in_type.rs
│ │ ├── 0057_loop_in_call.rast
│ │ ├── 0057_loop_in_call.rs
│ │ ├── 0058_unary_expr_precedence.rast
│ │ ├── 0058_unary_expr_precedence.rs
│ │ ├── 0059_loops_in_parens.rast
│ │ ├── 0059_loops_in_parens.rs
│ │ ├── 0060_as_range.rast
│ │ ├── 0060_as_range.rs
│ │ ├── 0061_match_full_range.rast
│ │ ├── 0061_match_full_range.rs
│ │ ├── 0062_macro_2.0.rast
│ │ ├── 0062_macro_2.0.rs
│ │ ├── 0063_trait_fn_patterns.rast
│ │ ├── 0063_trait_fn_patterns.rs
│ │ ├── 0063_variadic_fun.rast
│ │ ├── 0063_variadic_fun.rs
│ │ ├── 0064_impl_fn_params.rast
│ │ ├── 0064_impl_fn_params.rs
│ │ ├── 0065_comment_newline.rast
│ │ ├── 0065_comment_newline.rs
│ │ ├── 0065_plus_after_fn_trait_bound.rast
│ │ ├── 0065_plus_after_fn_trait_bound.rs
│ │ ├── 0066_default_modifier.rast
│ │ ├── 0066_default_modifier.rs
│ │ ├── 0067_where_for_pred.rast
│ │ ├── 0067_where_for_pred.rs
│ │ ├── 0068_item_modifiers.rast
│ │ ├── 0068_item_modifiers.rs
│ │ ├── 0069_multi_trait_object.rast
│ │ ├── 0069_multi_trait_object.rs
│ │ ├── 0070_expr_attr_placement.rast
│ │ ├── 0070_expr_attr_placement.rs
│ │ ├── 0071_stmt_attr_placement.rast
│ │ ├── 0071_stmt_attr_placement.rs
│ │ ├── 0072_destructuring_assignment.rast
│ │ └── 0072_destructuring_assignment.rs
├── paths
│ ├── Cargo.toml
│ └── src
│ │ └── lib.rs
├── proc-macro-api
│ ├── Cargo.toml
│ └── src
│ │ ├── lib.rs
│ │ ├── msg.rs
│ │ ├── msg
│ │ └── flat.rs
│ │ ├── process.rs
│ │ └── version.rs
├── proc-macro-srv-cli
│ ├── Cargo.toml
│ ├── build.rs
│ └── src
│ │ └── main.rs
├── proc-macro-srv
│ ├── Cargo.toml
│ ├── build.rs
│ ├── proc-macro-test
│ │ ├── Cargo.toml
│ │ ├── build.rs
│ │ ├── imp
│ │ │ ├── .gitignore
│ │ │ ├── Cargo.toml
│ │ │ ├── build.rs
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ └── src
│ │ │ └── lib.rs
│ └── src
│ │ ├── dylib.rs
│ │ ├── lib.rs
│ │ ├── proc_macros.rs
│ │ ├── server.rs
│ │ ├── server
│ │ ├── rust_analyzer_span.rs
│ │ ├── symbol.rs
│ │ ├── token_id.rs
│ │ └── token_stream.rs
│ │ └── tests
│ │ ├── mod.rs
│ │ └── utils.rs
├── profile
│ ├── Cargo.toml
│ └── src
│ │ ├── google_cpu_profiler.rs
│ │ ├── lib.rs
│ │ ├── memory_usage.rs
│ │ └── stop_watch.rs
├── project-model
│ ├── Cargo.toml
│ ├── src
│ │ ├── build_scripts.rs
│ │ ├── cargo_workspace.rs
│ │ ├── cfg.rs
│ │ ├── env.rs
│ │ ├── lib.rs
│ │ ├── manifest_path.rs
│ │ ├── project_json.rs
│ │ ├── rustc_cfg.rs
│ │ ├── sysroot.rs
│ │ ├── target_data_layout.rs
│ │ ├── tests.rs
│ │ └── workspace.rs
│ └── test_data
│ │ ├── fake-sysroot
│ │ ├── alloc
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ ├── core
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ ├── panic_abort
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ ├── panic_unwind
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ ├── proc_macro
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ ├── profiler_builtins
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ ├── std
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ ├── stdarch
│ │ │ └── crates
│ │ │ │ └── std_detect
│ │ │ │ └── src
│ │ │ │ └── lib.rs
│ │ ├── term
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ ├── test
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ └── unwind
│ │ │ └── src
│ │ │ └── lib.rs
│ │ ├── hello-world-metadata.json
│ │ ├── hello-world-project.json
│ │ ├── is-proc-macro-project.json
│ │ ├── output
│ │ ├── cargo_hello_world_project_model.txt
│ │ ├── cargo_hello_world_project_model_with_selective_overrides.txt
│ │ ├── cargo_hello_world_project_model_with_wildcard_overrides.txt
│ │ └── rust_project_hello_world_project_model.txt
│ │ ├── regex-metadata.json
│ │ └── ripgrep-metadata.json
├── rust-analyzer
│ ├── Cargo.toml
│ ├── build.rs
│ ├── src
│ │ ├── bin
│ │ │ ├── main.rs
│ │ │ └── rustc_wrapper.rs
│ │ ├── caps.rs
│ │ ├── cli.rs
│ │ ├── cli
│ │ │ ├── analysis_stats.rs
│ │ │ ├── diagnostics.rs
│ │ │ ├── flags.rs
│ │ │ ├── highlight.rs
│ │ │ ├── lsif.rs
│ │ │ ├── parse.rs
│ │ │ ├── progress_report.rs
│ │ │ ├── run_tests.rs
│ │ │ ├── rustc_tests.rs
│ │ │ ├── scip.rs
│ │ │ ├── ssr.rs
│ │ │ └── symbols.rs
│ │ ├── config.rs
│ │ ├── config
│ │ │ └── patch_old_style.rs
│ │ ├── diagnostics.rs
│ │ ├── diagnostics
│ │ │ ├── test_data
│ │ │ │ ├── clippy_pass_by_ref.txt
│ │ │ │ ├── handles_macro_location.txt
│ │ │ │ ├── macro_compiler_error.txt
│ │ │ │ ├── reasonable_line_numbers_from_empty_file.txt
│ │ │ │ ├── rustc_incompatible_type_for_trait.txt
│ │ │ │ ├── rustc_mismatched_type.txt
│ │ │ │ ├── rustc_range_map_lsp_position.txt
│ │ │ │ ├── rustc_unused_variable.txt
│ │ │ │ ├── rustc_unused_variable_as_hint.txt
│ │ │ │ ├── rustc_unused_variable_as_info.txt
│ │ │ │ ├── rustc_wrong_number_of_parameters.txt
│ │ │ │ └── snap_multi_line_fix.txt
│ │ │ └── to_proto.rs
│ │ ├── diff.rs
│ │ ├── dispatch.rs
│ │ ├── global_state.rs
│ │ ├── hack_recover_crate_name.rs
│ │ ├── handlers
│ │ │ ├── notification.rs
│ │ │ └── request.rs
│ │ ├── integrated_benchmarks.rs
│ │ ├── lib.rs
│ │ ├── line_index.rs
│ │ ├── lsp.rs
│ │ ├── lsp
│ │ │ ├── ext.rs
│ │ │ ├── from_proto.rs
│ │ │ ├── semantic_tokens.rs
│ │ │ ├── to_proto.rs
│ │ │ └── utils.rs
│ │ ├── main_loop.rs
│ │ ├── mem_docs.rs
│ │ ├── op_queue.rs
│ │ ├── reload.rs
│ │ ├── target_spec.rs
│ │ ├── task_pool.rs
│ │ ├── tracing
│ │ │ ├── config.rs
│ │ │ └── hprof.rs
│ │ ├── version.rs
│ │ └── verus_interaction.rs
│ └── tests
│ │ ├── crate_graph.rs
│ │ ├── slow-tests
│ │ ├── main.rs
│ │ ├── ratoml.rs
│ │ ├── sourcegen.rs
│ │ ├── support.rs
│ │ ├── testdir.rs
│ │ └── tidy.rs
│ │ └── test_data
│ │ ├── deduplication_crate_graph_A.json
│ │ └── deduplication_crate_graph_B.json
├── salsa
│ ├── Cargo.toml
│ ├── FAQ.md
│ ├── LICENSE-APACHE
│ ├── LICENSE-MIT
│ ├── README.md
│ ├── salsa-macros
│ │ ├── Cargo.toml
│ │ ├── LICENSE-APACHE
│ │ ├── LICENSE-MIT
│ │ ├── README.md
│ │ └── src
│ │ │ ├── database_storage.rs
│ │ │ ├── lib.rs
│ │ │ ├── parenthesized.rs
│ │ │ └── query_group.rs
│ ├── src
│ │ ├── debug.rs
│ │ ├── derived.rs
│ │ ├── derived
│ │ │ └── slot.rs
│ │ ├── durability.rs
│ │ ├── hash.rs
│ │ ├── input.rs
│ │ ├── intern_id.rs
│ │ ├── interned.rs
│ │ ├── lib.rs
│ │ ├── lru.rs
│ │ ├── plumbing.rs
│ │ ├── revision.rs
│ │ ├── runtime.rs
│ │ ├── runtime
│ │ │ ├── dependency_graph.rs
│ │ │ └── local_state.rs
│ │ └── storage.rs
│ └── tests
│ │ ├── cycles.rs
│ │ ├── dyn_trait.rs
│ │ ├── incremental
│ │ ├── constants.rs
│ │ ├── counter.rs
│ │ ├── implementation.rs
│ │ ├── log.rs
│ │ ├── main.rs
│ │ ├── memoized_dep_inputs.rs
│ │ ├── memoized_inputs.rs
│ │ └── memoized_volatile.rs
│ │ ├── interned.rs
│ │ ├── lru.rs
│ │ ├── macros.rs
│ │ ├── no_send_sync.rs
│ │ ├── on_demand_inputs.rs
│ │ ├── panic_safely.rs
│ │ ├── parallel
│ │ ├── cancellation.rs
│ │ ├── frozen.rs
│ │ ├── independent.rs
│ │ ├── main.rs
│ │ ├── parallel_cycle_all_recover.rs
│ │ ├── parallel_cycle_mid_recover.rs
│ │ ├── parallel_cycle_none_recover.rs
│ │ ├── parallel_cycle_one_recovers.rs
│ │ ├── race.rs
│ │ ├── setup.rs
│ │ ├── signal.rs
│ │ ├── stress.rs
│ │ └── true_parallel.rs
│ │ ├── storage_varieties
│ │ ├── implementation.rs
│ │ ├── main.rs
│ │ ├── queries.rs
│ │ └── tests.rs
│ │ ├── transparent.rs
│ │ └── variadic.rs
├── sourcegen
│ ├── Cargo.toml
│ └── src
│ │ └── lib.rs
├── span
│ ├── Cargo.toml
│ └── src
│ │ ├── ast_id.rs
│ │ ├── hygiene.rs
│ │ ├── lib.rs
│ │ └── map.rs
├── stdx
│ ├── Cargo.toml
│ └── src
│ │ ├── anymap.rs
│ │ ├── lib.rs
│ │ ├── macros.rs
│ │ ├── non_empty_vec.rs
│ │ ├── panic_context.rs
│ │ ├── process.rs
│ │ ├── rand.rs
│ │ ├── thread.rs
│ │ └── thread
│ │ ├── intent.rs
│ │ └── pool.rs
├── syntax
│ ├── Cargo.toml
│ ├── fuzz
│ │ ├── .gitignore
│ │ ├── Cargo.toml
│ │ └── fuzz_targets
│ │ │ ├── parser.rs
│ │ │ └── reparse.rs
│ ├── rust.ungram
│ ├── src
│ │ ├── algo.rs
│ │ ├── ast.rs
│ │ ├── ast
│ │ │ ├── edit.rs
│ │ │ ├── edit_in_place.rs
│ │ │ ├── expr_ext.rs
│ │ │ ├── generated.rs
│ │ │ ├── generated
│ │ │ │ ├── nodes.rs
│ │ │ │ ├── tokens.rs
│ │ │ │ └── vst_nodes.rs
│ │ │ ├── make.rs
│ │ │ ├── node_ext.rs
│ │ │ ├── operators.rs
│ │ │ ├── prec.rs
│ │ │ ├── token_ext.rs
│ │ │ ├── traits.rs
│ │ │ └── vst.rs
│ │ ├── fuzz.rs
│ │ ├── hacks.rs
│ │ ├── lib.rs
│ │ ├── parsing.rs
│ │ ├── parsing
│ │ │ └── reparsing.rs
│ │ ├── ptr.rs
│ │ ├── syntax_error.rs
│ │ ├── syntax_node.rs
│ │ ├── ted.rs
│ │ ├── tests.rs
│ │ ├── token_text.rs
│ │ ├── utils.rs
│ │ ├── validation.rs
│ │ └── validation
│ │ │ └── block.rs
│ └── test_data
│ │ ├── parser
│ │ ├── fuzz-failures
│ │ │ ├── 0000.rs
│ │ │ ├── 0001.rs
│ │ │ ├── 0002.rs
│ │ │ ├── 0003.rs
│ │ │ └── 0004.rs
│ │ └── validation
│ │ │ ├── 0031_block_inner_attrs.rast
│ │ │ ├── 0031_block_inner_attrs.rs
│ │ │ ├── 0037_visibility_in_traits.rast
│ │ │ ├── 0037_visibility_in_traits.rs
│ │ │ ├── 0038_endless_inclusive_range.rast
│ │ │ ├── 0038_endless_inclusive_range.rs
│ │ │ ├── 0040_illegal_crate_kw_location.rast
│ │ │ ├── 0040_illegal_crate_kw_location.rs
│ │ │ ├── 0041_illegal_self_keyword_location.rast
│ │ │ ├── 0041_illegal_self_keyword_location.rs
│ │ │ ├── 0045_ambiguous_trait_object.rast
│ │ │ ├── 0045_ambiguous_trait_object.rs
│ │ │ ├── 0046_mutable_const_item.rast
│ │ │ ├── 0046_mutable_const_item.rs
│ │ │ ├── invalid_let_expr.rast
│ │ │ └── invalid_let_expr.rs
│ │ └── reparse
│ │ └── fuzz-failures
│ │ ├── 0000.rs
│ │ ├── 0001.rs
│ │ ├── 0002.rs
│ │ ├── 0003.rs
│ │ ├── 0004.rs
│ │ └── 0005.rs
├── test-fixture
│ ├── Cargo.toml
│ └── src
│ │ └── lib.rs
├── test-utils
│ ├── Cargo.toml
│ └── src
│ │ ├── assert_linear.rs
│ │ ├── bench_fixture.rs
│ │ ├── fixture.rs
│ │ ├── lib.rs
│ │ └── minicore.rs
├── text-edit
│ ├── Cargo.toml
│ └── src
│ │ └── lib.rs
├── toolchain
│ ├── Cargo.toml
│ └── src
│ │ └── lib.rs
├── tt
│ ├── Cargo.toml
│ └── src
│ │ ├── buffer.rs
│ │ ├── iter.rs
│ │ └── lib.rs
├── va-test
│ ├── Cargo.toml
│ ├── examples
│ │ ├── misc-parsing
│ │ │ ├── Cargo.toml
│ │ │ └── src
│ │ │ │ └── main.rs
│ │ ├── prost-build-bug
│ │ │ ├── Cargo.toml
│ │ │ └── src
│ │ │ │ └── main.rs
│ │ ├── schemars-bug
│ │ │ ├── Cargo.toml
│ │ │ └── src
│ │ │ │ └── main.rs
│ │ ├── storage-macros
│ │ │ ├── Cargo.toml
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ ├── storage
│ │ │ ├── Cargo.toml
│ │ │ └── src
│ │ │ │ └── main.rs
│ │ ├── syntax
│ │ │ ├── Cargo.toml
│ │ │ └── src
│ │ │ │ └── main.rs
│ │ ├── trigger-bug
│ │ │ ├── Cargo.toml
│ │ │ └── src
│ │ │ │ └── main.rs
│ │ └── vstd-dep
│ │ │ ├── Cargo.toml
│ │ │ └── src
│ │ │ └── main.rs
│ └── src
│ │ └── main.rs
├── vfs-notify
│ ├── Cargo.toml
│ └── src
│ │ └── lib.rs
└── vfs
│ ├── Cargo.toml
│ └── src
│ ├── anchored_path.rs
│ ├── file_set.rs
│ ├── file_set
│ └── tests.rs
│ ├── lib.rs
│ ├── loader.rs
│ ├── path_interner.rs
│ ├── vfs_path.rs
│ └── vfs_path
│ └── tests.rs
├── demo.gif
├── docs
├── dev
│ ├── README.md
│ ├── architecture.md
│ ├── debugging.md
│ ├── guide.md
│ ├── lsp-extensions.md
│ ├── style.md
│ └── syntax.md
└── user
│ ├── .gitignore
│ ├── generated_config.adoc
│ └── manual.adoc
├── editors
└── code
│ ├── .eslintignore
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .prettierignore
│ ├── .prettierrc.js
│ ├── .vscodeignore
│ ├── LICENSE
│ ├── README.md
│ ├── icon.png
│ ├── language-configuration.json
│ ├── package-lock.json
│ ├── package.json
│ ├── ra_syntax_tree.tmGrammar.json
│ ├── src
│ ├── ast_inspector.ts
│ ├── bootstrap.ts
│ ├── client.ts
│ ├── commands.ts
│ ├── config.ts
│ ├── ctx.ts
│ ├── debug.ts
│ ├── dependencies_provider.ts
│ ├── diagnostics.ts
│ ├── lang_client.ts
│ ├── lsp_ext.ts
│ ├── main.ts
│ ├── persistent_state.ts
│ ├── run.ts
│ ├── rust_project.ts
│ ├── snippets.ts
│ ├── tasks.ts
│ ├── test_explorer.ts
│ ├── toolchain.ts
│ └── util.ts
│ ├── tests
│ ├── runTests.ts
│ └── unit
│ │ ├── index.ts
│ │ ├── launch_config.test.ts
│ │ ├── runnable_env.test.ts
│ │ └── settings.test.ts
│ ├── tsconfig.eslint.json
│ └── tsconfig.json
├── lib
├── README.md
├── la-arena
│ ├── Cargo.toml
│ └── src
│ │ ├── lib.rs
│ │ └── map.rs
├── line-index
│ ├── Cargo.toml
│ ├── README.md
│ └── src
│ │ ├── lib.rs
│ │ └── tests.rs
└── lsp-server
│ ├── Cargo.toml
│ ├── LICENSE-APACHE
│ ├── LICENSE-MIT
│ ├── examples
│ └── goto_def.rs
│ └── src
│ ├── error.rs
│ ├── lib.rs
│ ├── msg.rs
│ ├── req_queue.rs
│ ├── socket.rs
│ └── stdio.rs
├── rust-bors.toml
├── rust-version
├── rustfmt.toml
├── triagebot.toml
└── xtask
├── Cargo.toml
├── src
├── codegen.rs
├── codegen
│ ├── assists_doc_tests.rs
│ ├── diagnostics_docs.rs
│ ├── grammar.rs
│ ├── grammar
│ │ ├── ast_src.rs
│ │ └── sourcegen_vst.rs
│ └── lints.rs
├── dist.rs
├── flags.rs
├── install.rs
├── main.rs
├── metrics.rs
├── publish.rs
├── publish
│ └── notes.rs
├── release.rs
└── release
│ └── changelog.rs
└── test_data
├── expected.md
└── input.adoc
/.cargo/config.toml:
--------------------------------------------------------------------------------
1 | [alias]
2 | xtask = "run --package xtask --bin xtask --"
3 | tq = "test -- -q"
4 | qt = "tq"
5 | lint = "clippy --all-targets -- --cap-lints warn"
6 | codegen = "run --package xtask --bin xtask -- codegen"
7 | dist = "run --package xtask --bin xtask -- dist"
8 |
9 | [target.x86_64-pc-windows-msvc]
10 | linker = "rust-lld"
11 |
12 | [env]
13 | CARGO_WORKSPACE_DIR = { value = "", relative = true }
14 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # https://EditorConfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | trim_trailing_whitespace = true
7 | end_of_line = lf
8 | insert_final_newline = true
9 | indent_style = space
10 | indent_size = 4
11 | max_line_length = 100
12 |
13 | [*.md]
14 | indent_size = 2
15 |
16 | [*.{yml, yaml}]
17 | indent_size = 2
18 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto eol=lf
2 |
3 | # git grep shouldn't match entries in this benchmark data
4 | bench_data/** binary
5 |
6 | # Older git versions try to fix line endings on images, this prevents it.
7 | *.png binary
8 | *.jpg binary
9 | *.ico binary
10 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature Request
3 | about: Create a feature request for verus-analyzer.
4 | title: ''
5 | labels: 'C-feature'
6 | assignees: ''
7 |
8 | ---
9 |
10 |
13 |
14 |
--------------------------------------------------------------------------------
/.github/actions/github-release/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM node:slim
2 |
3 | COPY . /action
4 | WORKDIR /action
5 |
6 | RUN npm install --production
7 |
8 | ENTRYPOINT ["node", "/action/main.js"]
9 |
--------------------------------------------------------------------------------
/.github/actions/github-release/action.yml:
--------------------------------------------------------------------------------
1 | name: 'wasmtime github releases'
2 | description: 'wasmtime github releases'
3 | inputs:
4 | token:
5 | description: ''
6 | required: true
7 | name:
8 | description: ''
9 | required: true
10 | files:
11 | description: ''
12 | required: true
13 | runs:
14 | using: 'docker'
15 | image: 'Dockerfile'
16 |
--------------------------------------------------------------------------------
/.github/actions/github-release/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wasmtime-github-release",
3 | "version": "0.0.0",
4 | "main": "main.js",
5 | "dependencies": {
6 | "@actions/core": "^1.6",
7 | "@actions/github": "^5.0",
8 | "glob": "^7.1.5"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | By submitting this pull request, I confirm that my contribution is made under the terms of the [MIT](https://github.com/verus-lang/verus-analyzer/blob/main/LICENSE-MIT) and [Apache](https://github.com/verus-lang/verus-analyzer/blob/main/LICENSE-APACHE) licenses.
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 | /dist/
3 | crates/*/target
4 | **/*.rs.bk
5 | **/*.rs.pending-snap
6 | .idea/*
7 | *.log
8 | *.iml
9 | .vscode/settings.json
10 | generated_assists.adoc
11 | generated_features.adoc
12 | generated_diagnostic.adoc
13 | .DS_Store
14 | /out/
15 | /dump.lsif
16 | .envrc
17 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
3 | // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
4 |
5 | // List of extensions which should be recommended for users of this workspace.
6 | "recommendations": ["vadimcn.vscode-lldb"],
7 | // List of extensions recommended by VS Code that should not be recommended for users of this workspace.
8 | "unwantedRecommendations": []
9 | }
10 |
--------------------------------------------------------------------------------
/PRIVACY.md:
--------------------------------------------------------------------------------
1 | See the [Privacy](https://rust-analyzer.github.io/manual.html#privacy) section of the user manual.
2 |
--------------------------------------------------------------------------------
/clippy.toml:
--------------------------------------------------------------------------------
1 | disallowed-types = [
2 | { path = "std::collections::HashMap", reason = "use FxHashMap" },
3 | { path = "std::collections::HashSet", reason = "use FxHashSet" },
4 | { path = "std::collections::hash_map::RandomState", reason = "use BuildHasherDefault"}
5 | ]
6 |
--------------------------------------------------------------------------------
/crates/hir-def/src/nameres/tests/primitives.rs:
--------------------------------------------------------------------------------
1 | use super::*;
2 |
3 | #[test]
4 | fn primitive_reexport() {
5 | check(
6 | r#"
7 | //- /lib.rs
8 | mod foo;
9 | use foo::int;
10 |
11 | //- /foo.rs
12 | pub use i32 as int;
13 | "#,
14 | expect![[r#"
15 | crate
16 | foo: t
17 | int: ti
18 |
19 | crate::foo
20 | int: ti
21 | "#]],
22 | );
23 | }
24 |
--------------------------------------------------------------------------------
/crates/hir-ty/src/diagnostics.rs:
--------------------------------------------------------------------------------
1 | //! Type inference-based diagnostics.
2 | mod decl_check;
3 | mod expr;
4 | mod match_check;
5 | mod unsafe_check;
6 |
7 | pub use crate::diagnostics::{
8 | decl_check::{incorrect_case, CaseType, IncorrectCase},
9 | expr::{
10 | record_literal_missing_fields, record_pattern_missing_fields, BodyValidationDiagnostic,
11 | },
12 | unsafe_check::{missing_unsafe, unsafe_expressions, UnsafeExpr},
13 | };
14 |
--------------------------------------------------------------------------------
/crates/ide/src/view_item_tree.rs:
--------------------------------------------------------------------------------
1 | use hir::db::DefDatabase;
2 | use ide_db::base_db::FileId;
3 | use ide_db::RootDatabase;
4 |
5 | // Feature: Debug ItemTree
6 | //
7 | // Displays the ItemTree of the currently open file, for debugging.
8 | //
9 | // |===
10 | // | Editor | Action Name
11 | //
12 | // | VS Code | **rust-analyzer: Debug ItemTree**
13 | // |===
14 | pub(crate) fn view_item_tree(db: &RootDatabase, file_id: FileId) -> String {
15 | db.file_item_tree(file_id.into()).pretty_print(db)
16 | }
17 |
--------------------------------------------------------------------------------
/crates/limit/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "limit"
3 | version = "0.0.0"
4 | description = "TBD"
5 |
6 | authors.workspace = true
7 | edition.workspace = true
8 | license.workspace = true
9 | rust-version.workspace = true
10 |
11 | [features]
12 | tracking = []
13 |
14 | [lints]
15 | workspace = true
16 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/byte_strings.rs:
--------------------------------------------------------------------------------
1 | b"\💩"
2 | b"\●"
3 | b"\u{_0000}"
4 | b"\u{0000000}"
5 | b"\u{FFFFFF}"
6 | b"\u{ffffff}"
7 | b"\u{ffffff}"
8 | b"\u{DC00}"
9 | b"\u{DDDD}"
10 | b"\u{DFFF}"
11 | b"\u{D800}"
12 | b"\u{DAAA}"
13 | b"\u{DBFF}"
14 | b"\xы"
15 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/c_strings.rs:
--------------------------------------------------------------------------------
1 | c"\💩"
2 | c"\●"
3 | c"\u{_0000}"
4 | c"\u{0000000}"
5 | c"\u{FFFFFF}"
6 | c"\u{ffffff}"
7 | c"\u{ffffff}"
8 | c"\u{DC00}"
9 | c"\u{DDDD}"
10 | c"\u{DFFF}"
11 | c"\u{D800}"
12 | c"\u{DAAA}"
13 | c"\u{DBFF}"
14 | c"\xы"
15 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/empty_exponent.rs:
--------------------------------------------------------------------------------
1 | 0e
2 | 0E
3 |
4 | 42e+
5 | 42e-
6 | 42E+
7 | 42E-
8 |
9 | 42.e+
10 | 42.e-
11 | 42.E+
12 | 42.E-
13 |
14 | 42.2e+
15 | 42.2e-
16 | 42.2E+
17 | 42.2E-
18 |
19 | 42.2e+f32
20 | 42.2e-f32
21 | 42.2E+f32
22 | 42.2E-f32
23 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/empty_int.rs:
--------------------------------------------------------------------------------
1 | 0b
2 | 0o
3 | 0x
4 |
5 | 0b_
6 | 0o_
7 | 0x_
8 |
9 | 0bnoDigit
10 | 0onoDigit
11 | 0xnoDigit
12 |
13 | 0xG
14 | 0xg
15 |
16 | 0x_g
17 | 0x_G
18 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/lifetime_starts_with_a_number.rast:
--------------------------------------------------------------------------------
1 | LIFETIME_IDENT "'1" error: Lifetime name cannot start with a number
2 | WHITESPACE "\n"
3 | LIFETIME_IDENT "'1lifetime" error: Lifetime name cannot start with a number
4 | WHITESPACE "\n"
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/lifetime_starts_with_a_number.rs:
--------------------------------------------------------------------------------
1 | '1
2 | '1lifetime
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/lifetime_starts_with_a_number.txt:
--------------------------------------------------------------------------------
1 | LIFETIME_IDENT "'1" error: Lifetime name cannot start with a number
2 | WHITESPACE "\n"
3 | LIFETIME_IDENT "'1lifetime" error: Lifetime name cannot start with a number
4 | WHITESPACE "\n"
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/strings.rs:
--------------------------------------------------------------------------------
1 | "\💩"
2 | "\●"
3 | "\u{_0000}"
4 | "\u{0000000}"
5 | "\u{FFFFFF}"
6 | "\u{ffffff}"
7 | "\u{ffffff}"
8 | "\u{DC00}"
9 | "\u{DDDD}"
10 | "\u{DFFF}"
11 | "\u{D800}"
12 | "\u{DAAA}"
13 | "\u{DBFF}"
14 | "\xы"
15 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_block_comment_at_eof.rast:
--------------------------------------------------------------------------------
1 | COMMENT "/*" error: Missing trailing `*/` symbols to terminate the block comment
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_block_comment_at_eof.rs:
--------------------------------------------------------------------------------
1 | /*
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_block_comment_at_eof.txt:
--------------------------------------------------------------------------------
1 | COMMENT "/*" error: Missing trailing `*/` symbols to terminate the block comment
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_block_comment_with_content.rast:
--------------------------------------------------------------------------------
1 | COMMENT "/* comment\n" error: Missing trailing `*/` symbols to terminate the block comment
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_block_comment_with_content.rs:
--------------------------------------------------------------------------------
1 | /* comment
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_block_comment_with_content.txt:
--------------------------------------------------------------------------------
1 | COMMENT "/* comment\n" error: Missing trailing `*/` symbols to terminate the block comment
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_at_eof.rast:
--------------------------------------------------------------------------------
1 | BYTE "b'" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_at_eof.rs:
--------------------------------------------------------------------------------
1 | b'
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_at_eof.txt:
--------------------------------------------------------------------------------
1 | BYTE "b'" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_at_eof.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_at_eof.rs:
--------------------------------------------------------------------------------
1 | b"
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_at_eof.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_ascii_escape.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"\\x7f" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_ascii_escape.rs:
--------------------------------------------------------------------------------
1 | b"\x7f
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_ascii_escape.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"\\x7f" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_ferris.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"🦀" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_ferris.rs:
--------------------------------------------------------------------------------
1 | b"🦀
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_ferris.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"🦀" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"\\" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash.rs:
--------------------------------------------------------------------------------
1 | b"\
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"\\" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_double_quote.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"\\\"" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_double_quote.rs:
--------------------------------------------------------------------------------
1 | b"\"
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_double_quote.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"\\\"" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_n.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"\\n" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_n.rs:
--------------------------------------------------------------------------------
1 | b"\n
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_slash_n.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"\\n" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_space.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\" " error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_space.rs:
--------------------------------------------------------------------------------
1 | b"
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_space.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\" " error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_unicode_escape.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"\\u{20AA}" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_unicode_escape.rs:
--------------------------------------------------------------------------------
1 | b"\u{20AA}
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_string_with_unicode_escape.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "b\"\\u{20AA}" error: Missing trailing `"` symbol to terminate the byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_ascii_escape.rast:
--------------------------------------------------------------------------------
1 | BYTE "b'\\x7f" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_ascii_escape.rs:
--------------------------------------------------------------------------------
1 | b'\x7f
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_ascii_escape.txt:
--------------------------------------------------------------------------------
1 | BYTE "b'\\x7f" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_ferris.rast:
--------------------------------------------------------------------------------
1 | BYTE "b'🦀" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_ferris.rs:
--------------------------------------------------------------------------------
1 | b'🦀
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_ferris.txt:
--------------------------------------------------------------------------------
1 | BYTE "b'🦀" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_slash.rast:
--------------------------------------------------------------------------------
1 | BYTE "b'\\" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_slash.rs:
--------------------------------------------------------------------------------
1 | b'\
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_slash.txt:
--------------------------------------------------------------------------------
1 | BYTE "b'\\" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_slash_n.rast:
--------------------------------------------------------------------------------
1 | BYTE "b'\\n" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_slash_n.rs:
--------------------------------------------------------------------------------
1 | b'\n
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_slash_n.txt:
--------------------------------------------------------------------------------
1 | BYTE "b'\\n" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_slash_single_quote.rast:
--------------------------------------------------------------------------------
1 | BYTE "b'\\'" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_slash_single_quote.rs:
--------------------------------------------------------------------------------
1 | b'\'
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_slash_single_quote.txt:
--------------------------------------------------------------------------------
1 | BYTE "b'\\'" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_space.rast:
--------------------------------------------------------------------------------
1 | BYTE "b' " error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_space.rs:
--------------------------------------------------------------------------------
1 | b'
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_space.txt:
--------------------------------------------------------------------------------
1 | BYTE "b' " error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_unicode_escape.rast:
--------------------------------------------------------------------------------
1 | BYTE "b'\\u{20AA}" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_unicode_escape.rs:
--------------------------------------------------------------------------------
1 | b'\u{20AA}
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_byte_with_unicode_escape.txt:
--------------------------------------------------------------------------------
1 | BYTE "b'\\u{20AA}" error: Missing trailing `'` symbol to terminate the byte literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_at_eof.rast:
--------------------------------------------------------------------------------
1 | CHAR "'" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_at_eof.rs:
--------------------------------------------------------------------------------
1 | '
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_at_eof.txt:
--------------------------------------------------------------------------------
1 | CHAR "'" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_ascii_escape.rast:
--------------------------------------------------------------------------------
1 | CHAR "'\\x7f" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_ascii_escape.rs:
--------------------------------------------------------------------------------
1 | '\x7f
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_ascii_escape.txt:
--------------------------------------------------------------------------------
1 | CHAR "'\\x7f" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_ferris.rast:
--------------------------------------------------------------------------------
1 | CHAR "'🦀" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_ferris.rs:
--------------------------------------------------------------------------------
1 | '🦀
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_ferris.txt:
--------------------------------------------------------------------------------
1 | CHAR "'🦀" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_slash.rast:
--------------------------------------------------------------------------------
1 | CHAR "'\\" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_slash.rs:
--------------------------------------------------------------------------------
1 | '\
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_slash.txt:
--------------------------------------------------------------------------------
1 | CHAR "'\\" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_slash_n.rast:
--------------------------------------------------------------------------------
1 | CHAR "'\\n" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_slash_n.rs:
--------------------------------------------------------------------------------
1 | '\n
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_slash_n.txt:
--------------------------------------------------------------------------------
1 | CHAR "'\\n" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_slash_single_quote.rast:
--------------------------------------------------------------------------------
1 | CHAR "'\\'" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_slash_single_quote.rs:
--------------------------------------------------------------------------------
1 | '\'
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_slash_single_quote.txt:
--------------------------------------------------------------------------------
1 | CHAR "'\\'" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_space.rast:
--------------------------------------------------------------------------------
1 | CHAR "' " error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_space.rs:
--------------------------------------------------------------------------------
1 | '
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_space.txt:
--------------------------------------------------------------------------------
1 | CHAR "' " error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_unicode_escape.rast:
--------------------------------------------------------------------------------
1 | CHAR "'\\u{20AA}" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_unicode_escape.rs:
--------------------------------------------------------------------------------
1 | '\u{20AA}
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_char_with_unicode_escape.txt:
--------------------------------------------------------------------------------
1 | CHAR "'\\u{20AA}" error: Missing trailing `'` symbol to terminate the character literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_nested_block_comment_entirely.rast:
--------------------------------------------------------------------------------
1 | COMMENT "/* /* /*\n" error: Missing trailing `*/` symbols to terminate the block comment
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_nested_block_comment_entirely.rs:
--------------------------------------------------------------------------------
1 | /* /* /*
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_nested_block_comment_entirely.txt:
--------------------------------------------------------------------------------
1 | COMMENT "/* /* /*\n" error: Missing trailing `*/` symbols to terminate the block comment
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_nested_block_comment_partially.rast:
--------------------------------------------------------------------------------
1 | COMMENT "/** /*! /* comment */ */\n" error: Missing trailing `*/` symbols to terminate the block comment
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_nested_block_comment_partially.rs:
--------------------------------------------------------------------------------
1 | /** /*! /* comment */ */
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_nested_block_comment_partially.txt:
--------------------------------------------------------------------------------
1 | COMMENT "/** /*! /* comment */ */\n" error: Missing trailing `*/` symbols to terminate the block comment
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_at_eof.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\"" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_at_eof.rs:
--------------------------------------------------------------------------------
1 | br##"
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_at_eof.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\"" error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ascii_escape.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\"\\x7f" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ascii_escape.rs:
--------------------------------------------------------------------------------
1 | br##"\x7f
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ascii_escape.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\"\\x7f" error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ferris.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\"🦀" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ferris.rs:
--------------------------------------------------------------------------------
1 | br##"🦀
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_ferris.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\"🦀" error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\"\\" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash.rs:
--------------------------------------------------------------------------------
1 | br##"\
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\"\\" error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash_n.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\"\\n" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash_n.rs:
--------------------------------------------------------------------------------
1 | br##"\n
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_slash_n.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\"\\n" error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_space.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\" " error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_space.rs:
--------------------------------------------------------------------------------
1 | br##"
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_space.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\" " error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_unicode_escape.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\"\\u{20AA}" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_unicode_escape.rs:
--------------------------------------------------------------------------------
1 | br##"\u{20AA}
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_byte_string_with_unicode_escape.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##\"\\u{20AA}" error: Missing trailing `"` with `#` symbols to terminate the raw byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_at_eof.rast:
--------------------------------------------------------------------------------
1 | STRING "r##\"" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_at_eof.rs:
--------------------------------------------------------------------------------
1 | r##"
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_at_eof.txt:
--------------------------------------------------------------------------------
1 | STRING "r##\"" error: Missing trailing `"` with `#` symbols to terminate the raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_ascii_escape.rast:
--------------------------------------------------------------------------------
1 | STRING "r##\"\\x7f" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_ascii_escape.rs:
--------------------------------------------------------------------------------
1 | r##"\x7f
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_ascii_escape.txt:
--------------------------------------------------------------------------------
1 | STRING "r##\"\\x7f" error: Missing trailing `"` with `#` symbols to terminate the raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_ferris.rast:
--------------------------------------------------------------------------------
1 | STRING "r##\"🦀" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_ferris.rs:
--------------------------------------------------------------------------------
1 | r##"🦀
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_ferris.txt:
--------------------------------------------------------------------------------
1 | STRING "r##\"🦀" error: Missing trailing `"` with `#` symbols to terminate the raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash.rast:
--------------------------------------------------------------------------------
1 | STRING "r##\"\\" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash.rs:
--------------------------------------------------------------------------------
1 | r##"\
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash.txt:
--------------------------------------------------------------------------------
1 | STRING "r##\"\\" error: Missing trailing `"` with `#` symbols to terminate the raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash_n.rast:
--------------------------------------------------------------------------------
1 | STRING "r##\"\\n" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash_n.rs:
--------------------------------------------------------------------------------
1 | r##"\n
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_slash_n.txt:
--------------------------------------------------------------------------------
1 | STRING "r##\"\\n" error: Missing trailing `"` with `#` symbols to terminate the raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_space.rast:
--------------------------------------------------------------------------------
1 | STRING "r##\" " error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_space.rs:
--------------------------------------------------------------------------------
1 | r##"
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_space.txt:
--------------------------------------------------------------------------------
1 | STRING "r##\" " error: Missing trailing `"` with `#` symbols to terminate the raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_unicode_escape.rast:
--------------------------------------------------------------------------------
1 | STRING "r##\"\\u{20AA}" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_unicode_escape.rs:
--------------------------------------------------------------------------------
1 | r##"\u{20AA}
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_raw_string_with_unicode_escape.txt:
--------------------------------------------------------------------------------
1 | STRING "r##\"\\u{20AA}" error: Missing trailing `"` with `#` symbols to terminate the raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_at_eof.rast:
--------------------------------------------------------------------------------
1 | STRING "\"" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_at_eof.rs:
--------------------------------------------------------------------------------
1 | "
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_at_eof.txt:
--------------------------------------------------------------------------------
1 | STRING "\"" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_ascii_escape.rast:
--------------------------------------------------------------------------------
1 | STRING "\"\\x7f" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_ascii_escape.rs:
--------------------------------------------------------------------------------
1 | "\x7f
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_ascii_escape.txt:
--------------------------------------------------------------------------------
1 | STRING "\"\\x7f" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_ferris.rast:
--------------------------------------------------------------------------------
1 | STRING "\"🦀" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_ferris.rs:
--------------------------------------------------------------------------------
1 | "🦀
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_ferris.txt:
--------------------------------------------------------------------------------
1 | STRING "\"🦀" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_slash.rast:
--------------------------------------------------------------------------------
1 | STRING "\"\\" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_slash.rs:
--------------------------------------------------------------------------------
1 | "\
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_slash.txt:
--------------------------------------------------------------------------------
1 | STRING "\"\\" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_slash_double_quote.rast:
--------------------------------------------------------------------------------
1 | STRING "\"\\\"" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_slash_double_quote.rs:
--------------------------------------------------------------------------------
1 | "\"
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_slash_double_quote.txt:
--------------------------------------------------------------------------------
1 | STRING "\"\\\"" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_slash_n.rast:
--------------------------------------------------------------------------------
1 | STRING "\"\\n" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_slash_n.rs:
--------------------------------------------------------------------------------
1 | "\n
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_slash_n.txt:
--------------------------------------------------------------------------------
1 | STRING "\"\\n" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_space.rast:
--------------------------------------------------------------------------------
1 | STRING "\" " error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_space.rs:
--------------------------------------------------------------------------------
1 | "
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_space.txt:
--------------------------------------------------------------------------------
1 | STRING "\" " error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_unicode_escape.rast:
--------------------------------------------------------------------------------
1 | STRING "\"\\u{20AA}" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_unicode_escape.rs:
--------------------------------------------------------------------------------
1 | "\u{20AA}
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unclosed_string_with_unicode_escape.txt:
--------------------------------------------------------------------------------
1 | STRING "\"\\u{20AA}" error: Missing trailing `"` symbol to terminate the string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unstarted_raw_byte_string_at_eof.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unstarted_raw_byte_string_at_eof.rs:
--------------------------------------------------------------------------------
1 | br##
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unstarted_raw_byte_string_at_eof.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br##" error: Missing `"` symbol after `#` symbols to begin the raw byte string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unstarted_raw_byte_string_with_ascii.rast:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br## " error: Invalid raw string literal
2 | IDENT "I"
3 | WHITESPACE " "
4 | IDENT "lack"
5 | WHITESPACE " "
6 | IDENT "a"
7 | WHITESPACE " "
8 | IDENT "quote"
9 | BANG "!"
10 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unstarted_raw_byte_string_with_ascii.rs:
--------------------------------------------------------------------------------
1 | br## I lack a quote!
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unstarted_raw_byte_string_with_ascii.txt:
--------------------------------------------------------------------------------
1 | BYTE_STRING "br## " error: Missing `"` symbol after `#` symbols to begin the raw byte string literal
2 | IDENT "I"
3 | WHITESPACE " "
4 | IDENT "lack"
5 | WHITESPACE " "
6 | IDENT "a"
7 | WHITESPACE " "
8 | IDENT "quote"
9 | BANG "!"
10 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unstarted_raw_string_at_eof.rast:
--------------------------------------------------------------------------------
1 | STRING "r##" error: Invalid raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unstarted_raw_string_at_eof.rs:
--------------------------------------------------------------------------------
1 | r##
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unstarted_raw_string_at_eof.txt:
--------------------------------------------------------------------------------
1 | STRING "r##" error: Missing `"` symbol after `#` symbols to begin the raw string literal
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unstarted_raw_string_with_ascii.rast:
--------------------------------------------------------------------------------
1 | STRING "r## " error: Invalid raw string literal
2 | IDENT "I"
3 | WHITESPACE " "
4 | IDENT "lack"
5 | WHITESPACE " "
6 | IDENT "a"
7 | WHITESPACE " "
8 | IDENT "quote"
9 | BANG "!"
10 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unstarted_raw_string_with_ascii.rs:
--------------------------------------------------------------------------------
1 | r## I lack a quote!
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/err/unstarted_raw_string_with_ascii.txt:
--------------------------------------------------------------------------------
1 | STRING "r## " error: Missing `"` symbol after `#` symbols to begin the raw string literal
2 | IDENT "I"
3 | WHITESPACE " "
4 | IDENT "lack"
5 | WHITESPACE " "
6 | IDENT "a"
7 | WHITESPACE " "
8 | IDENT "quote"
9 | BANG "!"
10 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/block_comment.rast:
--------------------------------------------------------------------------------
1 | COMMENT "/* */"
2 | WHITESPACE "\n"
3 | COMMENT "/**/"
4 | WHITESPACE "\n"
5 | COMMENT "/* /* */ */"
6 | WHITESPACE "\n"
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/block_comment.rs:
--------------------------------------------------------------------------------
1 | /* */
2 | /**/
3 | /* /* */ */
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/block_comment.txt:
--------------------------------------------------------------------------------
1 | COMMENT "/* */"
2 | WHITESPACE "\n"
3 | COMMENT "/**/"
4 | WHITESPACE "\n"
5 | COMMENT "/* /* */ */"
6 | WHITESPACE "\n"
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/byte_strings.rast:
--------------------------------------------------------------------------------
1 | BYTE "b'x'"
2 | WHITESPACE " "
3 | BYTE_STRING "b\"foo\""
4 | WHITESPACE " "
5 | BYTE_STRING "br\"\""
6 | WHITESPACE "\n"
7 | BYTE_STRING "b\"\"ix"
8 | WHITESPACE " "
9 | BYTE_STRING "br\"\"br"
10 | WHITESPACE "\n"
11 | BYTE "b'\\n'"
12 | WHITESPACE " "
13 | BYTE "b'\\\\'"
14 | WHITESPACE " "
15 | BYTE "b'\\''"
16 | WHITESPACE "\n"
17 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/byte_strings.rs:
--------------------------------------------------------------------------------
1 | b'x' b"foo" br""
2 | b""ix br""br
3 | b'\n' b'\\' b'\''
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/byte_strings.txt:
--------------------------------------------------------------------------------
1 | BYTE "b''"
2 | WHITESPACE " "
3 | BYTE "b'x'"
4 | WHITESPACE " "
5 | BYTE_STRING "b\"foo\""
6 | WHITESPACE " "
7 | BYTE_STRING "br\"\""
8 | WHITESPACE "\n"
9 | BYTE "b''suf"
10 | WHITESPACE " "
11 | BYTE_STRING "b\"\"ix"
12 | WHITESPACE " "
13 | BYTE_STRING "br\"\"br"
14 | WHITESPACE "\n"
15 | BYTE "b'\\n'"
16 | WHITESPACE " "
17 | BYTE "b'\\\\'"
18 | WHITESPACE " "
19 | BYTE "b'\\''"
20 | WHITESPACE " "
21 | BYTE "b'hello'"
22 | WHITESPACE "\n"
23 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/chars.rast:
--------------------------------------------------------------------------------
1 | CHAR "'x'"
2 | WHITESPACE " "
3 | CHAR "' '"
4 | WHITESPACE " "
5 | CHAR "'0'"
6 | WHITESPACE " "
7 | CHAR "'\\x7f'"
8 | WHITESPACE " "
9 | CHAR "'\\n'"
10 | WHITESPACE " "
11 | CHAR "'\\\\'"
12 | WHITESPACE " "
13 | CHAR "'\\''"
14 | WHITESPACE "\n"
15 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/chars.rs:
--------------------------------------------------------------------------------
1 | 'x' ' ' '0' '\x7f' '\n' '\\' '\''
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/chars.txt:
--------------------------------------------------------------------------------
1 | CHAR "'x'"
2 | WHITESPACE " "
3 | CHAR "' '"
4 | WHITESPACE " "
5 | CHAR "'0'"
6 | WHITESPACE " "
7 | CHAR "'hello'"
8 | WHITESPACE " "
9 | CHAR "'\\x7f'"
10 | WHITESPACE " "
11 | CHAR "'\\n'"
12 | WHITESPACE " "
13 | CHAR "'\\\\'"
14 | WHITESPACE " "
15 | CHAR "'\\''"
16 | WHITESPACE "\n"
17 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/hello.rast:
--------------------------------------------------------------------------------
1 | IDENT "hello"
2 | WHITESPACE " "
3 | IDENT "world"
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/hello.rs:
--------------------------------------------------------------------------------
1 | hello world
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/hello.txt:
--------------------------------------------------------------------------------
1 | IDENT "hello"
2 | WHITESPACE " "
3 | IDENT "world"
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/ident.rast:
--------------------------------------------------------------------------------
1 | IDENT "foo"
2 | WHITESPACE " "
3 | IDENT "foo_"
4 | WHITESPACE " "
5 | IDENT "_foo"
6 | WHITESPACE " "
7 | UNDERSCORE "_"
8 | WHITESPACE " "
9 | IDENT "__"
10 | WHITESPACE " "
11 | IDENT "x"
12 | WHITESPACE " "
13 | IDENT "привет"
14 | WHITESPACE "\n"
15 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/ident.rs:
--------------------------------------------------------------------------------
1 | foo foo_ _foo _ __ x привет
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/ident.txt:
--------------------------------------------------------------------------------
1 | IDENT "foo"
2 | WHITESPACE " "
3 | IDENT "foo_"
4 | WHITESPACE " "
5 | IDENT "_foo"
6 | WHITESPACE " "
7 | UNDERSCORE "_"
8 | WHITESPACE " "
9 | IDENT "__"
10 | WHITESPACE " "
11 | IDENT "x"
12 | WHITESPACE " "
13 | IDENT "привет"
14 | WHITESPACE "\n"
15 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/keywords.rs:
--------------------------------------------------------------------------------
1 | async fn use struct trait enum impl true false as extern crate
2 | mod pub self super in where for loop while if match const
3 | static mut type ref let else move return
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/lifetimes.rast:
--------------------------------------------------------------------------------
1 | LIFETIME_IDENT "'a"
2 | WHITESPACE " "
3 | LIFETIME_IDENT "'foo"
4 | WHITESPACE " "
5 | LIFETIME_IDENT "'foo_bar_baz"
6 | WHITESPACE " "
7 | LIFETIME_IDENT "'_"
8 | WHITESPACE "\n"
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/lifetimes.rs:
--------------------------------------------------------------------------------
1 | 'a 'foo 'foo_bar_baz '_
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/lifetimes.txt:
--------------------------------------------------------------------------------
1 | LIFETIME_IDENT "'a"
2 | WHITESPACE " "
3 | LIFETIME_IDENT "'foo"
4 | WHITESPACE " "
5 | LIFETIME_IDENT "'foo_bar_baz"
6 | WHITESPACE " "
7 | LIFETIME_IDENT "'_"
8 | WHITESPACE "\n"
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/numbers.rs:
--------------------------------------------------------------------------------
1 | 0 00 0_ 0. 0z
2 | 01790 0b1790 0o1790 0x1790aAbBcCdDeEfF 001279 0_1279 0.1279 0e1279 0E1279
3 | 0..2
4 | 0.foo()
5 | 0e+1
6 | 0.e+1
7 | 0.0E-2
8 | 0___0.10000____0000e+111__
9 | 1i64 92.0f32 11__s
10 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/raw_ident.rast:
--------------------------------------------------------------------------------
1 | IDENT "r#raw_ident"
2 | WHITESPACE "\n"
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/raw_ident.rs:
--------------------------------------------------------------------------------
1 | r#raw_ident
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/raw_ident.txt:
--------------------------------------------------------------------------------
1 | IDENT "r#raw_ident"
2 | WHITESPACE "\n"
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/raw_strings.rast:
--------------------------------------------------------------------------------
1 | STRING "r###\"this is a r##\"raw\"## string\"###"
2 | WHITESPACE "\n"
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/raw_strings.rs:
--------------------------------------------------------------------------------
1 | r###"this is a r##"raw"## string"###
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/raw_strings.txt:
--------------------------------------------------------------------------------
1 | STRING "r###\"this is a r##\"raw\"## string\"###"
2 | WHITESPACE "\n"
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/single_line_comments.rs:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | // hello
3 | //! World
4 | //!! Inner line doc
5 | /// Outer line doc
6 | //// Just a comment
7 |
8 | //
9 | //!
10 | //!!
11 | ///
12 | ////
13 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/strings.rast:
--------------------------------------------------------------------------------
1 | STRING "\"hello\""
2 | WHITESPACE " "
3 | STRING "r\"world\""
4 | WHITESPACE " "
5 | STRING "\"\\n\\\"\\\\no escape\""
6 | WHITESPACE " "
7 | STRING "\"multi\nline\""
8 | WHITESPACE "\n"
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/strings.rs:
--------------------------------------------------------------------------------
1 | "hello" r"world" "\n\"\\no escape" "multi
2 | line"
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/strings.txt:
--------------------------------------------------------------------------------
1 | STRING "\"hello\""
2 | WHITESPACE " "
3 | STRING "r\"world\""
4 | WHITESPACE " "
5 | STRING "\"\\n\\\"\\\\no escape\""
6 | WHITESPACE " "
7 | STRING "\"multi\nline\""
8 | WHITESPACE "\n"
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/symbols.rs:
--------------------------------------------------------------------------------
1 | ; , ( ) { } [ ] < > @ # ~ ? $ & | + * / ^ %
2 | . .. ... ..=
3 | : ::
4 | = =>
5 | ! !=
6 | - ->
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/whitespace.rast:
--------------------------------------------------------------------------------
1 | IDENT "a"
2 | WHITESPACE " "
3 | IDENT "b"
4 | WHITESPACE " "
5 | IDENT "c"
6 | WHITESPACE "\n"
7 | IDENT "d"
8 | WHITESPACE "\n\n"
9 | IDENT "e"
10 | WHITESPACE "\t"
11 | IDENT "f"
12 | WHITESPACE "\n"
13 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/whitespace.rs:
--------------------------------------------------------------------------------
1 | a b c
2 | d
3 |
4 | e f
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/lexer/ok/whitespace.txt:
--------------------------------------------------------------------------------
1 | IDENT "a"
2 | WHITESPACE " "
3 | IDENT "b"
4 | WHITESPACE " "
5 | IDENT "c"
6 | WHITESPACE "\n"
7 | IDENT "d"
8 | WHITESPACE "\n\n"
9 | IDENT "e"
10 | WHITESPACE "\t"
11 | IDENT "f"
12 | WHITESPACE "\n"
13 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0000_struct_field_missing_comma.rs:
--------------------------------------------------------------------------------
1 | struct S {
2 | a: u32
3 | b: u32
4 | }
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0001_item_recovery_in_file.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | ERROR
3 | IF_KW "if"
4 | WHITESPACE " "
5 | ERROR
6 | MATCH_KW "match"
7 | WHITESPACE "\n\n"
8 | STRUCT
9 | STRUCT_KW "struct"
10 | WHITESPACE " "
11 | NAME
12 | IDENT "S"
13 | WHITESPACE " "
14 | RECORD_FIELD_LIST
15 | L_CURLY "{"
16 | R_CURLY "}"
17 | error 0: expected an item
18 | error 3: expected an item
19 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0001_item_recovery_in_file.rs:
--------------------------------------------------------------------------------
1 | if match
2 |
3 | struct S {}
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0002_duplicate_shebang.rs:
--------------------------------------------------------------------------------
1 | #!/use/bin/env rusti
2 | #!/use/bin/env rusti
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0003_C++_semicolon.rs:
--------------------------------------------------------------------------------
1 | struct S {
2 | a: i32,
3 | b: String,
4 | };
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0004_use_path_bad_segment.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | USE
3 | USE_KW "use"
4 | WHITESPACE " "
5 | USE_TREE
6 | PATH
7 | PATH
8 | PATH_SEGMENT
9 | NAME_REF
10 | IDENT "foo"
11 | COLON2 "::"
12 | ERROR
13 | INT_NUMBER "92"
14 | SEMICOLON ";"
15 | error 9: expected identifier
16 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0004_use_path_bad_segment.rs:
--------------------------------------------------------------------------------
1 | use foo::92;
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0005_attribute_recover.rs:
--------------------------------------------------------------------------------
1 | #[foo(foo, +, 92)]
2 | fn foo() {
3 | }
4 |
5 |
6 | #[foo(
7 | fn foo() {
8 | }
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0006_named_field_recovery.rs:
--------------------------------------------------------------------------------
1 | struct S {
2 | f: u32,
3 | pub 92
4 | + - *
5 | pub x: u32,
6 | z: f64,
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0007_stray_curly_in_file.rs:
--------------------------------------------------------------------------------
1 | }
2 |
3 | struct S;
4 |
5 | }
6 |
7 | fn foo(){}
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0008_item_block_recovery.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | }
3 |
4 | bar() {
5 | if true {
6 | 1
7 | } else {
8 | 2 + 3
9 | }
10 | }
11 |
12 | fn baz() {
13 | }
14 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0009_broken_struct_type_parameter.rs:
--------------------------------------------------------------------------------
1 | struct S<90 + 2> {
2 | f: u32
3 | }
4 |
5 | struct T;
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0010_unsafe_lambda_block.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | || -> () unsafe { () };
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0011_extern_struct.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | ERROR
3 | ABI
4 | EXTERN_KW "extern"
5 | WHITESPACE " "
6 | STRUCT
7 | STRUCT_KW "struct"
8 | WHITESPACE " "
9 | NAME
10 | IDENT "Foo"
11 | SEMICOLON ";"
12 | WHITESPACE "\n"
13 | error 6: expected existential, fn, trait or impl
14 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0011_extern_struct.rs:
--------------------------------------------------------------------------------
1 | extern struct Foo;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0013_invalid_type.rs:
--------------------------------------------------------------------------------
1 | pub struct Cache(
2 | RefCell,
5 | >>
6 | );
7 |
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0014_where_no_bounds.rs:
--------------------------------------------------------------------------------
1 | fn foo() where T {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0015_curly_in_params.rs:
--------------------------------------------------------------------------------
1 | fn foo(}) {
2 | }
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0016_missing_semi.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | foo(
3 | 1, 2
4 | )
5 | return 92;
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0017_incomplete_binexpr.rs:
--------------------------------------------------------------------------------
1 | fn foo(foo: i32) {
2 | let bar = 92;
3 | 1 +
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0018_incomplete_fn.rs:
--------------------------------------------------------------------------------
1 | impl FnScopes {
2 | fn new_scope(&) -> ScopeId {
3 | let res = self.scopes.len();
4 | self.scopes.push(ScopeData { parent: None, entries: vec![] })
5 | }
6 |
7 | fn set_parent
8 | }
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0019_let_recover.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | let foo = 11
3 | let bar = 1;
4 | let
5 | let baz = 92;
6 | let
7 | if true {}
8 | let
9 | while true {}
10 | let
11 | loop {}
12 | }
13 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0020_fn_recover.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | FN
3 | FN_KW "fn"
4 | WHITESPACE "\n\n"
5 | FN
6 | FN_KW "fn"
7 | WHITESPACE " "
8 | NAME
9 | IDENT "foo"
10 | PARAM_LIST
11 | L_PAREN "("
12 | R_PAREN ")"
13 | WHITESPACE " "
14 | BLOCK_EXPR
15 | STMT_LIST
16 | L_CURLY "{"
17 | R_CURLY "}"
18 | WHITESPACE "\n"
19 | error 2: expected a name
20 | error 2: expected function arguments
21 | error 2: expected a block
22 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0020_fn_recover.rs:
--------------------------------------------------------------------------------
1 | fn
2 |
3 | fn foo() {}
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0021_incomplete_param.rs:
--------------------------------------------------------------------------------
1 | fn foo(x: i32, y) {
2 | }
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0022_bad_exprs.rs:
--------------------------------------------------------------------------------
1 | fn a() { [1, 2, @, struct, let] }
2 | fn b() { foo(1, 2, @, impl, let) }
3 | fn c() { foo.bar(1, 2, @, ], trait, let) }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0023_mismatched_paren.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | foo! (
3 | bar, "baz", 1, 2.0
4 | } //~ ERROR incorrect close delimiter
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0024_many_type_parens.rs:
--------------------------------------------------------------------------------
1 | fn f Trait<'a>)>() {}
2 |
3 | fn main() {
4 | let _: Box<(Copy) + (?Sized) + (for<'a> Trait<'a>)>;
5 | let _: Box<(?Sized) + (for<'a> Trait<'a>) + (Copy)>;
6 | let _: Box<(for<'a> Trait<'a>) + (Copy) + (?Sized)>;
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0026_imp_recovery.rs:
--------------------------------------------------------------------------------
1 | impl
2 | impl OnceCell {}
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0027_incomplete_where_for.rs:
--------------------------------------------------------------------------------
1 | fn foo()
2 | where for<'a>
3 | {}
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0029_field_completion.rs:
--------------------------------------------------------------------------------
1 | fn foo(a: A) {
2 | a.
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0032_match_arms_inner_attrs.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | match () {
3 | _ => (),
4 | #![doc("Not allowed here")]
5 | _ => (),
6 | }
7 |
8 | match () {
9 | _ => (),
10 | _ => (),
11 | #![doc("Nor here")]
12 | }
13 |
14 | match () {
15 | #[cfg(test)]
16 | #![doc("Nor here")]
17 | _ => (),
18 | _ => (),
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0033_match_arms_outer_attrs.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | match () {
3 | _ => (),
4 | _ => (),
5 | #[cfg(test)]
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0034_bad_box_pattern.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | let ref box i = ();
3 | let mut box i = ();
4 | let ref mut box i = ();
5 | }
6 |
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0035_use_recover.rs:
--------------------------------------------------------------------------------
1 | use foo::bar;
2 | use
3 | use crate::baz;
4 | use
5 | fn f() {}
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0036_partial_use.rs:
--------------------------------------------------------------------------------
1 | use std::{error::Error;
2 | use std::io;
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0039_lambda_recovery.rs:
--------------------------------------------------------------------------------
1 | fn foo() -> i32 {
2 | [1, 2, 3].iter()
3 | .map(|it|)
4 | .max::();
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0042_weird_blocks.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | { unsafe 92 }
3 | { async 92 }
4 | { try 92 }
5 | { 'label: 92 }
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0043_unexpected_for_type.rs:
--------------------------------------------------------------------------------
1 | type ForRef = for<'a> &'a u32;
2 | type ForTup = for<'a> (&'a u32,);
3 | type ForSlice = for<'a> [u32];
4 | type ForForFn = for<'a> for<'b> fn(&'a i32, &'b i32);
5 | fn for_for_for()
6 | where
7 | for<'a> for<'b> for<'c> fn(&'a T, &'b T, &'c T): Copy,
8 | {
9 | }
10 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0044_item_modifiers.rs:
--------------------------------------------------------------------------------
1 | unsafe async fn foo() {}
2 | unsafe const fn bar() {}
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0047_repeated_extern_modifier.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | ERROR
3 | ABI
4 | EXTERN_KW "extern"
5 | WHITESPACE " "
6 | STRING "\"C\""
7 | WHITESPACE " "
8 | ERROR
9 | ABI
10 | EXTERN_KW "extern"
11 | WHITESPACE " "
12 | STRING "\"C\""
13 | WHITESPACE "\n"
14 | error 10: expected existential, fn, trait or impl
15 | error 21: expected existential, fn, trait or impl
16 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0047_repeated_extern_modifier.rs:
--------------------------------------------------------------------------------
1 | extern "C" extern "C"
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0048_double_fish.rs:
--------------------------------------------------------------------------------
1 | fn f() {
2 | S::::>;
3 | }
4 |
5 | fn g() {
6 | let _: Item:::: = ();
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0049_let_else_right_curly_brace_for.rs:
--------------------------------------------------------------------------------
1 | fn f() {
2 | let _ = for _ in 0..10 {
3 | } else {
4 | return
5 | };
6 | }
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0050_let_else_right_curly_brace_loop.rs:
--------------------------------------------------------------------------------
1 | fn f() {
2 | let _ = loop {
3 | } else {
4 | return
5 | };
6 | }
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0051_let_else_right_curly_brace_match.rs:
--------------------------------------------------------------------------------
1 | fn f() {
2 | let _ = match Some(1) {
3 | Some(_) => 1,
4 | None => 2,
5 | } else {
6 | return
7 | };
8 | }
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0052_let_else_right_curly_brace_while.rs:
--------------------------------------------------------------------------------
1 | fn f() {
2 | let _ = while true {
3 | } else {
4 | return
5 | };
6 | }
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0053_let_else_right_curly_brace_if.rs:
--------------------------------------------------------------------------------
1 | fn f() {
2 | let _ = if true {
3 | } else {
4 | } else {
5 | return
6 | };
7 | }
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/err/0054_float_split_scientific_notation.rs:
--------------------------------------------------------------------------------
1 | struct S(i32, i32);
2 | fn f() {
3 | let s = S(1, 2);
4 | let a = s.1e0;
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0001_array_type_missing_semi.rs:
--------------------------------------------------------------------------------
1 | type T = [() 92];
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0002_misplaced_label_err.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | 'loop: impl
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | TYPE_ALIAS
3 | TYPE_KW "type"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "T"
7 | WHITESPACE " "
8 | EQ "="
9 | WHITESPACE " "
10 | PTR_TYPE
11 | STAR "*"
12 | TUPLE_TYPE
13 | L_PAREN "("
14 | R_PAREN ")"
15 | SEMICOLON ";"
16 | WHITESPACE "\n"
17 | error 10: expected mut or const in raw pointer type (use `*mut T` or `*const T` as appropriate)
18 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0003_pointer_type_no_mutability.rs:
--------------------------------------------------------------------------------
1 | type T = *();
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0004_impl_type.rs:
--------------------------------------------------------------------------------
1 | impl Type {}
2 | impl Trait1 for T {}
3 | impl impl NotType {}
4 | impl Trait2 for impl NotType {}
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rs:
--------------------------------------------------------------------------------
1 | type F = unsafe ();
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0006_unsafe_block_in_mod.rs:
--------------------------------------------------------------------------------
1 | fn foo(){} unsafe { } fn bar(){}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0007_async_without_semicolon.rs:
--------------------------------------------------------------------------------
1 | fn foo() { let _ = async {} }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0008_pub_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() { pub 92; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0013_anonymous_static.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | STATIC
3 | STATIC_KW "static"
4 | WHITESPACE " "
5 | ERROR
6 | UNDERSCORE "_"
7 | COLON ":"
8 | WHITESPACE " "
9 | PATH_TYPE
10 | PATH
11 | PATH_SEGMENT
12 | NAME_REF
13 | IDENT "i32"
14 | WHITESPACE " "
15 | EQ "="
16 | WHITESPACE " "
17 | LITERAL
18 | INT_NUMBER "5"
19 | SEMICOLON ";"
20 | WHITESPACE "\n"
21 | error 7: expected a name
22 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0013_anonymous_static.rs:
--------------------------------------------------------------------------------
1 | static _: i32 = 5;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | S { field ..S::default() }
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0014_record_literal_missing_ellipsis_recovery.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | S { S::default() }
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0014_struct_field_recover.rs:
--------------------------------------------------------------------------------
1 | struct S { f pub g: () }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0015_arg_list_recovery.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | foo(bar::);
3 | foo(bar:);
4 | foo(bar+);
5 | foo(a, , b);
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0015_empty_segment.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | USE
3 | USE_KW "use"
4 | WHITESPACE " "
5 | USE_TREE
6 | PATH
7 | PATH
8 | PATH_SEGMENT
9 | NAME_REF
10 | CRATE_KW "crate"
11 | COLON2 "::"
12 | SEMICOLON ";"
13 | WHITESPACE "\n"
14 | error 11: expected identifier
15 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0015_empty_segment.rs:
--------------------------------------------------------------------------------
1 | use crate::;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0015_missing_fn_param_type.rs:
--------------------------------------------------------------------------------
1 | fn f(x y: i32, z, t: i32) {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0016_angled_path_without_qual.rs:
--------------------------------------------------------------------------------
1 | type X = <()>;
2 | type Y = ;
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0017_let_else_right_curly_brace.rs:
--------------------------------------------------------------------------------
1 | fn func() { let Some(_) = {Some(1)} else { panic!("h") };}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0018_crate_visibility_empty_recover.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | STRUCT
3 | VISIBILITY
4 | PUB_KW "pub"
5 | L_PAREN "("
6 | PATH
7 | PATH_SEGMENT
8 | ERROR
9 | R_PAREN ")"
10 | WHITESPACE " "
11 | STRUCT_KW "struct"
12 | WHITESPACE " "
13 | NAME
14 | IDENT "S"
15 | SEMICOLON ";"
16 | WHITESPACE "\n"
17 | error 4: expected identifier
18 | error 5: expected R_PAREN
19 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0018_crate_visibility_empty_recover.rs:
--------------------------------------------------------------------------------
1 | pub() struct S;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0019_tuple_expr_leading_comma.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | (,);
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0020_tuple_pat_leading_comma.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | let (,);
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0021_recover_from_missing_assoc_item_binding.rs:
--------------------------------------------------------------------------------
1 | fn f() -> impl Iterator- {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0022_recover_from_missing_const_default.rs:
--------------------------------------------------------------------------------
1 | struct A;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0023_empty_param_slot.rs:
--------------------------------------------------------------------------------
1 | fn f(y: i32, ,t: i32) {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0024_comma_after_functional_update_syntax.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | S { ..x, };
3 | S { ..x, a: 0 }
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0024_top_level_let.rs:
--------------------------------------------------------------------------------
1 | let ref foo: fn() = 1 + 3;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0026_macro_rules_as_macro_name.rs:
--------------------------------------------------------------------------------
1 | macro_rules! {};
2 | macro_rules! ()
3 | macro_rules! []
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0026_use_tree_list_err_recovery.rs:
--------------------------------------------------------------------------------
1 | use {a;
2 | use b;
3 | struct T;
4 | fn test() {}
5 | use {a ,, b};
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0028_method_call_missing_argument_list.rs:
--------------------------------------------------------------------------------
1 | fn func() {
2 | foo.bar::<>
3 | foo.bar::;
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0029_tuple_field_list_recovery.rs:
--------------------------------------------------------------------------------
1 | struct S(struct S;
2 | struct S(A,,B);
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0030_generic_arg_list_recover.rs:
--------------------------------------------------------------------------------
1 | type T = T<0, ,T>;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0031_generic_param_list_recover.rs:
--------------------------------------------------------------------------------
1 | fn f() {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0032_record_literal_field_eq_recovery.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | S { field = foo }
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0033_record_pat_field_eq_recovery.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | let S { field = foo };
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/err/0034_match_arms_recovery.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | match () {
3 | _ => (),,
4 | _ => ,
5 | _ => (),
6 | => (),
7 | if true => (),
8 | _ => (),
9 | () if => (),
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0002_use_tree_list.rs:
--------------------------------------------------------------------------------
1 | use {a, b, c};
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0003_where_pred_for.rs:
--------------------------------------------------------------------------------
1 | fn for_trait()
2 | where
3 | for<'a> F: Fn(&'a str)
4 | { }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rs:
--------------------------------------------------------------------------------
1 | type F = Box;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0005_function_type_params.rs:
--------------------------------------------------------------------------------
1 | fn foo(){}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0006_self_param.rs:
--------------------------------------------------------------------------------
1 | impl S {
2 | fn a(self) {}
3 | fn b(&self,) {}
4 | fn c(&'a self,) {}
5 | fn d(&'a mut self, x: i32) {}
6 | fn e(mut self) {}
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0007_type_param_bounds.rs:
--------------------------------------------------------------------------------
1 | struct S;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0008_path_part.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | let foo::Bar = ();
3 | let ::Bar = ();
4 | let Bar { .. } = ();
5 | let Bar(..) = ();
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0009_loop_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | loop {};
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0010_extern_block.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | EXTERN_BLOCK
3 | UNSAFE_KW "unsafe"
4 | WHITESPACE " "
5 | ABI
6 | EXTERN_KW "extern"
7 | WHITESPACE " "
8 | STRING "\"C\""
9 | WHITESPACE " "
10 | EXTERN_ITEM_LIST
11 | L_CURLY "{"
12 | R_CURLY "}"
13 | WHITESPACE "\n"
14 | EXTERN_BLOCK
15 | ABI
16 | EXTERN_KW "extern"
17 | WHITESPACE " "
18 | EXTERN_ITEM_LIST
19 | L_CURLY "{"
20 | R_CURLY "}"
21 | WHITESPACE "\n"
22 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0010_extern_block.rs:
--------------------------------------------------------------------------------
1 | unsafe extern "C" {}
2 | extern {}
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0011_field_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | x.foo;
3 | x.0.bar;
4 | x.0.1;
5 | x.0. bar;
6 | x.0();
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0012_type_item_where_clause.rs:
--------------------------------------------------------------------------------
1 | type Foo = () where Foo: Copy;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0013_pointer_type_mut.rs:
--------------------------------------------------------------------------------
1 | type M = *mut ();
2 | type C = *mut ();
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0014_never_type.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | TYPE_ALIAS
3 | TYPE_KW "type"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "Never"
7 | WHITESPACE " "
8 | EQ "="
9 | WHITESPACE " "
10 | NEVER_TYPE
11 | BANG "!"
12 | SEMICOLON ";"
13 | WHITESPACE "\n"
14 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0014_never_type.rs:
--------------------------------------------------------------------------------
1 | type Never = !;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0015_continue_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | loop {
3 | continue;
4 | continue 'l;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0017_array_type.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | TYPE_ALIAS
3 | TYPE_KW "type"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "T"
7 | WHITESPACE " "
8 | EQ "="
9 | WHITESPACE " "
10 | ARRAY_TYPE
11 | L_BRACK "["
12 | TUPLE_TYPE
13 | L_PAREN "("
14 | R_PAREN ")"
15 | SEMICOLON ";"
16 | WHITESPACE " "
17 | CONST_ARG
18 | LITERAL
19 | INT_NUMBER "92"
20 | R_BRACK "]"
21 | SEMICOLON ";"
22 | WHITESPACE "\n"
23 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0017_array_type.rs:
--------------------------------------------------------------------------------
1 | type T = [(); 92];
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0018_arb_self_types.rs:
--------------------------------------------------------------------------------
1 | impl S {
2 | fn a(self: &Self) {}
3 | fn b(mut self: Box) {}
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0019_unary_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | **&1;
3 | !!true;
4 | --1;
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0021_assoc_item_list.rs:
--------------------------------------------------------------------------------
1 | impl F {
2 | type A = i32;
3 | const B: i32 = 92;
4 | fn foo() {}
5 | fn bar(&self) {}
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0022_crate_visibility.rs:
--------------------------------------------------------------------------------
1 | pub(crate) struct S;
2 | pub(self) struct S;
3 | pub(super) struct S;
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0023_placeholder_type.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | TYPE_ALIAS
3 | TYPE_KW "type"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "Placeholder"
7 | WHITESPACE " "
8 | EQ "="
9 | WHITESPACE " "
10 | INFER_TYPE
11 | UNDERSCORE "_"
12 | SEMICOLON ";"
13 | WHITESPACE "\n"
14 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0023_placeholder_type.rs:
--------------------------------------------------------------------------------
1 | type Placeholder = _;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0024_slice_pat.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | let [a, b, ..] = [];
3 | let [| a, ..] = [];
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0025_slice_type.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | TYPE_ALIAS
3 | TYPE_KW "type"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "T"
7 | WHITESPACE " "
8 | EQ "="
9 | WHITESPACE " "
10 | SLICE_TYPE
11 | L_BRACK "["
12 | TUPLE_TYPE
13 | L_PAREN "("
14 | R_PAREN ")"
15 | R_BRACK "]"
16 | SEMICOLON ";"
17 | WHITESPACE "\n"
18 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0025_slice_type.rs:
--------------------------------------------------------------------------------
1 | type T = [()];
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0026_tuple_pat_fields.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | let S() = ();
3 | let S(_) = ();
4 | let S(_,) = ();
5 | let S(_, .. , x) = ();
6 | let S(| a) = ();
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0027_ref_pat.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | let &a = ();
3 | let &mut b = ();
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0028_impl_trait_type.rs:
--------------------------------------------------------------------------------
1 | type A = impl Iterator
- > + 'a;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0029_cast_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | 82 as i32;
3 | 81 as i8 + 1;
4 | 79 as i16 - 1;
5 | 0x36 as u8 <= 0x37;
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0030_let_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | if let Some(_) = None && true {}
3 | while 1 == 5 && (let None = None) {}
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0031_while_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | while true {};
3 | while let Some(x) = it.next() {};
4 | while { true } {};
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0032_fn_pointer_type.rs:
--------------------------------------------------------------------------------
1 | type A = fn();
2 | type B = unsafe fn();
3 | type C = unsafe extern "C" fn();
4 | type D = extern "C" fn ( u8 , ... ) -> u8;
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0033_reference_type;.rs:
--------------------------------------------------------------------------------
1 | type A = &();
2 | type B = &'static ();
3 | type C = &mut ();
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0034_break_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | loop {
3 | break;
4 | break 'l;
5 | break 92;
6 | break 'l 92;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0037_qual_paths.rs:
--------------------------------------------------------------------------------
1 | type X = ::Output;
2 | fn foo() { ::default(); }
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0038_full_range_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() { xs[..]; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0041_trait_item.rs:
--------------------------------------------------------------------------------
1 | trait T { fn new() -> Self; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0042_call_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | let _ = f();
3 | let _ = f()(1)(1, 2,);
4 | let _ = f(::func());
5 | f(::func());
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0044_block_items.rs:
--------------------------------------------------------------------------------
1 | fn a() { fn b() {} }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs:
--------------------------------------------------------------------------------
1 | fn foo)>(){}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0046_singleton_tuple_type.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | TYPE_ALIAS
3 | TYPE_KW "type"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "T"
7 | WHITESPACE " "
8 | EQ "="
9 | WHITESPACE " "
10 | TUPLE_TYPE
11 | L_PAREN "("
12 | PATH_TYPE
13 | PATH
14 | PATH_SEGMENT
15 | NAME_REF
16 | IDENT "i32"
17 | COMMA ","
18 | R_PAREN ")"
19 | SEMICOLON ";"
20 | WHITESPACE "\n"
21 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0046_singleton_tuple_type.rs:
--------------------------------------------------------------------------------
1 | type T = (i32,);
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0048_path_type_with_bounds.rs:
--------------------------------------------------------------------------------
1 | fn foo() -> Box {}
2 | fn foo() -> Box {}
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0050_fn_decl.rs:
--------------------------------------------------------------------------------
1 | trait T { fn foo(); }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0051_unit_type.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | TYPE_ALIAS
3 | TYPE_KW "type"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "T"
7 | WHITESPACE " "
8 | EQ "="
9 | WHITESPACE " "
10 | TUPLE_TYPE
11 | L_PAREN "("
12 | R_PAREN ")"
13 | SEMICOLON ";"
14 | WHITESPACE "\n"
15 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0051_unit_type.rs:
--------------------------------------------------------------------------------
1 | type T = ();
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0052_path_type.rs:
--------------------------------------------------------------------------------
1 | type A = Foo;
2 | type B = ::Foo;
3 | type C = self::Foo;
4 | type D = super::Foo;
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0053_path_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | let _ = a;
3 | let _ = a::b;
4 | let _ = ::a::;
5 | let _ = format!();
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0054_record_field_attrs.rs:
--------------------------------------------------------------------------------
1 | struct S { #[attr] f: f32 }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0055_literal_pattern.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | match () {
3 | -1 => (),
4 | 92 => (),
5 | 'c' => (),
6 | "hello" => (),
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0056_where_clause.rs:
--------------------------------------------------------------------------------
1 | fn foo()
2 | where
3 | 'a: 'b + 'c,
4 | T: Clone + Copy + 'static,
5 | Iterator::Item: 'a,
6 | ::Item: 'a
7 | {}
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0059_match_arms_commas.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | match () {
3 | _ => (),
4 | _ => {}
5 | _ => ()
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0060_extern_crate.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | EXTERN_CRATE
3 | EXTERN_KW "extern"
4 | WHITESPACE " "
5 | CRATE_KW "crate"
6 | WHITESPACE " "
7 | NAME_REF
8 | IDENT "foo"
9 | SEMICOLON ";"
10 | WHITESPACE "\n"
11 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0060_extern_crate.rs:
--------------------------------------------------------------------------------
1 | extern crate foo;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0061_record_lit.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | S {};
3 | S { x };
4 | S { x, y: 32, };
5 | S { x, y: 32, ..Default::default() };
6 | S { x: ::default() };
7 | TupleStruct { 0: 1 };
8 | }
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0062_mod_contents.rs:
--------------------------------------------------------------------------------
1 | fn foo() {}
2 | macro_rules! foo {}
3 | foo::bar!();
4 | super::baz! {}
5 | struct S;
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0063_impl_item_neg.rs:
--------------------------------------------------------------------------------
1 | impl !Send for S {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0064_if_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | if true {};
3 | if true {} else {};
4 | if true {} else if false {} else {};
5 | if S {};
6 | if { true } { } else { };
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0065_dyn_trait_type.rs:
--------------------------------------------------------------------------------
1 | type A = dyn Iterator
- > + 'a;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0066_match_arm.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | match () {
3 | _ => (),
4 | _ if Test > Test{field: 0} => (),
5 | X | Y if Z => (),
6 | | X | Y if Z => (),
7 | | X => (),
8 | };
9 | }
10 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0067_crate_path.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | USE
3 | USE_KW "use"
4 | WHITESPACE " "
5 | USE_TREE
6 | PATH
7 | PATH
8 | PATH_SEGMENT
9 | NAME_REF
10 | CRATE_KW "crate"
11 | COLON2 "::"
12 | PATH_SEGMENT
13 | NAME_REF
14 | IDENT "foo"
15 | SEMICOLON ";"
16 | WHITESPACE "\n"
17 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0067_crate_path.rs:
--------------------------------------------------------------------------------
1 | use crate::foo;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rs:
--------------------------------------------------------------------------------
1 | fn f() {
2 | let _ = {1} & 2;
3 | {1} &2;
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0071_match_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | match () { };
3 | match S {};
4 | match { } { _ => () };
5 | match { S {} } {};
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0072_return_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | return;
3 | return 92;
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0073_type_item_type_params.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | TYPE_ALIAS
3 | TYPE_KW "type"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "Result"
7 | GENERIC_PARAM_LIST
8 | L_ANGLE "<"
9 | TYPE_PARAM
10 | NAME
11 | IDENT "T"
12 | R_ANGLE ">"
13 | WHITESPACE " "
14 | EQ "="
15 | WHITESPACE " "
16 | TUPLE_TYPE
17 | L_PAREN "("
18 | R_PAREN ")"
19 | SEMICOLON ";"
20 | WHITESPACE "\n"
21 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0073_type_item_type_params.rs:
--------------------------------------------------------------------------------
1 | type Result = ();
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | match () {
3 | _ => {}
4 | () => {}
5 | [] => {}
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0075_block.rs:
--------------------------------------------------------------------------------
1 | fn a() {}
2 | fn b() { let _ = 1; }
3 | fn c() { 1; 2; }
4 | fn d() { 1; 2 }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0076_function_where_clause.rs:
--------------------------------------------------------------------------------
1 | fn foo() where T: Copy {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0077_try_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | x?;
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0078_type_alias.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | TYPE_ALIAS
3 | TYPE_KW "type"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "Foo"
7 | WHITESPACE " "
8 | EQ "="
9 | WHITESPACE " "
10 | PATH_TYPE
11 | PATH
12 | PATH_SEGMENT
13 | NAME_REF
14 | IDENT "Bar"
15 | SEMICOLON ";"
16 | WHITESPACE "\n"
17 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0078_type_alias.rs:
--------------------------------------------------------------------------------
1 | type Foo = Bar;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0079_impl_item.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | IMPL
3 | IMPL_KW "impl"
4 | WHITESPACE " "
5 | PATH_TYPE
6 | PATH
7 | PATH_SEGMENT
8 | NAME_REF
9 | IDENT "S"
10 | WHITESPACE " "
11 | ASSOC_ITEM_LIST
12 | L_CURLY "{"
13 | R_CURLY "}"
14 | WHITESPACE "\n"
15 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0079_impl_item.rs:
--------------------------------------------------------------------------------
1 | impl S {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0080_postfix_range.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | let x = 1..;
3 | match 1.. { _ => () };
4 | match a.b()..S { _ => () };
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0081_for_type.rs:
--------------------------------------------------------------------------------
1 | type A = for<'a> fn() -> ();
2 | type B = for<'a> unsafe extern "C" fn(&'a ()) -> ();
3 | type Obj = for<'a> PartialEq<&'a i32>;
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0082_ref_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | // reference operator
3 | let _ = &1;
4 | let _ = &mut &f();
5 | let _ = &raw;
6 | let _ = &raw.0;
7 | // raw reference operator
8 | let _ = &raw mut foo;
9 | let _ = &raw const foo;
10 | }
11 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0084_paren_type.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | TYPE_ALIAS
3 | TYPE_KW "type"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "T"
7 | WHITESPACE " "
8 | EQ "="
9 | WHITESPACE " "
10 | PAREN_TYPE
11 | L_PAREN "("
12 | PATH_TYPE
13 | PATH
14 | PATH_SEGMENT
15 | NAME_REF
16 | IDENT "i32"
17 | R_PAREN ")"
18 | SEMICOLON ";"
19 | WHITESPACE "\n"
20 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0084_paren_type.rs:
--------------------------------------------------------------------------------
1 | type T = (i32);
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0085_expr_literals.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | let _ = true;
3 | let _ = false;
4 | let _ = 1;
5 | let _ = 2.0;
6 | let _ = b'a';
7 | let _ = 'b';
8 | let _ = "c";
9 | let _ = r"d";
10 | let _ = b"e";
11 | let _ = br"f";
12 | let _ = c"g";
13 | let _ = cr"h";
14 | }
15 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0086_function_ret_type.rs:
--------------------------------------------------------------------------------
1 | fn foo() {}
2 | fn bar() -> () {}
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0088_break_ambiguity.rs:
--------------------------------------------------------------------------------
1 | fn foo(){
2 | if break {}
3 | while break {}
4 | for i in break {}
5 | match break {}
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0090_type_param_default.rs:
--------------------------------------------------------------------------------
1 | struct S;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rs:
--------------------------------------------------------------------------------
1 | type F = fn() -> ();
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0093_index_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | x[1][2];
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0095_placeholder_pat.rs:
--------------------------------------------------------------------------------
1 | fn main() { let _ = (); }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0096_no_semi_after_block.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | if true {}
3 | loop {}
4 | match () {}
5 | while true {}
6 | for _ in () {}
7 | {}
8 | {}
9 | macro_rules! test {
10 | () => {}
11 | }
12 | test!{}
13 | }
14 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0099_param_list.rs:
--------------------------------------------------------------------------------
1 | fn a() {}
2 | fn b(x: i32) {}
3 | fn c(x: i32, ) {}
4 | fn d(x: i32, y: ()) {}
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0100_for_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | for x in [] {};
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0102_record_pat_field_list.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | let S {} = ();
3 | let S { f, ref mut g } = ();
4 | let S { h: _, ..} = ();
5 | let S { h: _, } = ();
6 | let S { #[cfg(any())] .. } = ();
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0103_array_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | [];
3 | [1];
4 | [1, 2,];
5 | [1; 2];
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0104_path_fn_trait_args.rs:
--------------------------------------------------------------------------------
1 | type F = Box ()>;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0106_lambda_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | || ();
3 | || -> i32 { 92 };
4 | |x| x;
5 | move |x: i32,| x;
6 | async || {};
7 | move || {};
8 | async move || {};
9 | static || {};
10 | static move || {};
11 | static async || {};
12 | static async move || {};
13 | for<'a> || {};
14 | for<'a> move || {};
15 | }
16 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0107_method_call_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | x.foo();
3 | y.bar::(1, 2,);
4 | x.0.0.call();
5 | x.0. call();
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0108_tuple_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | ();
3 | (1);
4 | (1,);
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0109_label.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | 'a: loop {}
3 | 'b: while true {}
4 | 'c: for x in () {}
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0111_tuple_pat.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | let (a, b, ..) = ();
3 | let (a,) = ();
4 | let (..) = ();
5 | let () = ();
6 | let (| a | a, | b) = ((),());
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0112_bind_pat.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | let a = ();
3 | let mut b = ();
4 | let ref c = ();
5 | let ref mut d = ();
6 | let e @ _ = ();
7 | let ref mut f @ g @ _ = ();
8 | }
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0113_nocontentexpr.rs:
--------------------------------------------------------------------------------
1 | fn foo(){
2 | ;;;some_expr();;;;{;;;};;;;Ok(())
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0114_tuple_struct_where.rs:
--------------------------------------------------------------------------------
1 | struct S(T) where T: Clone;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0115_tuple_field_attrs.rs:
--------------------------------------------------------------------------------
1 | struct S (#[attr] f32);
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0117_macro_call_type.rs:
--------------------------------------------------------------------------------
1 | type A = foo!();
2 | type B = crate::foo!();
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0118_match_guard.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | match () {
3 | _ if foo => (),
4 | _ if let foo = bar => (),
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | match () {
3 | #![doc("Inner attribute")]
4 | #![doc("Can be")]
5 | #![doc("Stacked")]
6 | _ => (),
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | match () {
3 | #[cfg(feature = "some")]
4 | _ => (),
5 | #[cfg(feature = "other")]
6 | _ => (),
7 | #[cfg(feature = "many")]
8 | #[cfg(feature = "attributes")]
9 | #[cfg(feature = "before")]
10 | _ => (),
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0123_param_list_vararg.rs:
--------------------------------------------------------------------------------
1 | extern "C" { fn printf(format: *const i8, ..., _: u8) -> i32; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | S { #[cfg(test)] field: 1 }
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | #[A] foo();
3 | #[B] bar!{}
4 | #[C] #[D] {}
5 | #[D] return ();
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0129_marco_pat.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | let m!(x) = 0;
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0130_let_stmt.rs:
--------------------------------------------------------------------------------
1 | fn f() { let x: i32 = 92; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0130_try_block_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | let _ = try {};
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0131_existential_type.rs:
--------------------------------------------------------------------------------
1 | existential type Foo: Fn() -> usize;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rs:
--------------------------------------------------------------------------------
1 | fn simple_function() {
2 | enum LocalEnum {
3 | One,
4 | Two,
5 | };
6 | fn f() {};
7 | struct S {};
8 | }
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0137_await_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | x.await;
3 | x.0.await;
4 | x.0().await?.hello();
5 | x.0.0.await;
6 | x.0. await;
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0138_associated_type_bounds.rs:
--------------------------------------------------------------------------------
1 | fn print_all, Item: Display, Item<'a> = Item>>(printables: T) {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0138_expression_after_block.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | let mut p = F{x: 5};
3 | {p}.x = 10;
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0138_self_param_outer_attr.rs:
--------------------------------------------------------------------------------
1 | fn f(#[must_use] self) {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0139_param_outer_arg.rs:
--------------------------------------------------------------------------------
1 | fn f(#[attr1] pat: Type) {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0142_for_range_from.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | for x in 0 .. {
3 | break;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0143_box_pat.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | let box i = ();
3 | let box Outer { box i, j: box Inner(box &x) } = ();
4 | let box ref mut i = ();
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0145_record_pat_field.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | let S { 0: 1 } = ();
3 | let S { x: 1 } = ();
4 | let S { #[cfg(any())] x: 1 } = ();
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0146_as_precedence.rs:
--------------------------------------------------------------------------------
1 | fn f() { let _ = &1 as *const i32; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0147_const_param.rs:
--------------------------------------------------------------------------------
1 | struct S;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0147_macro_def.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | MACRO_DEF
3 | MACRO_KW "macro"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "m"
7 | TOKEN_TREE
8 | TOKEN_TREE
9 | L_PAREN "("
10 | DOLLAR "$"
11 | IDENT "i"
12 | COLON ":"
13 | IDENT "ident"
14 | R_PAREN ")"
15 | WHITESPACE " "
16 | TOKEN_TREE
17 | L_CURLY "{"
18 | R_CURLY "}"
19 | WHITESPACE "\n"
20 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0147_macro_def.rs:
--------------------------------------------------------------------------------
1 | macro m($i:ident) {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0150_array_attrs.rs:
--------------------------------------------------------------------------------
1 | const A: &[i64] = &[1, #[cfg(test)] 2];
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0150_impl_type_params.rs:
--------------------------------------------------------------------------------
1 | impl Bar {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0151_fn.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | FN
3 | FN_KW "fn"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "foo"
7 | PARAM_LIST
8 | L_PAREN "("
9 | R_PAREN ")"
10 | WHITESPACE " "
11 | BLOCK_EXPR
12 | STMT_LIST
13 | L_CURLY "{"
14 | R_CURLY "}"
15 | WHITESPACE "\n"
16 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0151_fn.rs:
--------------------------------------------------------------------------------
1 | fn foo() {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0151_trait_alias.rs:
--------------------------------------------------------------------------------
1 | trait Z = T;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0152_arg_with_attr.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | foo(#[attr] 92)
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0153_pub_parens_typepath.rs:
--------------------------------------------------------------------------------
1 | struct B(pub (super::A));
2 | struct B(pub (crate::A,));
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rs:
--------------------------------------------------------------------------------
1 | type Foo = fn(Bar::Baz);
2 | type Qux = fn(baz: Bar::Baz);
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0154_no_dyn_trait_leading_for.rs:
--------------------------------------------------------------------------------
1 | type A = for<'a> Test<'a> + Send;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0154_tuple_attrs.rs:
--------------------------------------------------------------------------------
1 | const A: (i64, i64) = (1, #[cfg(test)] 2);
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0155_closure_params.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | let foo = |bar, baz: Baz, qux: Qux::Quux| ();
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0156_const_block_pat.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | let const { 15 } = ();
3 | let const { foo(); bar() } = ();
4 |
5 | match 42 {
6 | const { 0 } .. const { 1 } => (),
7 | .. const { 0 } => (),
8 | const { 2 } .. => (),
9 | }
10 |
11 | let (const { () },) = ();
12 | }
13 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0156_fn_def_param.rs:
--------------------------------------------------------------------------------
1 | fn foo(..., (x, y): (i32, i32)) {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0156_or_pattern.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | match () {
3 | (_ | _) => (),
4 | &(_ | _) => (),
5 | (_ | _,) => (),
6 | [_ | _,] => (),
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rs:
--------------------------------------------------------------------------------
1 | type Foo = fn(_: bar);
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0157_variant_discriminant.rs:
--------------------------------------------------------------------------------
1 | enum E { X(i32) = 10 }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0158_binop_resets_statementness.rs:
--------------------------------------------------------------------------------
1 | fn f() { v = {1}&2; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0158_lambda_ret_block.rs:
--------------------------------------------------------------------------------
1 | fn main() { || -> i32 { 92 }(); }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0158_macro_rules_non_brace.rs:
--------------------------------------------------------------------------------
1 | macro_rules! m ( ($i:ident) => {} );
2 | macro_rules! m [ ($i:ident) => {} ];
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0159_try_macro_fallback.rs:
--------------------------------------------------------------------------------
1 | fn foo() { try!(Ok(())); }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0159_yield_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | yield;
3 | yield 1;
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0160_crate_visibility_in.rs:
--------------------------------------------------------------------------------
1 | pub(in super::A) struct S;
2 | pub(in crate) struct S;
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0160_try_macro_rules.rs:
--------------------------------------------------------------------------------
1 | macro_rules! try { () => {} }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0161_impl_item_const.rs:
--------------------------------------------------------------------------------
1 | impl const Send for S {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0161_labeled_block.rs:
--------------------------------------------------------------------------------
1 | fn f() { 'label: {}; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0162_default_async_unsafe_fn.rs:
--------------------------------------------------------------------------------
1 | impl T for Foo {
2 | default async unsafe fn foo() {}
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0163_default_async_fn.rs:
--------------------------------------------------------------------------------
1 | impl T for Foo {
2 | default async fn foo() {}
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0163_default_unsafe_item.rs:
--------------------------------------------------------------------------------
1 | default unsafe impl T for Foo {
2 | default unsafe fn foo() {}
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0164_default_item.rs:
--------------------------------------------------------------------------------
1 | default impl T for Foo {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0164_type_path_in_pattern.rs:
--------------------------------------------------------------------------------
1 | fn main() { let <_>::Foo = (); }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0166_half_open_range_pat.rs:
--------------------------------------------------------------------------------
1 | fn f() {
2 | let 0 .. = 1u32;
3 | let 0..: _ = 1u32;
4 |
5 | match 42 {
6 | 0 .. if true => (),
7 | _ => (),
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0168_extern_crate_rename.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | EXTERN_CRATE
3 | EXTERN_KW "extern"
4 | WHITESPACE " "
5 | CRATE_KW "crate"
6 | WHITESPACE " "
7 | NAME_REF
8 | IDENT "foo"
9 | WHITESPACE " "
10 | RENAME
11 | AS_KW "as"
12 | WHITESPACE " "
13 | NAME
14 | IDENT "bar"
15 | SEMICOLON ";"
16 | WHITESPACE "\n"
17 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0168_extern_crate_rename.rs:
--------------------------------------------------------------------------------
1 | extern crate foo as bar;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0168_extern_crate_self.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | EXTERN_CRATE
3 | EXTERN_KW "extern"
4 | WHITESPACE " "
5 | CRATE_KW "crate"
6 | WHITESPACE " "
7 | NAME_REF
8 | SELF_KW "self"
9 | SEMICOLON ";"
10 | WHITESPACE "\n"
11 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0168_extern_crate_self.rs:
--------------------------------------------------------------------------------
1 | extern crate self;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0169_mod_item.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | MODULE
3 | MOD_KW "mod"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "a"
7 | SEMICOLON ";"
8 | WHITESPACE "\n"
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0169_mod_item.rs:
--------------------------------------------------------------------------------
1 | mod a;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0170_mod_item_curly.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | MODULE
3 | MOD_KW "mod"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "b"
7 | WHITESPACE " "
8 | ITEM_LIST
9 | L_CURLY "{"
10 | WHITESPACE " "
11 | R_CURLY "}"
12 | WHITESPACE "\n"
13 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0170_mod_item_curly.rs:
--------------------------------------------------------------------------------
1 | mod b { }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0170_tuple_struct.rs:
--------------------------------------------------------------------------------
1 | struct S(String, usize);
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0171_struct_item.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | STRUCT
3 | STRUCT_KW "struct"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "S"
7 | WHITESPACE " "
8 | RECORD_FIELD_LIST
9 | L_CURLY "{"
10 | R_CURLY "}"
11 | WHITESPACE "\n"
12 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0171_struct_item.rs:
--------------------------------------------------------------------------------
1 | struct S {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0172_const_item.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | CONST
3 | CONST_KW "const"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "C"
7 | COLON ":"
8 | WHITESPACE " "
9 | PATH_TYPE
10 | PATH
11 | PATH_SEGMENT
12 | NAME_REF
13 | IDENT "u32"
14 | WHITESPACE " "
15 | EQ "="
16 | WHITESPACE " "
17 | LITERAL
18 | INT_NUMBER "92"
19 | SEMICOLON ";"
20 | WHITESPACE "\n"
21 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0172_const_item.rs:
--------------------------------------------------------------------------------
1 | const C: u32 = 92;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0172_record_field_list.rs:
--------------------------------------------------------------------------------
1 | struct S { a: i32, b: f32 }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0173_anonymous_const.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | CONST
3 | CONST_KW "const"
4 | WHITESPACE " "
5 | UNDERSCORE "_"
6 | COLON ":"
7 | WHITESPACE " "
8 | PATH_TYPE
9 | PATH
10 | PATH_SEGMENT
11 | NAME_REF
12 | IDENT "u32"
13 | WHITESPACE " "
14 | EQ "="
15 | WHITESPACE " "
16 | LITERAL
17 | INT_NUMBER "0"
18 | SEMICOLON ";"
19 | WHITESPACE "\n"
20 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0173_anonymous_const.rs:
--------------------------------------------------------------------------------
1 | const _: u32 = 0;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0173_macro_def_curly.rs:
--------------------------------------------------------------------------------
1 | macro m { ($i:ident) => {} }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0173_union_item.rs:
--------------------------------------------------------------------------------
1 | struct U { i: i32, f: f32 }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0174_trait_item_generic_params.rs:
--------------------------------------------------------------------------------
1 | trait X {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0174_unit_struct.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | STRUCT
3 | STRUCT_KW "struct"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "S"
7 | SEMICOLON ";"
8 | WHITESPACE "\n"
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0174_unit_struct.rs:
--------------------------------------------------------------------------------
1 | struct S;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0174_use_tree_star.rs:
--------------------------------------------------------------------------------
1 | use *;
2 | use std::{*};
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0175_trait_item_bounds.rs:
--------------------------------------------------------------------------------
1 | trait T: Hash + Clone {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0176_trait_item_where_clause.rs:
--------------------------------------------------------------------------------
1 | trait T where Self: Copy {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0176_use_tree_alias.rs:
--------------------------------------------------------------------------------
1 | use std as stdlib;
2 | use Trait as _;
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0177_assoc_item_list_inner_attrs.rs:
--------------------------------------------------------------------------------
1 | impl S { #![attr] }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0177_trait_alias_where_clause.rs:
--------------------------------------------------------------------------------
1 | trait Z = T where U: Copy;
2 | trait Z = where Self: T;
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0177_use_tree.rs:
--------------------------------------------------------------------------------
1 | use outer::tree::{inner::tree};
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0177_use_tree_path.rs:
--------------------------------------------------------------------------------
1 | use ::std;
2 | use std::collections;
3 |
4 | use self::m;
5 | use super::m;
6 | use crate::m;
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0178_use_tree_path_use_tree.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | USE
3 | USE_KW "use"
4 | WHITESPACE " "
5 | USE_TREE
6 | PATH
7 | PATH_SEGMENT
8 | NAME_REF
9 | IDENT "std"
10 | COLON2 "::"
11 | USE_TREE_LIST
12 | L_CURLY "{"
13 | USE_TREE
14 | PATH
15 | PATH_SEGMENT
16 | NAME_REF
17 | IDENT "collections"
18 | R_CURLY "}"
19 | SEMICOLON ";"
20 | WHITESPACE "\n"
21 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0178_use_tree_path_use_tree.rs:
--------------------------------------------------------------------------------
1 | use std::{collections};
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0179_use_tree_abs_star.rs:
--------------------------------------------------------------------------------
1 | use ::*;
2 | use std::{::*};
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0180_use_tree_path_star.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | USE
3 | USE_KW "use"
4 | WHITESPACE " "
5 | USE_TREE
6 | PATH
7 | PATH_SEGMENT
8 | NAME_REF
9 | IDENT "std"
10 | COLON2 "::"
11 | STAR "*"
12 | SEMICOLON ";"
13 | WHITESPACE "\n"
14 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0180_use_tree_path_star.rs:
--------------------------------------------------------------------------------
1 | use std::*;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0181_generic_param_attribute.rs:
--------------------------------------------------------------------------------
1 | fn foo<#[lt_attr] 'a, #[t_attr] T>() {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0181_use_item.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | USE
3 | USE_KW "use"
4 | WHITESPACE " "
5 | USE_TREE
6 | PATH
7 | PATH
8 | PATH_SEGMENT
9 | NAME_REF
10 | IDENT "std"
11 | COLON2 "::"
12 | PATH_SEGMENT
13 | NAME_REF
14 | IDENT "collections"
15 | SEMICOLON ";"
16 | WHITESPACE "\n"
17 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0181_use_item.rs:
--------------------------------------------------------------------------------
1 | use std::collections;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0182_lifetime_param.rs:
--------------------------------------------------------------------------------
1 | fn f<'a: 'b>() {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0183_const_arg_block.rs:
--------------------------------------------------------------------------------
1 | type T = S<{90 + 2}>;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0183_type_param.rs:
--------------------------------------------------------------------------------
1 | fn f() {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0184_const_arg.rs:
--------------------------------------------------------------------------------
1 | type T = S<92>;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0184_generic_param_list.rs:
--------------------------------------------------------------------------------
1 | fn f() {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0185_assoc_type_bound.rs:
--------------------------------------------------------------------------------
1 | type T = StreamingIterator
- : Clone>;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0186_lifetime_arg.rs:
--------------------------------------------------------------------------------
1 | type T = S<'static>;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0187_assoc_type_eq.rs:
--------------------------------------------------------------------------------
1 | type T = StreamingIterator
- = &'a T>;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0188_const_param_default_path.rs:
--------------------------------------------------------------------------------
1 | struct A;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0189_const_arg_literal.rs:
--------------------------------------------------------------------------------
1 | type T = S<"hello", 0xdeadbeef>;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0190_generic_arg.rs:
--------------------------------------------------------------------------------
1 | type T = S;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0191_const_arg_negative_number.rs:
--------------------------------------------------------------------------------
1 | type T = S<-92>;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0192_const_arg_bool_literal.rs:
--------------------------------------------------------------------------------
1 | type T = S;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0193_let_stmt_init.rs:
--------------------------------------------------------------------------------
1 | fn f() { let x = 92; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0194_let_else.rs:
--------------------------------------------------------------------------------
1 | fn f() { let Some(x) = opt else { return }; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0194_let_stmt_ascription.rs:
--------------------------------------------------------------------------------
1 | fn f() { let x: i32; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0194_macro_inside_generic_arg.rs:
--------------------------------------------------------------------------------
1 | type A = Foo;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0196_pub_tuple_field.rs:
--------------------------------------------------------------------------------
1 | struct MyStruct(pub (u32, u32));
2 | struct MyStruct(pub (u32));
3 | struct MyStruct(pub ());
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0197_destructuring_assignment_struct_rest_pattern.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | S { .. } = S {};
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0198_destructuring_assignment_wildcard_pat.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | _ = 1;
3 | Some(_) = None;
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0199_const_param_default_expression.rs:
--------------------------------------------------------------------------------
1 | struct A;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0199_effect_blocks.rs:
--------------------------------------------------------------------------------
1 | fn f() { unsafe { } }
2 | fn f() { const { } }
3 | fn f() { async { } }
4 | fn f() { async move { } }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0199_type_item_where_clause_deprecated.rs:
--------------------------------------------------------------------------------
1 | type Foo where Foo: Copy = ();
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0200_assoc_const_eq.rs:
--------------------------------------------------------------------------------
1 | fn foo>() {}
2 | const TEST: usize = 3;
3 | fn bar>() {}
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0200_const_param_default_literal.rs:
--------------------------------------------------------------------------------
1 | struct A;
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0201_question_for_type_trait_bound.rs:
--------------------------------------------------------------------------------
1 | fn f() where T: ?for<> Sized {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0202_typepathfn_with_coloncolon.rs:
--------------------------------------------------------------------------------
1 | type F = Start::(Middle) -> (Middle)::End;
2 | type GenericArg = S;
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0203_closure_body_underscore_assignment.rs:
--------------------------------------------------------------------------------
1 | fn main() { || _ = 0; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0204_yeet_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | do yeet;
3 | do yeet 1
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0205_const_closure.rs:
--------------------------------------------------------------------------------
1 | fn main() { let cl = const || _ = 0; }
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0207_builtin_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | builtin#asm(0);
3 | builtin#format_args("", 0, 1, a = 2 + 3, a + b);
4 | builtin#offset_of(Foo, bar.baz.0);
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0207_exclusive_range_pat.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | match 42 {
3 | ..0 => {}
4 | 1..2 => {}
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0208_associated_return_type_bounds.rs:
--------------------------------------------------------------------------------
1 | fn foo>() {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0208_bare_dyn_types_with_leading_lifetime.rs:
--------------------------------------------------------------------------------
1 | type A = 'static + Trait;
2 | type B = S<'static + Trait>;
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0208_closure_range_method_call.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | || .. .method();
3 | || .. .field;
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0208_macro_rules_as_macro_name.rs:
--------------------------------------------------------------------------------
1 | macro_rules! {}
2 | macro_rules! ();
3 | macro_rules! [];
4 | fn main() {
5 | let foo = macro_rules!();
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0209_bare_dyn_types_with_paren_as_generic_args.rs:
--------------------------------------------------------------------------------
1 | type A = S;
2 | type A = S;
3 | type B = S i32>;
4 | type C = S i32 + Send>;
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0209_become_expr.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | become foo();
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0211_async_trait_bound.rs:
--------------------------------------------------------------------------------
1 | fn async_foo(_: impl async Fn(&i32)) {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/inline/ok/0212_const_trait_bound.rs:
--------------------------------------------------------------------------------
1 | const fn foo(_: impl const Trait) {}
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0000_empty.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0000_empty.rs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/verus-lang/verus-analyzer/817beac08f813bf0d2fd1bfec56debcc64a04c7a/crates/parser/test_data/parser/ok/0000_empty.rs
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0001_struct_item.rs:
--------------------------------------------------------------------------------
1 | struct S {
2 | f: T,
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0002_struct_item_field.rs:
--------------------------------------------------------------------------------
1 | struct S {
2 | foo: u32
3 | }
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0004_file_shebang.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | SHEBANG "#!/use/bin/env rusti"
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0004_file_shebang.rs:
--------------------------------------------------------------------------------
1 | #!/use/bin/env rusti
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0005_fn_item.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | FN
3 | FN_KW "fn"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "foo"
7 | PARAM_LIST
8 | L_PAREN "("
9 | R_PAREN ")"
10 | WHITESPACE " "
11 | BLOCK_EXPR
12 | STMT_LIST
13 | L_CURLY "{"
14 | WHITESPACE "\n"
15 | R_CURLY "}"
16 | WHITESPACE "\n"
17 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0005_fn_item.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | }
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0006_inner_attributes.rs:
--------------------------------------------------------------------------------
1 | #![attr]
2 | #![attr(true)]
3 | #![attr(ident)]
4 | #![attr(ident, 100, true, "true", ident = 100, ident = "hello", ident(100))]
5 | #![attr(100)]
6 | #![attr(enabled = true)]
7 | #![enabled(true)]
8 | #![attr("hello")]
9 | #![repr(C, align = 4)]
10 | #![repr(C, align(4))]
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0007_extern_crate.rs:
--------------------------------------------------------------------------------
1 | extern crate foo;
2 | extern crate foo as bar;
3 | extern crate self as baz;
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0008_mod_item.rs:
--------------------------------------------------------------------------------
1 | mod c {
2 | fn foo() {
3 | }
4 | struct S {}
5 | }
6 |
7 | mod d {
8 | #![attr]
9 | mod e;
10 | mod f {
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0009_use_item.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | USE
3 | USE_KW "use"
4 | WHITESPACE " "
5 | USE_TREE
6 | PATH
7 | PATH_SEGMENT
8 | NAME_REF
9 | IDENT "foo"
10 | SEMICOLON ";"
11 | WHITESPACE "\n"
12 | USE
13 | USE_KW "use"
14 | WHITESPACE " "
15 | USE_TREE
16 | PATH
17 | PATH_SEGMENT
18 | COLON2 "::"
19 | NAME_REF
20 | IDENT "bar"
21 | SEMICOLON ";"
22 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0009_use_item.rs:
--------------------------------------------------------------------------------
1 | use foo;
2 | use ::bar;
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0010_use_path_segments.rs:
--------------------------------------------------------------------------------
1 | use ::foo::bar::baz;
2 | use foo::bar::baz;
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0011_outer_attribute.rs:
--------------------------------------------------------------------------------
1 | #[cfg(test)]
2 | #[Ignore]
3 | fn foo() {}
4 |
5 | #[path = "a.rs"]
6 | mod b;
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0012_visibility.rs:
--------------------------------------------------------------------------------
1 | fn a() {}
2 | pub fn b() {}
3 | pub macro m($:ident) {}
4 | pub(crate) fn c() {}
5 | pub(super) fn d() {}
6 | pub(in foo::bar::baz) fn e() {}
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0013_use_path_self_super.rs:
--------------------------------------------------------------------------------
1 | use self::foo;
2 | use super::super::bar;
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0014_use_tree.rs:
--------------------------------------------------------------------------------
1 | use *;
2 | use ::*;
3 | use ::{};
4 | use {};
5 | use foo::*;
6 | use foo::{};
7 | use ::foo::{a, b, c};
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0015_use_tree.rs:
--------------------------------------------------------------------------------
1 | use foo as bar;
2 | use foo::{a as b, *, ::*, ::foo as x};
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0016_struct_flavors.rs:
--------------------------------------------------------------------------------
1 | struct A;
2 | struct B {}
3 | struct C();
4 |
5 | struct D {
6 | a: u32,
7 | pub b: u32
8 | }
9 |
10 | struct E(pub x, y,);
11 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0017_attr_trailing_comma.rs:
--------------------------------------------------------------------------------
1 | #[foo(a,)]
2 | fn foo() {}
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0018_struct_type_params.rs:
--------------------------------------------------------------------------------
1 | struct S1;
2 | struct S2(u32);
3 | struct S3 { u: u32 }
4 |
5 | struct S4<>;
6 | struct S5<'a>;
7 | struct S6<'a:>;
8 | struct S7<'a: 'b>;
9 | struct S8<'a: 'b + >;
10 | struct S9<'a: 'b + 'c>;
11 | struct S10<'a,>;
12 | struct S11<'a, 'b>;
13 | struct S12<'a: 'b+, 'b: 'c,>;
14 |
15 | struct S13;
16 | struct S14;
17 | struct S15<'a, T, U>;
18 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0019_enums.rs:
--------------------------------------------------------------------------------
1 | enum E1 {
2 | }
3 |
4 | enum E2 {
5 | }
6 |
7 | enum E3 {
8 | X
9 | }
10 |
11 | enum E4 {
12 | X,
13 | }
14 |
15 | enum E5 {
16 | A,
17 | B = 92,
18 | C {
19 | a: u32,
20 | pub b: f64,
21 | },
22 | F {},
23 | D(u32,),
24 | E(),
25 | }
26 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0020_type_param_bounds.rs:
--------------------------------------------------------------------------------
1 | struct A;
2 | struct B;
3 | struct C;
4 | struct D;
5 | struct E;
6 | struct F;
7 | struct G;
8 | struct H;
9 | struct I;
10 | struct K<'a: 'd, 'd: 'a + 'b, T: 'a + 'd + Clone>;
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0022_empty_extern_block.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | EXTERN_BLOCK
3 | ABI
4 | EXTERN_KW "extern"
5 | WHITESPACE " "
6 | EXTERN_ITEM_LIST
7 | L_CURLY "{"
8 | WHITESPACE "\n"
9 | R_CURLY "}"
10 | WHITESPACE "\n\n"
11 | EXTERN_BLOCK
12 | ABI
13 | EXTERN_KW "extern"
14 | WHITESPACE " "
15 | STRING "\"C\""
16 | WHITESPACE " "
17 | EXTERN_ITEM_LIST
18 | L_CURLY "{"
19 | WHITESPACE "\n"
20 | R_CURLY "}"
21 | WHITESPACE "\n"
22 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0022_empty_extern_block.rs:
--------------------------------------------------------------------------------
1 | extern {
2 | }
3 |
4 | extern "C" {
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0023_static_items.rs:
--------------------------------------------------------------------------------
1 | static FOO: u32 = 1;
2 | static mut BAR: i32 = 92;
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0024_const_item.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0024_const_item.rs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/verus-lang/verus-analyzer/817beac08f813bf0d2fd1bfec56debcc64a04c7a/crates/parser/test_data/parser/ok/0024_const_item.rs
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0025_extern_fn_in_block.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | extern fn f() {}
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0026_const_fn_in_block.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | const fn f() {}
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0027_unsafe_fn_in_block.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | unsafe fn f() {}
3 | unsafe { 92 }
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0029_range_forms.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | ..1 + 1;
3 | ..z = 2;
4 | x = false..1 == 1;
5 | let x = 1..;
6 |
7 | ..=1 + 1;
8 | ..=z = 2;
9 | x = false..=1 == 1;
10 | let x = 1..;
11 | }
12 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0030_string_suffixes.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | let _ = 'c'u32;
3 | let _ = "string"invalid;
4 | let _ = b'b'_suff;
5 | let _ = b"bs"invalid;
6 | }
7 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0030_traits.rs:
--------------------------------------------------------------------------------
1 | trait Runnable {
2 | fn handler();
3 | }
4 |
5 | trait TraitWithExpr {
6 | fn fn_with_expr(x: [i32; 1]);
7 | }
8 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0032_where_for.rs:
--------------------------------------------------------------------------------
1 | fn test_serialization()
2 | where
3 | SER: Serialize + for<'de> Deserialize<'de> + PartialEq + std::fmt::Debug,
4 | {}
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0034_crate_path_in_call.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | make_query(crate::module_map::module_tree);
3 | }
4 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0036_fully_qualified.rs:
--------------------------------------------------------------------------------
1 | // https://github.com/rust-lang/rust-analyzer/issues/311
2 |
3 | pub fn foo() -> String
4 | where
5 |
::Item: Eq,
6 | {
7 | "".to_owned()
8 | }
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0037_mod.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | COMMENT "// https://github.com/rust-lang/rust-analyzer/issues/357"
3 | WHITESPACE "\n\n"
4 | COMMENT "//! docs"
5 | WHITESPACE "\n"
6 | MODULE
7 | COMMENT "// non-docs"
8 | WHITESPACE "\n"
9 | MOD_KW "mod"
10 | WHITESPACE " "
11 | NAME
12 | IDENT "foo"
13 | WHITESPACE " "
14 | ITEM_LIST
15 | L_CURLY "{"
16 | R_CURLY "}"
17 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0037_mod.rs:
--------------------------------------------------------------------------------
1 | // https://github.com/rust-lang/rust-analyzer/issues/357
2 |
3 | //! docs
4 | // non-docs
5 | mod foo {}
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0038_where_pred_type.rs:
--------------------------------------------------------------------------------
1 | fn test() where (u64, u64): Foo {}
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0039_raw_fn_item.rast:
--------------------------------------------------------------------------------
1 | SOURCE_FILE
2 | FN
3 | FN_KW "fn"
4 | WHITESPACE " "
5 | NAME
6 | IDENT "r#foo"
7 | PARAM_LIST
8 | L_PAREN "("
9 | R_PAREN ")"
10 | WHITESPACE " "
11 | BLOCK_EXPR
12 | STMT_LIST
13 | L_CURLY "{"
14 | WHITESPACE "\n"
15 | R_CURLY "}"
16 | WHITESPACE "\n"
17 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0039_raw_fn_item.rs:
--------------------------------------------------------------------------------
1 | fn r#foo() {
2 | }
3 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0040_raw_struct_item_field.rs:
--------------------------------------------------------------------------------
1 | struct S {
2 | r#foo: u32
3 | }
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0041_raw_keywords.rs:
--------------------------------------------------------------------------------
1 | fn foo() { let r#struct = 92; let r#trait = r#struct * 2; }
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0042_ufcs_call_list.rs:
--------------------------------------------------------------------------------
1 | // https://github.com/rust-lang/rust-analyzer/issues/596
2 |
3 | struct Foo;
4 |
5 | impl Foo {
6 | fn bar() -> bool {
7 | unimplemented!()
8 | }
9 | }
10 |
11 | fn baz(_: bool) {}
12 |
13 | fn main() {
14 | baz(::bar())
15 | }
16 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0043_complex_assignment.rs:
--------------------------------------------------------------------------------
1 | // https://github.com/rust-lang/rust-analyzer/issues/674
2 |
3 | struct Repr { raw: [u8; 1] }
4 |
5 | fn abc() {
6 | Repr { raw: [0] }.raw[0] = 0;
7 | Repr{raw:[0]}();
8 | }
9 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0044_let_attrs.rs:
--------------------------------------------------------------------------------
1 | // https://github.com/rust-lang/rust-analyzer/issues/677
2 | fn main() {
3 | #[cfg(feature = "backtrace")]
4 | let exit_code = panic::catch_unwind(move || main());
5 | }
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0046_extern_inner_attributes.rs:
--------------------------------------------------------------------------------
1 | extern "C" {
2 | //! This is a doc comment
3 | #![doc("This is also a doc comment")]
4 | }
5 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0048_compound_assignment.rs:
--------------------------------------------------------------------------------
1 | // https://github.com/rust-lang/rust-analyzer/pull/983
2 |
3 | fn compound_assignment() {
4 | let mut a = 0;
5 | a += 1;
6 | a -= 2;
7 | a *= 3;
8 | a %= 4;
9 | a /= 5;
10 | a |= 6;
11 | a &= 7;
12 | a ^= 8;
13 | a <= 9;
14 | a >= 10;
15 | a >>= 11;
16 | a <<= 12;
17 | }
18 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0049_async_block.rs:
--------------------------------------------------------------------------------
1 | fn foo() {
2 | async {};
3 | async move {};
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/crates/parser/test_data/parser/ok/0050_async_block_as_argument.rs:
--------------------------------------------------------------------------------
1 | fn foo(x: impl std::future::Future