rust/compiler
Nicholas Nethercote 2e412fef75 Remove Lexer's dependency on Parser.
Lexing precedes parsing, as you'd expect: `Lexer` creates a
`TokenStream` and `Parser` then parses that `TokenStream`.

But, in a horrendous violation of layering abstractions and common
sense, `Lexer` depends on `Parser`! The `Lexer::unclosed_delim_err`
method does some error recovery that relies on creating a `Parser` to do
some post-processing of the `TokenStream` that the `Lexer` just created.

This commit just removes `unclosed_delim_err`. This change removes
`Lexer`'s dependency on `Parser`, and also means that `lex_token_tree`'s
return value can have a more typical form.

The cost is slightly worse error messages in two obscure cases, as shown
in these tests:
- tests/ui/parser/brace-in-let-chain.rs: there is slightly less
  explanation in this case involving an extra `{`.
- tests/ui/parser/diff-markers/unclosed-delims{,-in-macro}.rs: the diff
  marker detection is no longer supported (because that detection is
  implemented in the parser).

In my opinion this cost is outweighed by the magnitude of the code
cleanup.
2024-12-13 07:10:20 +11:00
..
rustc switch jemalloc-sys back to tikv-jemalloc-sys, and update to 0.6.0 2024-12-03 08:56:33 +00:00
rustc_abi fix safe-transmute handling of enums 2024-12-01 18:28:04 +01:00
rustc_arena move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
rustc_ast allow symbol_intern_string_literal lint in test modules 2024-12-11 20:38:55 +03:00
rustc_ast_ir Add sugar for &pin (const|mut) types 2024-10-07 11:15:04 -07:00
rustc_ast_lowering review comments: rewordings 2024-12-09 21:55:13 +00:00
rustc_ast_passes review comments: rewordings 2024-12-09 21:55:13 +00:00
rustc_ast_pretty Rollup merge of #133424 - Nadrieril:guard-patterns-parsing, r=fee1-dead 2024-12-08 17:18:50 +01:00
rustc_attr ensure that all publicly reachable const fn have const stability info 2024-11-10 10:16:26 +01:00
rustc_baked_icu_data Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
rustc_borrowck Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_builtin_macros Disallow #[default] Variant {} regardless of feature flag 2024-12-09 21:55:13 +00:00
rustc_codegen_cranelift Rollup merge of #134008 - jswrenn:unsafe-fields-copy, r=compiler-errors 2024-12-10 13:51:10 +01:00
rustc_codegen_gcc Auto merge of #128004 - folkertdev:naked-fn-asm, r=Amanieu 2024-12-11 21:51:07 +00:00
rustc_codegen_llvm Auto merge of #129181 - beetrees:asm-spans, r=pnkfelix,compiler-errors 2024-12-12 02:34:06 +00:00
rustc_codegen_ssa Auto merge of #129181 - beetrees:asm-spans, r=pnkfelix,compiler-errors 2024-12-12 02:34:06 +00:00
rustc_const_eval Rollup merge of #134010 - RalfJung:promoted-type-error-ice, r=oli-obk 2024-12-10 08:55:59 +01:00
rustc_data_structures Assert that obligations are empty before deeply normalizing 2024-12-02 22:51:18 +00:00
rustc_driver
rustc_driver_impl Use ensure for analysis calls 2024-12-08 16:57:09 +00:00
rustc_error_codes Fix: typo in E0751 error explanation 2024-12-06 22:09:17 -03:00
rustc_error_messages Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
rustc_errors Rollup merge of #134187 - nnethercote:rm-PErr, r=jieyouxu 2024-12-12 08:07:05 +01:00
rustc_expand Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_feature Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_fluent_macro use tracked_path in rustc_fluent_macro 2024-10-19 22:32:38 +08:00
rustc_fs_util Couple of changes to make it easier to compile rustc for wasm 2024-09-26 19:51:14 +00:00
rustc_graphviz Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_hir Rollup merge of #134173 - onur-ozkan:allow-symbol-intern-string-literal, r=jieyouxu 2024-12-12 08:07:03 +01:00
rustc_hir_analysis Rollup merge of #134070 - oli-obk:push-nquzymupzlsq, r=jieyouxu 2024-12-12 08:06:59 +01:00
rustc_hir_pretty Remove more traces of anonymous ADTs 2024-12-10 19:50:47 +00:00
rustc_hir_typeck Rollup merge of #134154 - dev-ardi:field-expr-generics, r=compiler-errors 2024-12-12 08:07:02 +01:00
rustc_incremental Remove all threading through of ErrorGuaranteed from the driver 2024-12-06 18:42:31 +00:00
rustc_index Use BitSet in SparseBitMatrix. 2024-12-09 08:53:33 +11:00
rustc_index_macros Auto merge of #130867 - michirakara:steps_between, r=dtolnay 2024-11-22 10:54:22 +00:00
rustc_infer Assert that obligations are empty before deeply normalizing 2024-12-02 22:51:18 +00:00
rustc_interface Rollup merge of #133567 - bjorn3:various_cleanups, r=cjgillot 2024-12-09 01:56:32 +01:00
rustc_lexer Add test to check unicode identifier version 2024-12-09 06:23:59 -08:00
rustc_lint Rollup merge of #134173 - onur-ozkan:allow-symbol-intern-string-literal, r=jieyouxu 2024-12-12 08:07:03 +01:00
rustc_lint_defs Actually walk into lifetimes and attrs in EarlyContextAndPass 2024-12-07 02:08:40 +00:00
rustc_llvm Auto merge of #129181 - beetrees:asm-spans, r=pnkfelix,compiler-errors 2024-12-12 02:34:06 +00:00
rustc_log Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_macros give a better error for tuple structs in derive(Diagnostic) 2024-10-27 21:23:28 -04:00
rustc_metadata Support x-crate default fields 2024-12-09 21:58:07 +00:00
rustc_middle Auto merge of #128004 - folkertdev:naked-fn-asm, r=Amanieu 2024-12-11 21:51:07 +00:00
rustc_mir_build review comments: rewordings 2024-12-09 21:55:13 +00:00
rustc_mir_dataflow Simplify rustc_mir_dataflow::abs_domain. 2024-12-11 10:45:47 +11:00
rustc_mir_transform Rollup merge of #134029 - Zalathar:zero, r=oli-obk 2024-12-10 08:55:59 +01:00
rustc_monomorphize Remove polymorphization 2024-12-06 16:42:09 -05:00
rustc_next_trait_solver Rename projection_def_id to item_def_id 2024-12-11 00:59:43 +00:00
rustc_parse Remove Lexer's dependency on Parser. 2024-12-13 07:10:20 +11:00
rustc_parse_format Remove 'apostrophes' from rustc_parse_format 2024-10-14 23:22:51 +02:00
rustc_passes Remove more traces of anonymous ADTs 2024-12-10 19:50:47 +00:00
rustc_pattern_analysis no more Reveal :( 2024-11-23 13:52:54 +01:00
rustc_privacy Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_query_impl Remove 'tcx lifetime from OnDiskCache 2024-12-06 18:41:50 +00:00
rustc_query_system Make sure to record deps from cached task in new solver on first run 2024-12-04 16:15:44 +00:00
rustc_resolve review comments: rewordings 2024-12-09 21:55:13 +00:00
rustc_sanitizers Remove more traces of anonymous ADTs 2024-12-10 19:50:47 +00:00
rustc_serialize Fix explicit_iter_loop in rustc_serialize 2024-10-16 15:44:16 +02:00
rustc_session Rollup merge of #133567 - bjorn3:various_cleanups, r=cjgillot 2024-12-09 01:56:32 +01:00
rustc_smir Fix ui-fulldep tests 2024-12-06 18:42:31 +00:00
rustc_span Rollup merge of #134173 - onur-ozkan:allow-symbol-intern-string-literal, r=jieyouxu 2024-12-12 08:07:03 +01:00
rustc_symbol_mangling Remove more traces of anonymous ADTs 2024-12-10 19:50:47 +00:00
rustc_target Rollup merge of #122003 - mati865:gnullvm-build-libunwind, r=petrochenkov 2024-12-12 08:06:58 +01:00
rustc_trait_selection Rollup merge of #134158 - compiler-errors:item-def-id, r=jackh726 2024-12-11 03:30:44 -05:00
rustc_traits Delay a bug when encountering an impl with unconstrained generics in codegen_select 2024-11-23 05:27:45 +00:00
rustc_transmute fix safe-transmute handling of enums 2024-12-01 18:28:04 +01:00
rustc_ty_utils Remove polymorphization 2024-12-06 16:42:09 -05:00
rustc_type_ir Rename projection_def_id to item_def_id 2024-12-11 00:59:43 +00:00
rustc_type_ir_macros do not relate Abi and Safety 2024-10-22 23:13:04 +02:00
stable_mir Rollup merge of #132161 - celinval:smir-fix-indent, r=compiler-errors 2024-11-08 18:51:28 +11:00