| Index: pkg/kernel/lib/class_hierarchy.dart
|
| diff --git a/pkg/kernel/lib/class_hierarchy.dart b/pkg/kernel/lib/class_hierarchy.dart
|
| index 67407748cfee4a9eb303b592d38f733888c8616b..15f8d7ec0104ba0b4bbf59cf3465fa0b5ce67149 100644
|
| --- a/pkg/kernel/lib/class_hierarchy.dart
|
| +++ b/pkg/kernel/lib/class_hierarchy.dart
|
| @@ -417,18 +417,20 @@ class ClosedWorldClassHierarchy implements ClassHierarchy {
|
| _reportOverrides(info.declaredSetters, superSetters, callback,
|
| isSetter: true, onlyAbstract: 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);
|
| + 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);
|
| + }
|
| }
|
|
|
| @override
|
|
|