rust/compiler
Nicholas Nethercote 5d9dfbd08f Stop using String for error codes.
Error codes are integers, but `String` is used everywhere to represent
them. Gross!

This commit introduces `ErrCode`, an integral newtype for error codes,
replacing `String`. It also introduces a constant for every error code,
e.g. `E0123`, and removes the `error_code!` macro. The constants are
imported wherever used with `use rustc_errors::codes::*`.

With the old code, we have three different ways to specify an error code
at a use point:
```
error_code!(E0123)  // macro call

struct_span_code_err!(dcx, span, E0123, "msg");  // bare ident arg to macro call

\#[diag(name, code = "E0123")]  // string
struct Diag;
```

With the new code, they all use the `E0123` constant.
```
E0123  // constant

struct_span_code_err!(dcx, span, E0123, "msg");  // constant

\#[diag(name, code = E0123)]  // constant
struct Diag;
```

The commit also changes the structure of the error code definitions:
- `rustc_error_codes` now just defines a higher-order macro listing the
  used error codes and nothing else.
- Because that's now the only thing in the `rustc_error_codes` crate, I
  moved it into the `lib.rs` file and removed the `error_codes.rs` file.
- `rustc_errors` uses that macro to define everything, e.g. the error
  code constants and the `DIAGNOSTIC_TABLES`. This is in its new
  `codes.rs` file.
2024-01-29 07:41:41 +11:00
..
rustc Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_abi Fix rustc_abi build on stable 2024-01-16 21:15:31 +01:00
rustc_arena Fix Stable trait and its impls to work with the new with_tables 2024-01-19 09:42:51 +00:00
rustc_ast Rollup merge of #120329 - nnethercote:3349-precursors, r=fee1-dead 2024-01-26 14:43:31 +01:00
rustc_ast_lowering Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_ast_passes Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_ast_pretty Remove unused features 2024-01-25 14:01:33 +00:00
rustc_attr Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_baked_icu_data Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
rustc_borrowck Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_builtin_macros Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_codegen_cranelift Merge commit '3e50cf65025f96854d6597e80449b0d64ad89589' into sync_cg_clif-2024-01-26 2024-01-26 18:33:45 +00:00
rustc_codegen_gcc Auto merge of #116167 - RalfJung:structural-eq, r=lcnr 2024-01-26 00:17:00 +00:00
rustc_codegen_llvm Auto merge of #120062 - davidtwco:llvm-data-layout-check, r=wesleywiser 2024-01-27 12:19:41 +00:00
rustc_codegen_ssa Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_const_eval Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_data_structures Remove unused features 2024-01-25 14:01:33 +00:00
rustc_driver Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
rustc_driver_impl Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_error_codes Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_error_messages Remove unused features 2024-01-25 14:01:33 +00:00
rustc_errors Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_expand Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_feature Add feature gate 2024-01-24 23:52:03 +01:00
rustc_fluent_macro annotate-snippets: update to 0.10 2024-01-07 16:53:32 +03:00
rustc_fs_util Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_graphviz remove unused pub fn 2023-11-23 14:11:02 +03:00
rustc_hir Auto merge of #119968 - clubby789:unused-feature, r=compiler-errors 2024-01-26 03:18:34 +00:00
rustc_hir_analysis Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_hir_pretty Add PatKind::Err 2024-01-17 03:14:16 +01:00
rustc_hir_typeck Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_incremental Remove unused features 2024-01-25 14:01:33 +00:00
rustc_index Auto merge of #120024 - Mark-Simulacrum:fast-union-merge, r=cjgillot 2024-01-27 22:26:37 +00:00
rustc_index_macros Restrict access to the private field of newtype indexes 2024-01-19 15:38:47 +00:00
rustc_infer Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_interface Remove unused features 2024-01-25 14:01:33 +00:00
rustc_lexer Use unescape_unicode for raw C string literals. 2024-01-25 12:28:11 +11:00
rustc_lint Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_lint_defs Rollup merge of #119948 - asquared31415:unsafe_op_in_unsafe_fn_fix, r=TaKO8Ki 2024-01-22 16:13:28 +01:00
rustc_llvm Revert "Auto merge of #113923 - DianQK:restore-no-builtins-lto, r=pnkfelix" 2024-01-12 18:23:04 +08:00
rustc_log rustc_log: provide a way to init logging based on the values, not names, of the env vars 2023-11-11 15:24:33 +01:00
rustc_macros Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_metadata Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_middle Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_mir_build Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_mir_dataflow Remove unused features 2024-01-25 14:01:33 +00:00
rustc_mir_transform Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_monomorphize Remove unused features 2024-01-25 14:01:33 +00:00
rustc_next_trait_solver Remove movability from TyKind::Coroutine 2023-12-28 16:35:01 +00:00
rustc_parse Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_parse_format Rename the unescaping functions. 2024-01-25 12:28:11 +11:00
rustc_passes Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_pattern_analysis Rollup merge of #118803 - Nadrieril:min-exhaustive-patterns, r=compiler-errors 2024-01-26 06:36:36 +01:00
rustc_privacy Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_query_impl Remove unused features 2024-01-25 14:01:33 +00:00
rustc_query_system Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_resolve Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_serialize Remove unused features 2024-01-25 14:01:33 +00:00
rustc_session Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_smir Do not normalize closure signature when building FnOnce shim 2024-01-22 16:50:30 +00:00
rustc_span Rollup merge of #118803 - Nadrieril:min-exhaustive-patterns, r=compiler-errors 2024-01-26 06:36:36 +01:00
rustc_symbol_mangling Auto merge of #118636 - h1467792822:dev, r=michaelwoerister 2024-01-27 02:32:30 +00:00
rustc_target Remove unused features 2024-01-25 14:01:33 +00:00
rustc_trait_selection Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_traits Remove unused features 2024-01-25 14:01:33 +00:00
rustc_transmute Remove unused features 2024-01-25 14:01:33 +00:00
rustc_ty_utils Stop using String for error codes. 2024-01-29 07:41:41 +11:00
rustc_type_ir Restrict access to the private field of newtype indexes 2024-01-19 15:38:47 +00:00
stable_mir Remove unused features 2024-01-25 14:01:33 +00:00