about summary refs log tree commit diff
path: root/src/librustc_errors
diff options
context:
space:
mode:
authorTyler Mandry <tmandry@gmail.com>2019-11-01 11:20:09 -0700
committerGitHub <noreply@github.com>2019-11-01 11:20:09 -0700
commit7297cd8d92f375f1765f74c5f2e60584df15d6d2 (patch)
tree46db96f54c0589a7ea43e949785c99905a4223e6 /src/librustc_errors
parent9175247e72a3d7cba4bdb61bc490da9be0460d51 (diff)
parent5930551f6a471164d61d0b67cd412b32461924e3 (diff)
Rollup merge of #65470 - traxys:fix_65401, r=michaelwoerister
Don't hide ICEs from previous incremental compiles

I think this fixes #65401, the compiler does not fail to ICE after the first compilation, tested on the last snippet of [this comment](https://github.com/rust-lang/rust/issues/63154#issuecomment-541592381).
I am not very sure of the fix as I don't understand much of the structure of the compiler.
Diffstat (limited to 'src/librustc_errors')
-rw-r--r--src/librustc_errors/lib.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/librustc_errors/lib.rs b/src/librustc_errors/lib.rs
index 63df052a225..9743cf0d805 100644
--- a/src/librustc_errors/lib.rs
+++ b/src/librustc_errors/lib.rs
@@ -704,6 +704,9 @@ impl Handler {
     pub fn has_errors(&self) -> bool {
         self.inner.borrow().has_errors()
     }
+    pub fn has_errors_or_delayed_span_bugs(&self) -> bool {
+        self.inner.borrow().has_errors_or_delayed_span_bugs()
+    }
 
     pub fn print_error_count(&self, registry: &Registry) {
         self.inner.borrow_mut().print_error_count(registry)
@@ -862,6 +865,9 @@ impl HandlerInner {
     fn has_errors(&self) -> bool {
         self.err_count() > 0
     }
+    fn has_errors_or_delayed_span_bugs(&self) -> bool {
+        self.has_errors() || !self.delayed_span_bugs.is_empty()
+    }
 
     fn abort_if_errors_and_should_abort(&mut self) {
         self.emit_stashed_diagnostics();