Smarter bracketed use diagnostic

This commit is contained in:
AdnoC 2020-12-29 22:46:34 -07:00
parent 848e817f60
commit 6eeec5d75f
2 changed files with 14 additions and 0 deletions

View file

@ -199,6 +199,12 @@ fn check_unnecessary_braces_in_use_statement(
) -> Option<()> {
let use_tree_list = ast::UseTreeList::cast(node.clone())?;
if let Some((single_use_tree,)) = use_tree_list.use_trees().collect_tuple() {
// If there is a comment inside the bracketed `use`,
// assume it is a commented out module path and don't show diagnostic.
if use_tree_list.has_inner_comment() {
return Some(());
}
let use_range = use_tree_list.syntax().text_range();
let edit =
text_edit_for_remove_unnecessary_braces_with_self_in_use_statement(&single_use_tree)

View file

@ -193,6 +193,14 @@ impl ast::UseTreeList {
.and_then(ast::UseTree::cast)
.expect("UseTreeLists are always nested in UseTrees")
}
pub fn has_inner_comment(&self) -> bool {
self.syntax()
.children_with_tokens()
.filter_map(|it| it.into_token())
.find_map(ast::Comment::cast)
.is_some()
}
}
impl ast::Impl {