@@ -128,9 +128,9 @@ class FreshTypeParameters {
128128 FreshTypeParameters (this .freshTypeParameters, this .substitution);
129129
130130 FunctionTypeImpl applyToFunctionType (FunctionType type) {
131- return FunctionTypeImpl (
132- typeFormals : freshTypeParameters. map ((e) => e.firstFragment). toList () ,
133- parameters : type.parameters .map ((parameter) {
131+ return FunctionTypeImpl . v2 (
132+ typeParameters : freshTypeParameters,
133+ formalParameters : type.formalParameters .map ((parameter) {
134134 var type = substitute (parameter.type);
135135 return parameter.copyWith (type: type);
136136 }).toFixedList (),
@@ -146,21 +146,15 @@ class FreshTypeParameters {
146146abstract class MapSubstitution extends Substitution {
147147 const MapSubstitution ();
148148
149- Map <TypeParameterElement , DartType > get map;
150-
151- Map <TypeParameterElement2 , DartType > get map2 {
152- return map.map ((key, value) {
153- return MapEntry (key.asElement2, value);
154- });
155- }
149+ Map <TypeParameterElement2 , DartType > get map;
156150}
157151
158152abstract class Substitution {
159153 static const MapSubstitution empty = _NullSubstitution .instance;
160154
161155 const Substitution ();
162156
163- DartType ? getSubstitute (TypeParameterElement parameter, bool upperBound);
157+ DartType ? getSubstitute (TypeParameterElement2 parameter, bool upperBound);
164158
165159 InterfaceTypeImpl mapInterfaceType (InterfaceType type) {
166160 return substituteType (type) as InterfaceTypeImpl ;
@@ -203,9 +197,7 @@ abstract class Substitution {
203197 if (map.isEmpty) {
204198 return _NullSubstitution .instance;
205199 }
206- return _MapSubstitution (
207- map.map ((key, value) => MapEntry (key.asElement, value)),
208- );
200+ return _MapSubstitution (map.map ((key, value) => MapEntry (key, value)));
209201 }
210202
211203 /// Substitutes the Nth parameter in [parameters] with the Nth type in
@@ -214,7 +206,7 @@ abstract class Substitution {
214206 List <TypeParameterElement > parameters,
215207 List <DartType > types,
216208 ) {
217- return fromPairs2 (parameters.map ((p) => p.asElement2).toList (), types);
209+ return fromPairs2 (parameters.map ((p) => p.asElement2).toFixedList (), types);
218210 }
219211
220212 /// Substitutes the Nth parameter in [parameters] with the Nth type in
@@ -243,65 +235,65 @@ class _CombinedSubstitution extends Substitution {
243235 _CombinedSubstitution (this .first, this .second);
244236
245237 @override
246- DartType ? getSubstitute (TypeParameterElement parameter, bool upperBound) {
238+ DartType ? getSubstitute (TypeParameterElement2 parameter, bool upperBound) {
247239 return first.getSubstitute (parameter, upperBound) ??
248240 second.getSubstitute (parameter, upperBound);
249241 }
250242}
251243
252244class _FreshTypeParametersSubstitutor extends _TypeSubstitutor {
253- final Map <TypeParameterElement , DartType > substitution = {};
245+ final Map <TypeParameterElement2 , DartType > substitution = {};
254246
255247 _FreshTypeParametersSubstitutor (_TypeSubstitutor super .outer);
256248
257249 @override
258- List <TypeParameterElement > freshTypeParameters (
259- List <TypeParameterElement > elements) {
250+ List <TypeParameterElement2 > freshTypeParameters (
251+ List <TypeParameterElement2 > elements) {
260252 if (elements.isEmpty) {
261- return const < TypeParameterElement > [];
253+ return const < TypeParameterElement2 > [];
262254 }
263255
264256 var freshElements = List .generate (elements.length, (index) {
265257 // TODO(kallentu): : Clean up TypeParameterElementImpl casting once
266258 // variance is added to the interface.
267- var element = elements[index] as TypeParameterElementImpl ;
268- var freshElement = TypeParameterElementImpl (element.name , - 1 );
259+ var element = elements[index] as TypeParameterElementImpl2 ;
260+ var freshElement = TypeParameterElementImpl (element.name3 ! , - 1 );
269261 var freshType = freshElement.instantiate (
270262 nullabilitySuffix: NullabilitySuffix .none,
271263 );
272264 substitution[element] = freshType;
273265 if (! element.isLegacyCovariant) {
274266 freshElement.variance = element.variance;
275267 }
276- return freshElement;
268+ return freshElement.asElement2 ;
277269 }, growable: false );
278270
279271 for (var i = 0 ; i < freshElements.length; i++ ) {
280272 var element = elements[i];
281273 var bound = element.bound;
282274 if (bound != null ) {
283275 var freshElement = freshElements[i];
284- freshElement.bound = bound.accept (this );
276+ freshElement.bound = bound.accept (this ) as TypeImpl ? ;
285277 }
286278 }
287279
288280 return freshElements;
289281 }
290282
291283 @override
292- DartType ? lookup (TypeParameterElement parameter, bool upperBound) {
284+ DartType ? lookup (TypeParameterElement2 parameter, bool upperBound) {
293285 return substitution[parameter];
294286 }
295287}
296288
297289class _MapSubstitution extends MapSubstitution {
298290 @override
299- final Map <TypeParameterElement , DartType > map;
291+ final Map <TypeParameterElement2 , DartType > map;
300292
301293 _MapSubstitution (this .map);
302294
303295 @override
304- DartType ? getSubstitute (TypeParameterElement parameter, bool upperBound) {
296+ DartType ? getSubstitute (TypeParameterElement2 parameter, bool upperBound) {
305297 return map[parameter];
306298 }
307299
@@ -315,11 +307,11 @@ class _NullSubstitution extends MapSubstitution {
315307 const _NullSubstitution ();
316308
317309 @override
318- Map <TypeParameterElement , DartType > get map => const {};
310+ Map <TypeParameterElement2 , DartType > get map => const {};
319311
320312 @override
321- DartType getSubstitute (TypeParameterElement parameter, bool upperBound) {
322- return TypeParameterTypeImpl (
313+ DartType getSubstitute (TypeParameterElement2 parameter, bool upperBound) {
314+ return TypeParameterTypeImpl . v2 (
323315 element: parameter,
324316 nullabilitySuffix: NullabilitySuffix .none,
325317 );
@@ -343,13 +335,13 @@ class _TopSubstitutor extends _TypeSubstitutor {
343335 }
344336
345337 @override
346- List <TypeParameterElement > freshTypeParameters (
347- List <TypeParameterElement > parameters) {
338+ List <TypeParameterElement2 > freshTypeParameters (
339+ List <TypeParameterElement2 > parameters) {
348340 throw 'Create a fresh environment first' ;
349341 }
350342
351343 @override
352- DartType ? lookup (TypeParameterElement parameter, bool upperBound) {
344+ DartType ? lookup (TypeParameterElement2 parameter, bool upperBound) {
353345 return substitution.getSubstitute (parameter, upperBound);
354346 }
355347}
@@ -383,10 +375,10 @@ abstract class _TypeSubstitutor
383375 target.useCounter++ ;
384376 }
385377
386- List <TypeParameterElement > freshTypeParameters (
387- List <TypeParameterElement > elements);
378+ List <TypeParameterElement2 > freshTypeParameters (
379+ List <TypeParameterElement2 > elements);
388380
389- DartType ? getSubstitute (TypeParameterElement parameter) {
381+ DartType ? getSubstitute (TypeParameterElement2 parameter) {
390382 _TypeSubstitutor ? environment = this ;
391383 while (environment != null ) {
392384 var replacement = environment.lookup (parameter, covariantContext);
@@ -403,7 +395,7 @@ abstract class _TypeSubstitutor
403395 covariantContext = ! covariantContext;
404396 }
405397
406- DartType ? lookup (TypeParameterElement parameter, bool upperBound);
398+ DartType ? lookup (TypeParameterElement2 parameter, bool upperBound);
407399
408400 _FreshTypeParametersSubstitutor newInnerEnvironment () {
409401 return _FreshTypeParametersSubstitutor (this );
@@ -428,7 +420,7 @@ abstract class _TypeSubstitutor
428420 int before = useCounter;
429421
430422 var inner = this ;
431- var typeFormals = type.typeFormals ;
423+ var typeFormals = type.typeParameters ;
432424 if (typeFormals.isNotEmpty) {
433425 inner = newInnerEnvironment ();
434426 typeFormals = inner.freshTypeParameters (typeFormals);
@@ -437,7 +429,7 @@ abstract class _TypeSubstitutor
437429 // Invert the variance when translating parameters.
438430 inner.invertVariance ();
439431
440- var parameters = type.parameters .map ((parameter) {
432+ var parameters = type.formalParameters .map ((parameter) {
441433 var type = parameter.type.accept (inner);
442434 return parameter.copyWith (type: type);
443435 }).toFixedList ();
@@ -449,9 +441,9 @@ abstract class _TypeSubstitutor
449441
450442 if (useCounter == before) return type;
451443
452- return FunctionTypeImpl (
453- typeFormals : typeFormals,
454- parameters : parameters,
444+ return FunctionTypeImpl . v2 (
445+ typeParameters : typeFormals,
446+ formalParameters : parameters,
455447 returnType: returnType,
456448 nullabilitySuffix: type.nullabilitySuffix,
457449 alias: alias,
@@ -478,9 +470,9 @@ abstract class _TypeSubstitutor
478470 if (typeParameters.isNotEmpty) {
479471 inner = newInnerEnvironment ();
480472 typeParameters = inner
481- .freshTypeParameters (typeParameters. map ((e) => e.asElement). toList () )
482- .map ((e) => e.asElement2 as TypeParameterElementImpl2 )
483- .toList ();
473+ .freshTypeParameters (typeParameters)
474+ .cast < TypeParameterElementImpl2 >( )
475+ .toFixedList ();
484476 }
485477
486478 // Invert the variance when translating parameters.
@@ -489,7 +481,7 @@ abstract class _TypeSubstitutor
489481 var formalParameters = type.formalParameters.map ((formalParameter) {
490482 var type = formalParameter.type.accept (inner);
491483 return formalParameter.copyWith (type: type);
492- }).toList ();
484+ }).toFixedList ();
493485
494486 inner.invertVariance ();
495487
@@ -593,7 +585,7 @@ abstract class _TypeSubstitutor
593585
594586 @override
595587 DartType visitTypeParameterType (TypeParameterType type) {
596- var argument = getSubstitute (type.element );
588+ var argument = getSubstitute (type.element3 );
597589 if (argument == null ) {
598590 return type;
599591 }
@@ -616,8 +608,8 @@ abstract class _TypeSubstitutor
616608 if (alias == null ) {
617609 return null ;
618610 }
619- return InstantiatedTypeAliasElementImpl (
620- element: alias.element ,
611+ return InstantiatedTypeAliasElementImpl . v2 (
612+ element: alias.element2 ,
621613 typeArguments: _mapList (alias.typeArguments),
622614 );
623615 }
0 commit comments