about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--compiler/rustc_lint/src/early.rs8
-rw-r--r--src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs5
2 files changed, 9 insertions, 4 deletions
diff --git a/compiler/rustc_lint/src/early.rs b/compiler/rustc_lint/src/early.rs
index c02465f5979..231edf442eb 100644
--- a/compiler/rustc_lint/src/early.rs
+++ b/compiler/rustc_lint/src/early.rs
@@ -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),
+            _ => {}
         }
     }
 
diff --git a/src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs b/src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs
index 4f39d088b12..0bbd7dc6c8a 100644
--- a/src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs
+++ b/src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs
@@ -33,4 +33,9 @@ fn main() {
     fn inner() {
         let _ = foo!(third);
     }
+
+    #[allow(semicolon_in_expressions_from_macros)]
+    async {
+        let _ = foo!(fourth);
+    };
 }