Skip to content

Commit 8f40f77

Browse files
pqCommit Queue
authored and
Commit Queue
committed
[element model] migrate avoid_redundant_argument_values
Bug: https://github.com/dart-lang/linter/issues/5099 Change-Id: Ia4ac6f2c0684f0f1f22a36cab4625bbaad38c5ef Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/390822 Auto-Submit: Phil Quitslund <[email protected]> Commit-Queue: Brian Wilkerson <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent f78b304 commit 8f40f77

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

pkg/analyzer/lib/src/dart/element/member.dart

+7-2
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,13 @@ class ConstructorMember extends ExecutableMember
8888
}
8989

9090
@override
91-
ConstructorElement2? get redirectedConstructor2 =>
92-
redirectedConstructor.asElement2 as ConstructorElement2;
91+
ConstructorElement2? get redirectedConstructor2 {
92+
var element = redirectedConstructor.asElement2;
93+
return switch (element) {
94+
ConstructorElement2() => element,
95+
_ => null,
96+
};
97+
}
9398

9499
@override
95100
InterfaceType get returnType => type.returnType as InterfaceType;

pkg/linter/lib/src/rules/avoid_redundant_argument_values.dart

+10-10
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import 'package:analyzer/dart/ast/ast.dart';
66
import 'package:analyzer/dart/ast/visitor.dart';
7-
import 'package:analyzer/dart/element/element.dart';
7+
import 'package:analyzer/dart/element/element2.dart';
88
import 'package:analyzer/src/lint/linter.dart'; // ignore: implementation_imports
99
import 'package:collection/collection.dart';
1010

@@ -46,7 +46,7 @@ class _Visitor extends SimpleAstVisitor<void> {
4646

4747
for (var i = arguments.length - 1; i >= 0; --i) {
4848
var arg = arguments[i];
49-
var param = arg.staticParameterElement;
49+
var param = arg.correspondingParameter;
5050
if (arg is NamedExpression) {
5151
arg = arg.expression;
5252
}
@@ -59,10 +59,10 @@ class _Visitor extends SimpleAstVisitor<void> {
5959
}
6060
}
6161

62-
void checkArgument(Expression arg, ParameterElement? param) {
62+
void checkArgument(Expression arg, FormalParameterElement? param) {
6363
if (param == null ||
64-
param.declaration.isRequired ||
65-
param.hasRequired ||
64+
param.isRequired ||
65+
param.metadata2.hasRequired ||
6666
!param.isOptional) {
6767
return;
6868
}
@@ -93,13 +93,13 @@ class _Visitor extends SimpleAstVisitor<void> {
9393

9494
@override
9595
void visitInstanceCreationExpression(InstanceCreationExpression node) {
96-
var constructor = node.constructorName.staticElement;
96+
var constructor = node.constructorName.element;
9797
if (constructor != null && !constructor.isFactory) {
9898
check(node.argumentList);
9999
return;
100100
}
101101

102-
var redirectedConstructor = constructor?.redirectedConstructor;
102+
var redirectedConstructor = constructor?.redirectedConstructor2;
103103
if (constructor == null || redirectedConstructor == null) {
104104
check(node.argumentList);
105105
return;
@@ -113,10 +113,10 @@ class _Visitor extends SimpleAstVisitor<void> {
113113
}
114114
visitedConstructors.add(redirectedConstructor);
115115
constructor = redirectedConstructor;
116-
redirectedConstructor = redirectedConstructor.redirectedConstructor;
116+
redirectedConstructor = redirectedConstructor.redirectedConstructor2;
117117
}
118118

119-
var parameters = constructor!.parameters;
119+
var parameters = constructor!.formalParameters;
120120

121121
// If the constructor being called is a redirecting factory constructor, an
122122
// argument is redundant if it is equal to the default value of the
@@ -130,7 +130,7 @@ class _Visitor extends SimpleAstVisitor<void> {
130130

131131
for (var i = arguments.length - 1; i >= 0; --i) {
132132
var arg = arguments[i];
133-
ParameterElement? param;
133+
FormalParameterElement? param;
134134
if (arg is NamedExpression) {
135135
param = parameters.firstWhereOrNull(
136136
(p) => p.isNamed && p.name == arg.name.label.name);

0 commit comments

Comments
 (0)