rust/tests/ui/fmt/fmt_debug/none.rs
Kornel 88b9edc9db
fmt-debug option
Allows disabling `fmt::Debug` derive and debug formatting.
2024-08-28 23:32:40 +01:00

38 lines
739 B
Rust

//@ 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);
}