private void visitVariable(@NotNull PsiVariable variable, @Nullable PsiClass containingClass) {
      if (variable.hasModifierProperty(PsiModifier.TRANSIENT) || variable.hasModifierProperty(PsiModifier.STATIC)) {
        return;
      }
      if (!SerializationUtils.isSerializable(containingClass)) {
        return;
      }
      PsiType variableType = variable.getType();
      if (SerializationUtils.isProbablySerializable(variableType)) {
        return;
      }
      PsiClass variableClass = PsiUtil.resolveClassInClassTypeOnly(variableType);
      if (variableClass != null && isIgnoredSubclass(variableClass)) {
        return;
      }
      if (SerializationUtils.hasWriteObject(containingClass) || SerializationUtils.hasWriteReplace(containingClass)) {
        return;
      }
      if (AnnotationUtil.isAnnotated(variable, ignorableAnnotations, 0)) {
        return;
      }
      registerVariableError(variable, variable, containingClass.isRecord());
    }
private void visitVariable(@NotNull PsiVariable variable, @Nullable PsiClass containingClass)