Dedup std_instead_of_core by using first segment span for uniqueness
This commit is contained in:
parent
5e0afee334
commit
74cba639e9
@ -109,7 +109,7 @@ impl<'tcx> LateLintPass<'tcx> for StdReexports {
|
||||
sym::core => (STD_INSTEAD_OF_CORE, "std", "core"),
|
||||
sym::alloc => (STD_INSTEAD_OF_ALLOC, "std", "alloc"),
|
||||
_ => {
|
||||
self.prev_span = path.span;
|
||||
self.prev_span = first_segment.ident.span;
|
||||
return;
|
||||
},
|
||||
},
|
||||
@ -117,13 +117,13 @@ impl<'tcx> LateLintPass<'tcx> for StdReexports {
|
||||
if cx.tcx.crate_name(def_id.krate) == sym::core {
|
||||
(ALLOC_INSTEAD_OF_CORE, "alloc", "core")
|
||||
} else {
|
||||
self.prev_span = path.span;
|
||||
self.prev_span = first_segment.ident.span;
|
||||
return;
|
||||
}
|
||||
},
|
||||
_ => return,
|
||||
};
|
||||
if path.span != self.prev_span {
|
||||
if first_segment.ident.span != self.prev_span {
|
||||
span_lint_and_sugg(
|
||||
cx,
|
||||
lint,
|
||||
@ -133,7 +133,7 @@ impl<'tcx> LateLintPass<'tcx> for StdReexports {
|
||||
replace_with.to_string(),
|
||||
Applicability::MachineApplicable,
|
||||
);
|
||||
self.prev_span = path.span;
|
||||
self.prev_span = first_segment.ident.span;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,4 @@
|
||||
//@aux-build:proc_macro_derive.rs
|
||||
//@compile-flags: -Zdeduplicate-diagnostics=yes
|
||||
|
||||
#![warn(clippy::std_instead_of_core)]
|
||||
#![allow(unused_imports)]
|
||||
@ -24,6 +23,14 @@ fn std_instead_of_core() {
|
||||
use core::fmt::{Debug, Result};
|
||||
//~^ ERROR: used import from `std` instead of `core`
|
||||
|
||||
// Multiple imports multiline
|
||||
#[rustfmt::skip]
|
||||
use core::{
|
||||
//~^ ERROR: used import from `std` instead of `core`
|
||||
fmt::Write,
|
||||
ptr::read_unaligned,
|
||||
};
|
||||
|
||||
// Function calls
|
||||
let ptr = core::ptr::null::<u32>();
|
||||
//~^ ERROR: used import from `std` instead of `core`
|
||||
|
@ -1,5 +1,4 @@
|
||||
//@aux-build:proc_macro_derive.rs
|
||||
//@compile-flags: -Zdeduplicate-diagnostics=yes
|
||||
|
||||
#![warn(clippy::std_instead_of_core)]
|
||||
#![allow(unused_imports)]
|
||||
@ -24,6 +23,14 @@ fn std_instead_of_core() {
|
||||
use std::fmt::{Debug, Result};
|
||||
//~^ ERROR: used import from `std` instead of `core`
|
||||
|
||||
// Multiple imports multiline
|
||||
#[rustfmt::skip]
|
||||
use std::{
|
||||
//~^ ERROR: used import from `std` instead of `core`
|
||||
fmt::Write,
|
||||
ptr::read_unaligned,
|
||||
};
|
||||
|
||||
// Function calls
|
||||
let ptr = std::ptr::null::<u32>();
|
||||
//~^ ERROR: used import from `std` instead of `core`
|
||||
|
@ -1,5 +1,5 @@
|
||||
error: used import from `std` instead of `core`
|
||||
--> tests/ui/std_instead_of_core.rs:15:9
|
||||
--> tests/ui/std_instead_of_core.rs:14:9
|
||||
|
|
||||
LL | use std::hash::Hasher;
|
||||
| ^^^ help: consider importing the item from `core`: `core`
|
||||
@ -8,49 +8,55 @@ LL | use std::hash::Hasher;
|
||||
= help: to override `-D warnings` add `#[allow(clippy::std_instead_of_core)]`
|
||||
|
||||
error: used import from `std` instead of `core`
|
||||
--> tests/ui/std_instead_of_core.rs:18:11
|
||||
--> tests/ui/std_instead_of_core.rs:17:11
|
||||
|
|
||||
LL | use ::std::hash::Hash;
|
||||
| ^^^ help: consider importing the item from `core`: `core`
|
||||
|
||||
error: used import from `std` instead of `core`
|
||||
--> tests/ui/std_instead_of_core.rs:24:9
|
||||
--> tests/ui/std_instead_of_core.rs:23:9
|
||||
|
|
||||
LL | use std::fmt::{Debug, Result};
|
||||
| ^^^ help: consider importing the item from `core`: `core`
|
||||
|
||||
error: used import from `std` instead of `core`
|
||||
--> tests/ui/std_instead_of_core.rs:28:15
|
||||
--> tests/ui/std_instead_of_core.rs:28:9
|
||||
|
|
||||
LL | use std::{
|
||||
| ^^^ help: consider importing the item from `core`: `core`
|
||||
|
||||
error: used import from `std` instead of `core`
|
||||
--> tests/ui/std_instead_of_core.rs:35:15
|
||||
|
|
||||
LL | let ptr = std::ptr::null::<u32>();
|
||||
| ^^^ help: consider importing the item from `core`: `core`
|
||||
|
||||
error: used import from `std` instead of `core`
|
||||
--> tests/ui/std_instead_of_core.rs:30:21
|
||||
--> tests/ui/std_instead_of_core.rs:37:21
|
||||
|
|
||||
LL | let ptr_mut = ::std::ptr::null_mut::<usize>();
|
||||
| ^^^ help: consider importing the item from `core`: `core`
|
||||
|
||||
error: used import from `std` instead of `core`
|
||||
--> tests/ui/std_instead_of_core.rs:34:16
|
||||
--> tests/ui/std_instead_of_core.rs:41:16
|
||||
|
|
||||
LL | let cell = std::cell::Cell::new(8u32);
|
||||
| ^^^ help: consider importing the item from `core`: `core`
|
||||
|
||||
error: used import from `std` instead of `core`
|
||||
--> tests/ui/std_instead_of_core.rs:36:27
|
||||
--> tests/ui/std_instead_of_core.rs:43:27
|
||||
|
|
||||
LL | let cell_absolute = ::std::cell::Cell::new(8u32);
|
||||
| ^^^ help: consider importing the item from `core`: `core`
|
||||
|
||||
error: used import from `std` instead of `core`
|
||||
--> tests/ui/std_instead_of_core.rs:45:9
|
||||
--> tests/ui/std_instead_of_core.rs:52:9
|
||||
|
|
||||
LL | use std::iter::Iterator;
|
||||
| ^^^ help: consider importing the item from `core`: `core`
|
||||
|
||||
error: used import from `std` instead of `alloc`
|
||||
--> tests/ui/std_instead_of_core.rs:52:9
|
||||
--> tests/ui/std_instead_of_core.rs:59:9
|
||||
|
|
||||
LL | use std::vec;
|
||||
| ^^^ help: consider importing the item from `alloc`: `alloc`
|
||||
@ -59,13 +65,13 @@ LL | use std::vec;
|
||||
= help: to override `-D warnings` add `#[allow(clippy::std_instead_of_alloc)]`
|
||||
|
||||
error: used import from `std` instead of `alloc`
|
||||
--> tests/ui/std_instead_of_core.rs:54:9
|
||||
--> tests/ui/std_instead_of_core.rs:61:9
|
||||
|
|
||||
LL | use std::vec::Vec;
|
||||
| ^^^ help: consider importing the item from `alloc`: `alloc`
|
||||
|
||||
error: used import from `alloc` instead of `core`
|
||||
--> tests/ui/std_instead_of_core.rs:60:9
|
||||
--> tests/ui/std_instead_of_core.rs:67:9
|
||||
|
|
||||
LL | use alloc::slice::from_ref;
|
||||
| ^^^^^ help: consider importing the item from `core`: `core`
|
||||
@ -73,5 +79,5 @@ LL | use alloc::slice::from_ref;
|
||||
= note: `-D clippy::alloc-instead-of-core` implied by `-D warnings`
|
||||
= help: to override `-D warnings` add `#[allow(clippy::alloc_instead_of_core)]`
|
||||
|
||||
error: aborting due to 11 previous errors
|
||||
error: aborting due to 12 previous errors
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user