public static boolean isSerializationImplicitlyUsedField(@NotNull UField field) {
    String name = field.getName();
    if (CommonClassNames.SERIAL_VERSION_UID_FIELD_NAME.equals(name)) {
      if (!PsiTypes.longType().equals(field.getType())) return false;
    }
    else if ("serialPersistentFields".equals(name)) {
      if (field.getVisibility() != UastVisibility.PRIVATE) return false;
      if (!(field.getType() instanceof PsiArrayType arrayType) || arrayType.getArrayDimensions() != 1) return false;
      PsiType componentType = arrayType.getComponentType();
      PsiClass aClass = PsiUtil.resolveClassInClassTypeOnly(componentType);
      if (aClass != null && !"java.io.ObjectStreamField".equals(aClass.getQualifiedName())) return false;
    }
    else {
      return false;
    }
    if (!field.isStatic() || !field.isFinal()) return false;
    UClass aClass = UDeclarationKt.getContainingDeclaration(field, UClass.class);
    return aClass == null || isSerializable(aClass, null);
  }
public static boolean isSerializationImplicitlyUsedField(@NotNull UField field)