Merge pull request #1973 from dart-lang/unused-deprecated-parameters

Allow unused parameters when they are deprecated
diff --git a/lib/src/rules/avoid_unused_constructor_parameters.dart b/lib/src/rules/avoid_unused_constructor_parameters.dart
index 0061680..ea15499 100644
--- a/lib/src/rules/avoid_unused_constructor_parameters.dart
+++ b/lib/src/rules/avoid_unused_constructor_parameters.dart
@@ -55,7 +55,9 @@
 
   _ConstructorVisitor(this.rule, this.element)
       : unusedParameters = element.parameters.parameters
-            .where((p) => p.declaredElement is! FieldFormalParameterElement)
+            .where((p) =>
+                p.declaredElement is! FieldFormalParameterElement &&
+                !p.declaredElement.hasDeprecated)
             .toSet();
 
   @override
diff --git a/test/rules/avoid_unused_constructor_parameters.dart b/test/rules/avoid_unused_constructor_parameters.dart
index 9807ed1..5ebde5e 100644
--- a/test/rules/avoid_unused_constructor_parameters.dart
+++ b/test/rules/avoid_unused_constructor_parameters.dart
@@ -96,3 +96,7 @@
   external N(int n); // OK
   external factory N.named(int n); // OK
 }
+
+class O {
+  O(@Deprecated('') int x); // OK because the parameter is deprecated
+}