)]}'
{
  "commit": "ae4fd170937af54b2b459a0631ce090e6f307d6b",
  "tree": "653e5c7c62d89197b08393c2853e8d058e078b10",
  "parents": [
    "59fd4ef94daa991e6797b5aa6127e824f3067def"
  ],
  "author": {
    "name": "Nicholas Nethercote",
    "email": "n.nethercote@gmail.com",
    "time": "Wed Feb 18 08:17:53 2026 +1100"
  },
  "committer": {
    "name": "Nicholas Nethercote",
    "email": "n.nethercote@gmail.com",
    "time": "Sat Feb 21 06:05:28 2026 +1100"
  },
  "message": "Streamline query modifier macros.\n\nThere are six small macros used in `define_callbacks` that all expand to\none thing if a particular query modifier is present, and to another\nthing otherwise.\n\nOne of these macros looks for the `arena_cache` modifier:\n- `query_if_arena`\n\nTwo of these macros look for the `return_result_from_ensure_ok`\nmodifier:\n- `query_ensure_select`\n- `ensure_ok_result`\n\nThree of these macros look for the `separate_provide_extern` modifier:\n- `local_key_if_separate_extern`\n- `separate_provide_extern_decl`\n- `separate_provide_extern_default`\n\n(There is also `query_helper_param_ty!`, but it follows a different\npattern, and I will deal with it later.)\n\nThe \"one thing\"/\"another thing\" is different for every macro. For most\nof them you can\u0027t see at the macro call site what the expansion will be;\nyou have to look at the macro definition. This is annoying.\n\nThis commit reduces the six macros into three macros:\n- `if_arena_cache`\n- `if_return_result_from_ensure_ok`\n- `if_separate_provide_extern`\n\nThey all have the same form: they look for a modifier and then expand to\none *given* thing or the other *given* thing. You can see at the call\nsite the two possible expansions, which is much nicer. (Note:\n`query_if_arena` already had this form.)\n\nIdeally there would be a single macro instead of three, but I couldn\u0027t\nwork out a way to combine them.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "03618ee6acd46e3d0c2a62849ea7f5febd763336",
      "old_mode": 33188,
      "old_path": "compiler/rustc_middle/src/query/plumbing.rs",
      "new_id": "be368c6012f69dcb0d774e1b918b68f91d5859cd",
      "new_mode": 33188,
      "new_path": "compiler/rustc_middle/src/query/plumbing.rs"
    }
  ]
}
