about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-01-14 00:35:16 -0800
committerBrian Anderson <banderson@mozilla.com>2012-01-14 15:14:43 -0800
commitd9d3be7acc660e3b587fe468f237217990423c69 (patch)
tree9f799d267b8761821e6f85605800f1ec47480dfe /src
parent8f57be5bffca9de896ee12d0f480ed3f474bc0a2 (diff)
downloadrust-d9d3be7acc660e3b587fe468f237217990423c69.tar.gz
rust-d9d3be7acc660e3b587fe468f237217990423c69.zip
rustc: Extract the logic for generating an ICE message
Diffstat (limited to 'src')
-rw-r--r--src/comp/driver/diagnostic.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/comp/driver/diagnostic.rs b/src/comp/driver/diagnostic.rs
index 627ff44f5d4..3ec8a46e852 100644
--- a/src/comp/driver/diagnostic.rs
+++ b/src/comp/driver/diagnostic.rs
@@ -6,6 +6,7 @@ import codemap::span;
 export emitter, emit;
 export level, fatal, error, warning, note;
 export handler, mk_handler;
+export ice_msg;
 
 type emitter = fn@(cmsp: option<(codemap::codemap, span)>,
                    msg: str, lvl: level);
@@ -70,10 +71,10 @@ impl codemap_handler of handler for codemap_t {
         self.emit(none, msg, note);
     }
     fn span_bug(sp: span, msg: str) -> ! {
-        self.span_fatal(sp, #fmt["internal compiler error %s", msg]);
+        self.span_fatal(sp, ice_msg(msg));
     }
     fn bug(msg: str) -> ! {
-        self.fatal(#fmt["internal compiler error %s", msg]);
+        self.fatal(ice_msg(msg));
     }
     fn span_unimpl(sp: span, msg: str) -> ! {
         self.span_bug(sp, "unimplemented " + msg);
@@ -81,6 +82,10 @@ impl codemap_handler of handler for codemap_t {
     fn unimpl(msg: str) -> ! { self.bug("unimplemented " + msg); }
 }
 
+fn ice_msg(msg: str) -> str {
+    #fmt["internal compiler error %s", msg]
+}
+
 fn mk_handler(cm: codemap::codemap,
               emitter: option<emitter>) -> handler {