Fix is_async_fn to check FnKind::Method

This commit is contained in:
koka
2022-11-12 22:36:20 +09:00
parent 755fe4dc24
commit 34c4520eae
3 changed files with 22 additions and 2 deletions

View File

@@ -1901,7 +1901,11 @@ pub fn if_sequence<'tcx>(mut expr: &'tcx Expr<'tcx>) -> (Vec<&'tcx Expr<'tcx>>,
/// Checks if the given function kind is an async function.
pub fn is_async_fn(kind: FnKind<'_>) -> bool {
matches!(kind, FnKind::ItemFn(_, _, header) if header.asyncness == IsAsync::Async)
match kind {
FnKind::ItemFn(_, _, header) => header.asyncness == IsAsync::Async,
FnKind::Method(_, sig) => sig.header.asyncness == IsAsync::Async,
FnKind::Closure => false,
}
}
/// Peels away all the compiler generated code surrounding the body of an async function,