@@ -21,7 +21,6 @@ import 'package:analyzer/src/dart/ast/ast.dart';
2121import 'package:analyzer/src/dart/ast/extensions.dart' ;
2222import 'package:analyzer/src/dart/element/element.dart' ;
2323import 'package:analyzer/src/dart/element/extensions.dart' ;
24- import 'package:analyzer/src/dart/element/inheritance_manager3.dart' ;
2524import 'package:analyzer/src/dart/element/member.dart' show ExecutableMember;
2625import 'package:analyzer/src/dart/element/type_provider.dart' ;
2726import 'package:analyzer/src/dart/element/type_system.dart' ;
@@ -60,9 +59,6 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
6059 /// The type system primitives.
6160 final TypeSystemImpl _typeSystem;
6261
63- /// The inheritance manager to access interface type hierarchy.
64- final InheritanceManager3 _inheritanceManager;
65-
6662 /// The current library.
6763 final LibraryElementImpl _currentLibrary;
6864
@@ -101,13 +97,11 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
10197 this ._currentLibrary,
10298 CompilationUnit unit, {
10399 required TypeSystemImpl typeSystem,
104- required InheritanceManager3 inheritanceManager,
105100 required AnalysisOptions analysisOptions,
106101 required WorkspacePackage ? workspacePackage,
107102 }) : _nullType = typeProvider.nullType,
108103 _typeSystem = typeSystem,
109104 _strictInference = analysisOptions.strictInference,
110- _inheritanceManager = inheritanceManager,
111105 _annotationVerifier = AnnotationVerifier (
112106 _errorReporter,
113107 _currentLibrary,
@@ -393,38 +387,26 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
393387 try {
394388 super .visitFieldDeclaration (node);
395389 for (var field in node.fields.variables) {
396- ExecutableElement ? getOverriddenPropertyAccessor () {
397- var element = field.declaredFragment! .element;
398- if (element is PropertyAccessorElement || element is FieldElement ) {
399- var name = element.name3;
400- if (name == null ) {
401- return null ;
402- }
403- var nameObj = Name (_currentLibrary.source.uri, name);
404- var enclosingElement = element.enclosingElement2! ;
405- var enclosingDeclaration = enclosingElement;
406- if (enclosingDeclaration is InterfaceElement ) {
407- var overridden = _inheritanceManager.getMember4 (
408- enclosingDeclaration,
409- nameObj,
410- forSuper: true ,
411- );
412- // Check for a setter.
413- if (overridden == null ) {
414- var setterName = Name (_currentLibrary.source.uri, '$name =' );
415- overridden = _inheritanceManager.getMember4 (
416- enclosingDeclaration,
417- setterName,
418- forSuper: true ,
419- );
420- }
421- return overridden;
422- }
423- }
424- return null ;
390+ if (! _invalidAccessVerifier._inTestDirectory) {
391+ _checkForAssignmentOfDoNotStore (field.initializer);
392+ }
393+
394+ var element = field.declaredFragment! .element;
395+ var enclosingElement = element.enclosingElement2! ;
396+ if (enclosingElement is ! InterfaceElement ) {
397+ continue ;
398+ }
399+
400+ ExecutableElement ? overriddenElement;
401+ if (element
402+ case PropertyAccessorElement (name3: var name? ) ||
403+ FieldElement (name3: var name? )) {
404+ var nameObj = Name (_currentLibrary.source.uri, name);
405+ overriddenElement =
406+ enclosingElement.getInheritedConcreteMember (nameObj) ??
407+ enclosingElement.getInheritedConcreteMember (nameObj.forSetter);
425408 }
426409
427- var overriddenElement = getOverriddenPropertyAccessor ();
428410 if (overriddenElement != null &&
429411 _hasNonVirtualAnnotation (overriddenElement)) {
430412 // Overridden members are always inside classes or mixins, which are
@@ -439,9 +421,6 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
439421 ],
440422 );
441423 }
442- if (! _invalidAccessVerifier._inTestDirectory) {
443- _checkForAssignmentOfDoNotStore (field.initializer);
444- }
445424 }
446425 } finally {
447426 _deprecatedVerifier.popInDeprecated ();
@@ -619,9 +598,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
619598 var elementIsOverride = false ;
620599 if (enclosingElement is InterfaceElement ) {
621600 if (element is MethodElement || element is PropertyAccessorElement ) {
622- elementIsOverride =
623- _inheritanceManager.getOverridden4 (enclosingElement, name) !=
624- null ;
601+ elementIsOverride = enclosingElement.getOverridden (name) != null ;
625602 }
626603 }
627604
@@ -638,11 +615,7 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
638615
639616 var overriddenElement =
640617 enclosingElement is InterfaceElement
641- ? _inheritanceManager.getMember4 (
642- enclosingElement,
643- name,
644- forSuper: true ,
645- )
618+ ? enclosingElement.getInheritedConcreteMember (name)
646619 : null ;
647620
648621 if (overriddenElement != null &&
0 commit comments