From: Ariel Ben-Yehuda Date: Thu, 21 Jul 2016 17:12:04 +0000 (+0300) Subject: rustc_errors: fix a few bugs X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=1e4f6d56836e9f9867bb8b05efc2fffceab6b423;p=rust.git rustc_errors: fix a few bugs --- diff --git a/src/librustc_errors/lib.rs b/src/librustc_errors/lib.rs index 6a48f65714c..610e5647d6d 100644 --- a/src/librustc_errors/lib.rs +++ b/src/librustc_errors/lib.rs @@ -531,10 +531,12 @@ pub fn struct_fatal<'a>(&'a self, msg: &str) -> DiagnosticBuilder<'a> { DiagnosticBuilder::new(self, Level::Fatal, msg) } - pub fn cancel(&mut self, err: &mut DiagnosticBuilder) { + pub fn cancel(&self, err: &mut DiagnosticBuilder) { if err.level == Level::Error || err.level == Level::Fatal { - assert!(self.has_errors()); - self.err_count.set(self.err_count.get() + 1); + self.err_count.set( + self.err_count.get().checked_sub(1) + .expect("cancelled an error but err_count is 0") + ); } err.cancel(); }