From 54f1d58a10a3c555c2fba743e25917283dde48c5 Mon Sep 17 00:00:00 2001 From: Christian Vetter Date: Tue, 3 Aug 2021 08:35:11 +0200 Subject: [PATCH] Fix Debug not being derived for Rust enumerations anymore by default Fixes #2076 --- src/codegen/mod.rs | 5 ++++- tests/expectations/tests/enum-default-rust.rs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) 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,