diff options
| author | Marijn Haverbeke <marijnh@gmail.com> | 2012-03-16 16:25:36 +0100 |
|---|---|---|
| committer | Marijn Haverbeke <marijnh@gmail.com> | 2012-03-16 17:05:29 +0100 |
| commit | 35fc4a4291dfc8d33b3b500ff0f1b2748ddd5ff0 (patch) | |
| tree | 96bcbca364f4cc4d68610271719017b0841c5f97 /src/libstd | |
| parent | 25c2be0ff477c5bd6c71f4dc598d7a94c08bb724 (diff) | |
| download | rust-35fc4a4291dfc8d33b3b500ff0f1b2748ddd5ff0.tar.gz rust-35fc4a4291dfc8d33b3b500ff0f1b2748ddd5ff0.zip | |
Check kind bounds when calling methods
Closes #1915
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/map.rs | 2 | ||||
| -rw-r--r-- | src/libstd/serialization.rs | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/libstd/map.rs b/src/libstd/map.rs index f5302082b8d..760dab76643 100644 --- a/src/libstd/map.rs +++ b/src/libstd/map.rs @@ -330,7 +330,7 @@ fn uint_hash<V: copy>() -> hashmap<uint, V> { #[doc = " Convenience function for adding keys to a hashmap with nil type keys "] -fn set_add<K>(set: set<K>, key: K) -> bool { ret set.insert(key, ()); } +fn set_add<K: copy>(set: set<K>, key: K) -> bool { ret set.insert(key, ()); } #[cfg(test)] mod tests { diff --git a/src/libstd/serialization.rs b/src/libstd/serialization.rs index 3734b8db2c0..43059ca7828 100644 --- a/src/libstd/serialization.rs +++ b/src/libstd/serialization.rs @@ -93,7 +93,7 @@ fn emit_from_vec<S: serializer, T>(s: S, v: [T], f: fn(T)) { } } -fn read_to_vec<D: deserializer, T>(d: D, f: fn() -> T) -> [T] { +fn read_to_vec<D: deserializer, T: copy>(d: D, f: fn() -> T) -> [T] { d.read_vec {|len| vec::from_fn(len) {|i| d.read_vec_elt(i) {|| f() } @@ -108,7 +108,7 @@ impl serializer_helpers<S: serializer> for S { } impl deserializer_helpers<D: deserializer> for D { - fn read_to_vec<T>(f: fn() -> T) -> [T] { + fn read_to_vec<T: copy>(f: fn() -> T) -> [T] { read_to_vec(self, f) } } @@ -252,7 +252,8 @@ fn serialize_option<S: serializer,T>(s: S, v: option<T>, st: fn(T)) { } } -fn deserialize_option<D: deserializer,T>(d: D, st: fn() -> T) -> option<T> { +fn deserialize_option<D: deserializer,T: copy>(d: D, st: fn() -> T) + -> option<T> { d.read_enum("option") {|| d.read_enum_variant {|i| alt check i { |
