)]}'
{
  "commit": "1d83ac7128a5898d580a8a4164a78648a93ce2d4",
  "tree": "fcbf255d2f5fd7823c66f4d5e874a79d0014bc05",
  "parents": [
    "197bac8574c511b1937b60ce6405462f9af678ce"
  ],
  "author": {
    "name": "Derek Mauro",
    "email": "dmauro@google.com",
    "time": "Mon Aug 28 13:30:41 2023 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Aug 28 13:32:04 2023 -0700"
  },
  "message": "Implement ABSL_ATTRIBUTE_PURE_FUNCTION and ABSL_ATTRIBUTE_CONST_FUNCTION\n\nPure functions have no effects except to return a value, and their\nreturn value depends only on the parameters and global\nvariables. Functions of this kind can be subject to data flow analysis\nand might be eliminated. In practice, this means that repeated calls\nto the same function with the same arguments may be optimized away and\nonly evaluated once.\n\nConst functions are similar to pure functions, but may not depend on\nglobal variables at all.\n\nIt is an error not to use the result of a function with one of these\nattributes, since these functions have no other visible effects.\n\nSince some Abseil functions are tagged with these attributes, this is\npotentially a breaking change for code that doesn\u0027t use the result of\nthese functions.\n\nFor example, absl::Minutes() is tagged with\nABSL_ATTRIBUTE_CONST_FUNCTION.  If, for example, the result of\nabsl::Minutes(n) is unused, some compilers with issue a warning or\nerror. If this is the case, it is likely that there is a typo in the\ncode, or the call can be removed.\nPiperOrigin-RevId: 560803581\nChange-Id: Icd6f218be2cfb7226f8ab6b2d97cd960c0d3d72f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a7f279a025344622a5c7c5cdb145e5441b837e4f",
      "old_mode": 33188,
      "old_path": "absl/base/attributes.h",
      "new_id": "61b79f450adcc12d78329bff87fee810ec284db3",
      "new_mode": 33188,
      "new_path": "absl/base/attributes.h"
    }
  ]
}
