diff --git a/src/public.rs b/src/public.rs index 967e0dac..6e45387b 100644 --- a/src/public.rs +++ b/src/public.rs @@ -321,7 +321,8 @@ macro_rules! __impl_public_bitflags_ops { &self, f: &mut $crate::__private::core::fmt::Formatter, ) -> $crate::__private::core::fmt::Result { - $crate::__private::core::fmt::Binary::fmt(&self.0, f) + let inner = self.0; + $crate::__private::core::fmt::Binary::fmt(&inner, f) } } @@ -330,7 +331,8 @@ macro_rules! __impl_public_bitflags_ops { &self, f: &mut $crate::__private::core::fmt::Formatter, ) -> $crate::__private::core::fmt::Result { - $crate::__private::core::fmt::Octal::fmt(&self.0, f) + let inner = self.0; + $crate::__private::core::fmt::Octal::fmt(&inner, f) } } @@ -339,7 +341,8 @@ macro_rules! __impl_public_bitflags_ops { &self, f: &mut $crate::__private::core::fmt::Formatter, ) -> $crate::__private::core::fmt::Result { - $crate::__private::core::fmt::LowerHex::fmt(&self.0, f) + let inner = self.0; + $crate::__private::core::fmt::LowerHex::fmt(&inner, f) } } @@ -348,7 +351,8 @@ macro_rules! __impl_public_bitflags_ops { &self, f: &mut $crate::__private::core::fmt::Formatter, ) -> $crate::__private::core::fmt::Result { - $crate::__private::core::fmt::UpperHex::fmt(&self.0, f) + let inner = self.0; + $crate::__private::core::fmt::UpperHex::fmt(&inner, f) } } diff --git a/tests/compile-pass/bitflags_impl_repr_packed.rs b/tests/compile-pass/bitflags_impl_repr_packed.rs new file mode 100644 index 00000000..7d10799c --- /dev/null +++ b/tests/compile-pass/bitflags_impl_repr_packed.rs @@ -0,0 +1,13 @@ +extern crate bitflags; + +#[repr(packed)] +struct Example(u64); + +bitflags::bitflags! { + impl Example: u64 { + const FLAG_1 = 0b01; + const FLAG_2 = 0b10; + } +} + +fn main() {}