22// for details. All rights reserved. Use of this source code is governed by a
33// BSD-style license that can be found in the LICENSE file.
44
5- // ignore_for_file: analyzer_use_new_elements
6-
7- import 'package:analyzer/dart/element/element.dart' ;
8- import 'package:analyzer/dart/element/element2.dart' ;
95import 'package:analyzer/dart/element/nullability_suffix.dart' ;
106import 'package:analyzer/dart/element/type.dart' ;
117import 'package:analyzer/dart/element/type_visitor.dart' ;
@@ -17,14 +13,13 @@ import 'package:analyzer/src/dart/element/type_algebra.dart';
1713import 'package:analyzer/src/dart/element/type_visitor.dart' ;
1814import 'package:analyzer/src/summary2/type_builder.dart' ;
1915import 'package:analyzer/src/utilities/extensions/collection.dart' ;
20- import 'package:analyzer/src/utilities/extensions/element.dart' ;
2116
2217/// The type builder for a [GenericFunctionType] .
2318class FunctionTypeBuilder extends TypeBuilder {
2419 static DynamicTypeImpl get _dynamicType => DynamicTypeImpl .instance;
2520
26- final List <TypeParameterElement > typeFormals ;
27- final List <ParameterElement > parameters ;
21+ final List <TypeParameterElementImpl2 > typeParameters ;
22+ final List <FormalParameterElementImpl > formalParameters ;
2823 final TypeImpl returnType;
2924
3025 @override
@@ -42,8 +37,8 @@ class FunctionTypeBuilder extends TypeBuilder {
4237 FunctionTypeImpl ? _type;
4338
4439 FunctionTypeBuilder (
45- this .typeFormals ,
46- this .parameters ,
40+ this .typeParameters ,
41+ this .formalParameters ,
4742 this .returnType,
4843 this .nullabilitySuffix, {
4944 this .node,
@@ -63,29 +58,21 @@ class FunctionTypeBuilder extends TypeBuilder {
6358 }
6459
6560 factory FunctionTypeBuilder .v2 ({
66- required List <TypeParameterElement2 > typeParameters,
67- required List <FormalParameterElement > formalParameters,
61+ required List <TypeParameterElementImpl2 > typeParameters,
62+ required List <FormalParameterElementImpl > formalParameters,
6863 required TypeImpl returnType,
6964 required NullabilitySuffix nullabilitySuffix,
7065 GenericFunctionTypeImpl ? node,
7166 }) {
7267 return FunctionTypeBuilder (
73- typeParameters. map ((e) => e.asElement). toList () ,
74- formalParameters. map ((e) => e.asElement). toList () ,
68+ typeParameters,
69+ formalParameters,
7570 returnType,
7671 nullabilitySuffix,
7772 node: node,
7873 );
7974 }
8075
81- List <FormalParameterElementMixin > get formalParameters {
82- return parameters.map ((p) => p.asElement2).toList (growable: false );
83- }
84-
85- List <TypeParameterElementImpl2 > get typeParameters => typeFormals
86- .map ((fragment) => fragment.asElement2 as TypeParameterElementImpl2 )
87- .toList ();
88-
8976 @override
9077 R accept <R >(TypeVisitor <R > visitor) {
9178 if (visitor is LinkingTypeVisitor <R >) {
@@ -103,27 +90,26 @@ class FunctionTypeBuilder extends TypeBuilder {
10390 return type;
10491 }
10592
106- for (var typeParameter in typeFormals) {
107- var typeParameterImpl = typeParameter as TypeParameterElementImpl ;
108- var bound = typeParameterImpl.bound;
93+ for (var typeParameter in typeParameters) {
94+ var bound = typeParameter.bound;
10995 if (bound != null ) {
110- typeParameterImpl .bound = _buildType (bound);
96+ typeParameter .bound = _buildType (bound);
11197 }
11298 }
11399
114- for (var parameter in parameters ) {
115- (parameter as ParameterElementImpl ) .type = _buildType (parameter .type);
100+ for (var formalParameter in formalParameters ) {
101+ formalParameter .type = _buildType (formalParameter .type);
116102 }
117103
118104 var builtReturnType = _buildType (returnType);
119- type = FunctionTypeImpl (
120- typeFormals : typeFormals ,
121- parameters : parameters ,
105+ type = FunctionTypeImpl . v2 (
106+ typeParameters : typeParameters ,
107+ formalParameters : formalParameters ,
122108 returnType: builtReturnType,
123109 nullabilitySuffix: nullabilitySuffix,
124110 );
125111
126- var fresh = getFreshTypeParameters (typeFormals );
112+ var fresh = getFreshTypeParameters2 (typeParameters );
127113 type = fresh.applyToFunctionType (type);
128114
129115 _type = type;
@@ -135,14 +121,14 @@ class FunctionTypeBuilder extends TypeBuilder {
135121 String toString () {
136122 var buffer = StringBuffer ();
137123
138- if (typeFormals .isNotEmpty) {
124+ if (typeParameters .isNotEmpty) {
139125 buffer.write ('<' );
140- buffer.write (typeFormals .join (', ' ));
126+ buffer.write (typeParameters .join (', ' ));
141127 buffer.write ('>' );
142128 }
143129
144130 buffer.write ('(' );
145- buffer.write (parameters .join (', ' ));
131+ buffer.write (formalParameters .join (', ' ));
146132 buffer.write (')' );
147133
148134 buffer.write (' → ' );
@@ -158,19 +144,19 @@ class FunctionTypeBuilder extends TypeBuilder {
158144 }
159145
160146 return FunctionTypeBuilder (
161- typeFormals ,
162- parameters ,
147+ typeParameters ,
148+ formalParameters ,
163149 returnType,
164150 nullabilitySuffix,
165151 node: node,
166152 );
167153 }
168154
169- static List <ParameterElementImpl > getParameters (
170- FormalParameterList node,
155+ static List <FormalParameterElementImpl > getParameters (
156+ FormalParameterListImpl node,
171157 ) {
172- return node.parameters.asImpl. map ((parameter) {
173- return ParameterElementImpl .synthetic (
158+ return node.parameters.map ((parameter) {
159+ return FormalParameterElementImpl .synthetic (
174160 parameter.name? .lexeme ?? '' ,
175161 _getParameterType (parameter),
176162 parameter.kind,
@@ -197,12 +183,12 @@ class FunctionTypeBuilder extends TypeBuilder {
197183 }
198184
199185 /// Return the type of the [node] as is, possibly a [TypeBuilder] .
200- static DartType _getParameterType (FormalParameter node) {
201- if (node is DefaultFormalParameter ) {
186+ static DartType _getParameterType (FormalParameterImpl node) {
187+ if (node is DefaultFormalParameterImpl ) {
202188 return _getParameterType (node.parameter);
203- } else if (node is SimpleFormalParameter ) {
189+ } else if (node is SimpleFormalParameterImpl ) {
204190 return _getNodeType (node.type);
205- } else if (node is FunctionTypedFormalParameter ) {
191+ } else if (node is FunctionTypedFormalParameterImpl ) {
206192 NullabilitySuffix nullabilitySuffix;
207193 if (node.question != null ) {
208194 nullabilitySuffix = NullabilitySuffix .question;
@@ -221,10 +207,12 @@ class FunctionTypeBuilder extends TypeBuilder {
221207 }
222208 }
223209
224- static List <TypeParameterElement > _getTypeParameters (
225- TypeParameterList ? node,
210+ static List <TypeParameterElementImpl2 > _getTypeParameters (
211+ TypeParameterListImpl ? node,
226212 ) {
227213 if (node == null ) return const [];
228- return node.typeParameters.map ((n) => n.declaredElement! ).toFixedList ();
214+ return node.typeParameters.map ((node) {
215+ return node.declaredFragment! .element;
216+ }).toFixedList ();
229217 }
230218}
0 commit comments