diff --git a/src/libstd/smallintmap.rs b/src/libstd/smallintmap.rs index 381aa3b7963..59ae9f68d6e 100644 --- a/src/libstd/smallintmap.rs +++ b/src/libstd/smallintmap.rs @@ -95,6 +95,10 @@ impl SmallIntMap: Container { pure fn is_empty(&self) -> bool { self.len() == 0 } } +impl SmallIntMap: Mutable { + fn clear(&mut self) { self.v.set(~[]) } +} + /// Implements the map::map interface for smallintmap impl SmallIntMap { #[inline(always)] @@ -111,9 +115,6 @@ impl SmallIntMap { self.v.set_elt(key, None); old.is_some() } - fn clear() { - self.v.set(~[]); - } pure fn contains_key(key: uint) -> bool { contains_key(self, key) } @@ -191,6 +192,19 @@ mod tests { assert !map.is_empty(); } + #[test] + fn test_clear() { + let mut map = mk(); + map.insert(5, 20); + map.insert(11, 12); + map.insert(14, 22); + map.clear(); + assert map.is_empty(); + assert map.find(5).is_none(); + assert map.find(11).is_none(); + assert map.find(14).is_none(); + } + #[test] fn test_insert_with_key() { let map: SmallIntMap = mk();