diff --git a/src/chains.rs b/src/chains.rs index 6cac55c6e86..1ca0ac582b7 100644 --- a/src/chains.rs +++ b/src/chains.rs @@ -168,7 +168,7 @@ impl ChainItemKind { let span = mk_sp(nested.span.hi(), field.span.hi()); (kind, span) } - ast::ExprKind::Await(_, ref nested) => { + ast::ExprKind::Await(ast::AwaitOrigin::FieldLike, ref nested) => { let span = mk_sp(nested.span.hi(), expr.span.hi()); (ChainItemKind::Await, span) } @@ -396,7 +396,9 @@ impl Chain { } ast::ExprKind::Field(ref subexpr, _) | ast::ExprKind::Try(ref subexpr) - | ast::ExprKind::Await(_, ref subexpr) => Some(Self::convert_try(subexpr, context)), + | ast::ExprKind::Await(ast::AwaitOrigin::FieldLike, ref subexpr) => { + Some(Self::convert_try(subexpr, context)) + } _ => None, } } diff --git a/tests/source/async_fn.rs b/tests/source/async_fn.rs index f6c5f5e1c9a..b4dc9fac5b2 100644 --- a/tests/source/async_fn.rs +++ b/tests/source/async_fn.rs @@ -19,3 +19,8 @@ async unsafe fn rust() { Ok(()) } } + +async fn await_macro() { + await ! ( + something)?; +} diff --git a/tests/target/async_fn.rs b/tests/target/async_fn.rs index 7992e63c080..82be8c76785 100644 --- a/tests/target/async_fn.rs +++ b/tests/target/async_fn.rs @@ -18,3 +18,7 @@ async unsafe fn rust() { Ok(()) } } + +async fn await_macro() { + await!(something)?; +}