)]}'
{
  "commit": "f7548dd67188ff4f71059fa266b4319ddbade1e1",
  "tree": "39352d665f2b02d3e35648befa17a271fdc8db9a",
  "parents": [
    "0f33d0912709e847199218ebab88e2311872f364"
  ],
  "author": {
    "name": "Trevor Gross",
    "email": "tg@trevorgross.com",
    "time": "Wed Aug 12 21:25:35 2026 -0400"
  },
  "committer": {
    "name": "Trevor Gross",
    "email": "tg@trevorgross.com",
    "time": "Tue Aug 25 22:39:35 2026 -0500"
  },
  "message": "Stabilize `funnel_shifts` (including `const`)\n\n`funnel_shl` and `funnel_shr` have been around for close to a year, the\nunchecked versions for a number of months. These are reasonably small\nand uncontroversial, and it can be tricky to get similar performance\nwith a fallback; stabilize them here.\n\nNewly stable API:\n\n    impl {u8, u16, u32, u64, u128, usize} {\n        pub const fn funnel_shl(self, right: Self, shift: u32) -\u003e Self;\n        pub const fn funnel_shr(self, right: Self, shift: u32) -\u003e Self;\n\n        pub const unsafe fn unchecked_funnel_shl(self, right: Self, shift: u32) -\u003e Self;\n        pub const unsafe fn unchecked_funnel_shr(self, right: Self, shift: u32) -\u003e Self;\n    }\n\nThe tracking issue also mentions a `wrapping_` version but it has not\nbeen implemented.\n\nTracking issue: RUST-145686\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "673454abaf04f07b0c18a698c2f5250c03dd2b59",
      "old_mode": 33188,
      "old_path": "library/core/src/intrinsics/mod.rs",
      "new_id": "305bab8ec27e0a27264aecf3cb275770e0fecce7",
      "new_mode": 33188,
      "new_path": "library/core/src/intrinsics/mod.rs"
    },
    {
      "type": "modify",
      "old_id": "4fbd3c6dc214255f5d6ce743c8f8e6c14443ef55",
      "old_mode": 33188,
      "old_path": "library/core/src/lib.rs",
      "new_id": "b047657cf10de470e03eff469976b65ef0a9c745",
      "new_mode": 33188,
      "new_path": "library/core/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "a98ef99b9d7bb800d543836d669f4005e8c70568",
      "old_mode": 33188,
      "old_path": "library/core/src/num/uint_macros.rs",
      "new_id": "2f9de03adced8b412f20a741de85b8b846e82492",
      "new_mode": 33188,
      "new_path": "library/core/src/num/uint_macros.rs"
    },
    {
      "type": "modify",
      "old_id": "c993c947929cde810ec915814b4c559b93c40ff5",
      "old_mode": 33188,
      "old_path": "library/coretests/tests/lib.rs",
      "new_id": "116e1eb48d260a8eb9d983c86119f643869de530",
      "new_mode": 33188,
      "new_path": "library/coretests/tests/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "92eccc27ee05de50dd905bda4632d0eed5e12ad6",
      "old_mode": 33188,
      "old_path": "library/std/src/lib.rs",
      "new_id": "921a1ff49511ccdf877b939b1c152e76f447a81f",
      "new_mode": 33188,
      "new_path": "library/std/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "57eca221e1abaa39dfa243e7d9d610bf936dca0e",
      "old_mode": 33188,
      "old_path": "library/stdarch/crates/core_arch/src/lib.rs",
      "new_id": "2cb4c43d760e4b46389ec0406bcc5ca5fd2939d6",
      "new_mode": 33188,
      "new_path": "library/stdarch/crates/core_arch/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "40b61f65ebe88ad2c09d088da1788d84bc714dd2",
      "old_mode": 33188,
      "old_path": "src/tools/miri/tests/fail/intrinsics/funnel_shl.rs",
      "new_id": "b64f4551fd605bc0d39627ab8e6155234d4297b3",
      "new_mode": 33188,
      "new_path": "src/tools/miri/tests/fail/intrinsics/funnel_shl.rs"
    },
    {
      "type": "modify",
      "old_id": "95822656397161af8e010e99572a15658d3d2372",
      "old_mode": 33188,
      "old_path": "src/tools/miri/tests/fail/intrinsics/funnel_shr.rs",
      "new_id": "922144d6d6042318135905546bb594fac1e2cb0a",
      "new_mode": 33188,
      "new_path": "src/tools/miri/tests/fail/intrinsics/funnel_shr.rs"
    },
    {
      "type": "modify",
      "old_id": "555a85147ee5f1ceb93b5138c7d005f6dd05a886",
      "old_mode": 33188,
      "old_path": "src/tools/miri/tests/pass/intrinsics/integer.rs",
      "new_id": "2260068704adfa0e5dd3ead3e691d2efd9ab576a",
      "new_mode": 33188,
      "new_path": "src/tools/miri/tests/pass/intrinsics/integer.rs"
    },
    {
      "type": "modify",
      "old_id": "1fb80b4e83f12e6847987ff5782eb6bc05537bcf",
      "old_mode": 33188,
      "old_path": "tests/codegen-llvm/force-intrinsic-fallback.rs",
      "new_id": "3a934b27f828e2856016ae464d878ab79388040d",
      "new_mode": 33188,
      "new_path": "tests/codegen-llvm/force-intrinsic-fallback.rs"
    },
    {
      "type": "modify",
      "old_id": "458c1b121664e8929afaf3e0c3ffb7b02bba2b38",
      "old_mode": 33188,
      "old_path": "tests/ui/std/overflow-check-ops.rs",
      "new_id": "57db92610b20a8b06731c35259ef6690a61fe264",
      "new_mode": 33188,
      "new_path": "tests/ui/std/overflow-check-ops.rs"
    }
  ]
}
