Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_completion/src/context.rs')
| -rw-r--r-- | crates/ide_completion/src/context.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/crates/ide_completion/src/context.rs b/crates/ide_completion/src/context.rs index 59c16c08d6..a31a552dad 100644 --- a/crates/ide_completion/src/context.rs +++ b/crates/ide_completion/src/context.rs @@ -103,6 +103,8 @@ pub(crate) struct CompletionContext<'a> { pub(super) token: SyntaxToken, /// The crate of the current file. pub(super) krate: Option<hir::Crate>, + /// The crate of the `scope`. + pub(super) module: Option<hir::Module>, pub(super) expected_name: Option<NameOrNameRef>, pub(super) expected_type: Option<Type>, @@ -338,7 +340,7 @@ impl<'a> CompletionContext<'a> { attrs: &hir::Attrs, defining_crate: hir::Crate, ) -> bool { - let module = match self.scope.module() { + let module = match self.module { Some(it) => it, None => return false, }; @@ -394,6 +396,7 @@ impl<'a> CompletionContext<'a> { let token = sema.descend_into_macros_single(original_token.clone()); let scope = sema.scope_at_offset(&token.parent()?, offset); let krate = scope.krate(); + let module = scope.module(); let mut locals = vec![]; scope.process_all_names(&mut |name, scope| { if let ScopeDef::Local(local) = scope { @@ -410,6 +413,7 @@ impl<'a> CompletionContext<'a> { original_token, token, krate, + module, expected_name: None, expected_type: None, function_def: None, |