Elements. Return List<InterfaceTypeImpl> from InterfaceElementImpl2.allSupertypes
Change-Id: I6c62a146c56ab22e3be9e777f3f968bd218ca5ca
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/429823
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/class_hierarchy.dart b/pkg/analyzer/lib/src/dart/element/class_hierarchy.dart
index 9d55bdc..afa2099 100644
--- a/pkg/analyzer/lib/src/dart/element/class_hierarchy.dart
+++ b/pkg/analyzer/lib/src/dart/element/class_hierarchy.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/dart/element/nullability_suffix.dart';
-import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/dart/element/type_algebra.dart';
@@ -17,7 +16,7 @@
return _getHierarchy(element).errors;
}
- List<InterfaceType> implementedInterfaces(InterfaceElementImpl2 element) {
+ List<InterfaceTypeImpl> implementedInterfaces(InterfaceElementImpl2 element) {
return _getHierarchy(element).interfaces;
}
@@ -45,7 +44,7 @@
hierarchy = _Hierarchy(
errors: const <ClassHierarchyError>[],
- interfaces: const <InterfaceType>[],
+ interfaces: const <InterfaceTypeImpl>[],
);
_map[element] = hierarchy;
@@ -82,7 +81,7 @@
}
var errors = <ClassHierarchyError>[];
- var interfaces = <InterfaceType>[];
+ var interfaces = <InterfaceTypeImpl>[];
for (var collector in interfacesMerger._map.values) {
var error = collector._error;
if (error != null) {
@@ -111,8 +110,8 @@
/// In opted-in libraries NNBD_TOP_MERGE of NORM of the interfaces must be
/// successful.
class IncompatibleInterfacesClassHierarchyError extends ClassHierarchyError {
- final InterfaceType first;
- final InterfaceType second;
+ final InterfaceTypeImpl first;
+ final InterfaceTypeImpl second;
IncompatibleInterfacesClassHierarchyError(this.first, this.second);
}
@@ -207,7 +206,7 @@
class _Hierarchy {
List<ClassHierarchyError> errors;
- List<InterfaceType> interfaces;
+ List<InterfaceTypeImpl> interfaces;
_Hierarchy({required this.errors, required this.interfaces});
}
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index ec69bac..0650f82 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -4957,10 +4957,10 @@
InterfaceTypeImpl? _thisType;
/// The cached result of [allSupertypes].
- List<InterfaceType>? _allSupertypes;
+ List<InterfaceTypeImpl>? _allSupertypes;
@override
- List<InterfaceType> get allSupertypes {
+ List<InterfaceTypeImpl> get allSupertypes {
return _allSupertypes ??= library2.session.classHierarchy
.implementedInterfaces(this);
}
diff --git a/pkg/analyzer/lib/src/fine/library_manifest.dart b/pkg/analyzer/lib/src/fine/library_manifest.dart
index d5d6a03..4eaa79b 100644
--- a/pkg/analyzer/lib/src/fine/library_manifest.dart
+++ b/pkg/analyzer/lib/src/fine/library_manifest.dart
@@ -7,7 +7,6 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/dart/analysis/file_state.dart';
import 'package:analyzer/src/dart/element/element.dart';
-import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/fine/lookup_name.dart';
import 'package:analyzer/src/fine/manifest_context.dart';
import 'package:analyzer/src/fine/manifest_id.dart';
@@ -754,7 +753,6 @@
// Ensure that we have interfaces of supertypes first.
for (var superType in element.allSupertypes) {
- superType as InterfaceTypeImpl;
addInterfacesToFill(superType.element3);
}