)]}'
{
  "commit": "2dabc21ee4edfd28c59dfae0cf7bf20aff3bfad1",
  "tree": "2a9348ede658fe79955959f1a9dd813b94b0912d",
  "parents": [
    "cc774959424baf41880e164a09563802b42237de",
    "37c704b869fc71c806b6f70d162f3e81990fa26a"
  ],
  "author": {
    "name": "Jacob Pratt",
    "email": "jacob@jhpratt.dev",
    "time": "Tue Aug 11 21:18:31 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Aug 11 21:18:31 2026 -0400"
  },
  "message": "Rollup merge of #160924 - mejrs:split_cstore, r\u003dJonathanBrouwer\n\nsplit up `rustc_session`\n\nFollowup on https://github.com/rust-lang/rust/pull/160336 cc @JonathanBrouwer (feel free to review if you want)\n\nThe first commit splits out the `cstore` module from `rustc_session` into its own crate.\n\n`rustc_session` actually never used it anywhere internally, and there are also several crates that only depend on `rustc_session` for it. So it is a natural candidate to split off.\n\nThe second commit is similar; `rustc_hir::definitions` is moved to `rustc_hir_id`; it is used nowhere in `rustc_hir`, except to implement an inherent method:\n\n```rust\nimpl DefKind {\n        pub fn def_path_data(self, name: Option\u003cSymbol\u003e) -\u003e DefPathData { }\n}\n```\n\nwhich is used (once) in rustc_middle, so the items in `rustc_hir::definitions` and this conversion function could be in many places. `rustc_hir_id` is the earliest and the easiest, so that\u0027s what I went with.\n\nTogether these allow `rustc_crate_store`, `rustc_hir` and `rustc_session` to compile in parallel.\nCurrent graph:\n\n\u003cimg width\u003d\"825\" height\u003d\"617\" alt\u003d\"image\" src\u003d\"https://github.com/user-attachments/assets/aa954265-0057-4596-a7c4-38290937fb74\" /\u003e\n\nGraph after this pr:\n\n\u003cimg width\u003d\"853\" height\u003d\"572\" alt\u003d\"image\" src\u003d\"https://github.com/user-attachments/assets/9bcd16f8-897c-4990-920b-249500b2e78e\" /\u003e\n",
  "tree_diff": []
}
