diff --git a/crates/ra_ide_api/src/completion/complete_dot.rs b/crates/ra_ide_api/src/completion/complete_dot.rs index f54a02d1dd..18b2d68d52 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 0000000000..72c8973b89 --- /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)" + } +]