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' ;
5+ import 'package:analyzer/dart/element/element2.dart' ;
86import 'package:analyzer/dart/element/nullability_suffix.dart' ;
9- import 'package:analyzer/src/dart/element/element.dart' ;
107import 'package:analyzer/src/dart/element/extensions.dart' ;
118import 'package:analyzer/src/dart/element/type.dart' ;
129import 'package:analyzer/src/dart/element/type_provider.dart' ;
@@ -267,27 +264,26 @@ class GreatestLowerBoundHelper {
267264
268265 // The bounds of type parameters must be equal.
269266 // Otherwise the result is `Never`.
270- var fresh = _typeSystem.relateTypeParameters (f.typeFormals, g.typeFormals);
267+ var fresh = _typeSystem.relateTypeParameters2 (
268+ f.typeParameters,
269+ g.typeParameters,
270+ );
271271 if (fresh == null ) {
272272 return NeverTypeImpl .instance;
273273 }
274274
275275 f = f.instantiate (fresh.typeParameterTypes);
276276 g = g.instantiate (fresh.typeParameterTypes);
277277
278- var fParameters = f.parameters ;
279- var gParameters = g.parameters ;
278+ var fParameters = f.formalParameters ;
279+ var gParameters = g.formalParameters ;
280280
281- var parameters = < ParameterElement > [];
281+ var parameters = < FormalParameterElement > [];
282282 var fIndex = 0 ;
283283 var gIndex = 0 ;
284284 while (fIndex < fParameters.length && gIndex < gParameters.length) {
285- // TODO(paulberry): get rid of this cast by changing the type of
286- // `FunctionTypeImpl.parameters` to `List<ParameterElementMixin>`.
287- var fParameter = fParameters[fIndex] as ParameterElementMixin ;
288- // TODO(paulberry): get rid of this cast by changing the type of
289- // `FunctionTypeImpl.parameters` to `List<ParameterElementMixin>`.
290- var gParameter = gParameters[gIndex] as ParameterElementMixin ;
285+ var fParameter = fParameters[fIndex];
286+ var gParameter = gParameters[gIndex];
291287 if (fParameter.isPositional) {
292288 if (gParameter.isPositional) {
293289 fIndex++ ;
@@ -308,7 +304,13 @@ class GreatestLowerBoundHelper {
308304 }
309305 } else if (fParameter.isNamed) {
310306 if (gParameter.isNamed) {
311- var compareNames = fParameter.name.compareTo (gParameter.name);
307+ var fName = fParameter.name3;
308+ var gName = gParameter.name3;
309+ if (fName == null || gName == null ) {
310+ return NeverTypeImpl .instance;
311+ }
312+
313+ var compareNames = fName.compareTo (gName);
312314 if (compareNames == 0 ) {
313315 fIndex++ ;
314316 gIndex++ ;
@@ -371,9 +373,9 @@ class GreatestLowerBoundHelper {
371373
372374 var returnType = getGreatestLowerBound (f.returnType, g.returnType);
373375
374- return FunctionTypeImpl (
375- typeFormals : fresh.typeParameters,
376- parameters : parameters,
376+ return FunctionTypeImpl . v2 (
377+ typeParameters : fresh.typeParameters,
378+ formalParameters : parameters,
377379 returnType: returnType,
378380 nullabilitySuffix: NullabilitySuffix .none,
379381 );
0 commit comments