Skip to content

Commit 72bb1d1

Browse files
scheglovcommit-bot@chromium.org
authored andcommitted
Stop using FormalParameter.kind in analyzer.
So that we could remove it from the public API in a breaking change. Change-Id: I625bd650d6e6fb4734e40bd8d58ae2142d7fb25e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154304 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
1 parent e7abc41 commit 72bb1d1

File tree

8 files changed

+65
-52
lines changed

8 files changed

+65
-52
lines changed

pkg/analyzer/lib/src/dart/ast/ast.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4339,7 +4339,6 @@ abstract class FormalParameterImpl extends AstNodeImpl
43394339
bool get isRequiredPositional => kind == ParameterKind.REQUIRED;
43404340

43414341
@override
4342-
// Overridden to remove the 'deprecated' annotation.
43434342
ParameterKind get kind;
43444343
}
43454344

@@ -7685,11 +7684,10 @@ abstract class NormalFormalParameterImpl extends FormalParameterImpl
76857684
_identifier = _becomeParentOf(identifier as SimpleIdentifierImpl);
76867685
}
76877686

7688-
@deprecated
76897687
@override
76907688
ParameterKind get kind {
76917689
AstNode parent = this.parent;
7692-
if (parent is DefaultFormalParameter) {
7690+
if (parent is DefaultFormalParameterImpl) {
76937691
return parent.kind;
76947692
}
76957693
return ParameterKind.REQUIRED;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'package:analyzer/dart/ast/ast.dart';
6+
import 'package:analyzer/src/dart/ast/ast.dart';
7+
8+
extension ListOfFormalParameterExtension on List<FormalParameter> {
9+
Iterable<FormalParameterImpl> get asImpl {
10+
return this.cast<FormalParameterImpl>();
11+
}
12+
}

pkg/analyzer/lib/src/dart/ast/utilities.dart

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,7 @@ class AstCloner implements AstVisitor<AstNode> {
339339

340340
@override
341341
DefaultFormalParameter visitDefaultFormalParameter(
342-
DefaultFormalParameter node) =>
343-
// ignore: deprecated_member_use_from_same_package
342+
covariant DefaultFormalParameterImpl node) =>
344343
astFactory.defaultFormalParameter(cloneNode(node.parameter), node.kind,
345344
cloneToken(node.separator), cloneNode(node.defaultValue));
346345

@@ -1446,10 +1445,9 @@ class AstComparator implements AstVisitor<bool> {
14461445
}
14471446

14481447
@override
1449-
bool visitDefaultFormalParameter(DefaultFormalParameter node) {
1450-
DefaultFormalParameter other = _other as DefaultFormalParameter;
1448+
bool visitDefaultFormalParameter(covariant DefaultFormalParameterImpl node) {
1449+
var other = _other as DefaultFormalParameterImpl;
14511450
return isEqualNodes(node.parameter, other.parameter) &&
1452-
// ignore: deprecated_member_use_from_same_package
14531451
node.kind == other.kind &&
14541452
isEqualTokens(node.separator, other.separator) &&
14551453
isEqualNodes(node.defaultValue, other.defaultValue);
@@ -4321,11 +4319,10 @@ class ResolutionCopier implements AstVisitor<bool> {
43214319
}
43224320

43234321
@override
4324-
bool visitDefaultFormalParameter(DefaultFormalParameter node) {
4325-
DefaultFormalParameter toNode = this._toNode as DefaultFormalParameter;
4322+
bool visitDefaultFormalParameter(covariant DefaultFormalParameterImpl node) {
4323+
var toNode = this._toNode as DefaultFormalParameterImpl;
43264324
return _and(
43274325
_isEqualNodes(node.parameter, toNode.parameter),
4328-
// ignore: deprecated_member_use_from_same_package
43294326
node.kind == toNode.kind,
43304327
_isEqualTokens(node.separator, toNode.separator),
43314328
_isEqualNodes(node.defaultValue, toNode.defaultValue));

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import 'package:analyzer/dart/element/type.dart';
1515
import 'package:analyzer/error/error.dart';
1616
import 'package:analyzer/src/dart/analysis/experiments.dart';
1717
import 'package:analyzer/src/dart/analysis/session.dart';
18+
import 'package:analyzer/src/dart/ast/ast.dart';
1819
import 'package:analyzer/src/dart/constant/compute.dart';
1920
import 'package:analyzer/src/dart/constant/evaluation.dart';
2021
import 'package:analyzer/src/dart/constant/value.dart';
@@ -6679,8 +6680,7 @@ class ParameterElementImpl extends VariableElementImpl
66796680
if (_parameterKind != null) return _parameterKind;
66806681

66816682
if (linkedNode != null) {
6682-
FormalParameter linkedNode = this.linkedNode;
6683-
// ignore: deprecated_member_use_from_same_package
6683+
var linkedNode = this.linkedNode as FormalParameterImpl;
66846684
return linkedNode.kind;
66856685
}
66866686
return _parameterKind;

pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
336336
}
337337

338338
@override
339-
void visitDefaultFormalParameter(DefaultFormalParameter node) {
339+
void visitDefaultFormalParameter(covariant DefaultFormalParameterImpl node) {
340340
NormalFormalParameter normalParameter = node.parameter;
341341
SimpleIdentifier nameNode = normalParameter.identifier;
342342

@@ -358,7 +358,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
358358
element.isConst = node.isConst;
359359
element.isExplicitlyCovariant = node.parameter.covariantKeyword != null;
360360
element.isFinal = node.isFinal;
361-
// ignore: deprecated_member_use_from_same_package
362361
element.parameterKind = node.kind;
363362

364363
if (normalParameter is SimpleFormalParameter &&
@@ -457,7 +456,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
457456
}
458457

459458
@override
460-
void visitFieldFormalParameter(FieldFormalParameter node) {
459+
void visitFieldFormalParameter(covariant FieldFormalParameterImpl node) {
461460
FieldFormalParameterElementImpl element;
462461
if (node.parent is DefaultFormalParameter) {
463462
element = node.declaredElement;
@@ -475,7 +474,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
475474
element.isConst = node.isConst;
476475
element.isExplicitlyCovariant = node.covariantKeyword != null;
477476
element.isFinal = node.isFinal;
478-
// ignore: deprecated_member_use_from_same_package
479477
element.parameterKind = node.kind;
480478
_setCodeRange(element, node);
481479
element.metadata = _createElementAnnotations(node.metadata);
@@ -629,7 +627,9 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
629627
}
630628

631629
@override
632-
void visitFunctionTypedFormalParameter(FunctionTypedFormalParameter node) {
630+
void visitFunctionTypedFormalParameter(
631+
covariant FunctionTypedFormalParameterImpl node,
632+
) {
633633
ParameterElementImpl element;
634634
if (node.parent is DefaultFormalParameter) {
635635
element = node.declaredElement;
@@ -643,7 +643,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
643643
element.isConst = node.isConst;
644644
element.isExplicitlyCovariant = node.covariantKeyword != null;
645645
element.isFinal = node.isFinal;
646-
// ignore: deprecated_member_use_from_same_package
647646
element.parameterKind = node.kind;
648647
_setCodeRange(element, node);
649648
}
@@ -857,7 +856,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
857856
}
858857

859858
@override
860-
void visitSimpleFormalParameter(SimpleFormalParameter node) {
859+
void visitSimpleFormalParameter(covariant SimpleFormalParameterImpl node) {
861860
ParameterElementImpl element;
862861
if (node.parent is DefaultFormalParameter) {
863862
element = node.declaredElement;
@@ -877,15 +876,14 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
877876
element.isConst = node.isConst;
878877
element.isExplicitlyCovariant = node.covariantKeyword != null;
879878
element.isFinal = node.isFinal;
880-
// ignore: deprecated_member_use_from_same_package
881879
element.parameterKind = node.kind;
882880
if (node.type == null) {
883881
element.hasImplicitType = true;
884882
}
885-
(node as SimpleFormalParameterImpl).declaredElement = element;
883+
node.declaredElement = element;
886884
}
887885
nameNode?.staticElement = element;
888-
(node as SimpleFormalParameterImpl).declaredElement = element;
886+
node.declaredElement = element;
889887
}
890888

891889
node.type?.accept(this);

pkg/analyzer/lib/src/summary2/function_type_builder.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:analyzer/dart/element/nullability_suffix.dart';
88
import 'package:analyzer/dart/element/type.dart';
99
import 'package:analyzer/dart/element/type_visitor.dart';
1010
import 'package:analyzer/src/dart/ast/ast.dart';
11+
import 'package:analyzer/src/dart/ast/extensions.dart';
1112
import 'package:analyzer/src/dart/element/element.dart';
1213
import 'package:analyzer/src/dart/element/type.dart';
1314
import 'package:analyzer/src/dart/element/type_visitor.dart';
@@ -160,11 +161,10 @@ class FunctionTypeBuilder extends TypeBuilder {
160161
bool isNNBD,
161162
FormalParameterList node,
162163
) {
163-
return node.parameters.map((parameter) {
164+
return node.parameters.asImpl.map((parameter) {
164165
return ParameterElementImpl.synthetic(
165166
parameter.identifier?.name ?? '',
166167
_getParameterType(isNNBD, parameter),
167-
// ignore: deprecated_member_use_from_same_package
168168
parameter.kind,
169169
);
170170
}).toList();

pkg/analyzer/lib/src/summary2/named_type_builder.dart

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'package:analyzer/dart/element/element.dart';
77
import 'package:analyzer/dart/element/nullability_suffix.dart';
88
import 'package:analyzer/dart/element/type.dart';
99
import 'package:analyzer/dart/element/type_visitor.dart';
10+
import 'package:analyzer/src/dart/ast/extensions.dart';
1011
import 'package:analyzer/src/dart/element/element.dart';
1112
import 'package:analyzer/src/dart/element/type.dart';
1213
import 'package:analyzer/src/dart/element/type_algebra.dart';
@@ -203,15 +204,7 @@ class NamedTypeBuilder extends TypeBuilder {
203204
}) {
204205
var returnType = _buildNodeType(returnTypeNode);
205206
var typeParameters = _typeParameters(typeParameterList);
206-
207-
var formalParameters = parameterList.parameters.map((parameter) {
208-
return ParameterElementImpl.synthetic(
209-
parameter.identifier?.name ?? '',
210-
_buildFormalParameterType(parameter),
211-
// ignore: deprecated_member_use_from_same_package
212-
parameter.kind,
213-
);
214-
}).toList();
207+
var formalParameters = _formalParameters(parameterList);
215208

216209
return FunctionTypeImpl(
217210
typeFormals: typeParameters,
@@ -242,6 +235,16 @@ class NamedTypeBuilder extends TypeBuilder {
242235
}
243236
}
244237

238+
List<ParameterElementImpl> _formalParameters(FormalParameterList node) {
239+
return node.parameters.asImpl.map((parameter) {
240+
return ParameterElementImpl.synthetic(
241+
parameter.identifier?.name ?? '',
242+
_buildFormalParameterType(parameter),
243+
parameter.kind,
244+
);
245+
}).toList();
246+
}
247+
245248
NullabilitySuffix _getNullabilitySuffix(bool hasQuestion) {
246249
if (hasQuestion) {
247250
return NullabilitySuffix.question;

pkg/analyzer/lib/src/summary2/types_builder.dart

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:analyzer/dart/element/element.dart';
88
import 'package:analyzer/dart/element/nullability_suffix.dart';
99
import 'package:analyzer/dart/element/type.dart';
1010
import 'package:analyzer/src/dart/analysis/session.dart';
11+
import 'package:analyzer/src/dart/ast/extensions.dart';
1112
import 'package:analyzer/src/dart/element/element.dart';
1213
import 'package:analyzer/src/dart/element/type.dart';
1314
import 'package:analyzer/src/dart/element/type_system.dart';
@@ -55,24 +56,8 @@ class TypesBuilder {
5556
NullabilitySuffix nullabilitySuffix,
5657
) {
5758
var returnType = returnTypeNode?.type ?? _dynamicType;
58-
59-
List<TypeParameterElement> typeParameters;
60-
if (typeParameterList != null) {
61-
typeParameters = typeParameterList.typeParameters
62-
.map<TypeParameterElement>((p) => p.declaredElement)
63-
.toList();
64-
} else {
65-
typeParameters = const <TypeParameterElement>[];
66-
}
67-
68-
var formalParameters = parameterList.parameters.map((parameter) {
69-
return ParameterElementImpl.synthetic(
70-
parameter.identifier?.name ?? '',
71-
_getType(parameter),
72-
// ignore: deprecated_member_use_from_same_package
73-
parameter.kind,
74-
);
75-
}).toList();
59+
var typeParameters = _typeParameters(typeParameterList);
60+
var formalParameters = _formalParameters(parameterList);
7661

7762
return FunctionTypeImpl(
7863
typeFormals: typeParameters,
@@ -156,6 +141,16 @@ class TypesBuilder {
156141
}
157142
}
158143

144+
List<ParameterElementImpl> _formalParameters(FormalParameterList node) {
145+
return node.parameters.asImpl.map((parameter) {
146+
return ParameterElementImpl.synthetic(
147+
parameter.identifier?.name ?? '',
148+
_getType(parameter),
149+
parameter.kind,
150+
);
151+
}).toList();
152+
}
153+
159154
void _functionTypeAlias(FunctionTypeAlias node) {
160155
var returnTypeNode = node.returnType;
161156
LazyAst.setReturnType(node, returnTypeNode?.type ?? _dynamicType);
@@ -188,6 +183,16 @@ class TypesBuilder {
188183
}
189184
}
190185

186+
List<TypeParameterElement> _typeParameters(TypeParameterList node) {
187+
if (node == null) {
188+
return const <TypeParameterElement>[];
189+
}
190+
191+
return node.typeParameters
192+
.map<TypeParameterElement>((p) => p.declaredElement)
193+
.toList();
194+
}
195+
191196
static DartType _getType(FormalParameter node) {
192197
if (node is DefaultFormalParameter) {
193198
return _getType(node.parameter);

0 commit comments

Comments
 (0)