avoid double panic

This commit is contained in:
Niko Matsakis
2016-05-02 11:44:25 -04:00
parent 9d151a71c0
commit db8a9a92b3
+2 -1
View File
@@ -20,6 +20,7 @@
use std::cell::{RefCell, Cell};
use std::{error, fmt};
use std::rc::Rc;
use std::thread::panicking;
use term;
pub mod emitter;
@@ -352,7 +353,7 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
/// we emit a bug.
impl<'a> Drop for DiagnosticBuilder<'a> {
fn drop(&mut self) {
if !self.cancelled() {
if !panicking() && !self.cancelled() {
self.emitter.borrow_mut().emit(&MultiSpan::new(),
"Error constructed but not emitted",
None,