about summary refs log tree commit diff
path: root/compiler/rustc_errors/src/codes.rs
diff options
context:
space:
mode:
authorJosh Triplett <josh@joshtriplett.org>2025-08-14 00:28:44 -0700
committerJosh Triplett <josh@joshtriplett.org>2025-08-20 15:01:13 -0700
commitb65fab62999e96acd3683826ffd4140091f185f2 (patch)
treee9884fd6a901f6528290370abbc48d52b4a7c0a8 /compiler/rustc_errors/src/codes.rs
parent040a98af70f0a7da03f3d5356531b28a2a7a77e4 (diff)
downloadrust-b65fab62999e96acd3683826ffd4140091f185f2.tar.gz
rust-b65fab62999e96acd3683826ffd4140091f185f2.zip
Move `IntoDiagArg` earlier in the dependency chains
`rustc_errors` depends on numerous crates, solely to implement its
`IntoDiagArg` trait on types from those crates. Many crates depend on
`rustc_errors`, and it's on the critical path.

We can't swap things around to make all of those crates depend on
`rustc_errors` instead, because `rustc_errors` would end up in
dependency cycles.

Instead, move `IntoDiagArg` into `rustc_error_messages`, which has far
fewer dependencies, and then have most of these crates depend on
`rustc_error_messages`.

This allows `rustc_errors` to drop dependencies on several crates,
including the large `rustc_target`.

(This doesn't fully reduce dependency chains yet, as `rustc_errors`
still depends on `rustc_hir` which depends on `rustc_target`. That will
get fixed in a subsequent commit.)
Diffstat (limited to 'compiler/rustc_errors/src/codes.rs')
-rw-r--r--compiler/rustc_errors/src/codes.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler/rustc_errors/src/codes.rs b/compiler/rustc_errors/src/codes.rs
index 947cf27ca79..787a8af99b1 100644
--- a/compiler/rustc_errors/src/codes.rs
+++ b/compiler/rustc_errors/src/codes.rs
@@ -20,6 +20,8 @@ impl fmt::Display for ErrCode {
     }
 }
 
+rustc_error_messages::into_diag_arg_using_display!(ErrCode);
+
 macro_rules! define_error_code_constants_and_diagnostics_table {
     ($($name:ident: $num:literal,)*) => (
         $(