diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index 46aa6cb5e94..86b80ee2494 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -408,18 +408,17 @@ fn json_output(krate: clean::Crate, res: Vec , // "crate": { parsed crate ... }, // "plugins": { output of plugins ... } // } - let mut json = box std::collections::TreeMap::new(); - json.insert("schema".to_string(), - json::String(SCHEMA_VERSION.to_string())); - let plugins_json = box res.move_iter() - .filter_map(|opt| { - match opt { - None => None, - Some((string, json)) => { - Some((string.to_string(), json)) - } + let mut json = std::collections::TreeMap::new(); + json.insert("schema".to_string(), json::String(SCHEMA_VERSION.to_string())); + let plugins_json = res.move_iter() + .filter_map(|opt| { + match opt { + None => None, + Some((string, json)) => { + Some((string.to_string(), json)) } - }).collect(); + } + }).collect(); // FIXME #8335: yuck, Rust -> str -> JSON round trip! No way to .encode // straight to the Rust JSON representation. @@ -429,7 +428,7 @@ fn json_output(krate: clean::Crate, res: Vec , let mut encoder = json::Encoder::new(&mut w as &mut io::Writer); krate.encode(&mut encoder).unwrap(); } - str::from_utf8(w.unwrap().as_slice()).unwrap().to_string() + str::from_utf8_owned(w.unwrap()).unwrap() }; let crate_json = match json::from_str(crate_json_str.as_slice()) { Ok(j) => j, @@ -440,6 +439,5 @@ fn json_output(krate: clean::Crate, res: Vec , json.insert("plugins".to_string(), json::Object(plugins_json)); let mut file = try!(File::create(&dst)); - try!(json::Object(json).to_writer(&mut file)); - Ok(()) + json::Object(json).to_writer(&mut file) }