diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-03-02 00:07:23 +0100 |
|---|---|---|
| committer | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-03-02 00:07:23 +0100 |
| commit | df20036848b7e3607b988cdee18c861964423f65 (patch) | |
| tree | 1dd072026392d498bd30d9b8178187b22de67776 /src/librustc_errors | |
| parent | d3c79346a3e7ddbb5fb417810f226ac5a9209007 (diff) | |
| download | rust-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.rs | 18 |
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. |
