]> git.lizzy.rs Git - rust.git/blobdiff - clippy_lints/src/single_component_path_imports.rs
ast/hir: Rename field-related structures
[rust.git] / clippy_lints / src / single_component_path_imports.rs
index eb3261bebe31573be548e0838109e2aa1dc8dd13..1fc4ff5c2e61fcad025432b360ce6c422e8a933c 100644 (file)
@@ -1,10 +1,10 @@
-use crate::utils::span_lint_and_sugg;
+use crate::utils::{in_macro, span_lint_and_sugg};
 use if_chain::if_chain;
+use rustc_ast::{Item, ItemKind, UseTreeKind};
 use rustc_errors::Applicability;
 use rustc_lint::{EarlyContext, EarlyLintPass};
 use rustc_session::{declare_lint_pass, declare_tool_lint};
 use rustc_span::edition::Edition;
-use syntax::ast::{Item, ItemKind, UseTreeKind};
 
 declare_clippy_lint! {
     /// **What it does:** Checking for imports with single component use path.
@@ -16,7 +16,7 @@
     ///
     /// **Example:**
     ///
-    /// ```rust, ignore
+    /// ```rust,ignore
     /// use regex;
     ///
     /// fn main() {
@@ -24,7 +24,7 @@
     /// }
     /// ```
     /// Better as
-    /// ```rust, ignore
+    /// ```rust,ignore
     /// fn main() {
     ///     regex::Regex::new(r"^\d{4}-\d{2}-\d{2}$").unwrap();
     /// }
@@ -39,8 +39,9 @@
 impl EarlyLintPass for SingleComponentPathImports {
     fn check_item(&mut self, cx: &EarlyContext<'_>, item: &Item) {
         if_chain! {
-            if cx.sess.opts.edition == Edition::Edition2018;
-            if !item.vis.node.is_pub();
+            if !in_macro(item.span);
+            if cx.sess.opts.edition >= Edition::Edition2018;
+            if !item.vis.kind.is_pub();
             if let ItemKind::Use(use_tree) = &item.kind;
             if let segments = &use_tree.prefix.segments;
             if segments.len() == 1;