@Override
    public void visitField(@NotNull PsiField field) {
      PsiClass aClass = field.getContainingClass();
      if (aClass == null) {
        return;
      }
      final String fieldName = field.getName();
      if (HardcodedMethodConstants.SERIAL_VERSION_UID.equals(fieldName)) {
        return;    //special case
      }
      PsiClass ancestorClass = PsiUtil.getContainingClass(aClass);
      while (ancestorClass != null) {
        final PsiField ancestorField = ancestorClass.findFieldByName(fieldName, false);
        if (ancestorField != null) {
          if (!m_ignoreInvisibleFields
              || ancestorField.hasModifierProperty(PsiModifier.STATIC)
              || !CommonJavaRefactoringUtil.isInStaticContext(aClass, ancestorClass)) {
            registerFieldError(field);
          }
        }
        aClass = ancestorClass;
        ancestorClass = PsiUtil.getContainingClass(aClass);
      }
    }
@Override
    public void visitField(@NotNull PsiField field)