]> git.lizzy.rs Git - rust.git/commitdiff
std: fix json deserializing vectors and a test
authorErick Tryzelaar <erick.tryzelaar@gmail.com>
Fri, 29 Mar 2013 16:10:31 +0000 (09:10 -0700)
committerErick Tryzelaar <erick.tryzelaar@gmail.com>
Fri, 29 Mar 2013 16:10:31 +0000 (09:10 -0700)
src/libstd/json.rs

index f069547bc8c3d070f1cde6beed3be11b971b5f6f..d26c1606a5e5c754db81260058c92feab8a3913f 100644 (file)
@@ -855,9 +855,7 @@ fn read_seq<T>(&self, f: &fn(uint) -> T) -> T {
             }
             _ => fail!(~"not a list"),
         };
-        let res = f(len);
-        self.stack.pop();
-        res
+        f(len)
     }
 
     fn read_seq_elt<T>(&self, idx: uint, f: &fn() -> T) -> T {
@@ -1675,10 +1673,10 @@ fn test_read_enum_multiple_args() {
     fn test_read_map() {
         let s = ~"{\"a\": \"Dog\", \"b\": [\"Frog\", \"Henry\", 349]}";
         let decoder = Decoder(from_str(s).unwrap());
-        let map: LinearMap<~str, Animal> = Decodable::decode(&decoder);
+        let mut map: LinearMap<~str, Animal> = Decodable::decode(&decoder);
 
-        assert_eq!(map.find(&~"a"), Some(Dog));
-        assert_eq!(map.find(&~"b"), Some(Frog(~"Henry", 349)));
+        assert_eq!(map.pop(&~"a"), Some(Dog));
+        assert_eq!(map.pop(&~"b"), Some(Frog(~"Henry", 349)));
     }
 
     #[test]