Item, ItemKind, PathSegment, UseKind,
};
use rustc_lint::{LateContext, LateLintPass};
+use rustc_middle::ty;
use rustc_session::{declare_tool_lint, impl_lint_pass};
use rustc_span::symbol::kw;
use rustc_span::{sym, BytePos};
/// still around.
///
/// ### Example
- /// ```rust,ignore
- /// // Bad
+ /// ```rust
/// use std::cmp::Ordering::*;
+ ///
+ /// # fn foo(_: std::cmp::Ordering) {}
/// foo(Less);
+ /// ```
///
- /// // Good
+ /// Use instead:
+ /// ```rust
/// use std::cmp::Ordering;
+ ///
+ /// # fn foo(_: Ordering) {}
/// foo(Ordering::Less)
/// ```
#[clippy::version = "pre 1.29.0"]
///
/// ### Example
/// ```rust,ignore
- /// // Bad
/// use crate1::*;
///
/// foo();
/// ```
///
+ /// Use instead:
/// ```rust,ignore
- /// // Good
/// use crate1::foo;
///
/// foo();
if is_test_module_or_function(cx.tcx, item) {
self.test_modules_deep = self.test_modules_deep.saturating_add(1);
}
- if item.vis.node.is_pub() || item.vis.node.is_pub_restricted() {
+ let module = cx.tcx.parent_module_from_def_id(item.def_id);
+ if cx.tcx.visibility(item.def_id) != ty::Visibility::Restricted(module.to_def_id()) {
return;
}
if_chain! {