)]}'
{
  "commit": "85cc4b247bf65bfba878aaf600fd486f78091c71",
  "tree": "a4642504f21e351b4b2b8cd1c6e42d6e7101b7c5",
  "parents": [
    "143ca0b5ee37781de6d4ba367c7fa972fa4254ba",
    "ecb778fc61906ea2e94247435e516c8fcbc124c5"
  ],
  "author": {
    "name": "Jonathan Brouwer",
    "email": "jonathantbrouwer@gmail.com",
    "time": "Sun Feb 22 20:14:22 2026 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Feb 22 20:14:22 2026 +0100"
  },
  "message": "Rollup merge of #152958 - nnethercote:rustc_queries-fixes, r\u003doli-obk\n\n`rustc_queries` simplifications\n\nQueries have two ways of specifying code snippets, in `desc` and `cache_on_disk_if` blocks. An example:\n```rust\nquery check_liveness(key: LocalDefId) -\u003e \u0026\u0027tcx rustc_index::bit_set::DenseBitSet\u003cabi::FieldIdx\u003e {\n    arena_cache\n    desc { |tcx| \"checking liveness of variables in `{}`\", tcx.def_path_str(key.to_def_id()) }\n    cache_on_disk_if(tcx) { tcx.is_typeck_child(key.to_def_id()) }\n}\n```\nIf you need to use `tcx` in the snippet, you can use an explicit binding. But there are multiple problems with this.\n\n- The syntax used is different in the two snippets: `|tcx|` within the block vs. `(tcx)` outside the block. (!!)\n- Bug 1: In `desc` snippets you can leave out the `|tcx|` and still use `tcx`. Several existing queries do this.\n- Bug 2: In `desc` snippets you can always use `key` in the snippet to refer to the key, even if that\u0027s not the identifier used in the query head.\n- Finally, you can bind `tcx` and not use it, without a warning. Several existing queries do this.\n\nI think explicit `tcx` binding is silly. Many queries need `tcx` and this macro is already super-magical, so just making `tcx` implicitly available seems fine, rather than making the query writer jump through a little syntactic hoop. This makes both the query definitions and the proc macro simpler.\n\nr? @petrochenkov\n",
  "tree_diff": []
}
