diff options
| author | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2017-11-03 13:38:26 +0100 |
|---|---|---|
| committer | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2017-11-03 13:38:26 +0100 |
| commit | c7cb2cf8b5a9c7b5b57128a4969b0b577ecaf5d9 (patch) | |
| tree | a3d9efc3e308a9962204565cc9c9d9553850e9f3 /src/libsyntax | |
| parent | 65c899edfe889118af594c37d16e93f6c4b194f6 (diff) | |
| download | rust-c7cb2cf8b5a9c7b5b57128a4969b0b577ecaf5d9.tar.gz rust-c7cb2cf8b5a9c7b5b57128a4969b0b577ecaf5d9.zip | |
Pretty print json in ui tests
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/json.rs | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/libsyntax/json.rs b/src/libsyntax/json.rs index a304173f36d..74a762f2f62 100644 --- a/src/libsyntax/json.rs +++ b/src/libsyntax/json.rs @@ -30,36 +30,41 @@ use std::rc::Rc; use std::io::{self, Write}; use std::vec; -use rustc_serialize::json::as_json; +use rustc_serialize::json::{as_json, as_pretty_json}; pub struct JsonEmitter { dst: Box<Write + Send>, registry: Option<Registry>, cm: Rc<CodeMapper + 'static>, + pretty: bool, } impl JsonEmitter { pub fn stderr(registry: Option<Registry>, - code_map: Rc<CodeMap>) -> JsonEmitter { + code_map: Rc<CodeMap>, + pretty: bool) -> JsonEmitter { JsonEmitter { dst: Box::new(io::stderr()), registry, cm: code_map, + pretty, } } - pub fn basic() -> JsonEmitter { + pub fn basic(pretty: bool) -> JsonEmitter { let file_path_mapping = FilePathMapping::empty(); - JsonEmitter::stderr(None, Rc::new(CodeMap::new(file_path_mapping))) + JsonEmitter::stderr(None, Rc::new(CodeMap::new(file_path_mapping)), pretty) } pub fn new(dst: Box<Write + Send>, registry: Option<Registry>, - code_map: Rc<CodeMap>) -> JsonEmitter { + code_map: Rc<CodeMap>, + pretty: bool) -> JsonEmitter { JsonEmitter { dst, registry, cm: code_map, + pretty, } } } @@ -67,7 +72,12 @@ impl JsonEmitter { impl Emitter for JsonEmitter { fn emit(&mut self, db: &DiagnosticBuilder) { let data = Diagnostic::from_diagnostic_builder(db, self); - if let Err(e) = writeln!(&mut self.dst, "{}", as_json(&data)) { + let result = if self.pretty { + writeln!(&mut self.dst, "{}", as_pretty_json(&data)) + } else { + writeln!(&mut self.dst, "{}", as_json(&data)) + }; + if let Err(e) = result { panic!("failed to print diagnostics: {:?}", e); } } |
