Index: pkg/kernel/lib/src/incremental_class_hierarchy.dart |
diff --git a/pkg/kernel/lib/src/incremental_class_hierarchy.dart b/pkg/kernel/lib/src/incremental_class_hierarchy.dart |
index ce13ecf920a1a26266853de87feee3e92ec959f4..051aae18f61db5692b6ed52f17ae05f4cff69569 100644 |
--- a/pkg/kernel/lib/src/incremental_class_hierarchy.dart |
+++ b/pkg/kernel/lib/src/incremental_class_hierarchy.dart |
@@ -86,8 +86,7 @@ class IncrementalClassHierarchy implements ClassHierarchy { |
@override |
void forEachOverridePair(Class node, |
- callback(Member declaredMember, Member interfaceMember, bool isSetter), |
- {bool crossGettersSetters: false}) { |
+ callback(Member declaredMember, Member interfaceMember, bool isSetter)) { |
_ClassInfo info = _getInfo(node); |
for (var supertype in node.supers) { |
var superNode = supertype.classNode; |
@@ -104,11 +103,6 @@ class IncrementalClassHierarchy implements ClassHierarchy { |
isSetter: true); |
_reportOverrides(info.declaredSetters, superSetters, callback, |
isSetter: true, onlyAbstract: true); |
- |
- if (crossGettersSetters) { |
- _reportOverrides(info.declaredGettersAndCalls, superSetters, callback); |
- _reportOverrides(info.declaredSetters, superGetters, callback); |
- } |
} |
if (!node.isAbstract) { |
// If a non-abstract class declares an abstract method M whose |
@@ -126,6 +120,24 @@ class IncrementalClassHierarchy implements ClassHierarchy { |
} |
} |
+ @override |
+ void forEachCrossOverridePair(Class node, |
+ callback(Member declaredMember, Member interfaceMember, bool isSetter), |
+ {bool crossGettersSetters: false}) { |
+ _ClassInfo info = _getInfo(node); |
+ for (var supertype in node.supers) { |
+ var superNode = supertype.classNode; |
+ var superInfo = _getInfo(superNode); |
+ |
+ var superGetters = superInfo.interfaceGettersAndCalls; |
+ var superSetters = superInfo.interfaceSetters; |
+ |
+ _reportOverrides(info.declaredGettersAndCalls, superSetters, callback); |
+ _reportOverrides(info.declaredSetters, superGetters, callback, |
+ isSetter: true); |
+ } |
+ } |
+ |
@override |
Supertype getClassAsInstanceOf(Class node, Class superclass) { |
if (identical(node, superclass)) return node.asThisSupertype; |