about summary refs log tree commit diff
path: root/compiler/rustc_resolve/src
diff options
context:
space:
mode:
authorTakayuki Maeda <takoyaki0316@gmail.com>2022-07-04 20:46:59 +0900
committerTakayuki Maeda <takoyaki0316@gmail.com>2022-07-04 20:46:59 +0900
commiteb80407d79a25cb9bdd98eca47764e57114d1d86 (patch)
treefc196ac19610e815dd843d1f100e831e073a60fe /compiler/rustc_resolve/src
parent2557603f320593be9d1c29a453c648e61e74d343 (diff)
downloadrust-eb80407d79a25cb9bdd98eca47764e57114d1d86.tar.gz
rust-eb80407d79a25cb9bdd98eca47764e57114d1d86.zip
suggest `#[derive(Default)]` to enums with `#[default]`
Diffstat (limited to 'compiler/rustc_resolve/src')
-rw-r--r--compiler/rustc_resolve/src/diagnostics.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/compiler/rustc_resolve/src/diagnostics.rs b/compiler/rustc_resolve/src/diagnostics.rs
index e8b7cee5734..4fbbd9deaeb 100644
--- a/compiler/rustc_resolve/src/diagnostics.rs
+++ b/compiler/rustc_resolve/src/diagnostics.rs
@@ -1495,6 +1495,15 @@ impl<'a> Resolver<'a> {
             err.help("have you added the `#[macro_use]` on the module/import?");
             return;
         }
+        if ident.name == kw::Default
+            && 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",
+            );
+        }
         for ns in [Namespace::MacroNS, Namespace::TypeNS, Namespace::ValueNS] {
             if let Ok(binding) = self.early_resolve_ident_in_lexical_scope(
                 ident,