anchor.diff:      }
   
       if (eq != null && hash == null) {
  -      rule.reportLint(eq.name);
  +      rule.reportLint(eq.name, errorCode: equalsMemberCode);
       }
       if (hash != null && eq == null) {
         if (hash is MethodDeclaration) {
  -        rule.reportLint(hash.name);
  +        rule.reportLint(hash.name, errorCode: hashMemberCode);
         } else if (hash is FieldDeclaration) {
  -        rule.reportLint(getFieldIdentifier(hash, 'hashCode'));
  +        rule.reportLint(getFieldIdentifier(hash, 'hashCode'),
  +            errorCode: hashMemberCode);
         }
       }
     }
  
positive.code: 
  const _details = r'''
  
  **DO** override `hashCode` if overriding `==`.
  
  Every object in Dart has a `hashCode`.  Both the `==` operator and the
  `hashCode` property of objects must be consistent in order for a common hash
  map implementation to function properly.  Thus, when overriding `==`, the
  `hashCode` should also be overriden to maintain consistency.
  
  **BAD:**
  ```
  
negative.code:   int get hashCode => value.hashCode;
  }
  ```
  ''';
  
  class HashAndEquals extends LintRule implements NodeLintRule {
  