Auto merge of #81699 - jethrogb:fix-81531, r=petrochenkov

Really fix early lints inside an async desugaring

Fixes #81531

cc `@Aaron1011`

r? `@petrochenkov`
This commit is contained in:
bors 2021-02-03 11:42:09 +00:00
commit 6ad11e2e25
2 changed files with 9 additions and 4 deletions

View file

@ -219,10 +219,10 @@ impl<'a, T: EarlyLintPass> ast_visit::Visitor<'a> for EarlyContextAndPass<'a, T>
// Explicitly check for lints associated with 'closure_id', since
// it does not have a corresponding AST node
if let ast::ExprKind::Closure(_, asyncness, ..) = e.kind {
if let ast::Async::Yes { closure_id, .. } = asyncness {
self.check_id(closure_id);
}
match e.kind {
ast::ExprKind::Closure(_, ast::Async::Yes { closure_id, .. }, ..)
| ast::ExprKind::Async(_, closure_id, ..) => self.check_id(closure_id),
_ => {}
}
}

View file

@ -33,4 +33,9 @@ fn main() {
fn inner() {
let _ = foo!(third);
}
#[allow(semicolon_in_expressions_from_macros)]
async {
let _ = foo!(fourth);
};
}