about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorGareth Daniel Smith <garethdanielsmith@gmail.com>2012-08-21 19:41:29 +0100
committerGareth Daniel Smith <garethdanielsmith@gmail.com>2012-08-21 19:41:29 +0100
commit5ccd299b15e2ff5d351e0329df6e75dec2eb1b6b (patch)
tree3035159c59743a2680dc19ed5b3090b222fc827d /src/libstd
parent9423302c82b0974315c7f2637f72c00ab3c26a18 (diff)
fix a logic bug in small_bitv.set
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/bitv.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/libstd/bitv.rs b/src/libstd/bitv.rs
index 77d39616b61..91e9a1dc940 100644
--- a/src/libstd/bitv.rs
+++ b/src/libstd/bitv.rs
@@ -61,7 +61,7 @@ struct small_bitv {
             self.bits |= 1<<i;
         }
         else {
-            self.bits &= !(i as u32);
+            self.bits &= !(1<<i as u32);
         }
     }
     #[inline(always)]
@@ -457,6 +457,14 @@ mod tests {
     }
 
     #[test]
+    fn test_2_elements() {
+        let b = bitv::bitv(2, false);
+        b.set(0, true);
+        b.set(1, false);
+        assert b.to_str() == ~"10";
+    }
+
+    #[test]
     fn test_10_elements() {
         let mut act;
         // all 0