X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibrustc%2Fsession%2Fmod.rs;h=975ec0e709b7d272605e9c31b6f9c2fe057c6511;hb=0ac8915875596db90167701c447d9c76396358bb;hp=2f3af1c0d09b5c4b14ab2cfd501d1660f4d9d838;hpb=56cae9f507796c7c0f9fa6ee4caab6fc63a79960;p=rust.git diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs index 2f3af1c0d09..975ec0e709b 100644 --- a/src/librustc/session/mod.rs +++ b/src/librustc/session/mod.rs @@ -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(&self, mut f: F) - where F: FnMut() + pub fn abort_if_new_errors(&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)