| Index: pkg/analyzer/lib/src/generated/error_verifier.dart
|
| diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
|
| index d6c90a1690012d6b472a085baef2f2a28fa938bd..70aa151cd7bd61ecdba7c55b6ccd368b9666745c 100644
|
| --- a/pkg/analyzer/lib/src/generated/error_verifier.dart
|
| +++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
|
| @@ -5802,12 +5802,15 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
|
|
|
| MethodElement _findOverriddenMemberThatMustCallSuper(MethodDeclaration node) {
|
| ExecutableElement overriddenMember = _getOverriddenMember(node.element);
|
| - while (overriddenMember is MethodElement) {
|
| + List<ExecutableElement> seen = <ExecutableElement>[];
|
| + while (
|
| + overriddenMember is MethodElement && !seen.contains(overriddenMember)) {
|
| for (ElementAnnotation annotation in overriddenMember.metadata) {
|
| if (annotation.isMustCallSuper) {
|
| return overriddenMember;
|
| }
|
| }
|
| + seen.add(overriddenMember);
|
| // Keep looking up the chain.
|
| overriddenMember = _getOverriddenMember(overriddenMember);
|
| }
|
|
|