Skip to content

Commit dd2354c

Browse files
authored
Merge pull request #19435 from Veykril/push-owstqqlrtsko
fix: Fix closure return inlayhints using macro ranges
2 parents d8792ee + c760360 commit dd2354c

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

crates/ide/src/inlay_hints/closure_ret.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ pub(super) fn hints(
3535

3636
let param_list = closure.param_list()?;
3737

38-
let closure = sema.descend_node_into_attributes(closure).pop()?;
39-
let ty = sema.type_of_expr(&ast::Expr::ClosureExpr(closure.clone()))?.adjusted();
38+
let resolve_parent = Some(closure.syntax().text_range());
39+
let descended_closure = sema.descend_node_into_attributes(closure.clone()).pop()?;
40+
let ty = sema.type_of_expr(&ast::Expr::ClosureExpr(descended_closure.clone()))?.adjusted();
4041
let callable = ty.as_callable(sema.db)?;
4142
let ty = callable.return_type();
4243
if arrow.is_none() && ty.is_unit() {
@@ -52,7 +53,7 @@ pub(super) fn hints(
5253
ty_to_text_edit(
5354
sema,
5455
config,
55-
closure.syntax(),
56+
descended_closure.syntax(),
5657
&ty,
5758
arrow
5859
.as_ref()
@@ -70,7 +71,7 @@ pub(super) fn hints(
7071
let mut builder = TextEdit::builder();
7172
let insert_pos = param_list.syntax().text_range().end();
7273

73-
let rendered = match sema.scope(closure.syntax()).and_then(|scope| {
74+
let rendered = match sema.scope(descended_closure.syntax()).and_then(|scope| {
7475
ty.display_source_code(scope.db, scope.module().into(), false).ok()
7576
}) {
7677
Some(rendered) => rendered,
@@ -95,7 +96,7 @@ pub(super) fn hints(
9596
position: InlayHintPosition::After,
9697
pad_left: false,
9798
pad_right: false,
98-
resolve_parent: Some(closure.syntax().text_range()),
99+
resolve_parent,
99100
});
100101
Some(())
101102
}

0 commit comments

Comments
 (0)