From db8a9a92b3dafcd5a8d7207096c8cbb90db0b013 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Mon, 2 May 2016 11:44:25 -0400 Subject: avoid double panic --- src/libsyntax/errors/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/libsyntax/errors') diff --git a/src/libsyntax/errors/mod.rs b/src/libsyntax/errors/mod.rs index 4ade537c8ce..f0c665bcb3c 100644 --- a/src/libsyntax/errors/mod.rs +++ b/src/libsyntax/errors/mod.rs @@ -20,6 +20,7 @@ use errors::emitter::{Emitter, EmitterWriter}; 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 @@ impl<'a> fmt::Debug for DiagnosticBuilder<'a> { /// 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, -- cgit 1.4.1-3-g733a5