]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc/session/mod.rs
The war on abort_if_errors
[rust.git] / src / librustc / session / mod.rs
index 2f3af1c0d09b5c4b14ab2cfd501d1660f4d9d838..975ec0e709b7d272605e9c31b6f9c2fe057c6511 100644 (file)
@@ -176,14 +176,15 @@ pub fn has_errors(&self) -> bool {
     pub fn abort_if_errors(&self) {
         self.diagnostic().abort_if_errors();
     }
-    pub fn abort_if_new_errors<F>(&self, mut f: F)
-        where F: FnMut()
+    pub fn abort_if_new_errors<F, T>(&self, f: F) -> T
+        where F: FnOnce() -> T
     {
         let count = self.err_count();
-        f();
+        let result = f();
         if self.err_count() > count {
             self.abort_if_errors();
         }
+        result
     }
     pub fn span_warn(&self, sp: Span, msg: &str) {
         self.diagnostic().span_warn(sp, msg)