about summary refs log tree commit diff
path: root/compiler/rustc_lint/src/builtin.rs
diff options
context:
space:
mode:
authorRejyr <jerrylwang123@gmail.com>2022-11-10 19:32:30 -0500
committerRejyr <jerrylwang123@gmail.com>2023-01-09 17:07:25 -0500
commit78fce795d8084e288278270438a49df6172dd36c (patch)
tree9907484be2d716443081759c39572c44c1bde096 /compiler/rustc_lint/src/builtin.rs
parentca7df9a2a9c4b1f751e91040fe659f682c976919 (diff)
downloadrust-78fce795d8084e288278270438a49df6172dd36c.tar.gz
rust-78fce795d8084e288278270438a49df6172dd36c.zip
refactor: refactor to derive for some lints.
Diffstat (limited to 'compiler/rustc_lint/src/builtin.rs')
-rw-r--r--compiler/rustc_lint/src/builtin.rs16
1 files changed, 10 insertions, 6 deletions
diff --git a/compiler/rustc_lint/src/builtin.rs b/compiler/rustc_lint/src/builtin.rs
index 8a34afb1ff5..1dae563577a 100644
--- a/compiler/rustc_lint/src/builtin.rs
+++ b/compiler/rustc_lint/src/builtin.rs
@@ -26,7 +26,8 @@ use crate::{
         BuiltinAnonymousParams, BuiltinBoxPointers, BuiltinConstNoMangle,
         BuiltinDeprecatedAttrUsed, BuiltinDerefNullptr, BuiltinEllipsisInclusiveRangePatternsLint,
         BuiltinExplicitOutlives, BuiltinExplicitOutlivesSuggestion, BuiltinIncompleteFeatures,
-        BuiltinKeywordIdents, BuiltinMissingCopyImpl, BuiltinMissingDebugImpl, BuiltinMissingDoc,
+        BuiltinIncompleteFeaturesHelp, BuiltinIncompleteFeaturesNote, BuiltinKeywordIdents,
+        BuiltinMissingCopyImpl, BuiltinMissingDebugImpl, BuiltinMissingDoc,
         BuiltinMutablesTransmutes, BuiltinNoMangleGeneric, BuiltinNonShorthandFieldPatterns,
         BuiltinSpecialModuleNameUsed, BuiltinTrivialBounds, BuiltinUnexpectedCliConfigName,
         BuiltinUnexpectedCliConfigValue, BuiltinUnnameableTestItems, BuiltinUnreachablePub,
@@ -2379,14 +2380,17 @@ impl EarlyLintPass for IncompleteFeatures {
             .chain(features.declared_lib_features.iter().map(|(name, span)| (name, span)))
             .filter(|(&name, _)| features.incomplete(name))
             .for_each(|(&name, &span)| {
+                let note = rustc_feature::find_feature_issue(name, GateIssue::Language)
+                    .map(|n| BuiltinIncompleteFeaturesNote { n });
+                let help = if HAS_MIN_FEATURES.contains(&name) {
+                    Some(BuiltinIncompleteFeaturesHelp)
+                } else {
+                    None
+                };
                 cx.emit_spanned_lint(
                     INCOMPLETE_FEATURES,
                     span,
-                    BuiltinIncompleteFeatures {
-                        name,
-                        note: rustc_feature::find_feature_issue(name, GateIssue::Language),
-                        help: HAS_MIN_FEATURES.contains(&name).then_some(()),
-                    },
+                    BuiltinIncompleteFeatures { name, note, help },
                 );
             });
     }