diff --git a/src/cargo/cargo.rs b/src/cargo/cargo.rs index 1c9ae6f866a1..533ecf51e011 100644 --- a/src/cargo/cargo.rs +++ b/src/cargo/cargo.rs @@ -12,6 +12,7 @@ import io::writer_util; import result; import std::{map, json, tempfile, term, sort, getopts}; import map::hashmap; +import json::to_str; import str; import vec; import getopts::{optflag, optopt, opt_present}; @@ -450,7 +451,7 @@ fn try_parse_sources(filename: str, sources: map::hashmap) { } } ok(_) { fail "malformed sources.json"; } - err(e) { fail #fmt("%s:%u:%u: %s", filename, e.line, e.col, e.msg); } + err(e) { fail #fmt("%s:%s", filename, e.to_str()); } } } @@ -570,7 +571,7 @@ fn load_source_info(c: cargo, src: source) { "(source info is not a dict)"); } err(e) { - warn(#fmt("%s:%u:%u: %s", src.name, e.line, e.col, e.msg)); + warn(#fmt("%s:%s", src.name, e.to_str())); } }; } @@ -599,7 +600,7 @@ fn load_source_packages(c: cargo, src: source) { "(packages is not a list)"); } err(e) { - warn(#fmt("%s:%u:%u: %s", src.name, e.line, e.col, e.msg)); + warn(#fmt("%s:%s", src.name, e.to_str())); } }; } diff --git a/src/libstd/json.rs b/src/libstd/json.rs index 5d9427c72b86..1ccdc5042dd3 100644 --- a/src/libstd/json.rs +++ b/src/libstd/json.rs @@ -603,6 +603,12 @@ impl of to_str::to_str for json { fn to_str() -> str { to_str(self) } } +impl of to_str::to_str for error { + fn to_str() -> str { + #fmt("%u:%u: %s", self.line, self.col, self.msg) + } +} + #[cfg(test)] mod tests { fn mk_dict(items: [(str, json)]) -> json {