Skip to content

Commit eedeb58

Browse files
committed
refactor obtaining receivers into idiomatic way
variable name change for clearer usage indication
1 parent 5bcafd7 commit eedeb58

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

crates/ide-completion/src/render.rs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)