Emit unused externs
This commit is contained in:
parent
76c500ec6c
commit
aef1e35edc
4 changed files with 34 additions and 0 deletions
|
@ -195,6 +195,9 @@ pub trait Emitter {
|
|||
|
||||
fn emit_future_breakage_report(&mut self, _diags: Vec<(FutureBreakage, Diagnostic)>) {}
|
||||
|
||||
/// Emit list of unused externs
|
||||
fn emit_unused_externs(&mut self, _unused_externs: &[&str]) {}
|
||||
|
||||
/// Checks if should show explanations about "rustc --explain"
|
||||
fn should_show_explain(&self) -> bool {
|
||||
true
|
||||
|
|
|
@ -159,6 +159,19 @@ impl Emitter for JsonEmitter {
|
|||
}
|
||||
}
|
||||
|
||||
fn emit_unused_externs(&mut self, unused_externs: &[&str]) {
|
||||
let data = UnusedExterns { unused_extern_names: unused_externs };
|
||||
let result = if self.pretty {
|
||||
writeln!(&mut self.dst, "{}", as_pretty_json(&data))
|
||||
} else {
|
||||
writeln!(&mut self.dst, "{}", as_json(&data))
|
||||
}
|
||||
.and_then(|_| self.dst.flush());
|
||||
if let Err(e) = result {
|
||||
panic!("failed to print unused externs: {:?}", e);
|
||||
}
|
||||
}
|
||||
|
||||
fn source_map(&self) -> Option<&Lrc<SourceMap>> {
|
||||
Some(&self.sm)
|
||||
}
|
||||
|
@ -322,6 +335,12 @@ struct FutureIncompatReport {
|
|||
future_incompat_report: Vec<FutureBreakageItem>,
|
||||
}
|
||||
|
||||
#[derive(Encodable)]
|
||||
struct UnusedExterns<'a, 'b> {
|
||||
/// List of unused externs by their names.
|
||||
unused_extern_names: &'a [&'b str],
|
||||
}
|
||||
|
||||
impl Diagnostic {
|
||||
fn from_errors_diagnostic(diag: &crate::Diagnostic, je: &JsonEmitter) -> Diagnostic {
|
||||
let sugg = diag.suggestions.iter().map(|sugg| Diagnostic {
|
||||
|
|
|
@ -767,6 +767,10 @@ impl Handler {
|
|||
self.inner.borrow_mut().emitter.emit_future_breakage_report(diags)
|
||||
}
|
||||
|
||||
pub fn emit_unused_externs(&self, unused_externs: &[&str]) {
|
||||
self.inner.borrow_mut().emit_unused_externs(unused_externs)
|
||||
}
|
||||
|
||||
pub fn delay_as_bug(&self, diagnostic: Diagnostic) {
|
||||
self.inner.borrow_mut().delay_as_bug(diagnostic)
|
||||
}
|
||||
|
@ -841,6 +845,10 @@ impl HandlerInner {
|
|||
self.emitter.emit_artifact_notification(path, artifact_type);
|
||||
}
|
||||
|
||||
fn emit_unused_externs(&mut self, unused_externs: &[&str]) {
|
||||
self.emitter.emit_unused_externs(unused_externs);
|
||||
}
|
||||
|
||||
fn treat_err_as_bug(&self) -> bool {
|
||||
self.flags.treat_err_as_bug.map_or(false, |c| self.err_count() >= c.get())
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue