diff options
Diffstat (limited to 'crates/ra_ide/src/completion/completion_context.rs')
-rw-r--r-- | crates/ra_ide/src/completion/completion_context.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/crates/ra_ide/src/completion/completion_context.rs b/crates/ra_ide/src/completion/completion_context.rs index 02811a91e..3d93f7067 100644 --- a/crates/ra_ide/src/completion/completion_context.rs +++ b/crates/ra_ide/src/completion/completion_context.rs | |||
@@ -24,6 +24,7 @@ use test_utils::mark; | |||
24 | #[derive(Debug)] | 24 | #[derive(Debug)] |
25 | pub(crate) struct CompletionContext<'a> { | 25 | pub(crate) struct CompletionContext<'a> { |
26 | pub(super) sema: Semantics<'a, RootDatabase>, | 26 | pub(super) sema: Semantics<'a, RootDatabase>, |
27 | pub(super) scope: SemanticsScope<'a>, | ||
27 | pub(super) db: &'a RootDatabase, | 28 | pub(super) db: &'a RootDatabase, |
28 | pub(super) config: &'a CompletionConfig, | 29 | pub(super) config: &'a CompletionConfig, |
29 | pub(super) offset: TextSize, | 30 | pub(super) offset: TextSize, |
@@ -106,8 +107,10 @@ impl<'a> CompletionContext<'a> { | |||
106 | let original_token = | 107 | let original_token = |
107 | original_file.syntax().token_at_offset(position.offset).left_biased()?; | 108 | original_file.syntax().token_at_offset(position.offset).left_biased()?; |
108 | let token = sema.descend_into_macros(original_token.clone()); | 109 | let token = sema.descend_into_macros(original_token.clone()); |
110 | let scope = sema.scope_at_offset(&token.parent(), position.offset); | ||
109 | let mut ctx = CompletionContext { | 111 | let mut ctx = CompletionContext { |
110 | sema, | 112 | sema, |
113 | scope, | ||
111 | db, | 114 | db, |
112 | config, | 115 | config, |
113 | original_token, | 116 | original_token, |
@@ -207,10 +210,6 @@ impl<'a> CompletionContext<'a> { | |||
207 | } | 210 | } |
208 | } | 211 | } |
209 | 212 | ||
210 | pub(crate) fn scope(&self) -> SemanticsScope<'_> { | ||
211 | self.sema.scope_at_offset(&self.token.parent(), self.offset) | ||
212 | } | ||
213 | |||
214 | fn fill_keyword_patterns(&mut self, file_with_fake_ident: &SyntaxNode, offset: TextSize) { | 213 | fn fill_keyword_patterns(&mut self, file_with_fake_ident: &SyntaxNode, offset: TextSize) { |
215 | let fake_ident_token = file_with_fake_ident.token_at_offset(offset).right_biased().unwrap(); | 214 | let fake_ident_token = file_with_fake_ident.token_at_offset(offset).right_biased().unwrap(); |
216 | let syntax_element = NodeOrToken::Token(fake_ident_token.clone()); | 215 | let syntax_element = NodeOrToken::Token(fake_ident_token.clone()); |