| Index: pkg/analysis_server/lib/src/domains/analysis/implemented_dart.dart
|
| diff --git a/pkg/analysis_server/lib/src/domains/analysis/implemented_dart.dart b/pkg/analysis_server/lib/src/domains/analysis/implemented_dart.dart
|
| index 5391d5ed1e89c25bb008ab2580401bfde5f79716..42e72137e535184fdf36a08b20fa70b62126204b 100644
|
| --- a/pkg/analysis_server/lib/src/domains/analysis/implemented_dart.dart
|
| +++ b/pkg/analysis_server/lib/src/domains/analysis/implemented_dart.dart
|
| @@ -57,21 +57,23 @@ class ImplementedComputer {
|
| if (element.isSynthetic || _isStatic(element)) {
|
| return;
|
| }
|
| - String name = element.displayName;
|
| - if (name != null && _hasOverride(name)) {
|
| + if (_hasOverride(element)) {
|
| _addImplementedMember(element);
|
| }
|
| }
|
|
|
| - bool _hasOverride(String name) {
|
| + bool _hasOverride(Element element) {
|
| + String name = element.displayName;
|
| + LibraryElement library = element.library;
|
| for (ClassElement subtype in subtypes) {
|
| - MethodElement method = subtype.getMethod(name);
|
| - if (method != null) {
|
| - return !method.isStatic;
|
| + ClassMemberElement subElement = subtype.getMethod(name);
|
| + if (subElement == null) {
|
| + subElement = subtype.getField(name);
|
| }
|
| - FieldElement field = subtype.getField(name);
|
| - if (field != null) {
|
| - return !field.isStatic;
|
| + if (subElement != null &&
|
| + !subElement.isStatic &&
|
| + subElement.isAccessibleIn(library)) {
|
| + return true;
|
| }
|
| }
|
| return false;
|
|
|