2025-06-27 20:45:19 +05:00
|
|
|
//! Test that `#[derive(Debug)]` for enums correctly formats variant names.
|
|
|
|
|
|
2019-07-27 00:54:25 +03:00
|
|
|
//@ run-pass
|
|
|
|
|
|
2015-01-20 15:45:07 -08:00
|
|
|
#[derive(Debug)]
|
2025-06-27 20:45:19 +05:00
|
|
|
enum Foo {
|
|
|
|
|
A(usize),
|
|
|
|
|
C,
|
2012-01-15 21:42:10 -08:00
|
|
|
}
|
|
|
|
|
|
2015-01-20 15:45:07 -08:00
|
|
|
#[derive(Debug)]
|
2025-06-27 20:45:19 +05:00
|
|
|
enum Bar {
|
|
|
|
|
D,
|
2012-09-13 11:10:05 -07:00
|
|
|
}
|
|
|
|
|
|
2013-02-01 19:43:17 -08:00
|
|
|
pub fn main() {
|
2025-06-27 20:45:19 +05:00
|
|
|
// Test variant with data
|
|
|
|
|
let foo_a = Foo::A(22);
|
|
|
|
|
assert_eq!("A(22)".to_string(), format!("{:?}", foo_a));
|
|
|
|
|
|
|
|
|
|
if let Foo::A(value) = foo_a {
|
|
|
|
|
println!("Value: {}", value); // This needs to remove #[allow(dead_code)]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Test unit variant
|
|
|
|
|
assert_eq!("C".to_string(), format!("{:?}", Foo::C));
|
|
|
|
|
|
|
|
|
|
// Test unit variant from different enum
|
|
|
|
|
assert_eq!("D".to_string(), format!("{:?}", Bar::D));
|
2012-01-15 21:42:10 -08:00
|
|
|
}
|