Skip to content

Commit 31eb71e

Browse files
Oliver 'ker' SchneiderOliver Schneider
authored andcommitted
---
yaml --- r: 174411 b: refs/heads/auto c: 0478a8c h: refs/heads/master i: 174409: 751be1a 174407: 9b1d1e5 v: v3
1 parent fa1252e commit 31eb71e

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1010
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1111
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1212
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
13-
refs/heads/auto: d727f9910729625039defffd4058b907ca984bb9
13+
refs/heads/auto: 0478a8c1d73ab936bcfb762ce8f31ab9f642f462
1414
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1515
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1616
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

branches/auto/src/libserialize/json.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2583,7 +2583,7 @@ mod tests {
25832583
use super::DecoderError::*;
25842584
use super::JsonEvent::*;
25852585
use super::{Json, from_str, DecodeResult, DecoderError, JsonEvent, Parser,
2586-
StackElement, Stack, Decoder};
2586+
StackElement, Stack, Decoder, Encoder, EncoderError};
25872587
use std::{i64, u64, f32, f64, io};
25882588
use std::collections::BTreeMap;
25892589
use std::num::Float;
@@ -3892,6 +3892,25 @@ mod tests {
38923892
assert_eq!(None::<int>.to_json(), Null);
38933893
}
38943894

3895+
#[test]
3896+
fn test_encode_hashmap_with_arbitrary_key() {
3897+
use std::str::from_utf8;
3898+
use std::io::Writer;
3899+
use std::collections::HashMap;
3900+
use std::fmt;
3901+
#[derive(PartialEq, Eq, Hash, RustcEncodable)]
3902+
struct ArbitraryType(uint);
3903+
let mut hm: HashMap<ArbitraryType, bool> = HashMap::new();
3904+
hm.insert(ArbitraryType(1), true);
3905+
let mut mem_buf = Vec::new();
3906+
let mut encoder = Encoder::new(&mut mem_buf as &mut fmt::Writer);
3907+
let result = hm.encode(&mut encoder);
3908+
match result.unwrap_err() {
3909+
EncoderError::BadHashmapKey => (),
3910+
_ => panic!("expected bad hash map key")
3911+
}
3912+
}
3913+
38953914
#[bench]
38963915
fn bench_streaming_small(b: &mut Bencher) {
38973916
b.iter( || {

0 commit comments

Comments
 (0)