Omit unnecessary help to add #[cfg(test)] when already annotated

This commit is contained in:
Ken Matsui 2022-05-03 06:46:25 +09:00
parent 4dd8b420c0
commit 03007dee79
No known key found for this signature in database
GPG key ID: 103360B3298EE433
3 changed files with 227 additions and 14 deletions

View file

@ -315,21 +315,28 @@ 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)
// If we are in the `--test` mode, suppress a help that adds the `#[cfg(test)]`
// attribute; however, if not, suggest adding the attribute. There is no way to
// retrieve attributes here because we do not have a `TyCtxt` yet.
let test_module_span = if visitor.r.session.opts.test {
None
} else {
let parent_module = visitor.r.get_nearest_non_block_module(
visitor.r.local_def_id(unused.use_tree_id).to_def_id(),
);
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,
}
_ => None,
};
visitor.r.lint_buffer.buffer_lint_with_diagnostic(