diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs index 0f3337ac5d..d1e6aba35f 100644 --- a/src/codegen/mod.rs +++ b/src/codegen/mod.rs @@ -3000,7 +3000,7 @@ impl CodeGenerator for Enum { if !variation.is_const() { let mut derives = derives_of_item(item, ctx); - // For backwards compat, enums always derive Clone/Eq/PartialEq/Hash, even + // For backwards compat, enums always derive Debug/Clone/Eq/PartialEq/Hash, even // if we don't generate those by default. derives.insert( DerivableTraits::CLONE | @@ -3009,6 +3009,9 @@ impl CodeGenerator for Enum { DerivableTraits::PARTIAL_EQ | DerivableTraits::EQ, ); + if variation.is_rust() { + derives.insert(DerivableTraits::DEBUG); + } let derives: Vec<_> = derives.into(); attrs.push(attributes::derives(&derives)); } diff --git a/tests/expectations/tests/enum-default-rust.rs b/tests/expectations/tests/enum-default-rust.rs index c47521a29c..4427cad89d 100644 --- a/tests/expectations/tests/enum-default-rust.rs +++ b/tests/expectations/tests/enum-default-rust.rs @@ -63,7 +63,7 @@ pub mod Neg { } #[repr(u32)] ///
-#[derive(Copy, Clone, Hash, PartialEq, Eq)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum NoDebug { NoDebug1 = 0, NoDebug2 = 1,