diff options
Diffstat (limited to 'crates/ide_completion/src/render.rs')
-rw-r--r-- | crates/ide_completion/src/render.rs | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/crates/ide_completion/src/render.rs b/crates/ide_completion/src/render.rs index 23e00aa47..9ce49074f 100644 --- a/crates/ide_completion/src/render.rs +++ b/crates/ide_completion/src/render.rs | |||
@@ -148,8 +148,10 @@ impl<'a> Render<'a> { | |||
148 | ..CompletionRelevance::default() | 148 | ..CompletionRelevance::default() |
149 | }); | 149 | }); |
150 | 150 | ||
151 | if let Some(ref_match) = compute_ref_match(self.ctx.completion, ty) { | 151 | if let Some(_ref_match) = compute_ref_match(self.ctx.completion, ty) { |
152 | item.ref_match(ref_match); | 152 | // FIXME |
153 | // For now we don't properly calculate the edits for ref match | ||
154 | // completions on struct fields, so we've disabled them. See #8058. | ||
153 | } | 155 | } |
154 | 156 | ||
155 | item.build() | 157 | item.build() |
@@ -1313,4 +1315,42 @@ fn main() { | |||
1313 | "#]], | 1315 | "#]], |
1314 | ) | 1316 | ) |
1315 | } | 1317 | } |
1318 | |||
1319 | #[test] | ||
1320 | fn struct_field_method_ref() { | ||
1321 | check( | ||
1322 | r#" | ||
1323 | struct Foo { bar: u32 } | ||
1324 | impl Foo { fn baz(&self) -> u32 { 0 } } | ||
1325 | |||
1326 | fn foo(f: Foo) { let _: &u32 = f.b$0 } | ||
1327 | "#, | ||
1328 | // FIXME | ||
1329 | // Ideally we'd also suggest &f.bar and &f.baz() as exact | ||
1330 | // type matches. See #8058. | ||
1331 | expect![[r#" | ||
1332 | [ | ||
1333 | CompletionItem { | ||
1334 | label: "bar", | ||
1335 | source_range: 98..99, | ||
1336 | delete: 98..99, | ||
1337 | insert: "bar", | ||
1338 | kind: SymbolKind( | ||
1339 | Field, | ||
1340 | ), | ||
1341 | detail: "u32", | ||
1342 | }, | ||
1343 | CompletionItem { | ||
1344 | label: "baz()", | ||
1345 | source_range: 98..99, | ||
1346 | delete: 98..99, | ||
1347 | insert: "baz()$0", | ||
1348 | kind: Method, | ||
1349 | lookup: "baz", | ||
1350 | detail: "fn(&self) -> u32", | ||
1351 | }, | ||
1352 | ] | ||
1353 | "#]], | ||
1354 | ); | ||
1355 | } | ||
1316 | } | 1356 | } |