Elements. Migrate GreatestLowerBoundHelper.
Change-Id: Id5fba157cdf8c574012262423b9707d1978e7dc3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405564
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/greatest_lower_bound.dart b/pkg/analyzer/lib/src/dart/element/greatest_lower_bound.dart
index c74f13e..cfa5bf8 100644
--- a/pkg/analyzer/lib/src/dart/element/greatest_lower_bound.dart
+++ b/pkg/analyzer/lib/src/dart/element/greatest_lower_bound.dart
@@ -2,11 +2,8 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// ignore_for_file: analyzer_use_new_elements
-
-import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/element2.dart';
import 'package:analyzer/dart/element/nullability_suffix.dart';
-import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/dart/element/extensions.dart';
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/dart/element/type_provider.dart';
@@ -267,7 +264,10 @@
// The bounds of type parameters must be equal.
// Otherwise the result is `Never`.
- var fresh = _typeSystem.relateTypeParameters(f.typeFormals, g.typeFormals);
+ var fresh = _typeSystem.relateTypeParameters2(
+ f.typeParameters,
+ g.typeParameters,
+ );
if (fresh == null) {
return NeverTypeImpl.instance;
}
@@ -275,19 +275,15 @@
f = f.instantiate(fresh.typeParameterTypes);
g = g.instantiate(fresh.typeParameterTypes);
- var fParameters = f.parameters;
- var gParameters = g.parameters;
+ var fParameters = f.formalParameters;
+ var gParameters = g.formalParameters;
- var parameters = <ParameterElement>[];
+ var parameters = <FormalParameterElement>[];
var fIndex = 0;
var gIndex = 0;
while (fIndex < fParameters.length && gIndex < gParameters.length) {
- // TODO(paulberry): get rid of this cast by changing the type of
- // `FunctionTypeImpl.parameters` to `List<ParameterElementMixin>`.
- var fParameter = fParameters[fIndex] as ParameterElementMixin;
- // TODO(paulberry): get rid of this cast by changing the type of
- // `FunctionTypeImpl.parameters` to `List<ParameterElementMixin>`.
- var gParameter = gParameters[gIndex] as ParameterElementMixin;
+ var fParameter = fParameters[fIndex];
+ var gParameter = gParameters[gIndex];
if (fParameter.isPositional) {
if (gParameter.isPositional) {
fIndex++;
@@ -308,7 +304,13 @@
}
} else if (fParameter.isNamed) {
if (gParameter.isNamed) {
- var compareNames = fParameter.name.compareTo(gParameter.name);
+ var fName = fParameter.name3;
+ var gName = gParameter.name3;
+ if (fName == null || gName == null) {
+ return NeverTypeImpl.instance;
+ }
+
+ var compareNames = fName.compareTo(gName);
if (compareNames == 0) {
fIndex++;
gIndex++;
@@ -371,9 +373,9 @@
var returnType = getGreatestLowerBound(f.returnType, g.returnType);
- return FunctionTypeImpl(
- typeFormals: fresh.typeParameters,
- parameters: parameters,
+ return FunctionTypeImpl.v2(
+ typeParameters: fresh.typeParameters,
+ formalParameters: parameters,
returnType: returnType,
nullabilitySuffix: NullabilitySuffix.none,
);