diff options
| author | Deadbeef <ent3rm4n@gmail.com> | 2022-07-07 04:57:01 +0000 |
|---|---|---|
| committer | Deadbeef <ent3rm4n@gmail.com> | 2022-07-07 04:57:01 +0000 |
| commit | 2f0ccdfbba1a721844a7ba83d6e87e12728d19c3 (patch) | |
| tree | d2f5c3dc99db46aebcc130e39c1b0e624fe5a40a /compiler/rustc_resolve | |
| parent | 8824d131619e58a38bde8bcf56401629b91a204a (diff) | |
| download | rust-2f0ccdfbba1a721844a7ba83d6e87e12728d19c3.tar.gz rust-2f0ccdfbba1a721844a7ba83d6e87e12728d19c3.zip | |
suggest adding a derive for #[default] applied to variants
Diffstat (limited to 'compiler/rustc_resolve')
| -rw-r--r-- | compiler/rustc_resolve/src/diagnostics.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/compiler/rustc_resolve/src/diagnostics.rs b/compiler/rustc_resolve/src/diagnostics.rs index 0f58206eee9..ec9ae63ca36 100644 --- a/compiler/rustc_resolve/src/diagnostics.rs +++ b/compiler/rustc_resolve/src/diagnostics.rs @@ -1499,10 +1499,16 @@ impl<'a> Resolver<'a> { && let ModuleKind::Def(DefKind::Enum, def_id, _) = parent_scope.module.kind && let Some(span) = self.opt_span(def_id) { - err.span_help( - self.session.source_map().guess_head_span(span), - "consider adding `#[derive(Default)]` to this enum", - ); + let source_map = self.session.source_map(); + let head_span = source_map.guess_head_span(span); + if let Ok(head) = source_map.span_to_snippet(head_span) { + err.span_suggestion(head_span, "consider adding a derive", format!("#[derive(Default)]\n{head}"), Applicability::MaybeIncorrect); + } else { + err.span_help( + head_span, + "consider adding `#[derive(Default)]` to this enum", + ); + } } for ns in [Namespace::MacroNS, Namespace::TypeNS, Namespace::ValueNS] { if let Ok(binding) = self.early_resolve_ident_in_lexical_scope( |
