diff options
| author | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2017-03-24 17:31:41 +0100 |
|---|---|---|
| committer | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2017-04-25 11:04:34 +0200 |
| commit | 0e920fde4f686e2924ea3378ac55d26217b53eaf (patch) | |
| tree | e4c2e9500fae8182d65de89f7c79c754c013e8e1 /src/libsyntax | |
| parent | 0777c757a6832dc5f8f218377f99960f5477311f (diff) | |
| download | rust-0e920fde4f686e2924ea3378ac55d26217b53eaf.tar.gz rust-0e920fde4f686e2924ea3378ac55d26217b53eaf.zip | |
Minimize single span suggestions into a note
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/json.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/libsyntax/json.rs b/src/libsyntax/json.rs index dec1b7d1d87..7d8064a6a45 100644 --- a/src/libsyntax/json.rs +++ b/src/libsyntax/json.rs @@ -22,8 +22,9 @@ use codemap::CodeMap; use syntax_pos::{self, MacroBacktrace, Span, SpanLabel, MultiSpan}; use errors::registry::Registry; -use errors::{DiagnosticBuilder, SubDiagnostic, RenderSpan, CodeSuggestion, CodeMapper}; +use errors::{Level, DiagnosticBuilder, SubDiagnostic, RenderSpan, CodeSuggestion, CodeMapper}; use errors::emitter::Emitter; +use errors::snippet::Style; use std::rc::Rc; use std::io::{self, Write}; @@ -152,12 +153,21 @@ impl Diagnostic { fn from_diagnostic_builder(db: &DiagnosticBuilder, je: &JsonEmitter) -> Diagnostic { + let sugg = db.suggestion.as_ref().map(|sugg| { + SubDiagnostic { + level: Level::Help, + message: vec![(sugg.msg.clone(), Style::NoStyle)], + span: MultiSpan::new(), + render_span: Some(RenderSpan::Suggestion(sugg.clone())), + } + }); + let sugg = sugg.as_ref(); Diagnostic { message: db.message(), code: DiagnosticCode::map_opt_string(db.code.clone(), je), level: db.level.to_str(), spans: DiagnosticSpan::from_multispan(&db.span, je), - children: db.children.iter().map(|c| { + children: db.children.iter().chain(sugg).map(|c| { Diagnostic::from_sub_diagnostic(c, je) }).collect(), rendered: None, |
