@Override
    public void visitClass(@NotNull PsiClass aClass) {
      if (!containsSynchronization(aClass)) {
        return;
      }
      final VariableAccessVisitor visitor = new VariableAccessVisitor(aClass, countGettersAndSetters);
      aClass.accept(visitor);
      final Set<PsiField> fields = visitor.getInappropriatelyAccessedFields();
      for (final PsiField field : fields) {
        if (field.hasModifierProperty(PsiModifier.FINAL) ||
            field.hasModifierProperty(PsiModifier.VOLATILE)) {
          continue;
        }
        final PsiClass containingClass = field.getContainingClass();
        if (aClass.equals(containingClass)) {
          registerFieldError(field, field);
        }
      }
    }
@Override
    public void visitClass(@NotNull PsiClass aClass)