)]}'
{
  "commit": "8331acf62c52bfebad0bf2136313f388caae6dea",
  "tree": "1eae41ef9740259d43d0376096c7a33be588e4f1",
  "parents": [
    "256413f5351d05434b99ea87e85e93df152d3958",
    "997012e6612f8e79b1184cb0b4e1002c3dc41e9e"
  ],
  "author": {
    "name": "Jonathan Brouwer",
    "email": "jonathantbrouwer@gmail.com",
    "time": "Fri Jun 26 20:22:16 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jun 26 20:22:16 2026 +0200"
  },
  "message": "Rollup merge of #153697 - teor2345:fn-arg-splat-experiment, r\u003doli-obk\n\nAdd arg splat experiment initial tuple impl\n\n### Description\n\nThis PR is part of the argument splatting lang experiment, and FFI overloading / C++ interop project goals:\n- https://github.com/rust-lang/rust/issues/153629\n- https://rust-lang.github.io/rust-project-goals/2026/overloading-for-ffi.html\n- https://rust-lang.github.io/rust-project-goals/2025h2/interop-problem-map.html\n\nExample code using existing unstable features:\n- https://play.rust-lang.org/?version\u003dnightly\u0026mode\u003ddebug\u0026edition\u003d2024\u0026gist\u003df42a3754a63a3d9365670e57257053d5\n\nDiscussion of implementation strategy:\n- [#t-lang \u003e On overloading @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/On.20overloading/near/579590336)\n\nThe PR is the initial implementation of the feature:\n- `splat` incomplete feature gate\n- `#[splat]` attribute on function arguments\n- Splatted function argument TypeInfo\n- `#[splat]` function parameter check at THIR level\n- splatted MIR lowering (as tupled arguments)\n- feature gate and UI tests for item type filtering, non-splattable arguments, splattable tuples, generics, and the \"overloading at home\" example\n  - about half the diff (1100 lines) is tests and test output\n\nOnce this PR merges, we can add further functionality, then test it out in interop tools.\n\n### Perf Impact\n\nWe expect a 0.1% regression on 5 primary and 0.2% regression on 4 secondary benchmarks in this PR, based on [this perf run](https://github.com/rust-lang/rust/pull/158251#issuecomment-4771006751).\n\nWe tried a number of different ways to improve perf. Limiting splat to the 255th or lower argument is a simple hack that gives good perf, and is good enough for an experiment.\n\nThis PR series already has significant perf wins in rust-lang/rust#155223 - [0.3% perf improvement across 45 primary benchmarks](https://github.com/rust-lang/rust/pull/155223#issuecomment-4257477836). We\u0027re spending a small amount of that perf for the new feature in this PR.\n\n### Out of Scope for this PR\n\n- Change codegen to de-tuple caller and callee\n- Better diagnostics\n- Full support for splatted function pointer arguments\n",
  "tree_diff": []
}
