)]}'
{
  "commit": "f8cfa56c7491b2b72d02f3f35d48354c374a45d1",
  "tree": "a98001ba0a2082bc7261ab807217b4b8a382bf3b",
  "parents": [
    "efd635d1642fc2a29e11988d28bff7372f4595a4"
  ],
  "author": {
    "name": "Lukasz Anforowicz",
    "email": "lukasza@google.com",
    "time": "Thu Sep 22 11:06:43 2022 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Sep 22 11:07:13 2022 -0700"
  },
  "message": "Delete `RcEq\u003cT\u003e` and instead provide `impl PartialEq for RsSnippet`.\n\n`salsa` requires that all query keys and query results can be compared\nfor equality.  Key equality is needed for basic `salsa` functionality\n(memoization of previous computations).  Result equality is needed to\ndetermine that a changed input doesn\u0027t affect the result of a given\ncomputation (and therefore computations transitively depending on the\nresult don\u0027t need to be redone).\n\nBefore this CL, equality of some query results was provided by `RcEq\u003cT\u003e`\nin Crubit\u0027s `salsa_utils.rs` (inspired by Chalk\u0027s `ArcEq`).  This worked\nbut pointer-based-equality would unnecessary treat equivalent results as\ndifferent.  This doesn\u0027t matter in practice, because Crubit never\nresets `salsa` inputs (i.e. only calls `set_ir` once) and so `salsa`\nwould never need to check equality of `RcEq`.  Still, having real,\nnon-pointer-based equality should help with incremental computations\nin the future (if they ever become used by Crubit).  And deleting\n`salsa_utils.rs` also means the code is smaller and easier to\nunderstand.\n\nPiperOrigin-RevId: 476146950\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4692df21af7e95fb60bf728360f8b0f1cbc70027",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/BUILD",
      "new_id": "357a5931e96bd60574db487d365bd4311200c040",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/BUILD"
    },
    {
      "type": "delete",
      "old_id": "9b50951fbf831e24d2357c6dba0ebcd52a62074a",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/salsa_utils.rs",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "60e874c86c5a26e6bc48398a760cd8171bc29515",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/src_code_gen.rs",
      "new_id": "ac8f005b033f8aba4618c1351f104f053a5539ae",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/src_code_gen.rs"
    }
  ]
}
