summary refs log tree commit diff
path: root/src/librustc_errors
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2020-03-02 00:07:23 +0100
committerMazdak Farrokhzad <twingoow@gmail.com>2020-03-02 00:07:23 +0100
commitdf20036848b7e3607b988cdee18c861964423f65 (patch)
tree1dd072026392d498bd30d9b8178187b22de67776 /src/librustc_errors
parentd3c79346a3e7ddbb5fb417810f226ac5a9209007 (diff)
downloadrust-df20036848b7e3607b988cdee18c861964423f65.tar.gz
rust-df20036848b7e3607b988cdee18c861964423f65.zip
stash API: remove panic to fix ICE.
Diffstat (limited to 'src/librustc_errors')
-rw-r--r--src/librustc_errors/lib.rs18
1 files changed, 4 insertions, 14 deletions
diff --git a/src/librustc_errors/lib.rs b/src/librustc_errors/lib.rs
index 1a0fe343521..161b2c717e7 100644
--- a/src/librustc_errors/lib.rs
+++ b/src/librustc_errors/lib.rs
@@ -444,22 +444,12 @@ impl Handler {
     }
 
     /// Stash a given diagnostic with the given `Span` and `StashKey` as the key for later stealing.
-    /// If the diagnostic with this `(span, key)` already exists, this will result in an ICE.
     pub fn stash_diagnostic(&self, span: Span, key: StashKey, diag: Diagnostic) {
         let mut inner = self.inner.borrow_mut();
-        if let Some(mut old_diag) = inner.stashed_diagnostics.insert((span, key), diag) {
-            // We are removing a previously stashed diagnostic which should not happen.
-            old_diag.level = Bug;
-            old_diag.note(&format!(
-                "{}:{}: already existing stashed diagnostic with (span = {:?}, key = {:?})",
-                file!(),
-                line!(),
-                span,
-                key
-            ));
-            inner.emit_diag_at_span(old_diag, span);
-            panic!(ExplicitBug);
-        }
+        // FIXME(Centril, #69537): Consider reintroducing panic on overwriting a stashed diagnostic
+        // if/when we have a more robust macro-friendly replacement for `(span, key)` as a key.
+        // See the PR for a discussion.
+        inner.stashed_diagnostics.insert((span, key), diag);
     }
 
     /// Steal a previously stashed diagnostic with the given `Span` and `StashKey` as the key.