@@ -154,13 +154,6 @@ pub(crate) fn render_field(
154
154
// dot access, then comes the field name and optionally insert function
155
155
// call parens.
156
156
157
- if let Some ( receiver) = & dot_access. receiver {
158
- if let Some ( receiver) = ctx. completion . sema . original_ast_node ( receiver. clone ( ) ) {
159
- let range = receiver. syntax ( ) . text_range ( ) ;
160
- builder. insert ( range. start ( ) , "(" . to_string ( ) ) ;
161
- builder. insert ( range. end ( ) , ")" . to_string ( ) ) ;
162
- }
163
- }
164
157
builder. replace (
165
158
ctx. source_range ( ) ,
166
159
field_with_receiver ( db, receiver. as_ref ( ) , & escaped_name) . into ( ) ,
@@ -169,11 +162,21 @@ pub(crate) fn render_field(
169
162
let expected_fn_type =
170
163
ctx. completion . expected_type . as_ref ( ) . is_some_and ( |ty| ty. is_fn ( ) || ty. is_closure ( ) ) ;
171
164
172
- let is_parens_needed =
173
- !matches ! ( dot_access. kind, DotAccessKind :: Method { has_parens: true } ) ;
165
+ if !expected_fn_type {
166
+ if let Some ( receiver) = & dot_access. receiver {
167
+ if let Some ( receiver) = ctx. completion . sema . original_ast_node ( receiver. clone ( ) ) {
168
+ let range = receiver. syntax ( ) . text_range ( ) ;
169
+ builder. insert ( range. start ( ) , "(" . to_string ( ) ) ;
170
+ builder. insert ( range. end ( ) , ")" . to_string ( ) ) ;
171
+ }
172
+ }
173
+
174
+ let is_parens_needed =
175
+ !matches ! ( dot_access. kind, DotAccessKind :: Method { has_parens: true } ) ;
174
176
175
- if !expected_fn_type && is_parens_needed {
176
- builder. insert ( ctx. source_range ( ) . end ( ) , "()" . to_string ( ) ) ;
177
+ if is_parens_needed {
178
+ builder. insert ( ctx. source_range ( ) . end ( ) , "()" . to_string ( ) ) ;
179
+ }
177
180
}
178
181
179
182
item. text_edit ( builder. finish ( ) ) ;
@@ -1706,22 +1709,8 @@ fn foo() {
1706
1709
CompletionItem {
1707
1710
label: "field",
1708
1711
source_range: 76..78,
1709
- text_edit: TextEdit {
1710
- indels: [
1711
- Indel {
1712
- insert: "(",
1713
- delete: 57..57,
1714
- },
1715
- Indel {
1716
- insert: ")",
1717
- delete: 75..75,
1718
- },
1719
- Indel {
1720
- insert: "field",
1721
- delete: 76..78,
1722
- },
1723
- ],
1724
- },
1712
+ delete: 76..78,
1713
+ insert: "field",
1725
1714
kind: SymbolKind(
1726
1715
Field,
1727
1716
),
0 commit comments