Index: pkg/kernel/lib/class_hierarchy.dart |
diff --git a/pkg/kernel/lib/class_hierarchy.dart b/pkg/kernel/lib/class_hierarchy.dart |
index 15f8d7ec0104ba0b4bbf59cf3465fa0b5ce67149..67407748cfee4a9eb303b592d38f733888c8616b 100644 |
--- a/pkg/kernel/lib/class_hierarchy.dart |
+++ b/pkg/kernel/lib/class_hierarchy.dart |
@@ -417,20 +417,18 @@ class ClosedWorldClassHierarchy implements ClassHierarchy { |
_reportOverrides(info.declaredSetters, superSetters, callback, |
isSetter: true, onlyAbstract: true); |
} |
- if (!class_.isAbstract) { |
- // If a non-abstract class declares an abstract method M whose |
- // implementation M' is inherited from the superclass, then the inherited |
- // method M' overrides the declared method M. |
- // This flies in the face of conventional override logic, but is necessary |
- // because an instance of the class will contain the method M' which can |
- // be invoked through the interface of M. |
- // Note that [_reportOverrides] does not report self-overrides, so in |
- // most cases these calls will just scan both lists and report nothing. |
- _reportOverrides(info.implementedGettersAndCalls, |
- info.declaredGettersAndCalls, callback); |
- _reportOverrides(info.implementedSetters, info.declaredSetters, callback, |
- isSetter: true); |
- } |
+ // If a class declares an abstract method M whose |
+ // implementation M' is inherited from the superclass, then the inherited |
+ // method M' overrides the declared method M. |
+ // This flies in the face of conventional override logic, but is necessary |
+ // because an instance of the class will contain the method M' which can |
+ // be invoked through the interface of M. |
+ // Note that [_reportOverrides] does not report self-overrides, so in |
+ // most cases these calls will just scan both lists and report nothing. |
+ _reportOverrides(info.implementedGettersAndCalls, |
+ info.declaredGettersAndCalls, callback); |
+ _reportOverrides(info.implementedSetters, info.declaredSetters, callback, |
+ isSetter: true); |
} |
@override |