compiletest/
diagnostics.rs

1//! Collection of diagnostics helpers for `compiletest` *itself*.
2
3#[macro_export]
4macro_rules! fatal {
5    ($($arg:tt)*) => {
6        let status = ::colored::Colorize::bright_red("FATAL: ");
7        let status = ::colored::Colorize::bold(status);
8        eprint!("{status}");
9        eprintln!($($arg)*);
10        // This intentionally uses a seemingly-redundant panic to include backtrace location.
11        //
12        // FIXME: in the long term, we should handle "logic bug in compiletest itself" vs "fatal
13        // user error" separately.
14        panic!("fatal error");
15    };
16}
17
18#[macro_export]
19macro_rules! error {
20    ($($arg:tt)*) => {
21        let status = ::colored::Colorize::red("ERROR: ");
22        let status = ::colored::Colorize::bold(status);
23        eprint!("{status}");
24        eprintln!($($arg)*);
25    };
26}
27
28#[macro_export]
29macro_rules! warning {
30    ($($arg:tt)*) => {
31        let status = ::colored::Colorize::yellow("WARNING: ");
32        let status = ::colored::Colorize::bold(status);
33        eprint!("{status}");
34        eprintln!($($arg)*);
35    };
36}
37
38#[macro_export]
39macro_rules! help {
40    ($($arg:tt)*) => {
41        let status = ::colored::Colorize::cyan("HELP: ");
42        let status = ::colored::Colorize::bold(status);
43        eprint!("{status}");
44        eprintln!($($arg)*);
45    };
46}