analyzer: Convert callers of InheritanceManager3 to use InterfaceElement API

This includes all callers in analysis_server and analyzer_plugin. And
callers of `getOverridden4`.

Change-Id: Ia744f6c7260b445c6b1e02d3cf5515aaa9c7feeb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/432962
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
diff --git a/pkg/analysis_server/test/src/utilities/selection_coverage_test.dart b/pkg/analysis_server/test/src/utilities/selection_coverage_test.dart
index 4506cc8..2bf01cd 100644
--- a/pkg/analysis_server/test/src/utilities/selection_coverage_test.dart
+++ b/pkg/analysis_server/test/src/utilities/selection_coverage_test.dart
@@ -8,7 +8,6 @@
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/file_system/physical_file_system.dart';
-import 'package:analyzer/src/dart/element/inheritance_manager3.dart';
 import 'package:analyzer_testing/package_root.dart' as package_root;
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -209,7 +208,6 @@
     var astImplData = processAstImpl(astImplResult as ResolvedUnitResult);
     var selectionData = processSelection(selectionResult as ResolvedUnitResult);
     var visitedLists = selectionData.visitedLists;
-    var inheritanceManager = InheritanceManager3();
 
     var buffer = StringBuffer();
     for (var interface in astImplData.instantiableInterfaces) {
@@ -244,8 +242,9 @@
         var unvisitedNodeLists = {...declaredNodeLists};
         for (var visitedNodeList in visitedNodeLists) {
           unvisitedNodeLists.remove(visitedNodeList);
-          var overridden = inheritanceManager.getOverridden4(
-            visitedNodeList.enclosingElement as InterfaceElement,
+          var enclosingElement =
+              visitedNodeList.enclosingElement as InterfaceElement;
+          var overridden = enclosingElement.getOverridden(
             Name(visitedNodeList.library2.uri, visitedNodeList.name3!),
           );
           if (overridden != null) {
diff --git a/pkg/analysis_server/tool/code_completion/relevance_metrics.dart b/pkg/analysis_server/tool/code_completion/relevance_metrics.dart
index 1c7e55a..652913d 100644
--- a/pkg/analysis_server/tool/code_completion/relevance_metrics.dart
+++ b/pkg/analysis_server/tool/code_completion/relevance_metrics.dart
@@ -261,8 +261,6 @@
   /// The relevance data being collected.
   final RelevanceData data;
 
-  InheritanceManager3 inheritanceManager = InheritanceManager3();
-
   /// The library containing the compilation unit being visited.
   late LibraryElement enclosingLibrary;
 
@@ -529,7 +527,6 @@
     enclosingLibrary = node.declaredFragment!.element;
     typeProvider = enclosingLibrary.typeProvider;
     typeSystem = enclosingLibrary.typeSystem;
-    inheritanceManager = InheritanceManager3();
     featureComputer = FeatureComputer(typeSystem, typeProvider);
 
     var hasPrefix = false;
@@ -1132,8 +1129,7 @@
     var element = fragment.element;
     var enclosingElement = element.enclosingElement;
     if (!element.isStatic && enclosingElement is InterfaceElement) {
-      var overriddenMembers = inheritanceManager.getOverridden4(
-        enclosingElement,
+      var overriddenMembers = enclosingElement.getOverridden(
         Name(fragment.libraryFragment.source.uri, element.name3!),
       );
       if (overriddenMembers != null) {
diff --git a/pkg/analysis_server/tool/code_completion/relevance_table_generator.dart b/pkg/analysis_server/tool/code_completion/relevance_table_generator.dart
index a178c85..fd61b0f 100644
--- a/pkg/analysis_server/tool/code_completion/relevance_table_generator.dart
+++ b/pkg/analysis_server/tool/code_completion/relevance_table_generator.dart
@@ -21,7 +21,6 @@
 import 'package:analyzer/diagnostic/diagnostic.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/file_system/physical_file_system.dart';
-import 'package:analyzer/src/dart/element/inheritance_manager3.dart';
 import 'package:analyzer/src/util/file_paths.dart' as file_paths;
 import 'package:analyzer/src/utilities/extensions/flutter.dart';
 import 'package:analyzer_testing/package_root.dart' as package_root;
@@ -303,8 +302,6 @@
   /// The compilation unit in which data is currently being collected.
   late CompilationUnit unit;
 
-  late InheritanceManager3 inheritanceManager = InheritanceManager3();
-
   /// The library containing the compilation unit being visited.
   late LibraryElement enclosingLibrary;
 
@@ -532,7 +529,6 @@
     enclosingLibrary = node.declaredFragment!.element;
     typeProvider = enclosingLibrary.typeProvider;
     typeSystem = enclosingLibrary.typeSystem;
-    inheritanceManager = InheritanceManager3();
     featureComputer = FeatureComputer(typeSystem, typeProvider);
 
     for (var directive in node.directives) {
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
index 9b9fa86..bb02742 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
@@ -519,7 +519,7 @@
       ),
     );
 
-    unit.accept(OverrideVerifier(_inheritance, errorReporter));
+    unit.accept(OverrideVerifier(errorReporter));
 
     unit.accept(RedeclareVerifier(errorReporter));
 
@@ -543,7 +543,6 @@
       UnusedLocalElementsVerifier(
         fileAnalysis.errorListener,
         usedElements,
-        _inheritance,
         _libraryElement,
       ),
     );
diff --git a/pkg/analyzer/lib/src/error/override_verifier.dart b/pkg/analyzer/lib/src/error/override_verifier.dart
index afa859c..789f617 100644
--- a/pkg/analyzer/lib/src/error/override_verifier.dart
+++ b/pkg/analyzer/lib/src/error/override_verifier.dart
@@ -6,23 +6,19 @@
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/error/listener.dart';
-import 'package:analyzer/src/dart/element/inheritance_manager3.dart';
 import 'package:analyzer/src/error/codes.dart';
 
 /// Instances of the class `OverrideVerifier` visit all of the declarations in a
 /// compilation unit to verify that if they have an override annotation it is
 /// being used correctly.
 class OverrideVerifier extends RecursiveAstVisitor<void> {
-  /// The inheritance manager used to find overridden methods.
-  final InheritanceManager3 _inheritance;
-
   /// The error reporter used to report errors.
   final ErrorReporter _errorReporter;
 
   /// The current class or mixin.
   InterfaceElement? _currentClass;
 
-  OverrideVerifier(this._inheritance, this._errorReporter);
+  OverrideVerifier(this._errorReporter);
 
   @override
   void visitClassDeclaration(ClassDeclaration node) {
@@ -93,7 +89,7 @@
     var currentClass = _currentClass?.firstFragment;
     if (currentClass != null) {
       var name = Name.forElement(member)!;
-      return _inheritance.getOverridden4(currentClass.element, name) != null;
+      return currentClass.element.getOverridden(name) != null;
     } else {
       return false;
     }
diff --git a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
index 754702a..b0756e4 100644
--- a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
+++ b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
@@ -17,7 +17,6 @@
 import 'package:analyzer/src/dart/element/element.dart'
     show JoinPatternVariableElementImpl2, MetadataImpl;
 import 'package:analyzer/src/dart/element/extensions.dart';
-import 'package:analyzer/src/dart/element/inheritance_manager3.dart';
 import 'package:analyzer/src/dart/element/member.dart' show ExecutableMember;
 import 'package:analyzer/src/dart/element/type.dart';
 import 'package:analyzer/src/error/codes.dart';
@@ -499,9 +498,6 @@
   /// The elements know to be used.
   final UsedLocalElements _usedElements;
 
-  /// The inheritance manager used to find overridden methods.
-  final InheritanceManager3 _inheritanceManager;
-
   /// The URI of the library being verified.
   final Uri _libraryUri;
 
@@ -516,7 +512,6 @@
   UnusedLocalElementsVerifier(
     this._errorListener,
     this._usedElements,
-    this._inheritanceManager,
     LibraryElement library,
   ) : _libraryUri = library.uri,
       _wildCardVariablesEnabled = library.featureSet.isEnabled(
@@ -963,12 +958,9 @@
       var elementName = element.name3;
       if (elementName != null) {
         Name name = Name(_libraryUri, elementName);
-        var overridden = _inheritanceManager.getOverridden4(
-          enclosingElement,
-          name,
-        );
+        var overridden = enclosingElement.getOverridden(name);
         if (overridden == null) {
-          return [];
+          return const [];
         }
         return overridden.map(
           (e) => (e is ExecutableMember) ? e.baseElement : e,
diff --git a/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart b/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart
index f13ad19..1941a9a 100644
--- a/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart
+++ b/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart
@@ -9,7 +9,6 @@
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/source/source_range.dart';
-import 'package:analyzer/src/dart/element/inheritance_manager3.dart';
 import 'package:analyzer/src/test_utilities/find_node.dart';
 import 'package:analyzer/utilities/package_config_file_builder.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart' hide Element;
@@ -4137,13 +4136,9 @@
       }
     }
 
-    var inherited = InheritanceManager3().getInherited4(
-      targetElement,
-      Name(null, nameToOverride),
-    );
-
+    var inherited =
+        targetElement.getInheritedMember(Name(null, nameToOverride));
     var displayBuffer = displayText != null ? StringBuffer() : null;
-
     var builder = await newBuilder();
     await builder.addDartFileEdit(path, (builder) {
       builder.addInsertion(content.length - 2, (builder) {