about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-09-19 21:08:08 -0700
committerAlex Crichton <alex@alexcrichton.com>2014-09-19 21:08:08 -0700
commitb54eb9b6e2a414404b53912608ecc9c3d7aedfe8 (patch)
tree9a3ae532280ef788161f95cf1335e16278daa90d
parentaf3889f6979647b9bd2dc5f5132d80e3e5b405a5 (diff)
downloadrust-b54eb9b6e2a414404b53912608ecc9c3d7aedfe8.tar.gz
rust-b54eb9b6e2a414404b53912608ecc9c3d7aedfe8.zip
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.
-rw-r--r--src/libstd/bitflags.rs8
1 files changed, 7 insertions, 1 deletions
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);