| //@ compile-flags: -Zfmt-debug=none | |
| //@ run-pass | |
| #![feature(fmt_debug)] | |
| #![allow(dead_code)] | |
| #![allow(unused)] | |
| #[derive(Debug)] | |
| struct Foo { | |
| bar: u32, | |
| } | |
| #[derive(Debug)] | |
| enum Baz { | |
| Quz, | |
| } | |
| #[cfg(fmt_debug = "full")] | |
| compile_error!("nope"); | |
| #[cfg(fmt_debug = "none")] | |
| struct Custom; | |
| impl std::fmt::Debug for Custom { | |
| fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | |
| f.write_str("custom_fmt") | |
| } | |
| } | |
| fn main() { | |
| let c = Custom; | |
| let s = format!("Debug is '{:?}', '{:#?}', and '{c:?}'", Foo { bar: 1 }, Baz::Quz); | |
| assert_eq!("Debug is '', '', and ''", s); | |
| let f = 3.0; | |
| let s = format_args!("{:?}x{:#?}y{f:?}", 1234, "can't debug this").to_string(); | |
| assert_eq!("xy", s); | |
| } |