don't report `one_member_abstracts` on macro classes

Completes: https://github.com/dart-lang/linter/issues/4924

Change-Id: I27095ed1dd07c8c9662776d83c5dbfc8fd478e64
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/365900
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/linter/lib/src/rules/one_member_abstracts.dart b/pkg/linter/lib/src/rules/one_member_abstracts.dart
index 692d16d..2039b17 100644
--- a/pkg/linter/lib/src/rules/one_member_abstracts.dart
+++ b/pkg/linter/lib/src/rules/one_member_abstracts.dart
@@ -70,6 +70,7 @@
     if (node.abstractKeyword == null) return;
     if (node.extendsClause != null) return;
 
+    if (node.macroKeyword != null) return;
     if (node.isAugmentation) return;
 
     var element = node.declaredElement;
diff --git a/pkg/linter/test/rules/one_member_abstracts_test.dart b/pkg/linter/test/rules/one_member_abstracts_test.dart
index 1ad6bd2..3bc9610 100644
--- a/pkg/linter/test/rules/one_member_abstracts_test.dart
+++ b/pkg/linter/test/rules/one_member_abstracts_test.dart
@@ -17,6 +17,16 @@
   @override
   String get lintRule => 'one_member_abstracts';
 
+  test_macroClass() async {
+    await assertDiagnostics(r'''
+abstract macro class M {
+  void m();
+}
+''', [
+      // TODO(pq): add abstract macro compilation error when implemented
+    ]);
+  }
+
   test_oneMember_abstract() async {
     await assertDiagnostics(r'''
 abstract class C {