Skip to content

Commit 5b9e53e

Browse files
committed
[Migrate] required_parameters_verifier.dart
Change-Id: I2103c28faff5b062c59c3ba293dcae791a582ffa Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/402203 Reviewed-by: Konstantin Shcheglov <[email protected]>
1 parent 7cc1322 commit 5b9e53e

File tree

3 files changed

+35
-31
lines changed

3 files changed

+35
-31
lines changed

pkg/analyzer/analyzer_use_new_elements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ lib/src/error/duplicate_definition_verifier.dart
9696
lib/src/error/imports_verifier.dart
9797
lib/src/error/inheritance_override.dart
9898
lib/src/error/override_verifier.dart
99-
lib/src/error/required_parameters_verifier.dart
10099
lib/src/error/unused_local_elements_verifier.dart
101100
lib/src/generated/element_resolver.dart
102101
lib/src/generated/element_walker.dart

pkg/analyzer/lib/src/error/required_parameters_verifier.dart

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import 'package:analyzer/dart/ast/ast.dart';
66
import 'package:analyzer/dart/ast/syntactic_entity.dart';
77
import 'package:analyzer/dart/ast/visitor.dart';
8-
import 'package:analyzer/dart/element/element.dart';
8+
import 'package:analyzer/dart/element/element2.dart';
99
import 'package:analyzer/dart/element/type.dart';
1010
import 'package:analyzer/error/listener.dart';
1111
import 'package:analyzer/src/dart/element/element.dart';
@@ -20,13 +20,13 @@ class RequiredParametersVerifier extends SimpleAstVisitor<void> {
2020

2121
@override
2222
void visitAnnotation(Annotation node) {
23-
var element = node.element;
23+
var element = node.element2;
2424
var argumentList = node.arguments;
25-
if (element is ConstructorElement && argumentList != null) {
25+
if (element is ConstructorElement2 && argumentList != null) {
2626
var errorNode = node.constructorIdentifier ?? node.classIdentifier;
2727
if (errorNode != null) {
2828
_check(
29-
parameters: element.parameters,
29+
parameters: element.formalParameters,
3030
arguments: argumentList.arguments,
3131
errorEntity: errorNode,
3232
);
@@ -37,7 +37,7 @@ class RequiredParametersVerifier extends SimpleAstVisitor<void> {
3737
@override
3838
void visitEnumConstantDeclaration(EnumConstantDeclaration node) {
3939
_check(
40-
parameters: node.constructorElement?.parameters,
40+
parameters: node.constructorElement2?.formalParameters,
4141
arguments: node.arguments?.argumentList.arguments ?? <Expression>[],
4242
errorEntity: node.name,
4343
);
@@ -48,7 +48,7 @@ class RequiredParametersVerifier extends SimpleAstVisitor<void> {
4848
var type = node.staticInvokeType;
4949
if (type is FunctionType) {
5050
_check(
51-
parameters: type.parameters,
51+
parameters: type.formalParameters,
5252
arguments: node.argumentList.arguments,
5353
errorEntity: node,
5454
);
@@ -58,19 +58,19 @@ class RequiredParametersVerifier extends SimpleAstVisitor<void> {
5858
@override
5959
void visitInstanceCreationExpression(InstanceCreationExpression node) {
6060
_check(
61-
parameters: node.constructorName.staticElement?.parameters,
61+
parameters: node.constructorName.element?.formalParameters,
6262
arguments: node.argumentList.arguments,
6363
errorEntity: node.constructorName,
6464
);
6565
}
6666

6767
@override
6868
void visitMethodInvocation(MethodInvocation node) {
69-
if (node.methodName.name == FunctionElement.CALL_METHOD_NAME) {
69+
if (node.methodName.name == MethodElement2.CALL_METHOD_NAME) {
7070
var targetType = node.realTarget?.staticType;
7171
if (targetType is FunctionType) {
7272
_check(
73-
parameters: targetType.parameters,
73+
parameters: targetType.formalParameters,
7474
arguments: node.argumentList.arguments,
7575
errorEntity: node.argumentList,
7676
);
@@ -79,7 +79,7 @@ class RequiredParametersVerifier extends SimpleAstVisitor<void> {
7979
}
8080

8181
_check(
82-
parameters: _executableElement(node.methodName.staticElement)?.parameters,
82+
parameters: _executableElement(node.methodName.element)?.formalParameters,
8383
arguments: node.argumentList.arguments,
8484
errorEntity: node.methodName,
8585
);
@@ -89,7 +89,7 @@ class RequiredParametersVerifier extends SimpleAstVisitor<void> {
8989
void visitRedirectingConstructorInvocation(
9090
RedirectingConstructorInvocation node) {
9191
_check(
92-
parameters: _executableElement(node.staticElement)?.parameters,
92+
parameters: _executableElement(node.element)?.formalParameters,
9393
arguments: node.argumentList.arguments,
9494
errorEntity: node,
9595
);
@@ -98,31 +98,33 @@ class RequiredParametersVerifier extends SimpleAstVisitor<void> {
9898
@override
9999
void visitSuperConstructorInvocation(
100100
SuperConstructorInvocation node, {
101-
ConstructorElement? enclosingConstructor,
101+
ConstructorElement2? enclosingConstructor,
102102
}) {
103103
_check(
104-
parameters: _executableElement(node.staticElement)?.parameters,
104+
parameters: _executableElement(node.element)?.formalParameters,
105105
enclosingConstructor: enclosingConstructor,
106106
arguments: node.argumentList.arguments,
107107
errorEntity: node,
108108
);
109109
}
110110

111111
void _check({
112-
required List<ParameterElement>? parameters,
113-
ConstructorElement? enclosingConstructor,
112+
required List<FormalParameterElement>? parameters,
113+
ConstructorElement2? enclosingConstructor,
114114
required List<Expression> arguments,
115115
required SyntacticEntity errorEntity,
116116
}) {
117117
if (parameters == null) {
118118
return;
119119
}
120120

121-
for (ParameterElement parameter in parameters) {
121+
for (FormalParameterElement parameter in parameters) {
122122
if (parameter.isRequiredNamed) {
123-
String parameterName = parameter.name;
123+
String parameterName = parameter.name3!;
124124
if (!_containsNamedExpression(
125125
enclosingConstructor, arguments, parameterName)) {
126+
_containsNamedExpression(
127+
enclosingConstructor, arguments, parameterName);
126128
_errorReporter.atEntity(
127129
errorEntity,
128130
CompileTimeErrorCode.MISSING_REQUIRED_ARGUMENT,
@@ -133,7 +135,7 @@ class RequiredParametersVerifier extends SimpleAstVisitor<void> {
133135
if (parameter.isOptionalNamed) {
134136
var annotation = _requiredAnnotation(parameter);
135137
if (annotation != null) {
136-
String parameterName = parameter.name;
138+
String parameterName = parameter.name3!;
137139
if (!_containsNamedExpression(
138140
enclosingConstructor, arguments, parameterName)) {
139141
var reason = annotation.getReason(strictCasts: true);
@@ -157,7 +159,7 @@ class RequiredParametersVerifier extends SimpleAstVisitor<void> {
157159
}
158160

159161
static bool _containsNamedExpression(
160-
ConstructorElement? enclosingConstructor,
162+
ConstructorElement2? enclosingConstructor,
161163
List<Expression> arguments,
162164
String name,
163165
) {
@@ -171,29 +173,30 @@ class RequiredParametersVerifier extends SimpleAstVisitor<void> {
171173
}
172174

173175
if (enclosingConstructor != null) {
174-
return enclosingConstructor.parameters.any((e) =>
175-
e is SuperFormalParameterElement && e.isNamed && e.name == name);
176+
return enclosingConstructor.formalParameters.any((e) =>
177+
e is SuperFormalParameterElement2 && e.isNamed && e.name3 == name);
176178
}
177179

178180
return false;
179181
}
180182

181-
static ExecutableElement? _executableElement(Element? element) {
182-
if (element is ExecutableElement) {
183+
static ExecutableElement2? _executableElement(Element2? element) {
184+
if (element is ExecutableElement2) {
183185
return element;
184186
} else {
185187
return null;
186188
}
187189
}
188190

189-
static _RequiredAnnotation? _requiredAnnotation(ParameterElement element) {
190-
var annotation = element.metadata.firstWhereOrNull((e) => e.isRequired)
191-
as ElementAnnotationImpl?;
191+
static _RequiredAnnotation? _requiredAnnotation(
192+
FormalParameterElement element) {
193+
var annotation = element.metadata2.annotations
194+
.firstWhereOrNull((e) => e.isRequired) as ElementAnnotationImpl?;
192195
if (annotation != null) {
193196
return _RequiredAnnotation(annotation);
194197
}
195198

196-
if (element.declaration.isRequiredNamed) {
199+
if (element.baseElement.isRequiredNamed) {
197200
return _RequiredAnnotation(annotation);
198201
}
199202

@@ -256,10 +259,10 @@ extension _InstantiatedAnnotation on Annotation {
256259
}
257260

258261
static SimpleIdentifier? _ifClassElement(SimpleIdentifier? node) {
259-
return node?.staticElement is InterfaceElement ? node : null;
262+
return node?.element is InterfaceElement2 ? node : null;
260263
}
261264

262265
static SimpleIdentifier? _ifConstructorElement(SimpleIdentifier? node) {
263-
return node?.staticElement is ConstructorElement ? node : null;
266+
return node?.element is ConstructorElement2 ? node : null;
264267
}
265268
}

pkg/analyzer/lib/src/generated/error_verifier.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ class EnclosingExecutableContext {
118118
return element?.displayName;
119119
}
120120

121+
ExecutableElement2? get element2 => element.asElement2;
122+
121123
bool get isClosure {
122124
return element is FunctionElement && element!.displayName.isEmpty;
123125
}
@@ -1484,7 +1486,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
14841486
void visitSuperConstructorInvocation(SuperConstructorInvocation node) {
14851487
_requiredParametersVerifier.visitSuperConstructorInvocation(
14861488
node,
1487-
enclosingConstructor: _enclosingExecutable.element.ifTypeOrNull(),
1489+
enclosingConstructor: _enclosingExecutable.element2.ifTypeOrNull(),
14881490
);
14891491
_constArgumentsVerifier.visitSuperConstructorInvocation(node);
14901492
_isInConstructorInitializer = true;

0 commit comments

Comments
 (0)