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.rs | 26 |
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); |