diff options
| author | Veera <sveera.2001@gmail.com> | 2024-09-08 15:59:05 -0400 | 
|---|---|---|
| committer | Veera <sveera.2001@gmail.com> | 2024-09-12 21:27:44 -0400 | 
| commit | 741005792e4209145fce6b354602a00812d52186 (patch) | |
| tree | 179a4a16df2e59a746ed8414fb1368b408f59aac /compiler/rustc_errors/src/json.rs | |
| parent | adaff5368b0c7b328a0320a218751d65ab1bba97 (diff) | |
| download | rust-741005792e4209145fce6b354602a00812d52186.tar.gz rust-741005792e4209145fce6b354602a00812d52186.zip | |
Implement a Method to Seal `DiagInner`'s Suggestions
Diffstat (limited to 'compiler/rustc_errors/src/json.rs')
| -rw-r--r-- | compiler/rustc_errors/src/json.rs | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/compiler/rustc_errors/src/json.rs b/compiler/rustc_errors/src/json.rs index 32e59f9ab03..6a2ecf13f7b 100644 --- a/compiler/rustc_errors/src/json.rs +++ b/compiler/rustc_errors/src/json.rs @@ -33,7 +33,8 @@ use crate::emitter::{ use crate::registry::Registry; use crate::translation::{to_fluent_args, Translate}; use crate::{ - CodeSuggestion, FluentBundle, LazyFallbackBundle, MultiSpan, SpanLabel, Subdiag, TerminalUrl, + CodeSuggestion, FluentBundle, LazyFallbackBundle, MultiSpan, SpanLabel, Subdiag, Suggestions, + TerminalUrl, }; #[cfg(test)] @@ -292,7 +293,7 @@ impl Diagnostic { /// Converts from `rustc_errors::DiagInner` to `Diagnostic`. fn from_errors_diagnostic(diag: crate::DiagInner, je: &JsonEmitter) -> Diagnostic { let args = to_fluent_args(diag.args.iter()); - let sugg = diag.suggestions.iter().flatten().map(|sugg| { + let sugg_to_diag = |sugg: &CodeSuggestion| { let translated_message = je.translate_message(&sugg.msg, &args).map_err(Report::new).unwrap(); Diagnostic { @@ -303,7 +304,12 @@ impl Diagnostic { children: vec![], rendered: None, } - }); + }; + let sugg = match &diag.suggestions { + Suggestions::Enabled(suggestions) => suggestions.iter().map(sugg_to_diag), + Suggestions::Sealed(suggestions) => suggestions.iter().map(sugg_to_diag), + Suggestions::Disabled => [].iter().map(sugg_to_diag), + }; // generate regular command line output and store it in the json | 
