File tree Expand file tree Collapse file tree 1 file changed +10
-12
lines changed
crates/ide-completion/src Expand file tree Collapse file tree 1 file changed +10
-12
lines changed Original file line number Diff line number Diff line change @@ -155,26 +155,24 @@ pub(crate) fn render_field(
155155 // call parens.
156156
157157 if let Some ( receiver) = & dot_access. receiver {
158- let range = receiver. syntax ( ) . text_range ( ) ;
159- builder. insert ( range. start ( ) , "(" . to_string ( ) ) ;
160- builder. insert ( range. end ( ) , ")" . to_string ( ) ) ;
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+ }
161163 }
162164 builder. replace (
163165 ctx. source_range ( ) ,
164166 field_with_receiver ( db, receiver. as_ref ( ) , & escaped_name) . into ( ) ,
165167 ) ;
166168
167- let is_fn_expected =
168- ctx. completion . expected_type . as_ref ( ) . map_or ( false , |ty| ty. is_fn ( ) || ty. is_closure ( ) ) ;
169+ let expected_fn_type =
170+ ctx. completion . expected_type . as_ref ( ) . is_some_and ( |ty| ty. is_fn ( ) || ty. is_closure ( ) ) ;
169171
170- // This could be refactored as method of DotAccessKind
171- let is_parens_needed = if let DotAccessKind :: Method { has_parens } = dot_access. kind {
172- !has_parens
173- } else {
174- true
175- } ;
172+ let is_parens_needed =
173+ !matches ! ( dot_access. kind, DotAccessKind :: Method { has_parens: true } ) ;
176174
177- if !is_fn_expected && is_parens_needed {
175+ if !expected_fn_type && is_parens_needed {
178176 builder. insert ( ctx. source_range ( ) . end ( ) , "()" . to_string ( ) ) ;
179177 }
180178
You can’t perform that action at this time.
0 commit comments