Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/completions/vis.rs')
-rw-r--r--crates/ide-completion/src/completions/vis.rs26
1 files changed, 12 insertions, 14 deletions
diff --git a/crates/ide-completion/src/completions/vis.rs b/crates/ide-completion/src/completions/vis.rs
index 319976737e..7362e19138 100644
--- a/crates/ide-completion/src/completions/vis.rs
+++ b/crates/ide-completion/src/completions/vis.rs
@@ -16,20 +16,18 @@ pub(crate) fn complete_vis_path(acc: &mut Completions, ctx: &CompletionContext)
};
match qualified {
- Qualified::With { resolution, is_super_chain, .. } => {
+ Qualified::With {
+ resolution: Some(hir::PathResolution::Def(hir::ModuleDef::Module(module))),
+ is_super_chain,
+ ..
+ } => {
// Try completing next child module of the path that is still a parent of the current module
- if let Some(hir::PathResolution::Def(hir::ModuleDef::Module(module))) = resolution {
- let next_towards_current = ctx
- .module
- .path_to_root(ctx.db)
- .into_iter()
- .take_while(|it| it != module)
- .last();
- if let Some(next) = next_towards_current {
- if let Some(name) = next.name(ctx.db) {
- cov_mark::hit!(visibility_qualified);
- acc.add_resolution(ctx, name, ScopeDef::ModuleDef(next.into()));
- }
+ let next_towards_current =
+ ctx.module.path_to_root(ctx.db).into_iter().take_while(|it| it != module).last();
+ if let Some(next) = next_towards_current {
+ if let Some(name) = next.name(ctx.db) {
+ cov_mark::hit!(visibility_qualified);
+ acc.add_resolution(ctx, name, ScopeDef::ModuleDef(next.into()));
}
}
@@ -37,7 +35,7 @@ pub(crate) fn complete_vis_path(acc: &mut Completions, ctx: &CompletionContext)
acc.add_keyword(ctx, "super::");
}
}
- Qualified::Absolute | Qualified::Infer => {}
+ Qualified::Absolute | Qualified::Infer | Qualified::With { .. } => {}
Qualified::No => {
if !has_in_token {
cov_mark::hit!(kw_completion_in);