diff options
| author | bors <bors@rust-lang.org> | 2013-02-04 22:39:53 -0800 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-02-04 22:39:53 -0800 |
| commit | 80cd485b494556c6bcdc3793acfa52bcd8faab8d (patch) | |
| tree | 78900c53baacef8d43019c0dd0e09adb7655c082 /src/libstd/bitv.rs | |
| parent | 52817092a937738bc437800018cf202bb826d712 (diff) | |
| parent | 406a73fde27ac2352789ced88dad7e72e0e0d2e9 (diff) | |
| download | rust-80cd485b494556c6bcdc3793acfa52bcd8faab8d.tar.gz rust-80cd485b494556c6bcdc3793acfa52bcd8faab8d.zip | |
auto merge of #4784 : alexcrichton/rust/bitv-clear-fix, r=graydon
I think that the inversion of `op(&mut w)` may have just been a mistake?
Diffstat (limited to 'src/libstd/bitv.rs')
| -rw-r--r-- | src/libstd/bitv.rs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/libstd/bitv.rs b/src/libstd/bitv.rs index d49c2ef95f6..244d388bffe 100644 --- a/src/libstd/bitv.rs +++ b/src/libstd/bitv.rs @@ -156,7 +156,7 @@ impl BigBitv { fn each_storage(op: fn(v: &mut uint) -> bool) { for uint::range(0, self.storage.len()) |i| { let mut w = self.storage[i]; - let b = !op(&mut w); + let b = op(&mut w); self.storage[i] = w; if !b { break; } } @@ -981,6 +981,24 @@ mod tests { assert !b1[40]; assert !b1[80]; } + + #[test] + pub fn test_small_clear() { + let b = Bitv(14, true); + b.clear(); + for b.ones |i| { + die!(fmt!("found 1 at %?", i)); + } + } + + #[test] + pub fn test_big_clear() { + let b = Bitv(140, true); + b.clear(); + for b.ones |i| { + die!(fmt!("found 1 at %?", i)); + } + } } // |
