anchor.diff:  }
   
   class _Visitor extends SimpleAstVisitor<void> {
  +  static const LintCode hashMemberCode = const LintCode(
  +      'hash_and_equals', 'Override `==` if overriding `hashCode`.',
  +      correction: 'Implement `==`.');
  +  static const LintCode equalsMemberCode = const LintCode(
  +      'hash_and_equals', // ignore: prefer_single_quotes
  +      'Override `hashCode` if overriding `==`.',
  +      correction: 'Implement `hashCode`.');
  +
     final LintRule rule;
   
     _Visitor(this.rule);
  
positive.code:   int get hashCode => value.hashCode;
  }
  ```
  
  ''';
  
  class HashAndEquals extends LintRule implements NodeLintRule {
  
negative.code:     }
  
      if (eq != null && hash == null) {
        rule.reportLint(eq.name, errorCode: equalsMemberCode);
      }
      if (hash != null && eq == null) {
        if (hash is MethodDeclaration) {
          rule.reportLint(hash.name, errorCode: hashMemberCode);
        } else if (hash is FieldDeclaration) {
          rule.reportLint(getFieldIdentifier(hash, 'hashCode'),
              errorCode: hashMemberCode);
        }
      }
    }
  