suggest adding a #[cfg(test)]
to test modules
remove a empty line import `module_to_string` use `contains("test")` show a suggestion in case module starts_with/ends_with "test" replace `parent` with `containing`
This commit is contained in:
parent
3ee016ae4d
commit
6f8ad6d83a
6 changed files with 264 additions and 4 deletions
|
@ -108,7 +108,7 @@ impl<'a> Resolver<'a> {
|
|||
/// Reachable macros with block module parents exist due to `#[macro_export] macro_rules!`,
|
||||
/// but they cannot use def-site hygiene, so the assumption holds
|
||||
/// (<https://github.com/rust-lang/rust/pull/77984#issuecomment-712445508>).
|
||||
fn get_nearest_non_block_module(&mut self, mut def_id: DefId) -> Module<'a> {
|
||||
crate fn get_nearest_non_block_module(&mut self, mut def_id: DefId) -> Module<'a> {
|
||||
loop {
|
||||
match self.get_module(def_id) {
|
||||
Some(module) => return module,
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
// in the last step
|
||||
|
||||
use crate::imports::ImportKind;
|
||||
use crate::module_to_string;
|
||||
use crate::Resolver;
|
||||
|
||||
use rustc_ast as ast;
|
||||
|
@ -314,12 +315,29 @@ impl Resolver<'_> {
|
|||
"remove the unused import"
|
||||
};
|
||||
|
||||
let parent_module = visitor.r.get_nearest_non_block_module(
|
||||
visitor.r.local_def_id(unused.use_tree_id).to_def_id(),
|
||||
);
|
||||
let test_module_span = match module_to_string(parent_module) {
|
||||
Some(module)
|
||||
if module == "test"
|
||||
|| module == "tests"
|
||||
|| module.starts_with("test_")
|
||||
|| module.starts_with("tests_")
|
||||
|| module.ends_with("_test")
|
||||
|| module.ends_with("_tests") =>
|
||||
{
|
||||
Some(parent_module.span)
|
||||
}
|
||||
_ => None,
|
||||
};
|
||||
|
||||
visitor.r.lint_buffer.buffer_lint_with_diagnostic(
|
||||
UNUSED_IMPORTS,
|
||||
unused.use_tree_id,
|
||||
ms,
|
||||
&msg,
|
||||
BuiltinLintDiagnostics::UnusedImports(fix_msg.into(), fixes),
|
||||
BuiltinLintDiagnostics::UnusedImports(fix_msg.into(), fixes, test_module_span),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue