Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_db/src/helpers/merge_imports.rs')
| -rw-r--r-- | crates/ide_db/src/helpers/merge_imports.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/crates/ide_db/src/helpers/merge_imports.rs b/crates/ide_db/src/helpers/merge_imports.rs index 8581a83436..dfaf578cb1 100644 --- a/crates/ide_db/src/helpers/merge_imports.rs +++ b/crates/ide_db/src/helpers/merge_imports.rs @@ -115,11 +115,13 @@ fn recursive_merge(lhs: &ast::UseTree, rhs: &ast::UseTree, merge: MergeBehavior) let tree_contains_self = |tree: &ast::UseTree| { tree.use_tree_list() .map(|tree_list| tree_list.use_trees().any(|it| tree_is_self(&it))) - .unwrap_or(false) + // Glob imports aren't part of the use-tree lists, + // so they need to be handled explicitly + .or_else(|| tree.star_token().map(|_| false)) }; match (tree_contains_self(lhs_t), tree_contains_self(&rhs_t)) { - (true, false) => continue, - (false, true) => { + (Some(true), None) => continue, + (None, Some(true)) => { ted::replace(lhs_t.syntax(), rhs_t.syntax()); *lhs_t = rhs_t; continue; |