From b54eb9b6e2a414404b53912608ecc9c3d7aedfe8 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Fri, 19 Sep 2014 21:08:08 -0700 Subject: [PATCH] std: Don't require bitflags! be u32 If you didn't have a trailing comma at the end of the variants, you could use any type you wanted, but if you used a trailing comma the macro would erroneously require the bits be a u32. --- src/libstd/bitflags.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/libstd/bitflags.rs b/src/libstd/bitflags.rs index 8af88b4fe72..41813fff36e 100644 --- a/src/libstd/bitflags.rs +++ b/src/libstd/bitflags.rs @@ -223,7 +223,7 @@ macro_rules! bitflags { }) => { bitflags! { $(#[$attr])* - flags $BitFlags: u32 { + flags $BitFlags: $T { $($(#[$Flag_attr])* static $Flag = $value),+ } } @@ -255,6 +255,12 @@ mod tests { } } + bitflags! { + flags AnotherSetOfFlags: uint { + static AnotherFlag = 1u, + } + } + #[test] fn test_bits(){ assert_eq!(Flags::empty().bits(), 0x00000000);