about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2011-05-26 15:58:30 -0700
committerTim Chevalier <chevalier@alum.wellesley.edu>2011-05-26 18:00:54 -0700
commit97e0575e2ea72a6fdf7a89408611d950bb9c2833 (patch)
tree2386c4a4165471a366ff7ef3403a93041a9f5277 /src/comp
parent79693fab1f6bbcb839c54cf25925fcd216db41c8 (diff)
downloadrust-97e0575e2ea72a6fdf7a89408611d950bb9c2833.tar.gz
rust-97e0575e2ea72a6fdf7a89408611d950bb9c2833.zip
Add a span_str function in session
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/driver/session.rs16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/comp/driver/session.rs b/src/comp/driver/session.rs
index 09cf76b9cc9..9f025849402 100644
--- a/src/comp/driver/session.rs
+++ b/src/comp/driver/session.rs
@@ -41,12 +41,16 @@ type options = rec(bool shared,
 type crate_metadata = rec(str name,
                           vec[u8] data);
 
-fn emit_diagnostic(span sp, str msg, str kind, u8 color,
-                   codemap::codemap cm) {
+fn span_to_str(span sp, codemap::codemap cm) -> str {
     auto lo = codemap::lookup_pos(cm, sp.lo);
     auto hi = codemap::lookup_pos(cm, sp.hi);
-    io::stdout().write_str(#fmt("%s:%u:%u:%u:%u: ", lo.filename, lo.line,
-                               lo.col, hi.line, hi.col));
+    ret (#fmt("%s:%u:%u:%u:%u", lo.filename, lo.line,
+              lo.col, hi.line, hi.col));
+}
+
+fn emit_diagnostic(span sp, str msg, str kind, u8 color,
+                   codemap::codemap cm) {
+    io::stdout().write_str(span_to_str(sp, cm) + ": ");
 
     if (term::color_supported()) {
         term::fg(io::stdout().get_buf_writer(), color);
@@ -143,6 +147,10 @@ state obj session(ast::crate_num cnum,
     fn lookup_pos(uint pos) -> codemap::loc {
         ret codemap::lookup_pos(cm, pos);
     }
+
+    fn span_str(span sp) -> str {
+        ret span_to_str(sp, self.get_codemap());
+    }
 }