)]}'
{
  "commit": "be422939446d7c5b27ba98debb6b4b8d6a261f1a",
  "tree": "a79e45d3cedc5d832973ac65906284c894f62ac0",
  "parents": [
    "45f256d9d7cffb66185c0bf1b8a864cba79db90c",
    "6d0e04d6f384d8ac8d2eb00ea90d25ac6dcff914"
  ],
  "author": {
    "name": "bors",
    "email": "bors@rust-lang.org",
    "time": "Tue May 27 22:11:53 2025 +0000"
  },
  "committer": {
    "name": "bors",
    "email": "bors@rust-lang.org",
    "time": "Tue May 27 22:11:53 2025 +0000"
  },
  "message": "Auto merge of #129658 - saethlin:spare-a-crumb, r\u003djhpratt\n\nAdd some track_caller info to precondition panics\n\nCurrently, when you encounter a precondition check, you\u0027ll always get the caller location of the implementation of the precondition checks. But with this PR, you\u0027ll be told the location of the invalid call. Which is useful.\n\nI thought of this while looking at https://github.com/rust-lang/rust/pull/129642#issuecomment-2311703898.\n\nThe changes to `tests/ui/const*` happen because the const-eval interpreter skips `#[track_caller]` frames in its backtraces.\n\nThe perf implications of this are:\n* Increased debug binary sizes. The caller_location implementation requires that the additional data we want to display here be stored in const allocations, which are deduplicated but not across crates. There is no impact on optimized build sizes. The panic path and the caller location data get optimized out.\n* The compile time hit to opt-incr-patched bitmaps happens because the patch changes the line number of some function calls with precondition checks, causing us to go from 0 dirty CGUs to 1 dirty CGU.\n* The other compile time hits are marginal but real, and due to doing a handful of new queries. Adding more useful data isn\u0027t completely free.\n",
  "tree_diff": []
}
