)]}'
{
  "log": [
    {
      "commit": "b5b9c92b2d8ce77cb9902329140ffe34fd32ecbf",
      "tree": "c4d98d664f10c0611c82800067512b2e0d841ea6",
      "parents": [
        "4b007f0b0ec0d4abb9b299e9feef1bf1fc390afd",
        "a793afa413f172ed91c0454585c8f408b40a9e64"
      ],
      "author": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Mon Jul 27 07:27:57 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 07:27:57 2026 +0000"
      },
      "message": "Merge pull request #5228 from rust-lang/rustup-2026-07-27\n\nAutomatic Rustup\n"
    },
    {
      "commit": "4b007f0b0ec0d4abb9b299e9feef1bf1fc390afd",
      "tree": "e32d6006c60a87548e28c8c5df186bb946890d57",
      "parents": [
        "15e1f274ca9cdeba049d138487ef849a957b4718",
        "8ec08efa0bcba42c0c0e94f8af1c7a75e0aed947"
      ],
      "author": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Mon Jul 27 07:17:21 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 07:17:21 2026 +0000"
      },
      "message": "Merge pull request #5191 from RalfJung/single-thread-no-store-buffer\n\nskip weak memory buffer handling when there is only one thread\n"
    },
    {
      "commit": "a793afa413f172ed91c0454585c8f408b40a9e64",
      "tree": "a35d2e7e65faf0a04c9a14d641b9e8e57a153191",
      "parents": [
        "d69a09f79200f8a2d79da5beb8d6dea43926ae5e"
      ],
      "author": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Mon Jul 27 08:23:02 2026 +0200"
      },
      "committer": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Mon Jul 27 08:54:50 2026 +0200"
      },
      "message": "bless test-cargo-miri\n"
    },
    {
      "commit": "8ec08efa0bcba42c0c0e94f8af1c7a75e0aed947",
      "tree": "e32d6006c60a87548e28c8c5df186bb946890d57",
      "parents": [
        "15e1f274ca9cdeba049d138487ef849a957b4718"
      ],
      "author": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Tue Jul 14 10:46:21 2026 +0200"
      },
      "committer": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Mon Jul 27 08:46:14 2026 +0200"
      },
      "message": "skip weak memory buffer handling when there is only one thread\n"
    },
    {
      "commit": "d69a09f79200f8a2d79da5beb8d6dea43926ae5e",
      "tree": "30605e466ca93e2d9eff66dcd6f089b6d2df663b",
      "parents": [
        "da0cc66bb3a68b9d77140d585770988fe596c6af"
      ],
      "author": {
        "name": "The Miri Cronjob Bot",
        "email": "miri@cron.bot",
        "time": "Mon Jul 27 05:42:18 2026 +0000"
      },
      "committer": {
        "name": "The Miri Cronjob Bot",
        "email": "miri@cron.bot",
        "time": "Mon Jul 27 05:42:18 2026 +0000"
      },
      "message": "fmt\n"
    },
    {
      "commit": "da0cc66bb3a68b9d77140d585770988fe596c6af",
      "tree": "e21e9b7196b6ef253687deb388d6dbc224968955",
      "parents": [
        "38a1922e77d2091e0b26b29bc5e9d5a8149710c8",
        "770df835113aca6b974a61a3e98a7054fff6c421"
      ],
      "author": {
        "name": "The Miri Cronjob Bot",
        "email": "miri@cron.bot",
        "time": "Mon Jul 27 05:41:43 2026 +0000"
      },
      "committer": {
        "name": "The Miri Cronjob Bot",
        "email": "miri@cron.bot",
        "time": "Mon Jul 27 05:41:43 2026 +0000"
      },
      "message": "Merge ref \u0027dfbea5bc945a\u0027 from rust-lang/rust\n\nPull recent changes from https://github.com/rust-lang/rust via Josh.\n\nUpstream ref: rust-lang/rust@dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8\nFiltered ref: rust-lang/miri@770df835113aca6b974a61a3e98a7054fff6c421\nUpstream diff: https://github.com/rust-lang/rust/compare/390279b302ca98ae270f434100ae3730531d1246...dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8\n\nThis merge was created using https://github.com/rust-lang/josh-sync.\n"
    },
    {
      "commit": "38a1922e77d2091e0b26b29bc5e9d5a8149710c8",
      "tree": "e3ed7ee75c0bc5c332019f43c684aedfb28506e1",
      "parents": [
        "15e1f274ca9cdeba049d138487ef849a957b4718"
      ],
      "author": {
        "name": "The Miri Cronjob Bot",
        "email": "miri@cron.bot",
        "time": "Mon Jul 27 05:36:39 2026 +0000"
      },
      "committer": {
        "name": "The Miri Cronjob Bot",
        "email": "miri@cron.bot",
        "time": "Mon Jul 27 05:36:39 2026 +0000"
      },
      "message": "Prepare for merging from rust-lang/rust\n\nThis updates the rust-version file to dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8.\n"
    },
    {
      "commit": "770df835113aca6b974a61a3e98a7054fff6c421",
      "tree": "be395837671b94d0e564f3332553543f4fa6f240",
      "parents": [
        "4fda19d9a2b68e66d545ace39c3c611f7a838d89",
        "6b0235add297929d62395f67ecae9911c5b04209"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Sun Jul 26 23:28:05 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Sun Jul 26 23:28:05 2026 +0000"
      },
      "message": "Auto merge of #159966 - JonathanBrouwer:rollup-efqUEIj, r\u003dJonathanBrouwer\n\nRollup of 28 pull requests\n\nSuccessful merges:\n\n - rust-lang/rust#159638 (bootstrap: Split the `Step` trait into multiple traits)\n - rust-lang/rust#159774 (rustc_trait_selection: fix trait solver hang caused by degenerate obligations)\n - rust-lang/rust#159837 (line-tables-only test: check that the line number matches the function name)\n - rust-lang/rust#159946 (Update Enzyme submodule to imporve llvm-cov)\n - rust-lang/rust#159962 (miri subtree update)\n - rust-lang/rust#156570 (tests: extend remap-path-prefix-std to all stdlib rlibs)\n - rust-lang/rust#159617 (Fix up `#[linkage]` target checking)\n - rust-lang/rust#159633 (Improve workings of attribute suggestions)\n - rust-lang/rust#159733 (std: Switch implementations of `thread_local!` for WASI)\n - rust-lang/rust#159783 (Check unsafe impls on safe EIIs)\n - rust-lang/rust#159810 (Add tuple never coercion collection regression test)\n - rust-lang/rust#159826 (Remove redundant `#[rustc_paren_sugar]` feature gate)\n - rust-lang/rust#159846 (Implement `str::copy_from_str`)\n - rust-lang/rust#159849 (rustc_parse: Stop returning `Option` from statement parsing)\n - rust-lang/rust#159853 (Updated expect messages for `CString` struct and method documentation)\n - rust-lang/rust#159875 (More cleanup in `rustc_attr_parsing`)\n - rust-lang/rust#159882 (Update expect messages in library/alloc/boxed.rs and library/alloc/string.rs to follow the style guide)\n - rust-lang/rust#159891 (Split multiline derives into std/rustc macros)\n - rust-lang/rust#159893 (Fix `find_attr` hygiene and `rustc_hir` cleanups)\n - rust-lang/rust#159895 (rustc-dev-guide subtree update)\n - rust-lang/rust#159902 (Clarify that the expected runtime symbols signature is for the current target only)\n - rust-lang/rust#159914 (Fix error in diagnostic on_unmatched_args)\n - rust-lang/rust#159917 (spare capacity mut constification)\n - rust-lang/rust#159918 (rename abort_unwind → abort_on_unwind)\n - rust-lang/rust#159927 (Remove sve2 from the ImpliedFeatures of AArch64 v9a.)\n - rust-lang/rust#159936 (Minor `rustc_ast::ast` doc cleanups)\n - rust-lang/rust#159945 (Update expect messages in library/core/src/ptr/non_null.rs)\n - rust-lang/rust#159950 (Add CFI tests for return types and never type)\n\n\n\n"
    },
    {
      "commit": "4fda19d9a2b68e66d545ace39c3c611f7a838d89",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "97da2ae8ccd9032f8c3f9d8638c65d1343efddda",
        "e8a7fba3c014e79ecd86cf83de5d387d46170442"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Sun Jul 26 20:11:32 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Sun Jul 26 20:11:32 2026 +0000"
      },
      "message": "Auto merge of #159224 - adwinwhite:cache-depth-fcw, r\u003dlcnr\n\nadd a FCW for overflow errors with the next solver\n\n\n\n\r\n\r\nThe old solver doesn\u0027t check cache entry\u0027s depth requirement when looking up cache while the next solver correctly does so. It\u0027s necessary to behave correctly with respect to incremental compilation.\r\nAs a result, the next solver is more likely to run into overflow errors.\r\n\r\nWe try to catch such breakages by rerun the evaluation with doubled recursion limit and if that succeeds we emit a FCW.\r\n\r\nThis PR is being discussed on [zulip](https://rust-lang.zulipchat.com/#narrow/channel/364551-t-types.2Ftrait-system-refactor/topic/The.20old.20solver.20don.27t.20record.20required.20depth.20on.20cache/with/604756008) \r\n\r\nThe lint issue is rust-lang/rust#159228\r\n\r\nr? @lcnr"
    },
    {
      "commit": "97da2ae8ccd9032f8c3f9d8638c65d1343efddda",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "71b1845e59ae6c9b76d2f5f963489f3cebc29e68",
        "52ca3fcc081ed79450572550de04fe4652397635"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Sun Jul 26 17:03:38 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Sun Jul 26 17:03:38 2026 +0000"
      },
      "message": "Auto merge of #158901 - veluca93:optimize-attr-closure-inherit, r\u003dwesleywiser,scottmcm\n\nClosures inherit #[optimize] from the enclosing function by default.\n\nTracking issue: https://github.com/rust-lang/rust/issues/54882\r\nStabilization PR: https://github.com/rust-lang/rust/pull/157273"
    },
    {
      "commit": "6b0235add297929d62395f67ecae9911c5b04209",
      "tree": "be395837671b94d0e564f3332553543f4fa6f240",
      "parents": [
        "f0e271ad9602b0988cc87659541d0c07d44f81c9",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:30 2026 +0200"
      },
      "message": "Rollup merge of #159950 - Darksonn:cfi-return-types, r\u003dfolkertdev\n\nAdd CFI tests for return types and never type\n\nIn a few different conversations, the CFI types of various functions has come up. First, the CFI type of returning `!` came up in https://github.com/rust-lang/rust/issues/159446#issuecomment-5011154213, where we found that it doesn\u0027t have the same CFI type as returning `()`, which it probably should.\n\nThen in rust-lang/rust#159935, I wanted to make sure that this does not change the CFI type of functions when `*mut c_void` appears as an argument. Luckily it does not since it\u0027s a lang item, but there\u0027s no test for this case.\n\nThus, add tests for all of these cases and a few others.\n\nAI assistance was involved with writing the test.\n"
    },
    {
      "commit": "f0e271ad9602b0988cc87659541d0c07d44f81c9",
      "tree": "be395837671b94d0e564f3332553543f4fa6f240",
      "parents": [
        "3a2e88b3d05c141d2627efbcb9d307696729a546",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:30 2026 +0200"
      },
      "message": "Rollup merge of #159945 - nirmaladvani:nonnull_expect, r\u003djhpratt\n\nUpdate expect messages in library/core/src/ptr/non_null.rs\n\nRelated issue: rust-lang/rust#159751\n\nUpdates the expect messages in library/core/src/ptr/non_null.rs to follow the recommended style.\n"
    },
    {
      "commit": "3a2e88b3d05c141d2627efbcb9d307696729a546",
      "tree": "be395837671b94d0e564f3332553543f4fa6f240",
      "parents": [
        "c6f6a5b8d913413c204ae2bdba86001695a1d9e9",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:29 2026 +0200"
      },
      "message": "Rollup merge of #159936 - mejrs:ast_docs, r\u003dchenyukang\n\nMinor `rustc_ast::ast` doc cleanups\n\n`P` is an outdated reference.\n\n`CfgAttrTrace` was updated in https://github.com/rust-lang/rust/pull/159722\n\nDocs were formatted so that the entire paragraph doesn\u0027t show up on the module level docs (pet peeve of mine).\n\nr? @nnethercote\n"
    },
    {
      "commit": "c6f6a5b8d913413c204ae2bdba86001695a1d9e9",
      "tree": "be395837671b94d0e564f3332553543f4fa6f240",
      "parents": [
        "d5d28b2abcc645119e87c462793969916de6f562",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:28 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:28 2026 +0200"
      },
      "message": "Rollup merge of #159927 - chrisnc:aarch64-v9a-no-sve2, r\u003dfolkertdev\n\nRemove sve2 from the ImpliedFeatures of AArch64 v9a.\n\nLLVM v19.1.0 updated v9a to remove sve2 from its implications: https://github.com/llvm/llvm-project/pull/96007\n"
    },
    {
      "commit": "d5d28b2abcc645119e87c462793969916de6f562",
      "tree": "be395837671b94d0e564f3332553543f4fa6f240",
      "parents": [
        "910124f15ca69a93ab7e59850aebd1ea1e185e9a",
        "29eb31b3ae111337105976096682d7a00a80a664"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:28 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:28 2026 +0200"
      },
      "message": "Rollup merge of #159918 - RalfJung:abort_unwind, r\u003dhanna-kruppe\n\nrename abort_unwind → abort_on_unwind\n\nAs suggested in the tracking issue (rust-lang/rust#130338).\nr? @nia-e\nCc @rust-lang/libs-api\n"
    },
    {
      "commit": "910124f15ca69a93ab7e59850aebd1ea1e185e9a",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "6e62e451d3cfb5ac6d00de8b2fd4fe7058acd76a",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:26 2026 +0200"
      },
      "message": "Rollup merge of #159917 - bend-n:split_at_capacity_constifications, r\u003djhpratt\n\nspare capacity mut constification\n\nthe better to allocate with\n"
    },
    {
      "commit": "6e62e451d3cfb5ac6d00de8b2fd4fe7058acd76a",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "76249109d18de2666fbac9257fb8e9b60f69af54",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:26 2026 +0200"
      },
      "message": "Rollup merge of #159914 - amirHdev:fix-on-unmatched-args, r\u003dmejrs\n\nFix error in diagnostic on_unmatched_args\n\nfixes rust-lang/rust#159886\n"
    },
    {
      "commit": "76249109d18de2666fbac9257fb8e9b60f69af54",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "0e18795bba15e43fcf1d05e59466773642986cf3",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:25 2026 +0200"
      },
      "message": "Rollup merge of #159902 - Urgau:runtime-symbols-for-current-target, r\u003dGuillaumeGomez\n\nClarify that the expected runtime symbols signature is for the current target only\n\nSome of the signatures expected by our runtime symbols are slightly different from one target to the other one (`i8` vs `u8`), and while the original definition uses type alias, they are not recorded and displayed in the diagnostic.\n\nSo, to avoid any ambiguity let\u0027s add a small note that the displayed signature is only for the current target.\n\nr? @GuillaumeGomez\n"
    },
    {
      "commit": "0e18795bba15e43fcf1d05e59466773642986cf3",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "965b5b78f9ea1f0b0952f41672e5774fdc266b77",
        "1eff8739e743b1fae470f69b7ccb2e4838bf8bf7"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:24 2026 +0200"
      },
      "message": "Rollup merge of #159895 - tshepang:rdg-sync, r\u003dtshepang\n\nrustc-dev-guide subtree update\n\nSubtree update of `rustc-dev-guide` to https://github.com/rust-lang/rustc-dev-guide/commit/f5333a6ab8e34b445794cf7d572806765482598b.\n\nCreated using https://github.com/rust-lang/josh-sync.\n\nr? @ghost\n"
    },
    {
      "commit": "965b5b78f9ea1f0b0952f41672e5774fdc266b77",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "00b1710dcf8f244bbc5ab2c0f0bf4d707ed2c468",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:24 2026 +0200"
      },
      "message": "Rollup merge of #159893 - mejrs:find_attr_hygiene, r\u003dJonathanBrouwer\n\nFix `find_attr` hygiene and `rustc_hir` cleanups\n\nIn particular, `extern crate self as rustc_hir;` leads to very noisy import suggestions if you get an import wrong. Also flatten the `nested_filter` module which seemed to exist just to avoid `None` / `Option:None` nameres conflicts\n"
    },
    {
      "commit": "00b1710dcf8f244bbc5ab2c0f0bf4d707ed2c468",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "9961f714d997b8b13de0d5d08a0fff73a40c9aeb",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:23 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:23 2026 +0200"
      },
      "message": "Rollup merge of #159891 - mejrs:split_derives, r\u003dJonathanBrouwer\n\nSplit multiline derives into std/rustc macros\n\nMisc cleanup\n"
    },
    {
      "commit": "9961f714d997b8b13de0d5d08a0fff73a40c9aeb",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "68c662d4d84f1811bd034affb5b3f6a1bef96774",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:22 2026 +0200"
      },
      "message": "Rollup merge of #159882 - Colepng:main, r\u003dDarksonn\n\nUpdate expect messages in library/alloc/boxed.rs and library/alloc/string.rs to follow the style guide\n\nRelated issue: rust-lang/rust#159751\n\nUpdates the expect messages in library/alloc/boxed.rs and library/alloc/string.rs to follow the style guide.\n"
    },
    {
      "commit": "68c662d4d84f1811bd034affb5b3f6a1bef96774",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "cd6691612e913d15475d702a5d22b38709d7da48",
        "e8a7fba3c014e79ecd86cf83de5d387d46170442"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:21 2026 +0200"
      },
      "message": "Rollup merge of #159875 - qaijuang:159508-follow-up, r\u003dmejrs\n\nMore cleanup in `rustc_attr_parsing`\n\nFollow up to rust-lang/rust#159508.\n\nr? @mejrs\n"
    },
    {
      "commit": "cd6691612e913d15475d702a5d22b38709d7da48",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "f02923d97afc585239e4eb0aff367a42866b5bd9",
        "e8a7fba3c014e79ecd86cf83de5d387d46170442"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:20 2026 +0200"
      },
      "message": "Rollup merge of #159853 - asder8215:cstr_expect, r\u003dfee1-dead\n\nUpdated expect messages for `CString` struct and method documentation\n\nCompletes a task with rust-lang/rust#159751. Updates the expect messages in `library/alloc/src/ffi/c_str.rs`.\n"
    },
    {
      "commit": "f02923d97afc585239e4eb0aff367a42866b5bd9",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "ef68ed729576f96ada4310331719691dab88ed9f",
        "e8a7fba3c014e79ecd86cf83de5d387d46170442"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:19 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:19 2026 +0200"
      },
      "message": "Rollup merge of #159849 - petrochenkov:estmt, r\u003dJonathanBrouwer\n\nrustc_parse: Stop returning `Option` from statement parsing\n\n`parse_stmt_without_recovery` had one corner case in which it returned `Ok(None)` - when parsing immediately encountered a closing brace `}`, possibly after parsing outer attributes.\n\nIt is simpler to never call `parse_stmt_without_recovery` in such contexts than deal with a possibility of no statement being returned without an error.\nSo this PR changes the function\u0027s return type from `PResult\u003c\u0027a, Option\u003cStmt\u003e\u003e` to `PResult\u003c\u0027a, Stmt\u003e` and adjusts one call site to check for a closing brace.\n"
    },
    {
      "commit": "ef68ed729576f96ada4310331719691dab88ed9f",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "97f52d5d5ad2200dd0d3937ea68b938ceb25380b",
        "e8a7fba3c014e79ecd86cf83de5d387d46170442"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:18 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:18 2026 +0200"
      },
      "message": "Rollup merge of #159846 - valentynkit:str-copy-from-str, r\u003djhpratt\n\nImplement `str::copy_from_str`\n\nImplements the accepted ACP rust-lang/libs-team#709: add `str::copy_from_str`, which copies a same-length `\u0026str` into a mutable `str` in place, mirroring `\u003c[T]\u003e::copy_from_slice`.\n\nThe write is safe because UTF-8 is self-recovering: overwriting a `str` with a same-length `\u0026str` cannot produce invalid UTF-8, and `copy_from_slice` enforces the length equality (panics otherwise).\n\nThe ACP accepted `copy_from_str` and rejected `copy_within`; `swap_with_str` was left out pending a use case, so this adds only the one method.\n\nTracking issue: rust-lang/rust#159841\n\nr? libs\n"
    },
    {
      "commit": "97f52d5d5ad2200dd0d3937ea68b938ceb25380b",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "9337efde7727533cd211eb971508fb55c7a1163d",
        "e8a7fba3c014e79ecd86cf83de5d387d46170442"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:17 2026 +0200"
      },
      "message": "Rollup merge of #159826 - mejrs:sugar_parens, r\u003dJonathanBrouwer\n\nRemove redundant `#[rustc_paren_sugar]` feature gate\n\nIt is already gated on `rustc_attrs`.\n\nAlternatively we could update attribute parsing to optionally require multiple features, but that seems unnecessary.\n\nr? @JonathanBrouwer\n"
    },
    {
      "commit": "9337efde7727533cd211eb971508fb55c7a1163d",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "8bf63419e25b3eb8d80f51039454ef35a98ea212",
        "e8a7fba3c014e79ecd86cf83de5d387d46170442"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:17 2026 +0200"
      },
      "message": "Rollup merge of #159810 - chenyukang:yukang-fix-100727-tuple-never-coercion, r\u003djieyouxu\n\nAdd tuple never coercion collection regression test\n\nFixes rust-lang/rust#100727\n\nIt\u0027s fixed by PR rust-lang/rust#147834\n"
    },
    {
      "commit": "8bf63419e25b3eb8d80f51039454ef35a98ea212",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "0a92e30c5d985bd64de159393c25b315375d96c5",
        "e8a7fba3c014e79ecd86cf83de5d387d46170442"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:16 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:16 2026 +0200"
      },
      "message": "Rollup merge of #159783 - AsakuraMizu:safe-eii-unsafe-impl, r\u003dmejrs,JonathanBrouwer\n\nCheck unsafe impls on safe EIIs\n\nTracking issue: rust-lang/rust#125418\n\nUnsafe EIIs require implementations to use `#[unsafe(...)]`, but safe EIIs currently accept this form as well. This should be rejected, just like `unsafe impl` on a safe trait.\n\nThis also fixes existing EII UI tests using this pattern and adds a new regression test.\n"
    },
    {
      "commit": "0a92e30c5d985bd64de159393c25b315375d96c5",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "7d2906078db2e11300c7032c0e0b4387f36393a1",
        "7f175c747b6882fcf4db371fe9b007b116b0e54d"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:15 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:15 2026 +0200"
      },
      "message": "Rollup merge of #159733 - alexcrichton:wasi-thread-locals, r\u003dclarfonthey\n\nstd: Switch implementations of `thread_local!` for WASI\n\nThis commit is a change for all WASI targets to use a different underlying implementation in the standard library for `thread_local!`. Previously all wasm targets, without the `atomics` feature, were funneled into the `no_threads` implementation and various fallbacks in the `thread_local` module. The upcoming `wasm32-wasip3` target, however, will actually have threads and will need different treatment. Additionally the modules that `wasm32-wasip3` needs all already work on all other WASI targets as well -- for example the `pthread_*` symbols needed to manage destructors are exposed by `wasi-libc`.\n\nThe end result is that the `wasm32-wasip3` target will be \"ready for threads\" as soon as `wasi-libc` has support. Other targets shouldn\u0027t have any functional difference from before, too.\n"
    },
    {
      "commit": "7d2906078db2e11300c7032c0e0b4387f36393a1",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "991e96f0d4e70b9a49adc58b9131dfec67fb39f9",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:14 2026 +0200"
      },
      "message": "Rollup merge of #159633 - nnethercote:attr-suggestions, r\u003dJonathanBrouwer\n\nImprove workings of attribute suggestions\n\n`AttrItem` span tracking improved in rust-lang/rust#159587, which lets us slightly simplify the workings of attribute suggestions.\n\nr? @JonathanBrouwer\n"
    },
    {
      "commit": "991e96f0d4e70b9a49adc58b9131dfec67fb39f9",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "7d3fa91428ae33bf2f86cbeb4f2a3b0291939660",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:14 2026 +0200"
      },
      "message": "Rollup merge of #159617 - mejrs:weak_linkage, r\u003dJonathanBrouwer\n\nFix up `#[linkage]` target checking\n\nFixes https://github.com/rust-lang/rust/issues/134451\n\nr? @JonathanBrouwer\n"
    },
    {
      "commit": "7d3fa91428ae33bf2f86cbeb4f2a3b0291939660",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "02d8f3fb36bc00787759091452ce0004ee50126e",
        "dc7598d90e7a345b0c8905905fc2f5a92c74f977"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:13 2026 +0200"
      },
      "message": "Rollup merge of #156570 - paradoxicalguy:test-extend-rmake-clean, r\u003dUrgau\n\ntests: extend remap-path-prefix-std to all stdlib rlibs\n\n### problem:\nthe current `remap-path-prefix-std` run-make test validates path remapping for `libstd.rlib`, which leaves the rest of the distributed `stdlib` artifacts unchecked.\n\n### fix:\ngeneralizing the test to go over over all distributed `.rlib` files found in the target `sysroot libdir` instead of checking only the `libstd`.\n\n### result:\nimproves reproducibility coverage for distributed `stdlib` artifacts.\n\nr? @Urgau\n"
    },
    {
      "commit": "02d8f3fb36bc00787759091452ce0004ee50126e",
      "tree": "48377f7304913ee22976610767a26d5d80243cf0",
      "parents": [
        "58543ea94c695fa86d75f33bc38bbbf6ff0210ef",
        "15e1f274ca9cdeba049d138487ef849a957b4718"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:12 2026 +0200"
      },
      "message": "Rollup merge of #159962 - RalfJung:miri, r\u003dRalfJung\n\nmiri subtree update\n\nSubtree update of `miri` to https://github.com/rust-lang/miri/commit/15e1f274ca9cdeba049d138487ef849a957b4718.\n\nCreated using https://github.com/rust-lang/josh-sync.\n\nr? @ghost\n"
    },
    {
      "commit": "58543ea94c695fa86d75f33bc38bbbf6ff0210ef",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "5d4afc68d27c0afdeef6f863d87ceaf3ccbf05dc",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:12 2026 +0200"
      },
      "message": "Rollup merge of #159946 - ZuseZ4:enzyme-update-llvm-cov, r\u003djieyouxu\n\nUpdate Enzyme submodule to imporve llvm-cov\n"
    },
    {
      "commit": "5d4afc68d27c0afdeef6f863d87ceaf3ccbf05dc",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "33fa2aaff026ef1cf0b2406938d0b936e3ad2bac",
        "e8a7fba3c014e79ecd86cf83de5d387d46170442"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:11 2026 +0200"
      },
      "message": "Rollup merge of #159837 - RalfJung:line-tables-only, r\u003djieyouxu\n\nline-tables-only test: check that the line number matches the function name\n\nr? @jieyouxu\n"
    },
    {
      "commit": "33fa2aaff026ef1cf0b2406938d0b936e3ad2bac",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "21f84e5e67ce227ae9018af95fd9fc1746f079f2",
        "787ade86935775387ecf38baf014d1703192b8a1"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:10 2026 +0200"
      },
      "message": "Rollup merge of #159774 - InvalidPathException:fix-old-solver-hang, r\u003djackh726\n\nrustc_trait_selection: fix trait solver hang caused by degenerate obligations\n\nCloses https://github.com/rust-lang/rust/issues/157516 and https://github.com/rust-lang/rust/issues/159750.\n\nBisection pointed to rust-lang/rust#142712 but the problem has always been present. Fulfillment can go on forever if a degenerate obligation causes additional obligations from `poly_project_and_unify_term` to be copies of the degenerate one.\n\nCurrent fix is checking if the obligation is degenerate, ~making the degenerate case stall, waiting for other obligations to constrain its inference variables, so it can actually normalize or error instead of propagating this.~ error immediately since the code will not compile anyways.\n\nI am not sure if this is ideal, might need to check perf due to the added heavy-ish condition check.\n"
    },
    {
      "commit": "21f84e5e67ce227ae9018af95fd9fc1746f079f2",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "dc7598d90e7a345b0c8905905fc2f5a92c74f977",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Sun Jul 26 15:47:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 15:47:09 2026 +0200"
      },
      "message": "Rollup merge of #159638 - Zalathar:step-split, r\u003djieyouxu\n\nbootstrap: Split the `Step` trait into multiple traits\n\n- Revised version of https://github.com/rust-lang/rust/pull/159423\n- [#t-infra/bootstrap \u003e Terminology consistency of the important concepts](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Terminology.20consistency.20of.20the.20important.20concepts/with/611795947)\n- [#t-infra/bootstrap \u003e Path filters in bootstrap](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Path.20filters.20in.20bootstrap/with/611415742)\n---\n\nAn awkward thing about bootstrap\u0027s Step trait is that several of its implementations represent “helper tasks” that participate in bootstrap\u0027s internal caching system, but can\u0027t be explicitly selected via command-line arguments. Those tasks need to supply dummy implementations for some Step methods related to command-line processing.\n\nThis PR tries to reduce that tension by splitting the `Step` trait into two traits.\n\n---\n\nSteps that can be selected from the command-line implement the full `CommandLineStep` trait, which also provides an implementation of `Step`.\n\nHelper tasks implement the smaller `Step` trait directly. They still participate in step-caching and step-tracing, but don\u0027t interact with command-line selectors.\n\nr? jieyouxu\n"
    },
    {
      "commit": "71b1845e59ae6c9b76d2f5f963489f3cebc29e68",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "dc7598d90e7a345b0c8905905fc2f5a92c74f977",
        "5069f222e7506d69d64637de8fa4259cfd4e86db"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Sun Jul 26 13:25:01 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Sun Jul 26 13:25:01 2026 +0000"
      },
      "message": "Auto merge of #158298 - Walnut356:di_compiletest, r\u003dKobzol,jieyouxu\n\nAdd `lldb-repr` command for `tests/debuginfo`\n\n\n\nVery much so a work in progress, but there\u0027s a bunch of stuff that probably needs discussing, so I figured I\u0027d start that up now.\r\n\r\nTo recap, the control flow is as follows:\r\n\r\n1. `lldb-repr` is automatically split into, essentially `lldb-command:repr var` + `lldb-check:var: Ok`\r\n2. the relevant target, bless state, paths, etc. are passed to the LLDB command via env vars\r\n3. The lldb command runs `lldb_batchmode.main()`\r\n4. the input commands are executed line by line.\r\n5. If the command is a `repr` pseudo-command, it is intercepted and passed to the checking logic\r\n5a. if blessing, `INPUT_DATA` is blank. Each check inserts the appropriate var into `INPUT_DATA`, and then runs the checking logic against `INPUT_DATA` as normal (for sanity reasons)\r\n5b. the checking logic checks the variable against `INPUT_DATA` (\u003c-- this is incomplete atm, see below for what still isn\u0027t finished) and prints any mismatches that occur.\r\n6. Once all commands have been run (or if a `quit`/`exit` command is encountered) `lldb_batchmode` checks 1. have we seen every type that exists in the input data? 2. have we seen every variable that exists in the input data? If not, it reports what was missing and exits with an error code. \r\n6a. If `--bless`, and no errors occurred, and at least 1 `repr` pseudo-command was processed, `INPUT_DATA` is serialized and written to the input data file.\r\n\r\nTo preemptively answer the question \"When blessing, why not just build a second `TargetData` instance and compare `INPUT_DATA` to that?\" - the goal of diffing in python (rather than rust) is to still have access to the underlying LLDB objects for error reporting purposes. \r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003eSample Output (`basic-types.rs`)\u003c/summary\u003e\r\nThe input data was manually tampered with to force errors (`char32_t` size set to 1, double type renamed to `half`, `int` type deleted)\r\n\r\n```txt\r\nerror: Error while running LLDB\r\nstatus: exit status: 1\r\n... # skipping to repr output for brevity\r\nrepr b\r\nb: Ok\r\nrepr i\r\ni: Ok\r\nrepr c\r\n  [repr error: type \u0027char32_t\u0027] size does not match.\r\n    Expected: \u00271\u0027\r\n    Got: \u00274\u0027\r\nrepr i8\r\ni8: Ok\r\nrepr i16\r\ni16: Ok\r\nrepr i32\r\ni32: Ok\r\nrepr i64\r\ni64: Ok\r\nrepr u\r\nu: Ok\r\nrepr u8\r\nu8: Ok\r\nrepr u16\r\nu16: Ok\r\nrepr u32\r\n  [repr error: type \u0027unsigned int\u0027] type not found in input data\r\nrepr u64\r\nu64: Ok\r\nrepr f32\r\nf32: Ok\r\nrepr f64\r\n  [repr error: type \u0027double\u0027] type not found in input data\r\n[repr error] The following types were expected, but were not tested:\r\n  {\u0027half\u0027}\r\n```\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003eSample Output (`simple-struct.rs`)\u003c/summary\u003e\r\nThe input data was manually tampered with to force errors.\r\n\r\n* `simple_struct::NoPadding64` field name `y` to `q`\r\n* `simple_struct::NoPadding163264` last field moved to first position\r\n* `simple_struct::InternalPadding` `y` field deleted\r\n* `simple_struct::PaddingAtEnd` `q` field added\r\n\r\nKeep in mind that I edited the *expected* data, not the actual structs in the test file, so the output reports the opposite of the changes i made (sortof) i.e. it reports that `q` was deleted because it exists in the expected data but not in the LLDB object.\r\n\r\n```txt\r\nrepr no_padding16\r\nno_padding16: Ok\r\nrepr no_padding32\r\nno_padding32: Ok\r\nrepr no_padding64\r\n  [repr error: type \u0027simple_struct::NoPadding64\u0027] The following field(s) appear to have been renamed. If this is expected,\r\n  consider rerunning with the `--bless` option: \r\n    [\u0027q -\u003e y\u0027]\r\nrepr no_padding163264\r\n  [repr error: type \u0027simple_struct::NoPadding163264\u0027] Field(s) appear to have been rearranged. If this was expected, try re-running with the `--bless` option\r\n    Expected:\r\n[     Field(name\u003d\u0027a\u0027, type\u003d\u0027short\u0027, offset\u003d12),\r\n      Field(name\u003d\u0027b\u0027, type\u003d\u0027unsigned short\u0027, offset\u003d14),\r\n      Field(name\u003d\u0027c\u0027, type\u003d\u0027int\u0027, offset\u003d8),\r\n      Field(name\u003d\u0027d\u0027, type\u003d\u0027unsigned long\u0027, offset\u003d0)]\r\n    Got:\r\n[     Field(name\u003d\u0027d\u0027, type\u003d\u0027unsigned long\u0027, offset\u003d0),\r\n      Field(name\u003d\u0027a\u0027, type\u003d\u0027short\u0027, offset\u003d12),\r\n      Field(name\u003d\u0027b\u0027, type\u003d\u0027unsigned short\u0027, offset\u003d14),\r\n      Field(name\u003d\u0027c\u0027, type\u003d\u0027int\u0027, offset\u003d8)]\r\nrepr internal_padding\r\n  [repr error: type \u0027simple_struct::InternalPadding\u0027] The following field(s) appear to have been added to the type:\r\n    {Field(name\u003d\u0027y\u0027, type\u003d\u0027long\u0027, offset\u003d0)}\r\nrepr padding_at_end\r\n  [repr error: type \u0027simple_struct::PaddingAtEnd\u0027] The following field(s) appear to have been removed from the type:\r\n    {Field(name\u003d\u0027q\u0027, type\u003d\u0027float\u0027, offset\u003d12)}\r\n[repr error] The following types were expected, but were not tested:\r\n  {\u0027double\u0027, \u0027long\u0027, \u0027unsigned long\u0027}\r\n```\r\n\u003c/details\u003e\r\n\r\nThe errors are of the form `[repr error \u003cerror source\u003e] \u003cerror info\u003e`. The errors are slightly indented to make it easier to scan and associate errors with their source. The formatting is 1st draft and largely abstracted away via [these functions](https://github.com/Walnut356/rust/blob/bd4a0c7b80b448778247dda4b203074d58eff64d/src/etc/lldb_batchmode/common.py#L20-L39). We can pretty trivially change how they\u0027re formatted by modifying/replacing these functions.\r\n\r\nAlso, each type in a test is only tested once per test, regardless of how many variables/fields reference it. When a type is seen a second time, if the prior check was a mismatch, it reports that the type does not match and  **does not** repeat the specific error messages of the mismatch. Instead, it directs people to look at the original type error further up in the output. \r\n\r\n# TODO\r\n\r\n- [x] Variable child mismatches don\u0027t have error reporting\r\n- [x] Rearrange the checks a bit so the type check happens midway through the variable check. Some of the variable\u0027s information is useful for the type\u0027s error reporting and vice versa.\r\n- [x] use some info from `lldb_providers` and the original `SBValue` and `SBType` to improve error messages \r\n- [ ] Some sort of warning if the python/lldb version and/or feature flags don\u0027t match\r\n- [x] A few more tests with input data to help verify behavior (one with generics, one with a synthetic/summary provider, probably need to enforce a formatter for `u8`/`i8` at some point to test that too).\r\n- [x] Various improvements to the error message wording/information/formatting/consistency.\r\n- [ ] Probably some other stuff i\u0027m forgetting about that I\u0027ll add in later\r\n\r\nr? @jieyouxu, @Kobzol"
    },
    {
      "commit": "dc7598d90e7a345b0c8905905fc2f5a92c74f977",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "03f8c34be918d322c63d8a8a924df6851f5aeae5",
        "452a6ccec3ec0dd8db9b47909ba3f1122c9e9459"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Sun Jul 26 07:12:50 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Sun Jul 26 07:12:50 2026 +0000"
      },
      "message": "Auto merge of #159942 - jhpratt:rollup-pnCVT56, r\u003djhpratt\n\nRollup of 25 pull requests\n\nSuccessful merges:\n\n - rust-lang/rust#138618 (Support using const pointers in asm `const` operand)\n - rust-lang/rust#157962 (Lower paths to functions in const args as ConstKind::Error)\n - rust-lang/rust#158709 (rustdoc: warn on improperly interleaved HTML/MD)\n - rust-lang/rust#159174 (Fix implicit_provenance_casts warnings on Xous)\n - rust-lang/rust#159179 (enable `unreachable_cfg_select_predicates` lint as part of `unused` lint group)\n - rust-lang/rust#159518 (iter: extend step_by specialization to cover StepBy\u003cRangeIter\u003c{integer}\u003e\u003e)\n - rust-lang/rust#159673 (bootstrap: forward -fdebug-prefix-map when using cc)\n - rust-lang/rust#159700 (Split non-local `semicolon_in_expressions_from_macros` into a separate lint)\n - rust-lang/rust#159720 (document #[global_allocator] constraints)\n - rust-lang/rust#159732 (optimization: don\u0027t look for diagnostic/canonical items without rustc_attrs enabled)\n - rust-lang/rust#159738 (implement `CovariantUnsafeCell`)\n - rust-lang/rust#159740 (reuse regular exported_non_generic_symbols logic in Miri)\n - rust-lang/rust#159780 (check `extern \"custom\"` function pointers)\n - rust-lang/rust#159786 (rustdoc-js: ignore editor temp files in test folder discovery)\n - rust-lang/rust#159819 (std::sync::poison: disable auto_cfg on PoisonError::new)\n - rust-lang/rust#152439 (Fix typos and grammar in library documentation)\n - rust-lang/rust#155388 (stepping into where-clauses during normalization may be productive)\n - rust-lang/rust#155914 (when bailing on ambiguity, don\u0027t force other results to ambig)\n - rust-lang/rust#159204 (Add support to caller_location to rustc_public)\n - rust-lang/rust#159439 (Fix(lib/fs/win): Fall back on Win32 delete for `Dir::remove_file`)\n - rust-lang/rust#159676 (Update wasm-component-ld to 0.5.27)\n - rust-lang/rust#159695 (proc_macro: Fix cfg_attr inner attrs in file modules)\n - rust-lang/rust#159730 (allow accessing the contents of UnsafeCell without going through get)\n - rust-lang/rust#159809 (Avoid `#[target_features]`)\n - rust-lang/rust#159878 (bootstrap: Remove obsolete option `build.compiletest-use-stage0-libtest`)\n\n\n\n"
    },
    {
      "commit": "452a6ccec3ec0dd8db9b47909ba3f1122c9e9459",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "3dd374b6a182bddbb5b3511ce4a66b495343369e",
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:56 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:56 2026 -0400"
      },
      "message": "Rollup merge of #159878 - Zalathar:stage0-libtest, r\u003dKobzol\n\nbootstrap: Remove obsolete option `build.compiletest-use-stage0-libtest`\n\nDuring the bootstrap stage0 redesign, `compiletest-use-stage0-libtest` was needed as a workaround for big regressions in compiletest build times, due to compiletest\u0027s dependency on libtest or `#![feature(internal_output_capture)]`.\n\nAs of https://github.com/rust-lang/rust/pull/146929, compiletest has no dependency on libtest or any unstable features, and is always built with the stage0 compiler. Since then, `compiletest-use-stage0-libtest` has had no effect, and was retained only to avoid breaking people\u0027s builds if they had that option set.\n\nSeveral months later, it should be fine to remove the option entirely.\n\nr? jieyouxu (or bootstrap)\n"
    },
    {
      "commit": "3dd374b6a182bddbb5b3511ce4a66b495343369e",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "3020032ba6edeea0471d78b64f18cbd2724d75e1",
        "474e1b5485d326c359148edecb02d38b9404740c"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:55 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:55 2026 -0400"
      },
      "message": "Rollup merge of #159809 - nnethercote:fix-target_features-messages, r\u003doli-obk\n\nAvoid `#[target_features]`\n\nThe string `#[target_features]` is used in various error messages as well as the compiler\u0027s code. But there is no such attribute, which I found very confusing.\n\nI think it means \"one or more target features\", e.g. covering both `#[target_feature(foo)]` and `#[target_feature(foo, bar, baz)]`.\n\nWe already use `#[target_feature(..)]` for that meaning in several places. So this commit changes all `#[target_features]` occurrences to `#[target_feature(..)]`. It also changes a few `#[target_feature]` (no plural) occurrences to `#[target_feature(..)]` for consistency with other mentions nearby in error messages.\n\nr? @oli-obk\n"
    },
    {
      "commit": "3020032ba6edeea0471d78b64f18cbd2724d75e1",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "fc5d00dde651d541a5a6118da3e01f232844dc83",
        "7f175c747b6882fcf4db371fe9b007b116b0e54d"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:54 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:54 2026 -0400"
      },
      "message": "Rollup merge of #159730 - RalfJung:unsafe-cell, r\u003djhpratt\n\nallow accessing the contents of UnsafeCell without going through get\n\nThis has been FCP\u0027d by @rust-lang/opsem in https://github.com/rust-lang/unsafe-code-guidelines/issues/281.\n@rust-lang/lang since this is a change very deep in the details of the aliasing model, I assume it\u0027s fine to just FYI you here, but please stop me if that is not right.\n\nThe first commit attempts to clarify some potentially-confusing parts of the docs. @jethrogb I hope this helps somewhat resolve the confusion that these docs previously caused.\n\nCloses https://github.com/rust-lang/unsafe-code-guidelines/issues/281\n"
    },
    {
      "commit": "fc5d00dde651d541a5a6118da3e01f232844dc83",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "1016b9729d600e3703654b62c9b1d21879da4c41",
        "209d341a067bab7a6ec6211294fd9c5cda94e57d"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:54 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:54 2026 -0400"
      },
      "message": "Rollup merge of #159695 - Dnreikronos:proc_macro/cfg_attr_file_mod_inner_attr, r\u003dnnethercote,petrochenkov\n\nproc_macro: Fix cfg_attr inner attrs in file modules\n\nFixes rust-lang/rust#159648\n\nInner proc-macro attrs produced by `cfg_attr` only carry the nested attr span. Splitting source around that span tries to lex two unmatched halves, so file modules fail with an unclosed delimiter.\n\nLex the complete module body first, then remove the expanded attr from its nested token stream. Sibling attrs stay in place, and empty `cfg_attr` wrappers use their trace span and disappear. imo this is cleaner than teaching source slicing about every nested shape.\n\nTests exercise sibling attrs on either side of the proc macro, then cover the single-attr case. fyi, denied lints make sibling preservation observable; ltm if another nested case should live here.\n"
    },
    {
      "commit": "1016b9729d600e3703654b62c9b1d21879da4c41",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "53532a5f2cb456f66bb3816166d0da3f867741e1",
        "209d341a067bab7a6ec6211294fd9c5cda94e57d"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:53 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:53 2026 -0400"
      },
      "message": "Rollup merge of #159676 - alexcrichton:update-wasm-component-ld, r\u003dMark-Simulacrum\n\nUpdate wasm-component-ld to 0.5.27\n\nKeeping up-to-date\n"
    },
    {
      "commit": "53532a5f2cb456f66bb3816166d0da3f867741e1",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "5221a2c026f72a4d149fdfd999d5b95740d4445a",
        "d98fc93589ee114be803c66f5b437e1173a966b3"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:52 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:52 2026 -0400"
      },
      "message": "Rollup merge of #159439 - PaulDance:patches/fix-win7-dir-remove-file, r\u003dChrisDenton\n\nFix(lib/fs/win): Fall back on Win32 delete for `Dir::remove_file`\n\nThe `test_dir_remove_file` test currently fails under Windows 7 on:\n\n```\nthread \u0027fs::tests::test_dir_remove_file\u0027 (2028) panicked at library/std/src/fs/tests.rs:2590:5:\ndir.remove_file(\"foo.txt\") failed with: The parameter is incorrect. (os error 87)\n```\n\nLooking into it, this is because the `FILE_DISPOSITION_INFO_EX` variant of the `SetFileInformationByHandle` API is used while it is only available starting from Windows 10 1607. However, `FILE_DISPOSITION_INFO` is still available since Vista.\n\nThis is therefore fixed by introducing a fallback to the latter API if the former fails. This is achieved by re-using some logic that is already available through `File::delete` and that does exactly this.\n\ncc rust-lang/rust#120426 @roblabla @the8472 @ChrisDenton @RalfJung\n\n@rustbot label A-io T-libs O-Windows-7\n"
    },
    {
      "commit": "5221a2c026f72a4d149fdfd999d5b95740d4445a",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "c4f9a6024da96989bc159b99c2e73dfaf065db65",
        "6636064af978f8c1a0f6d4fe705b12a2b6612e96"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:51 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:51 2026 -0400"
      },
      "message": "Rollup merge of #159204 - celinval:feat/caller_location, r\u003dmakai410\n\nAdd support to caller_location to rustc_public\n\nThis PR has two small commits that add APIs to help handle caller location.\n1. `Instance::requires_caller_location`\n2. `Span::as_caller_location`\n\nFixes https://github.com/rust-lang/rustc_public/issues/62\nFixes https://github.com/rust-lang/rustc_public/issues/123\n\nr? @makai410\n\ndisclaimer: I used AI to help me write this code.\n"
    },
    {
      "commit": "c4f9a6024da96989bc159b99c2e73dfaf065db65",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "5289bd9bf44759fe12c54ffa41831d5cafc1041f",
        "e8a7fba3c014e79ecd86cf83de5d387d46170442"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:51 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:51 2026 -0400"
      },
      "message": "Rollup merge of #155914 - lcnr:search-graph-bail-on-ambig, r\u003dBoxyUwU\n\nwhen bailing on ambiguity, don\u0027t force other results to ambig\n\nA smaller version of rust-lang/rust#149904 which doesn\u0027t cause the perf issue in bevy, or at least in the minimization\n\nWhile not necessarily necessary for https://github.com/rust-lang/trait-system-refactor-initiative/issues/257 due to rust-lang/rust#158643. This does fix the underlying issues there.\n\nThis change does affect `binius_field`, the remaining issues are tracked in https://github.com/rust-lang/trait-system-refactor-initiative/issues/274.\n\nThe core idea is that for\n- A\n  - B\n    - A (cycle with initial result)\n- B \u003c---\n\nWe normally run A until we reach a fixpoint. We don\u0027t do so in case trying to do so encounters overflow or the result of `A` ends up ambiguous to avoid performance issues.\n\nWe want to generally keep the provisional cache entries which depend on A around. Evaluating these goals depends on the current provisional result of A. This means it is fine to keep them around if A reached a fixpoint. If we bail without reaching a fixpoint, the provisional result used while computing B differs from the final result of A. This means the entry for B is not valid and we\u0027d need to discard it.\n\nDiscarding all nested provisional cache entries when not reaching a fixpoint causes perf issues. In case the final result of A is ambiguous, then this PR keeps nested cache entries which are ambiguous and don\u0027t have any inference constraints around. That is sound, as having more goals be ambiguous is never an issue, the trait solver can always say \":shrug: idk\". It also shouldn\u0027t cause any incorrect ambiguity errors issues, as changing the provisional result of A to be ambiguity should not change B to go from being ambiguous to something else.\n\nThe current implementation mutated the result of all nested provisional cache entries to be ambiguous, which resulted in incorrect ambiguity errors in https://github.com/rust-lang/trait-system-refactor-initiative/issues/257. This PR differs from that by dropping goals whose result isn\u0027t already ambiguous. That\u0027s means we don\u0027t keep quite as many cache entries around, which is potentially worse for perf, but from what I can tell this doens\u0027t cause issues in practice.\n\nr? BoxyUwU\n"
    },
    {
      "commit": "5289bd9bf44759fe12c54ffa41831d5cafc1041f",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "bda511998049e8fdac0c4a0e238420e59a22a8c8",
        "e2b305dadbab4ab00b1efe5904c037e2097be85b"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:50 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:50 2026 -0400"
      },
      "message": "Rollup merge of #155388 - lcnr:norm-where-bounds-may-be-productive, r\u003dBoxyUwU\n\nstepping into where-clauses during normalization may be productive\n\nfixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/273, see that issue for more info.\n\nWhether stepping into a where-clause is productive depends not on whether we\u0027re proving a `NormalizesTo` or `Trait` goal, but instead on how both the impl and the cycle rely on it.\n\nIn the example in tests/ui/traits/next-solver/cycles/normalizes-to-is-not-productive-2.rs this is just a productive use given the way @Nadrieril and I are thinking about it right now.\n\nWe\u0027re changing such cycles to be ambiguous for now, so this does not commit us to anything.\n\nThis previously caused a lot of breakage when normalizing where-clauses, e.g. https://github.com/rust-lang/trait-system-refactor-initiative/issues/176, however with rust-lang/rust#158643 that is no longer an issue. We will need to figure out what to do here if we want to properly fix `ParamEnv` normalization in the future\n\nr? @BoxyUwU or @nikomatsakis\n"
    },
    {
      "commit": "bda511998049e8fdac0c4a0e238420e59a22a8c8",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "f38b838b0ec1b7f241ea1bfef54bf38881436efd",
        "7a0af6f79da80eee8bdfd93707a522641d425802"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:49 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:49 2026 -0400"
      },
      "message": "Rollup merge of #152439 - him2him2:fix-typos-libs, r\u003dclarfonthey\n\nFix typos and grammar in library documentation\n\nFix contextual typos and grammar issues in library docs that automated spellcheckers miss:\n\n- `library/core/src/macros/panic.md`: remove duplicate word (\"another other\" → \"another\")\n- `library/core/src/error.md`: fix spacing (\"Often times\" → \"Oftentimes\")\n- `library/core/src/ptr/docs/as_ref.md`: fix wrong types in Null-unchecked section (`\u0026mut T` → `\u0026T`)\n- `library/core/src/ffi/c_ulong.md`: fix article (\"an `u64`\" → \"a `u64`\")\n- `library/core/src/ffi/c_void.md`: fix plural (\"compiler\" → \"compilers\")\n- `library/core/src/ptr/docs/as_uninit_slice.md`: fix subject-verb agreement (\"is true\" → \"are true\")\n- `library/std_detect/README.md`: fix article (\"an user-space\" → \"a user-space\")\n\nNo functional changes.\n"
    },
    {
      "commit": "f38b838b0ec1b7f241ea1bfef54bf38881436efd",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "5e849b9328fbdff7b02aa5b9dbd23c6901996c03",
        "e8a7fba3c014e79ecd86cf83de5d387d46170442"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:49 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:49 2026 -0400"
      },
      "message": "Rollup merge of #159819 - Vastargazing:fix/poison-error-auto-cfg-note, r\u003dGuillaumeGomez\n\nstd::sync::poison: disable auto_cfg on PoisonError::new\n\n`PoisonError::new` is defined twice, once for `#[cfg(panic \u003d \"unwind\")]` and once for its negation. While exactly one definition survives expansion in any given build, the method itself is actually present in every configuration.\n\nCurrently, rustdoc\u0027s `auto_cfg` only looks at whichever `cfg` survived expansion and tags the method accordingly, generating a misleading \"Available on panic\u003dunwind only\" portability badge in the docs.\n\nThis is the same `auto_cfg` limitation previously addressed in rust-lang/rust#153964, rust-lang/rust#154311, and rust-lang/rust#156426: when an item is split into mutually-exclusive `cfg` variants that collectively cover all builds, rustdoc incorrectly marks it as conditionally available. Issue rust-lang/rust#149786 pointed out `PoisonError::new` as another case of this pattern, but it hadn\u0027t been touched yet.\n\nThis PR applies the same fix as rust-lang/rust#156426 (adding `#[doc(auto_cfg \u003d false)]` to both variants) and adds a regression test to cover this pattern going forward.\n\nr? @GuillaumeGomez\n"
    },
    {
      "commit": "5e849b9328fbdff7b02aa5b9dbd23c6901996c03",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "ab688523a842aa4195af0eacbb2b4e1b4ea583e7",
        "7a621dc575bed5e79d17f83e27e3f397dc798d4e"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:48 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:48 2026 -0400"
      },
      "message": "Rollup merge of #159786 - AayushMainali-Github:fix-142648-ignore-hidden-js-tests, r\u003dnotriddle\n\nrustdoc-js: ignore editor temp files in test folder discovery\n\n`tester.js` previously treated every `*.js` entry under `--test-folder` as a test. Editor temporary files such as Emacs `.#alias-4.js` also end with `.js`, so discovering them caused `rustdoc-js-std` to fail with `ENOENT` when the lock file was a dead symlink.\n\nThis change mirrors compiletest\u0027s `is_test` filtering and skips names that start with `.`, `#`, or `~` during folder discovery. Explicit `--test-file` paths are unchanged.\n\nFixes rust-lang/rust#142648.\n"
    },
    {
      "commit": "ab688523a842aa4195af0eacbb2b4e1b4ea583e7",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "1b5cfe83b0bbadd0598f46dd1522e1d28035ff06",
        "e8a7fba3c014e79ecd86cf83de5d387d46170442"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:47 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:47 2026 -0400"
      },
      "message": "Rollup merge of #159780 - folkertdev:extern-custom-check-fn-ptrs, r\u003dWaffleLapkin\n\ncheck `extern \"custom\"` function pointers\n\ntracking issue: https://github.com/rust-lang/rust/issues/140829\nrelated RFC: https://github.com/rust-lang/rfcs/pull/3980\n\nBest reviewed commit-by-commit.\n\nThis PR makes 3 changes\n\n- extend the ABI checks we already performed on function definitions and trait and foreign declarations to function pointer types. This touches the various `interupt` ABIs and `extern \"custom\"`.\n- remove the ability for `extern \"custom\"` to return `!`\n- improve the suggestion when `safe` is used in a function pointer type\n"
    },
    {
      "commit": "1b5cfe83b0bbadd0598f46dd1522e1d28035ff06",
      "tree": "315a4c23732f1e49792dc7cc2bc2299e1add46a3",
      "parents": [
        "f7f4078666cf72bc19fc6195bf2a11da6f7940d7",
        "d14da9d34998f064aedb188caf123a662ede41e1"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:46 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:46 2026 -0400"
      },
      "message": "Rollup merge of #159740 - RalfJung:miri-dedup-exported-symbols, r\u003dbjorn3\n\nreuse regular exported_non_generic_symbols logic in Miri\n\nThis is some gnarly code we have duplicated in Miri, let\u0027s try to reuse the version from rustc.\n\nr? @bjorn3\n"
    },
    {
      "commit": "f7f4078666cf72bc19fc6195bf2a11da6f7940d7",
      "tree": "726ac047169756255b3e4b70b31173029699eee1",
      "parents": [
        "a37c3486ddb8c9d2855891339e88034982bf7ad8",
        "c2441c6bd08ff68fdf0f9af9224807121aa176a5"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:46 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:46 2026 -0400"
      },
      "message": "Rollup merge of #159738 - WaffleLapkin:covariant-unsafe-cell, r\u003djhpratt\n\nimplement `CovariantUnsafeCell`\n\nImplements https://github.com/rust-lang/rust/issues/159735 / https://github.com/rust-lang/libs-team/issues/815.\n"
    },
    {
      "commit": "a37c3486ddb8c9d2855891339e88034982bf7ad8",
      "tree": "726ac047169756255b3e4b70b31173029699eee1",
      "parents": [
        "94ce3f620e0fcdb76f61ec24ad7fbb336a71e994",
        "7f175c747b6882fcf4db371fe9b007b116b0e54d"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:45 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:45 2026 -0400"
      },
      "message": "Rollup merge of #159732 - mejrs:attribute_crawler, r\u003dnnethercote\n\noptimization: don\u0027t look for diagnostic/canonical items without rustc_attrs enabled\n"
    },
    {
      "commit": "94ce3f620e0fcdb76f61ec24ad7fbb336a71e994",
      "tree": "726ac047169756255b3e4b70b31173029699eee1",
      "parents": [
        "3c843856812aca5167cb371438a7629726318f36",
        "c068bd914ee61e749e0e1567b1c534d689321e22"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:44 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:44 2026 -0400"
      },
      "message": "Rollup merge of #159720 - RalfJung:global-allocator-opsem-magic, r\u003daapoalas,nia-e,nikic\n\ndocument #[global_allocator] constraints\n\n`#[global_allocator]` is opsem magic. For instance, even if we do\n```rust\nuse std::alloc::System;\n\n#[global_allocator]\nstatic ALLOC: System \u003d System;\n```\nit is still UB to allocate via `std::alloc::alloc()` and deallocate via `System.dealloc()`. This is because we add special magic LLVM attributes in the `#[global_allocator]` machinery that tell LLVM about our global allocation methods so it can optimize accordingly, and mixing allocators is against those rules.\n\nCc @rust-lang/opsem @rust-lang/lang @nia-e @maxdexh\n@nikic is this enough to ensure that adding your intrinsics is sound?\n"
    },
    {
      "commit": "3c843856812aca5167cb371438a7629726318f36",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "a7c36861287772f189e126de3965fb3716051003",
        "f3f058432b9525ecb91e15b789184fec364de803"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:44 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:44 2026 -0400"
      },
      "message": "Rollup merge of #159700 - joshtriplett:semicolon-in-expressions-from-non-local-macros, r\u003dpetrochenkov\n\nSplit non-local `semicolon_in_expressions_from_macros` into a separate lint\n\nThe new handling for non-local macros in\n`semicolon_in_expressions_from_macros` produces new deny-by-default\nlints on various existing crates, which have not previously received\nwarnings because prior Rust versions suppressed them. Split those out\ninto a new `semicolon_in_expressions_from_non_local_macros` lint, and\nmake that one warn-by-default (and FCW warn-in-deps), rather than\ndeny-by-default, to give the ecosystem time to adapt.\n\nThis reintroduces the `is_local` tracking from commit\n9192337331dc8c59c6367d316c32f08f975b7140.\n"
    },
    {
      "commit": "a7c36861287772f189e126de3965fb3716051003",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "ca3b5ab4528b36b44d887f71c299202bd7e1dcb1",
        "209d341a067bab7a6ec6211294fd9c5cda94e57d"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:43 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:43 2026 -0400"
      },
      "message": "Rollup merge of #159673 - paradoxicalguy:fix-cc-debuginfo-map-detection, r\u003dKobzol\n\nbootstrap: forward -fdebug-prefix-map when using cc\n\nthe existing `clang/gcc` checks don\u0027t match on systems where `self.cc(target)` resolves to `cc`, so `-fdebug-prefix-map` isn\u0027t forwarded to the `C` compiler.\n\nthis leaves local checkout paths in `compiler-builtins DWARF`.\nrecognize cc as well so the remapping flag is forwarded. confirmed `remap-path-prefix-std passes`, and inspecting the generated `DWARF` to verify that checkout paths are remapped.\n\nr? @Urgau\ncc @bjorn3\n"
    },
    {
      "commit": "ca3b5ab4528b36b44d887f71c299202bd7e1dcb1",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "1227e9cf2d6f2a84adaaa8b8c5dc071920f9d3dc",
        "52ca3fcc081ed79450572550de04fe4652397635"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:43 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:43 2026 -0400"
      },
      "message": "Rollup merge of #159518 - Lfan-ke:fix/step-by-range-iter-specialization, r\u003dDarksonn\n\niter: extend step_by specialization to cover StepBy\u003cRangeIter\u003c{integer}\u003e\u003e\n\n`StepBy\u003cRange\u003c{integer}\u003e\u003e` already has a fast path that converts the range\ninto a yield-count before iteration, avoiding per-step overflow checks and\nenabling better loop structure for the optimizer. `StepBy\u003cRangeIter\u003c{integer}\u003e\u003e`\ndid not benefit from the same optimization even though `RangeIter\u003cT\u003e` is a thin\nnewtype wrapper around `legacy::Range\u003cT\u003e`.\n\n## Changes\n\n- `library/core/src/range/iter.rs`: make `RangeIter\u003cA\u003e.0` `pub(crate)` so the\n  step_by adapter can access the inner legacy range\u0027s start/end fields.\n- `library/core/src/iter/adapters/step_by.rs`: add `spec_int_ranges_new!` and\n  `spec_int_ranges_new_r!` macros that mirror the existing `spec_int_ranges!` /\n  `spec_int_ranges_r!` implementations. Forward specialization covers `u8 u16\n  u32 u64 usize` (pointer-width-gated for u32/u64); backward specialization is\n  limited to `u8 u16 usize` since `RangeIter\u003cu32\u003e` / `RangeIter\u003cu64\u003e` do not\n  implement `ExactSizeIterator`.\n- `library/coretests/tests/iter/adapters/step_by.rs`: add\n  `test_step_by_new_range_iter` covering forward, backward, and interleaved\n  iteration via the new-range iterator.\n\n## Motivation\n\nFixes rust-lang/rust#157754. The inner loop for `core::range::Range::from(0..n).into_iter().step_by(2)` currently generates noticeably worse assembly than the equivalent `(0..n).step_by(2)` because specialization did not cover `RangeIter`.\n\nr? libs\n"
    },
    {
      "commit": "1227e9cf2d6f2a84adaaa8b8c5dc071920f9d3dc",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "6bcd87f4773583b0d7740d07a394a377dc2e1c2a",
        "a1e25fa61cbc31d35a476c3c8a5084c351d24f95"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:42 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:42 2026 -0400"
      },
      "message": "Rollup merge of #159179 - hkBst:patch-7, r\u003ddavidtwco\n\nenable `unreachable_cfg_select_predicates` lint as part of `unused` lint group\n\nThis enables the `unreachable_cfg_select_predicates` lint as part of the `unused` lint group. This was apparently planned to be enabled as part of `cfg_select` stabilization, but got overlooked (as can be seen from comments below).\n\nThis lint was merged in https://github.com/rust-lang/rust/pull/149960 which also includes a test for the behavior in `tests/ui/macros/cfg_select.rs`.\n"
    },
    {
      "commit": "6bcd87f4773583b0d7740d07a394a377dc2e1c2a",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "f2aecb5c6c1d3571e16d00dae421924f33f26f63",
        "a1e25fa61cbc31d35a476c3c8a5084c351d24f95"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:41 2026 -0400"
      },
      "message": "Rollup merge of #159174 - bjorn3:fix_xous_warnings, r\u003dDarksonn\n\nFix implicit_provenance_casts warnings on Xous\n"
    },
    {
      "commit": "f2aecb5c6c1d3571e16d00dae421924f33f26f63",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "0550a568d8ee6273ee537d0a9d5d35e14e894f80",
        "dd1dab447b3f15ca1c0548bd5649496582327415"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:40 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:40 2026 -0400"
      },
      "message": "Rollup merge of #158709 - notriddle:html-lint-interleaving, r\u003dcamelid,GuillaumeGomez\n\nrustdoc: warn on improperly interleaved HTML/MD\n\nEnhances the `rustdoc::invalid_html_tags` lint to warn in cases where pulldown-cmark will produce invalid HTML because the Markdown and HTML are improperly nested.\n\nAs an extreme example, this code does not do what it looks like it does, and it doesn\u0027t produce a warning under current nightly, either:\n\n```markdown\nFigure 1: an X\n\u003csvg viewBox\u003d\"0 0 10 10\"\u003e\n\u003cpath\n    d\u003d\"M0 10L10 0M10 10L0 0\"\n    stroke\u003d\"black\"\n\u003e\n\u003c/svg\u003e\n```\n\nThis pull request makes it warn:\n\n```text\nerror: unopened HTML tag `svg`\n  --\u003e $DIR/invalid-html-tags.rs:285:5\n   |\nLL | /// \u003csvg viewBox\u003d\"0 0 10 10\"\u003e\n   |     ---- does not match this unclosed tag\n...\nLL | /// \u003e\n   |     - because the Markdown paragraph is interrupted by this block quote\nLL | /// \u003c/svg\u003e\n   |     ^^^^^^ this unopened tag\n```\n\nSee also: https://talk.commonmark.org/t/thoughts-on-changing-supported-html-syntax-to-include-the-dangling-closing-angle-bracket/3827\n"
    },
    {
      "commit": "0550a568d8ee6273ee537d0a9d5d35e14e894f80",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "03f8c34be918d322c63d8a8a924df6851f5aeae5",
        "e2b305dadbab4ab00b1efe5904c037e2097be85b"
      ],
      "author": {
        "name": "Jacob Pratt",
        "email": "jacob@jhpratt.dev",
        "time": "Sun Jul 26 00:21:39 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 00:21:39 2026 -0400"
      },
      "message": "Rollup merge of #138618 - nbdd0121:asm_const_ptr, r\u003dbjorn3\n\nSupport using const pointers in asm `const` operand\n\nImplements [RFC#3848](https://github.com/rust-lang/rfcs/pull/3848) with tracking issue rust-lang/rust#128464\n\nThis adds support of const pointers for asm `const` in addition to plain integers.\n\nThe inline `asm!` support is implemented using `i` constraint, and the `global_asm!` and `naked_asm!` support is implemented by inserting `symbol + offset` and make `symbol` compiler-used. For unnamed consts, it will create additional internal \u0026 hidden symbols so that they can be referenced by global_asm.\n\n~~The feature is also implemented for GCC backend but it\u0027s untested.~~ Tested now.\n"
    },
    {
      "commit": "29eb31b3ae111337105976096682d7a00a80a664",
      "tree": "6d7d66a5f23248dcbe03cb1f92812fdfa73ef284",
      "parents": [
        "03f8c34be918d322c63d8a8a924df6851f5aeae5"
      ],
      "author": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Sat Jul 25 19:11:28 2026 +0200"
      },
      "committer": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Sat Jul 25 19:11:28 2026 +0200"
      },
      "message": "rename abort_unwind → abort_on_unwind\n"
    },
    {
      "commit": "03f8c34be918d322c63d8a8a924df6851f5aeae5",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "e8a7fba3c014e79ecd86cf83de5d387d46170442",
        "3cb98dae89f4a38e328e6c19ae13a3ba5e644a12"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Fri Jul 24 20:15:07 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Fri Jul 24 20:15:07 2026 +0000"
      },
      "message": "Auto merge of #159847 - nikic:distcheck-shared, r\u003dKobzol\n\nUse dylib build in distcheck\n\nThis reduces disk usage, and thus avoids the distcheck job running out of disk space."
    },
    {
      "commit": "d14da9d34998f064aedb188caf123a662ede41e1",
      "tree": "1263ec59f64a74892a35245e78cf7ce3dad13d07",
      "parents": [
        "397379343425cb40048384be1249d432eac0db89"
      ],
      "author": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Wed Jul 22 22:12:06 2026 +0200"
      },
      "committer": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Fri Jul 24 12:11:37 2026 +0200"
      },
      "message": "reuse regular exported_non_generic_symbols logic in Miri\n"
    },
    {
      "commit": "e8a7fba3c014e79ecd86cf83de5d387d46170442",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "a7caf579d122102ae8170a540fedcc0368ece561",
        "474e1b5485d326c359148edecb02d38b9404740c"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Jul 23 19:01:22 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Jul 23 19:01:22 2026 +0000"
      },
      "message": "Auto merge of #157986 - panstromek:make-field-def-smaller, r\u003dpetrochenkov\n\nTry to make FieldDef smaller\n\n\n\nTries to mitigate the regression from https://github.com/rust-lang/rust/pull/156824. We do this by Option Boxing together all the properties that are only used for unstable features.\r\n\r\nfixes https://github.com/rust-lang/rust/issues/157003"
    },
    {
      "commit": "c068bd914ee61e749e0e1567b1c534d689321e22",
      "tree": "61607cae0b90045c95996eac4079e507e071435a",
      "parents": [
        "7f175c747b6882fcf4db371fe9b007b116b0e54d"
      ],
      "author": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Wed Jul 22 16:18:51 2026 +0200"
      },
      "committer": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Thu Jul 23 17:37:48 2026 +0200"
      },
      "message": "document #[global_allocator] constraints\n"
    },
    {
      "commit": "a7caf579d122102ae8170a540fedcc0368ece561",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "7a621dc575bed5e79d17f83e27e3f397dc798d4e",
        "3cb98dae89f4a38e328e6c19ae13a3ba5e644a12"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Jul 23 15:30:57 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Jul 23 15:30:57 2026 +0000"
      },
      "message": "Auto merge of #159721 - camelid:better-impls, r\u003dGuillaumeGomez\n\nrustdoc: Only inline impls for local primitives\n\nPreviously, the code inlined impls for primitives even if primitives were not defined in the current crate at all. Since most crates do not define `#[doc(primitive)]`s, this is a bunch of wasted work that is done in every crate. Really, rustdoc should have a more pull-based model for inlining impls rather than trying to predict ahead of item what needs to be collected.\r\n\r\nThis also includes a couple of small perf-related followups to rust-lang/rust#159623."
    },
    {
      "commit": "7a621dc575bed5e79d17f83e27e3f397dc798d4e",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "161dd69ebd12f27afeccaf7d89f364e74590e5e0",
        "e2b305dadbab4ab00b1efe5904c037e2097be85b"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Jul 23 10:43:37 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Jul 23 10:43:37 2026 +0000"
      },
      "message": "Auto merge of #159011 - xonx4l:intrinsic-test-default, r\u003dKobzol\n\nintrinsic-test: run by default \n\n\n\nThis PR makes `intrinsic-test` run by default in `x test` and raise sample-percentage to `100`.\r\n\r\nr? @Kobzol\r\n\r\n\r\n\r\n"
    },
    {
      "commit": "1eff8739e743b1fae470f69b7ccb2e4838bf8bf7",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "408b638c07124969219dcec683dfa8fec2d1d2ae",
        "82130a309be56fe46a70dab4a02774f3357c6e61"
      ],
      "author": {
        "name": "Tshepang Mbambo",
        "email": "hopsi@tuta.io",
        "time": "Thu Jul 23 10:40:39 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 10:40:39 2026 +0200"
      },
      "message": "Merge pull request #2941 from rust-lang/rustc-pull\n\nRustc pull update"
    },
    {
      "commit": "82130a309be56fe46a70dab4a02774f3357c6e61",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "52506b1f7d365773131cb08fb2ed6bd511e94eab",
        "161dd69ebd12f27afeccaf7d89f364e74590e5e0"
      ],
      "author": {
        "name": "The rustc-josh-sync Cronjob Bot",
        "email": "github-actions@github.com",
        "time": "Thu Jul 23 08:30:22 2026 +0000"
      },
      "committer": {
        "name": "The rustc-josh-sync Cronjob Bot",
        "email": "github-actions@github.com",
        "time": "Thu Jul 23 08:30:22 2026 +0000"
      },
      "message": "Merge ref \u0027390279b302ca\u0027 from rust-lang/rust\n\nPull recent changes from https://github.com/rust-lang/rust via Josh.\n\nUpstream ref: rust-lang/rust@390279b302ca98ae270f434100ae3730531d1246\nFiltered ref: rust-lang/rustc-dev-guide@b7a3663fb8b699fe641e3846e2d5b6f559d9c125\nUpstream diff: https://github.com/rust-lang/rust/compare/9e71b3bc704eea68d39bd0f6a46703c7d22f5d3b...390279b302ca98ae270f434100ae3730531d1246\n\nThis merge was created using https://github.com/rust-lang/josh-sync.\n"
    },
    {
      "commit": "408b638c07124969219dcec683dfa8fec2d1d2ae",
      "tree": "2e352cb1eb5183725b49c1af6a7b6234ded41146",
      "parents": [
        "52506b1f7d365773131cb08fb2ed6bd511e94eab",
        "af9ebfa59d4e4fd04e0b6f0847c4bafb631a4cc1"
      ],
      "author": {
        "name": "Tshepang Mbambo",
        "email": "hopsi@tuta.io",
        "time": "Thu Jul 23 10:30:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 10:30:20 2026 +0200"
      },
      "message": "Merge pull request #2940 from rust-lang/tshepang/misc\n\nmisc things"
    },
    {
      "commit": "15e1f274ca9cdeba049d138487ef849a957b4718",
      "tree": "ce655c80d1dbb184879b87f510838a5fc2af38a8",
      "parents": [
        "1909ad7065b6c1cbf6e086f4db2366c475e42c56",
        "c3867645d43a0b3bb4df0883fc1c9a780c281147"
      ],
      "author": {
        "name": "Oli Scherer",
        "email": "github35764891676564198441@oli-obk.de",
        "time": "Thu Jul 23 08:24:30 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 08:24:30 2026 +0000"
      },
      "message": "Merge pull request #5220 from moabo3li/handle-projected-values\n\n[Priroda] Render projected debug-info values\n"
    },
    {
      "commit": "1909ad7065b6c1cbf6e086f4db2366c475e42c56",
      "tree": "4bd3e633c4c6182c29e0be82761c5c8954dc5581",
      "parents": [
        "8ebb45570f68856792198b2639ed2f84b1a240f0",
        "9b9d07873bfd6af45fa2f9340d39f98fb75577ca"
      ],
      "author": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Thu Jul 23 07:05:12 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 07:05:12 2026 +0000"
      },
      "message": "Merge pull request #5225 from rust-lang/rustup-2026-07-23\n\nAutomatic Rustup\n"
    },
    {
      "commit": "397379343425cb40048384be1249d432eac0db89",
      "tree": "01913dc02ee3ab9d6d93784df5963c2dfa6c7141",
      "parents": [
        "7f175c747b6882fcf4db371fe9b007b116b0e54d"
      ],
      "author": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Wed Jul 22 22:20:46 2026 +0200"
      },
      "committer": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Thu Jul 23 09:03:21 2026 +0200"
      },
      "message": "x test cargo-miri: run all subcrate tests as well\n\nalso add a test for cross-crate static initializers\n"
    },
    {
      "commit": "c3867645d43a0b3bb4df0883fc1c9a780c281147",
      "tree": "3969582be316ba28a2df9d45962c2f9576033370",
      "parents": [
        "36d41c527e00f5a88d4143eceba650886c0f8dc0"
      ],
      "author": {
        "name": "Mohamed Ali",
        "email": "mohmedali1462005@gmail.com",
        "time": "Tue Jul 21 10:02:19 2026 +0300"
      },
      "committer": {
        "name": "Mohamed Ali",
        "email": "mohmedali1462005@gmail.com",
        "time": "Thu Jul 23 09:53:32 2026 +0300"
      },
      "message": "[Priroda] Render projected debug-info values\n\nKeep projected MIR Places long enough to evaluate them with\n`eval_place_to_op`, then reuse the existing raw operand renderer for\nimmediate and memory-backed values.\n\nThis removes `\u003cunsupported-projection\u003e` from projected locals, including\nfields, enum projections, references, and dereferences. Update the projected\ndebug-info UI expectations and verify the full Priroda suite.\n"
    },
    {
      "commit": "36d41c527e00f5a88d4143eceba650886c0f8dc0",
      "tree": "cc815e38a96f57b2ad9742fbd0dd95f47e571cdb",
      "parents": [
        "36219d3ef13270adf46973f0e0e1ade0c91f1b04"
      ],
      "author": {
        "name": "Mohamed Ali",
        "email": "mohmedali1462005@gmail.com",
        "time": "Thu Jul 23 09:13:13 2026 +0300"
      },
      "committer": {
        "name": "Mohamed Ali",
        "email": "mohmedali1462005@gmail.com",
        "time": "Thu Jul 23 09:53:25 2026 +0300"
      },
      "message": "[Priroda] Test projected mplace value range rendering\n\nAdd a CLI fixture covering a projected memory-backed field inside a larger\naggregate. This locks in that projected values render only their own MPlace\nlayout bytes instead of trailing bytes from the parent allocation.\n"
    },
    {
      "commit": "9b9d07873bfd6af45fa2f9340d39f98fb75577ca",
      "tree": "4bd3e633c4c6182c29e0be82761c5c8954dc5581",
      "parents": [
        "29da08ada45d19a8a0032fc75eaae7eca636eca9",
        "161dd69ebd12f27afeccaf7d89f364e74590e5e0"
      ],
      "author": {
        "name": "The Miri Cronjob Bot",
        "email": "miri@cron.bot",
        "time": "Thu Jul 23 05:37:05 2026 +0000"
      },
      "committer": {
        "name": "The Miri Cronjob Bot",
        "email": "miri@cron.bot",
        "time": "Thu Jul 23 05:37:05 2026 +0000"
      },
      "message": "Merge ref \u0027390279b302ca\u0027 from rust-lang/rust\n\nPull recent changes from https://github.com/rust-lang/rust via Josh.\n\nUpstream ref: rust-lang/rust@390279b302ca98ae270f434100ae3730531d1246\nFiltered ref: rust-lang/miri@161dd69ebd12f27afeccaf7d89f364e74590e5e0\nUpstream diff: https://github.com/rust-lang/rust/compare/1af98b7cdf86932b76182a387f52f1be6f0c1be0...390279b302ca98ae270f434100ae3730531d1246\n\nThis merge was created using https://github.com/rust-lang/josh-sync.\n"
    },
    {
      "commit": "29da08ada45d19a8a0032fc75eaae7eca636eca9",
      "tree": "eb32e1dbe0cdf53abc80b7f25eb310871b8bb084",
      "parents": [
        "8ebb45570f68856792198b2639ed2f84b1a240f0"
      ],
      "author": {
        "name": "The Miri Cronjob Bot",
        "email": "miri@cron.bot",
        "time": "Thu Jul 23 05:28:39 2026 +0000"
      },
      "committer": {
        "name": "The Miri Cronjob Bot",
        "email": "miri@cron.bot",
        "time": "Thu Jul 23 05:28:39 2026 +0000"
      },
      "message": "Prepare for merging from rust-lang/rust\n\nThis updates the rust-version file to 390279b302ca98ae270f434100ae3730531d1246.\n"
    },
    {
      "commit": "161dd69ebd12f27afeccaf7d89f364e74590e5e0",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "787ade86935775387ecf38baf014d1703192b8a1",
        "9b918147117426276c18fd817463f22a8ed5ff03"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Jul 23 02:06:23 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Thu Jul 23 02:06:23 2026 +0000"
      },
      "message": "Auto merge of #159748 - GuillaumeGomez:rollup-9nyJVea, r\u003dGuillaumeGomez\n\nRollup of 8 pull requests\n\nSuccessful merges:\n\n - rust-lang/rust#159504 (Abort const-eval queries early when there are generics in the type)\n - rust-lang/rust#159523 (std: fix Xous UDP recv length over-report and OOB panic)\n - rust-lang/rust#159605 (Add fallback for `intrinsics::fabs`)\n - rust-lang/rust#159699 (bump std libc to 0.2.189)\n - rust-lang/rust#159306 (Add new variant to iterating-updating-mutref borrowck test)\n - rust-lang/rust#159346 (fs::hard_link: use linkat on Android)\n - rust-lang/rust#159513 (Consider `()` as suspicious only when expecting `!` for runtime symbols)\n - rust-lang/rust#159734 (Document the link_section attribute)\n\n\n\n"
    },
    {
      "commit": "787ade86935775387ecf38baf014d1703192b8a1",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "b409a3aec5325139dc24c874656ae81d5ae53515",
        "7180c3c925af48f24575f728c81d2ed8504e4ea7"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Jul 22 22:50:42 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Jul 22 22:50:42 2026 +0000"
      },
      "message": "Auto merge of #157797 - glandium:uninit, r\u003doli-obk\n\ncodegen: skip stores for entirely-uninit constant aggregate fields\n\n\n\nMIR GVN (since rust-lang/rust#147827) propagates MaybeUninit::uninit() as `const \u003cuninit\u003e` in aggregate constructions. Without this fix, codegen would emit a memcpy from an `[N x i8] undef` global for each such field, which LLVM materializes as zero-initialization.\r\n\r\nThis mirrors the existing `all_bytes_uninit` skip already present for `Rvalue::Use` (added in rust-lang/rust#147827) into the `Rvalue::Aggregate` field loop.\r\n\r\nFixes: rust-lang/rust#157743"
    },
    {
      "commit": "9b918147117426276c18fd817463f22a8ed5ff03",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "c3e4889950aaabf4f1f5be77419bfa05b5287942",
        "7f175c747b6882fcf4db371fe9b007b116b0e54d"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Thu Jul 23 00:29:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 00:29:29 2026 +0200"
      },
      "message": "Rollup merge of #159734 - amirHdev:docs-link-section-attribute, r\u003dGuillaumeGomez\n\nDocument the link_section attribute\n\nPart of rust-lang/rust#157604\n\nr? @GuillaumeGomez\n"
    },
    {
      "commit": "c3e4889950aaabf4f1f5be77419bfa05b5287942",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "7a6738fd02d08ed805bf83d13a03b07e1b080e81",
        "474e1b5485d326c359148edecb02d38b9404740c"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Thu Jul 23 00:29:28 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 00:29:28 2026 +0200"
      },
      "message": "Rollup merge of #159513 - Urgau:runtime-symbols-159446, r\u003dfee1-dead\n\nConsider `()` as suspicious only when expecting `!` for runtime symbols\n\nConsider `()` as suspicious only when expecting `!` for runtime symbols, as `!` is considered ABI compatible in Rust with `()` (https://github.com/rust-lang/rust/issues/159446#issuecomment-5007167464).\n\nFixes rust-lang/rust#159446\n"
    },
    {
      "commit": "7a6738fd02d08ed805bf83d13a03b07e1b080e81",
      "tree": "2aa8fde1affc2beda7df09a95583bd7a2e1bc4f4",
      "parents": [
        "ea5b87e8e51b164f47ec752999962ea5476cde51",
        "f05f75f441bdbed5b82071c68c9257ea29a44bb7"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Thu Jul 23 00:29:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 00:29:27 2026 +0200"
      },
      "message": "Rollup merge of #159346 - RalfJung:android-linkat, r\u003dthe8472\n\nfs::hard_link: use linkat on Android\n\nAccording to https://github.com/rust-lang/rust/commit/6249cda78f0cd32b60fb11702b7ffef3e3bab0b2, `linkat` needs API level 21. That is ancient (2014, Android 5). Our [target page](https://doc.rust-lang.org/rustc/platform-support/android.html) does not say which minimum Android version or API level we support, it just says:\n\n\u003e Rust will support the most recent Long Term Support (LTS) Android Native Development Kit (NDK). By default Rust will support all API levels supported by the NDK, but a higher minimum API level may be required if deemed necessary.\n\nThat\u0027s pretty useless as I have no idea how I\u0027d figure out what the \"API levels support by the NDK\" are.\nCc @chriswailes @jfgoog @maurer @pirama-arumuga-nainar\n\nFixes https://github.com/rust-lang/miri/issues/5080\n"
    },
    {
      "commit": "ea5b87e8e51b164f47ec752999962ea5476cde51",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "1b69d7321845e91c5349359f790934f07c199bcf",
        "2631f42f37b02e1028f38272fd7309a9b46a25cd"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Thu Jul 23 00:29:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 00:29:26 2026 +0200"
      },
      "message": "Rollup merge of #159306 - jackh726:iterating-updating-mutref-variant, r\u003dlqd\n\nAdd new variant to iterating-updating-mutref borrowck test\n\nThis is a useful variant to consider when porting to a-mir-formality.\n\nr? lqd\n"
    },
    {
      "commit": "1b69d7321845e91c5349359f790934f07c199bcf",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "1273d9af2b7473598c8c9d724e6b31425c91e0da",
        "f3f058432b9525ecb91e15b789184fec364de803"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Thu Jul 23 00:29:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 00:29:26 2026 +0200"
      },
      "message": "Rollup merge of #159699 - wllenyj:bump-libc, r\u003dJohnTitor\n\nbump std libc to 0.2.189\n\nUpgrade the std libc version to the latest `v0.2.189` from `v0.2.185`.\n\nThere are too many changes between `v0.2.186` and `v0.2.187`, I\u0027m not sure if `libc`\u0027s update strategy is one version at a time, or if it allows upgrading multiple versions at once.\nI now need to resolve the CI failure caused by `libc::SO_KEEPALIVE` in the `socket2` crate for https://github.com/rust-lang/socket2/pull/666\n\n``` hide\nrunning `cargo check -Z build-std\u003dstd,panic_abort --target thumbv8m.main-nuttx-eabihf --no-default-features` on socket2 (1/2)\n      Updating crates.io index\n       Locking 3 packages to latest compatible versions\n   Downloading crates ...\n    Downloaded libc v0.2.189\n      Updating crates.io index\n   Downloading crates ...\n    Downloaded addr2line v0.27.0\n    Downloaded foldhash v0.2.0\n    Downloaded getopts v0.2.24\n    Downloaded cfg-if v1.0.4\n    Downloaded memchr v2.7.6\n    Downloaded rustc-literal-escaper v0.0.8\n    Downloaded object v0.39.1\n    Downloaded rustc-demangle v0.1.28\n    Downloaded libc v0.2.185\n    Downloaded adler2 v2.0.1\n    Downloaded gimli v0.34.0\n    Downloaded hashbrown v0.17.1\n    Downloaded miniz_oxide v0.9.1\n     Compiling compiler_builtins v0.1.160 (/home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/compiler-builtins/compiler-builtins)\n     Compiling core v0.0.0 (/home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core)\n     Compiling libc v0.2.185\n     Compiling object v0.39.1\n     Compiling std v0.0.0 (/home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std)\n     Compiling libc v0.2.189\n     Compiling rustc-std-workspace-core v1.99.0 (/home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/rustc-std-workspace-core)\n     Compiling alloc v0.0.0 (/home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc)\n     Compiling adler2 v2.0.1\n     Compiling memchr v2.7.6\n     Compiling unwind v0.0.0 (/home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/unwind)\n     Compiling cfg-if v1.0.4\n     Compiling rustc-demangle v0.1.28\n     Compiling panic_abort v0.0.0 (/home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/panic_abort)\n     Compiling rustc-literal-escaper v0.0.8\n     Compiling rustc-std-workspace-alloc v1.99.0 (/home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/rustc-std-workspace-alloc)\n     Compiling panic_unwind v0.0.0 (/home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/panic_unwind)\n     Compiling gimli v0.34.0\n     Compiling hashbrown v0.17.1\n     Compiling miniz_oxide v0.9.1\n     Compiling std_detect v0.1.5 (/home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std_detect)\n     Compiling addr2line v0.27.0\n  error[E0425]: cannot find value `SO_KEEPALIVE` in crate `libc`\n     --\u003e /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/net/connection/socket/unix.rs:462:59\n      |\n  462 |         unsafe { setsockopt(self, libc::SOL_SOCKET, libc::SO_KEEPALIVE, keepalive as c_int) }\n      |                                                           ^^^^^^^^^^^^ not found in `libc`\n\n  error[E0425]: cannot find value `SO_KEEPALIVE` in crate `libc`\n     --\u003e /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/net/connection/socket/unix.rs:466:76\n      |\n  466 |         let raw: c_int \u003d unsafe { getsockopt(self, libc::SOL_SOCKET, libc::SO_KEEPALIVE)? };\n      |                                                                            ^^^^^^^^^^^^ not found in `libc`\n\n```\n"
    },
    {
      "commit": "1273d9af2b7473598c8c9d724e6b31425c91e0da",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "fcda51bb1dd8049eca710c86ead6d1b62f219143",
        "5069f222e7506d69d64637de8fa4259cfd4e86db"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Thu Jul 23 00:29:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 00:29:25 2026 +0200"
      },
      "message": "Rollup merge of #159605 - N1ark:fabs-fallback, r\u003dfolkertdev\n\nAdd fallback for `intrinsics::fabs`\n\nAdd a fallback for the `fabs` intrinsic. Because it uses const traits and const ops it required adding `rustc_const_unstable` -- i\u0027m not certain it\u0027s right but it seems to make sense. I also added `#[miri::intrinsic_fallback_is_spec]`, though im not sure if I need to modify the const eval code to remove `fabs` handling or to remove it from any of the backends\n\nr? folkertdev\n"
    },
    {
      "commit": "fcda51bb1dd8049eca710c86ead6d1b62f219143",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "64615a8622ec10d81a24f55e0d970a695a5bd711",
        "7716eddb64e74f7c67c778d9b2183384a83b44c0"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Thu Jul 23 00:29:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 00:29:24 2026 +0200"
      },
      "message": "Rollup merge of #159523 - devnexen:xous_upd_fix_2, r\u003dDarksonn\n\nstd: fix Xous UDP recv length over-report and OOB panic\n\nrecv_inner returned the datagram length instead of the bytes copied into the caller\u0027s buffer, and rxlen \u003e\u003d 4075 could index past the receive buffer and panic. Clamp the count to both buffers, as in rust-lang/rust#158928.\n"
    },
    {
      "commit": "64615a8622ec10d81a24f55e0d970a695a5bd711",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "474e1b5485d326c359148edecb02d38b9404740c",
        "5069f222e7506d69d64637de8fa4259cfd4e86db"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "contact@guillaume-gomez.fr",
        "time": "Thu Jul 23 00:29:23 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 00:29:23 2026 +0200"
      },
      "message": "Rollup merge of #159504 - RalfJung:generic-in-pat, r\u003dBoxyUwU,Nadrieril\n\nAbort const-eval queries early when there are generics in the type\n\nSince [recently](https://github.com/rust-lang/rust/pull/156977), const validation has a `has_param` check, which means ConstToPat also implicitly has that check. But it seems better to check this again explicitly here rather then rely on an undocumented property of some other component. The new test behaves the same with or without the PR.\n\nI recommend hiding whitespace difference, since rustfmt re-indendet a bunch of stuff.\nFixes https://github.com/rust-lang/rust/issues/150296\nr? @BoxyUwU\n"
    },
    {
      "commit": "b409a3aec5325139dc24c874656ae81d5ae53515",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "474e1b5485d326c359148edecb02d38b9404740c",
        "7716eddb64e74f7c67c778d9b2183384a83b44c0"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Jul 22 19:33:32 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Jul 22 19:33:32 2026 +0000"
      },
      "message": "Auto merge of #143208 - Mark-Simulacrum:skip-noop-cleanup, r\u003doli-obk\n\nApply RemoveNoopLandingPads post-monomorphization\n\n\r\n\r\nOn Cargo this cuts ~5% of the LLVM IR lines we generate (measured with -Cno-prepopulate-passes).\r\n\r\nCloses https://github.com/rust-lang/rust/issues/159399.\r\n"
    },
    {
      "commit": "8ebb45570f68856792198b2639ed2f84b1a240f0",
      "tree": "938fa694c2f8fd0242378dba4b6d48619e243510",
      "parents": [
        "ed0b1bc0b0fd0114ec17ea29dbea492382ca4303",
        "02e0907a2f9d62cda7b40e5bb08f7af0f5b20c84"
      ],
      "author": {
        "name": "Ralf Jung",
        "email": "post@ralfj.de",
        "time": "Wed Jul 22 16:07:49 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 16:07:49 2026 +0000"
      },
      "message": "Merge pull request #5224 from RalfJung/rustup\n\nRustup\n"
    },
    {
      "commit": "474e1b5485d326c359148edecb02d38b9404740c",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "7f175c747b6882fcf4db371fe9b007b116b0e54d",
        "a9dde8800332d0e01e6209f0947f7897b16429a7"
      ],
      "author": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Jul 22 16:03:28 2026 +0000"
      },
      "committer": {
        "name": "bors",
        "email": "bors@rust-lang.org",
        "time": "Wed Jul 22 16:03:28 2026 +0000"
      },
      "message": "Auto merge of #159728 - JonathanBrouwer:rollup-6YNKbiO, r\u003dJonathanBrouwer\n\nRollup of 11 pull requests\n\nSuccessful merges:\n\n - rust-lang/rust#159712 (Subtree sync for rustc_codegen_cranelift)\n - rust-lang/rust#155697 (Stabilize c-variadic function definitions)\n - rust-lang/rust#159285 (Simplify `apply_effects_in_range`)\n - rust-lang/rust#159596 (unify the AST repr of type const and const RHS)\n - rust-lang/rust#159607 (test: update riscv32e-registers.rs for LLVM 24 MC diagnostic changes)\n - rust-lang/rust#159659 (Move `Limit` out of `rustc_hir`)\n - rust-lang/rust#159707 (fix error when a dangling ref in a ManuallyDrop is used in a pattern)\n - rust-lang/rust#158738 (next_trait_solver: Recover from GCE const exprs)\n - rust-lang/rust#159451 (Remove config cloning in compiletest)\n - rust-lang/rust#159646 (Increase depth for float infer var fallback hack)\n - rust-lang/rust#159705 (bootstrap: Prefer `cfg!(not(test))` when skipping code paths during unit tests)\n\n\n\n"
    },
    {
      "commit": "a9dde8800332d0e01e6209f0947f7897b16429a7",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "c6aaf78bbffe9077f74f5cd27802125efb17f7a2",
        "c4103d88df71b66ce75dda3aea7ef5c668a6ee01"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Wed Jul 22 18:02:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 18:02:25 2026 +0200"
      },
      "message": "Rollup merge of #159705 - Zalathar:cfg-test, r\u003dKobzol\n\nbootstrap: Prefer `cfg!(not(test))` when skipping code paths during unit tests\n\n- [Zulip thread: Reducing conditional compilation in bootstrap?](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Reducing.20conditional.20compilation.20in.20bootstrap.3F/with/611882645)\n---\n\nBootstrap contains a few code paths that need to be stubbed out when running bootstrap\u0027s unit tests, so that they don\u0027t download files or cause other problems. (That\u0027s unfortunate, but fixing it is outside the scope of this PR.)\n\nCurrently those code paths are skipped using `#[cfg(test)]` and `#[cfg(not(test))]`, which does achieve the desired effect, but has a few downsides. The stubbed-out code triggers dead-code and unused-import warnings, and makes IDE navigation harder when rust-analyzer treats `cfg(test)` as true when analyzing the code.\n\nIf we switch to using `cfg!(test)` and `cfg!(not(test))` to “dynamically” skip the relevant code paths, it still gets skipped, but the skipped code is still considered live for the purpose of dead-code warnings and IDE analysis.\n"
    },
    {
      "commit": "c6aaf78bbffe9077f74f5cd27802125efb17f7a2",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "970257a719c8da20923a72337e2bcd3a4e78cb3c",
        "5069f222e7506d69d64637de8fa4259cfd4e86db"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Wed Jul 22 18:02:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 18:02:24 2026 +0200"
      },
      "message": "Rollup merge of #159646 - adwinwhite:fix-f16-hack, r\u003dlcnr\n\nIncrease depth for float infer var fallback hack\n\nFixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/280\n\nWith this, the fallback hack works again in `bevy-shaders@0.1.0` and `bevy-multi@0.1.0`.\n\nAlso added perf optimizations to the proof tree visitor.\n\nr? @ShoyuVanilla\ncc @lcnr\n"
    },
    {
      "commit": "970257a719c8da20923a72337e2bcd3a4e78cb3c",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "5067b51487b228cff8111c0ea6d35c27cab5b52d",
        "d686e0d9131a79d07ba338c892daacbaa2e14046"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Wed Jul 22 18:02:23 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 18:02:23 2026 +0200"
      },
      "message": "Rollup merge of #159451 - Kobzol:compiletest-debuginfo, r\u003dZalathar,jieyouxu\n\nRemove config cloning in compiletest\n\nThis PR is a continuation of https://github.com/rust-lang/rust/pull/159177. It removes the previous cloning of the compiletest config, and replaces it with a concept of a test *variant*, which is a generalization of a test revision. The variant contains an optional revision and an optional debugger for which will the given test be executed.\n\nCC @zalathar\n\nBest reviewed commit-by-commit.\n\nr? @jieyouxu\n"
    },
    {
      "commit": "5067b51487b228cff8111c0ea6d35c27cab5b52d",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "8a4a169bd3dc20275cb2783ac02d7001de107ef8",
        "e62b79cadc3d1c75697d6db3ea5c00e242b353bc"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Wed Jul 22 18:02:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 18:02:22 2026 +0200"
      },
      "message": "Rollup merge of #158738 - Dnreikronos:next_trait_solver/gce_expr_recovery, r\u003dBoxyUwU\n\nnext_trait_solver: Recover from GCE const exprs\n\nfixes rust-lang/rust#158428\n\nthe next solver already rejects `generic_const_exprs` with `-Znext-solver\u003dglobally`, but we can still walk into `ConstKind::Expr` while compiling after that error and crash anyway.\n\nimo this should stay as a recovery fix, not a gce implementation. ambiguity still lgtm to me here: idk that we want to say the expr is solved when the feature combo is already invalid, we just need to not ice after the real error.\n\nlong-term, proper `ConstKind::Expr` support would be a much bigger thing. the next solver would need to type-check, normalize, compare, and evaluate or prove these exprs structurally, including nested binops, unops, casts, calls, and the result type for `ConstArgHasType`. that\u0027s out of scope for this pr.\n\nthis teaches both const evaluatable and const arg has type paths to recover on `ConstKind::Expr`, then adds the union repro as a ui test.\n"
    },
    {
      "commit": "8a4a169bd3dc20275cb2783ac02d7001de107ef8",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "cdbe8c243919f7e44cdab909b13934344fa07bef",
        "5069f222e7506d69d64637de8fa4259cfd4e86db"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Wed Jul 22 18:02:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 18:02:22 2026 +0200"
      },
      "message": "Rollup merge of #159707 - RalfJung:dangling-ref-in-pattern, r\u003dWaffleLapkin\n\nfix error when a dangling ref in a ManuallyDrop is used in a pattern\n\nFixes https://github.com/rust-lang/rust/issues/159701\nCc @rust-lang/wg-const-eval\n"
    },
    {
      "commit": "cdbe8c243919f7e44cdab909b13934344fa07bef",
      "tree": "e81f0cb9e45d43d9b21e1a731eee9e710b3a5d01",
      "parents": [
        "2ddebd3d36cf7b90286223e8e91849d5d491c02f",
        "5069f222e7506d69d64637de8fa4259cfd4e86db"
      ],
      "author": {
        "name": "Jonathan Brouwer",
        "email": "jonathantbrouwer@gmail.com",
        "time": "Wed Jul 22 18:02:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 18:02:21 2026 +0200"
      },
      "message": "Rollup merge of #159659 - mejrs:limit, r\u003dpetrochenkov\n\nMove `Limit` out of `rustc_hir`\n\nIt feels rather out of place in `rustc_hir`, so this PR moves it to `rustc_data_structures`. Part of hopefully moving attributes from `rustc_hir` to their own crate.\n\n~~This also lets `rustc_type_ir` use it~~ actually rustc_type_ir needs to compile on stable and `rustc_data_structures` uses like 30 features 😢\n"
    }
  ],
  "next": "2ddebd3d36cf7b90286223e8e91849d5d491c02f"
}
