Reland "[Analyzer] Handle parameters that are both deprecated and required"

as per discussion in https://github.com/dart-lang/sdk/issues/48206

This is a reland of commit 992618988befee18b6e964164ca94e074269f538

Original change's description:
> [Analyzer] Handle parameters that are both deprecated and required
>
> Do not produce a diagnostic at the call-site in this case.
>
> Change-Id: I994704f77261b8e801a242c963236385f519eaa8
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/241008
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
> Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>

Change-Id: Ife7eb4699d8c4f0c3325f6d2526fdcdfbcb0d1f6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/245703
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/error/deprecated_member_use_verifier.dart b/pkg/analyzer/lib/src/error/deprecated_member_use_verifier.dart
index ff183f5..82de45d 100644
--- a/pkg/analyzer/lib/src/error/deprecated_member_use_verifier.dart
+++ b/pkg/analyzer/lib/src/error/deprecated_member_use_verifier.dart
@@ -146,6 +146,10 @@
       return;
     }
 
+    if (element is ParameterElement && element.isRequired) {
+      return;
+    }
+
     var errorNode = node;
     var parent = node.parent;
     if (parent is AssignmentExpression && parent.leftHandSide == node) {
@@ -204,11 +208,7 @@
       _visitParametersAndArguments(
         element.parameters,
         arguments.arguments,
-        (parameter, argument) {
-          if (parameter.isOptional) {
-            _checkForDeprecated(parameter, argument);
-          }
-        },
+        _checkForDeprecated,
       );
     }
   }