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,
);
}
}