Simplify find_mod_path with use of node.ancestors

This commit is contained in:
unexge 2020-08-03 13:04:20 +03:00
parent 544322e66a
commit bdb97756ca

View file

@ -59,26 +59,7 @@ pub(crate) fn expand_glob_import(acc: &mut Assists, ctx: &AssistContext) -> Opti
} }
fn find_mod_path(star: &SyntaxToken) -> Option<ast::Path> { fn find_mod_path(star: &SyntaxToken) -> Option<ast::Path> {
let mut node = star.parent(); star.ancestors().find_map(|n| ast::UseTree::cast(n).and_then(|u| u.path()))
loop {
match_ast! {
match node {
ast::UseTree(use_tree) => {
if let Some(path) = use_tree.path() {
return Some(path);
}
},
ast::UseTreeList(_use_tree_list) => {},
_ => return None,
}
}
node = match node.parent() {
Some(node) => node,
None => return None,
}
}
} }
#[derive(PartialEq)] #[derive(PartialEq)]