allow one member abstracts implementing interfaces (#2028)

* allow one member abstracts implementing interfaces

* ws

* + mixins
diff --git a/lib/src/rules/one_member_abstracts.dart b/lib/src/rules/one_member_abstracts.dart
index bc1fafe..a97caf5 100644
--- a/lib/src/rules/one_member_abstracts.dart
+++ b/lib/src/rules/one_member_abstracts.dart
@@ -59,6 +59,12 @@
 
   @override
   void visitClassDeclaration(ClassDeclaration node) {
+    if (node.declaredElement.interfaces.isNotEmpty) {
+      return;
+    }
+    if (node.declaredElement.mixins.isNotEmpty) {
+      return;
+    }
     if (node.isAbstract &&
         node.extendsClause == null &&
         node.members.length == 1) {
diff --git a/test/rules/one_member_abstracts.dart b/test/rules/one_member_abstracts.dart
index ec65b42..8b8ec9a 100644
--- a/test/rules/one_member_abstracts.dart
+++ b/test/rules/one_member_abstracts.dart
@@ -27,3 +27,21 @@
 abstract class Config {
   String get datasetId; //OK -- Issue #64
 }
+
+/// https://github.com/dart-lang/linter/issues/1826
+abstract class FooBarable {
+  void foo();
+  void bar();
+}
+
+abstract class Bazable implements FooBarable {
+  void baz(); // OK
+}
+
+mixin M {
+  void m();
+}
+
+abstract class Bazable2 with M {
+  void baz(); // OK
+}