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);
       }