)]}'
{
  "commit": "e29599472e08f421bff99aade061894fd402bc3b",
  "tree": "7cf77b85b1d9e825f01ba676c7473d28cdea8b3b",
  "parents": [
    "beae781308e9ddef13074a03faf57ca2fac59a5b",
    "b7e26ac77ee5d8762845ba9b0e18fc70a0e95cec"
  ],
  "author": {
    "name": "Jacob Pratt",
    "email": "jacob@jhpratt.dev",
    "time": "Tue Jun 09 16:52:53 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jun 09 16:52:53 2026 -0400"
  },
  "message": "Rollup merge of #157166 - cjgillot:retype-context-after, r\u003doli-obk\n\nChange type of async context parameter after state transform.\n\n`Future::poll` expects a `\u0026mut std::task::Context\u003c\u0027_\u003e`. Meanwhile, async coroutines use `std::future::ResumeTy` as resume parameter. This is meant to workaround the limitations of borrowck, which cannot prove that coroutines implement `for\u003c\u0027a, \u0027b\u003e CoroutineTrait\u003c\u0026\u0027a mut Context\u003c\u0027b\u003e\u003e`.\n\nIn the coroutine state transform, we need to change the signature from `ResumeTy` to the proper `\u0026mut Context\u003c\u0027_\u003e`. The current code attempts to find locals that have type `ResumeTy` to change their type. This is needlessly complex and relies on undocumented behaviour of the MIR builder.\n\nInstead, this PR proposes to replace the `ResumeTy` argument with a new local, with value `ResumeTy(transmute(context))`.\n\nBased on https://github.com/rust-lang/rust/pull/156875.\n",
  "tree_diff": []
}
