about summary refs log tree commit diff
path: root/src/librustc_error_codes/lib.rs
blob: 36b1518c869b97c330a8e8439b5fb1f273e62e3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//! This library is used to gather all error codes into one place. The goal
//! being to make their maintenance easier.

#[macro_export]
macro_rules! register_diagnostics {
    ($($ecode:ident: $message:expr,)*) => (
        $crate::register_diagnostics!{$($ecode:$message,)* ;}
    );

    ($($ecode:ident: $message:expr,)* ; $($code:ident,)*) => (
        pub static DIAGNOSTICS: &[(&str, &str)] = &[
            $( (stringify!($ecode), $message), )*
        ];

        $(
            pub const $ecode: &str = $message;
        )*
        $(
            pub const $code: () = ();
        )*
    )
}

mod error_codes;

pub use error_codes::*;