diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2012-06-08 14:35:11 -0700 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2012-06-08 14:35:11 -0700 |
| commit | 9105cb6d5ddf6be881d9cbfd016600d1b69241ec (patch) | |
| tree | 60b17bcebd6f419e37bb05f4adc090966391208d /src | |
| parent | fc9eadf75bc68be413d7894d70be2a2ad5a5bd79 (diff) | |
| download | rust-9105cb6d5ddf6be881d9cbfd016600d1b69241ec.tar.gz rust-9105cb6d5ddf6be881d9cbfd016600d1b69241ec.zip | |
revise map interface so that K need not be copyable
Diffstat (limited to 'src')
| -rw-r--r-- | src/libstd/map.rs | 12 | ||||
| -rw-r--r-- | src/libstd/smallintmap.rs | 2 | ||||
| -rw-r--r-- | src/test/run-pass/class-impl-parameterized-iface.rs | 2 | ||||
| -rw-r--r-- | src/test/run-pass/class-impl-very-parameterized-iface.rs | 2 |
4 files changed, 9 insertions, 9 deletions
diff --git a/src/libstd/map.rs b/src/libstd/map.rs index 08ae0bd80c4..fc6d3ee52fc 100644 --- a/src/libstd/map.rs +++ b/src/libstd/map.rs @@ -21,7 +21,7 @@ type set<K> = hashmap<K, ()>; type hashmap<K, V> = chained::t<K, V>; -iface map<K: copy, V: copy> { +iface map<K, V: copy> { #[doc = "Return the number of elements in the map"] fn size() -> uint; @@ -33,7 +33,7 @@ iface map<K: copy, V: copy> { Returns true if the key did not already exist in the map "] - fn insert(K, V) -> bool; + fn insert(+K, +V) -> bool; #[doc = "Returns true if the map contains a value for the specified key"] fn contains_key(K) -> bool; @@ -96,7 +96,7 @@ mod chained { found_after(@entry<K,V>, @entry<K,V>) } - impl private_methods<K: copy, V: copy> for t<K, V> { + impl private_methods<K, V: copy> for t<K, V> { fn search_rem(k: K, h: uint, idx: uint, e_root: @entry<K,V>) -> search_result<K,V> { let mut e0 = e_root; @@ -174,7 +174,7 @@ mod chained { } } - impl hashmap<K: copy, V: copy> of map<K, V> for t<K, V> { + impl hashmap<K, V: copy> of map<K, V> for t<K, V> { fn size() -> uint { self.count } fn contains_key(k: K) -> bool { @@ -185,7 +185,7 @@ mod chained { } } - fn insert(k: K, v: V) -> bool { + fn insert(+k: K, +v: V) -> bool { let hash = self.hasher(k); alt self.search_tbl(k, hash) { not_found { @@ -249,7 +249,7 @@ mod chained { fn each(blk: fn(K,V) -> bool) { for self.each_entry { |entry| - if !blk(copy entry.key, copy entry.value) { break; } + if !blk(entry.key, copy entry.value) { break; } } } diff --git a/src/libstd/smallintmap.rs b/src/libstd/smallintmap.rs index ffe52c4131e..1abf54b438d 100644 --- a/src/libstd/smallintmap.rs +++ b/src/libstd/smallintmap.rs @@ -62,7 +62,7 @@ impl <V: copy> of map::map<uint, V> for smallintmap<V> { } sz } - fn insert(&&key: uint, value: V) -> bool { + fn insert(+key: uint, +value: V) -> bool { let exists = contains_key(self, key); insert(self, key, value); ret !exists; diff --git a/src/test/run-pass/class-impl-parameterized-iface.rs b/src/test/run-pass/class-impl-parameterized-iface.rs index a8a08eabc93..b7533bfe426 100644 --- a/src/test/run-pass/class-impl-parameterized-iface.rs +++ b/src/test/run-pass/class-impl-parameterized-iface.rs @@ -36,7 +36,7 @@ class cat implements map<int, bool> { } fn size() -> uint { self.meows as uint } - fn insert(&&k: int, &&v: bool) -> bool { + fn insert(+k: int, +v: bool) -> bool { if v { self.meows += k; } else { self.meows -= k; }; true } diff --git a/src/test/run-pass/class-impl-very-parameterized-iface.rs b/src/test/run-pass/class-impl-very-parameterized-iface.rs index 74d8f921186..89674fecfa4 100644 --- a/src/test/run-pass/class-impl-very-parameterized-iface.rs +++ b/src/test/run-pass/class-impl-very-parameterized-iface.rs @@ -41,7 +41,7 @@ class cat<T: copy> implements map<int, T> { } fn size() -> uint { self.meows as uint } - fn insert(&&k: int, &&_v: T) -> bool { + fn insert(+k: int, +_v: T) -> bool { self.meows += k; true } |
