34 lines
657 B
Rust
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);
|
||
|
}
|