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

34 lines
657 B
Rust

//@ compile-flags: -Zfmt-debug=shallow
//@ run-pass
#![feature(fmt_debug)]
#![allow(dead_code)]
#![allow(unused)]
#[derive(Debug)]
struct Foo {
bar: u32,
bomb: Bomb,
}
#[derive(Debug)]
enum Baz {
Quz,
}
struct Bomb;
impl std::fmt::Debug for Bomb {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
panic!()
}
}
fn main() {
let s = format!("Debug is '{:?}' and '{:#?}'", Foo { bar: 1, bomb: Bomb }, Baz::Quz);
assert_eq!("Debug is 'Foo' and 'Quz'", s);
let f = 3.0;
let s = format_args!("{:?}{:#?}{f:?}", 1234, cfg!(fmt_debug = "shallow")).to_string();
assert_eq!("1234true3.0", s);
}