Properly handle async
blocks and fn
s in if
exprs without else
When encountering a tail expression in the then arm of an `if` expression without an `else` arm, account for `async fn` and `async` blocks to suggest `return`ing the value and pointing at the return type of the `async fn`. We now also account for AFIT when looking for the return type to point at. Fix #115405.
This commit is contained in:
parent
bdc15928c8
commit
37d2ea2fa0
12 changed files with 250 additions and 61 deletions
|
@ -617,7 +617,7 @@ impl<'hir> Map<'hir> {
|
|||
Node::Item(_)
|
||||
| Node::ForeignItem(_)
|
||||
| Node::TraitItem(_)
|
||||
| Node::Expr(Expr { kind: ExprKind::Closure { .. }, .. })
|
||||
| Node::Expr(Expr { kind: ExprKind::Closure(_), .. })
|
||||
| Node::ImplItem(_)
|
||||
// The input node `id` must be enclosed in the method's body as opposed
|
||||
// to some other place such as its return type (fixes #114918).
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue