From 2caa690ef6feba3f78354e715deea37983b149ac Mon Sep 17 00:00:00 2001 From: robojumper Date: Fri, 5 Apr 2019 22:59:55 +0200 Subject: Rudimentarily autocomplete tuple struct field access --- crates/ra_ide_api/src/completion/complete_dot.rs | 22 ++++++++++++++++++++++ .../completion_item__tuple_field_inference.snap | 16 ++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 crates/ra_ide_api/src/completion/snapshots/completion_item__tuple_field_inference.snap (limited to 'crates/ra_ide_api') diff --git a/crates/ra_ide_api/src/completion/complete_dot.rs b/crates/ra_ide_api/src/completion/complete_dot.rs index f54a02d1d..18b2d68d5 100644 --- a/crates/ra_ide_api/src/completion/complete_dot.rs +++ b/crates/ra_ide_api/src/completion/complete_dot.rs @@ -184,4 +184,26 @@ mod tests { ", ); } + + #[test] + fn test_tuple_field_inference() { + check_ref_completion( + "tuple_field_inference", + r" + pub struct S; + impl S { + pub fn blah(&self) {} + } + + struct T(S); + + impl T { + fn foo(&self) { + // FIXME: This doesn't work without the trailing `a` as `0.` is a float + self.0.a<|> + } + } + ", + ); + } } diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__tuple_field_inference.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__tuple_field_inference.snap new file mode 100644 index 000000000..72c8973b8 --- /dev/null +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__tuple_field_inference.snap @@ -0,0 +1,16 @@ +--- +created: "2019-04-05T23:00:18.283812700Z" +creator: insta@0.7.4 +source: crates/ra_ide_api/src/completion/completion_item.rs +expression: kind_completions +--- +[ + CompletionItem { + label: "blah", + source_range: [299; 300), + delete: [299; 300), + insert: "blah()$0", + kind: Method, + detail: "pub fn blah(&self)" + } +] -- cgit v1.2.3