diff options
author | Aleksey Kladov <[email protected]> | 2020-08-19 14:16:24 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2020-08-19 14:16:24 +0100 |
commit | b9b4693ce3bf0229ea40f09e6404fad3e7823321 (patch) | |
tree | 5ef5dceeeafb7105f41b6fe12bb1563f424f2e87 /crates/ide/src/completion | |
parent | a3b0a3aeb8061fc65951dd540bc92b94a96b4f2b (diff) |
Add SelfParam to code_model
Diffstat (limited to 'crates/ide/src/completion')
-rw-r--r-- | crates/ide/src/completion/complete_dot.rs | 2 | ||||
-rw-r--r-- | crates/ide/src/completion/complete_trait_impl.rs | 2 | ||||
-rw-r--r-- | crates/ide/src/completion/presentation.rs | 4 |
3 files changed, 3 insertions, 5 deletions
diff --git a/crates/ide/src/completion/complete_dot.rs b/crates/ide/src/completion/complete_dot.rs index 532665285..5488db43f 100644 --- a/crates/ide/src/completion/complete_dot.rs +++ b/crates/ide/src/completion/complete_dot.rs | |||
@@ -48,7 +48,7 @@ fn complete_methods(acc: &mut Completions, ctx: &CompletionContext, receiver: &T | |||
48 | let mut seen_methods = FxHashSet::default(); | 48 | let mut seen_methods = FxHashSet::default(); |
49 | let traits_in_scope = ctx.scope.traits_in_scope(); | 49 | let traits_in_scope = ctx.scope.traits_in_scope(); |
50 | receiver.iterate_method_candidates(ctx.db, krate, &traits_in_scope, None, |_ty, func| { | 50 | receiver.iterate_method_candidates(ctx.db, krate, &traits_in_scope, None, |_ty, func| { |
51 | if func.has_self_param(ctx.db) | 51 | if func.self_param(ctx.db).is_some() |
52 | && ctx.scope.module().map_or(true, |m| func.is_visible_from(ctx.db, m)) | 52 | && ctx.scope.module().map_or(true, |m| func.is_visible_from(ctx.db, m)) |
53 | && seen_methods.insert(func.name(ctx.db)) | 53 | && seen_methods.insert(func.name(ctx.db)) |
54 | { | 54 | { |
diff --git a/crates/ide/src/completion/complete_trait_impl.rs b/crates/ide/src/completion/complete_trait_impl.rs index d69b6b468..d0d3a9f34 100644 --- a/crates/ide/src/completion/complete_trait_impl.rs +++ b/crates/ide/src/completion/complete_trait_impl.rs | |||
@@ -136,7 +136,7 @@ fn add_function_impl( | |||
136 | .lookup_by(fn_name) | 136 | .lookup_by(fn_name) |
137 | .set_documentation(func.docs(ctx.db)); | 137 | .set_documentation(func.docs(ctx.db)); |
138 | 138 | ||
139 | let completion_kind = if func.has_self_param(ctx.db) { | 139 | let completion_kind = if func.self_param(ctx.db).is_some() { |
140 | CompletionItemKind::Method | 140 | CompletionItemKind::Method |
141 | } else { | 141 | } else { |
142 | CompletionItemKind::Function | 142 | CompletionItemKind::Function |
diff --git a/crates/ide/src/completion/presentation.rs b/crates/ide/src/completion/presentation.rs index e1b1ea4ce..a73f8ab0b 100644 --- a/crates/ide/src/completion/presentation.rs +++ b/crates/ide/src/completion/presentation.rs | |||
@@ -191,14 +191,12 @@ impl Completions { | |||
191 | func: hir::Function, | 191 | func: hir::Function, |
192 | local_name: Option<String>, | 192 | local_name: Option<String>, |
193 | ) { | 193 | ) { |
194 | let has_self_param = func.has_self_param(ctx.db); | ||
195 | |||
196 | let name = local_name.unwrap_or_else(|| func.name(ctx.db).to_string()); | 194 | let name = local_name.unwrap_or_else(|| func.name(ctx.db).to_string()); |
197 | let ast_node = func.source(ctx.db).value; | 195 | let ast_node = func.source(ctx.db).value; |
198 | 196 | ||
199 | let mut builder = | 197 | let mut builder = |
200 | CompletionItem::new(CompletionKind::Reference, ctx.source_range(), name.clone()) | 198 | CompletionItem::new(CompletionKind::Reference, ctx.source_range(), name.clone()) |
201 | .kind(if has_self_param { | 199 | .kind(if func.self_param(ctx.db).is_some() { |
202 | CompletionItemKind::Method | 200 | CompletionItemKind::Method |
203 | } else { | 201 | } else { |
204 | CompletionItemKind::Function | 202 | CompletionItemKind::Function |