Remove warnings/errors from compiler when using typeck_body in rustdoc span map builder
This commit is contained in:
parent
0799528db7
commit
5cf300d695
3 changed files with 25 additions and 6 deletions
|
@ -342,6 +342,9 @@ struct HandlerInner {
|
|||
deduplicated_warn_count: usize,
|
||||
|
||||
future_breakage_diagnostics: Vec<Diagnostic>,
|
||||
|
||||
/// If set to `true`, no warning or error will be emitted.
|
||||
quiet: bool,
|
||||
}
|
||||
|
||||
/// A key denoting where from a diagnostic was stashed.
|
||||
|
@ -456,10 +459,19 @@ impl Handler {
|
|||
emitted_diagnostics: Default::default(),
|
||||
stashed_diagnostics: Default::default(),
|
||||
future_breakage_diagnostics: Vec::new(),
|
||||
quiet: false,
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn with_disabled_diagnostic<T, F: FnOnce() -> T>(&self, f: F) -> T {
|
||||
let prev = self.inner.borrow_mut().quiet;
|
||||
self.inner.borrow_mut().quiet = true;
|
||||
let ret = f();
|
||||
self.inner.borrow_mut().quiet = prev;
|
||||
ret
|
||||
}
|
||||
|
||||
// This is here to not allow mutation of flags;
|
||||
// as of this writing it's only used in tests in librustc_middle.
|
||||
pub fn can_emit_warnings(&self) -> bool {
|
||||
|
@ -818,7 +830,7 @@ impl HandlerInner {
|
|||
}
|
||||
|
||||
fn emit_diagnostic(&mut self, diagnostic: &Diagnostic) {
|
||||
if diagnostic.cancelled() {
|
||||
if diagnostic.cancelled() || self.quiet {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1035,6 +1047,9 @@ impl HandlerInner {
|
|||
}
|
||||
|
||||
fn delay_as_bug(&mut self, diagnostic: Diagnostic) {
|
||||
if self.quiet {
|
||||
return;
|
||||
}
|
||||
if self.flags.report_delayed_bugs {
|
||||
self.emit_diagnostic(&diagnostic);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue