)]}'
{
  "commit": "22cf1fb6fe6b97ebc190824375a2c9701abb850a",
  "tree": "8b3b814272a75e985d5c6ab334c173adb44d2921",
  "parents": [
    "40332688e0185b6ea6f1ba7286958d7bea1b18e8"
  ],
  "author": {
    "name": "Nicholas Nethercote",
    "email": "n.nethercote@gmail.com",
    "time": "Fri May 15 17:58:21 2026 +1000"
  },
  "committer": {
    "name": "Nicholas Nethercote",
    "email": "n.nethercote@gmail.com",
    "time": "Sat May 16 21:16:35 2026 +1000"
  },
  "message": "Split `LintExpectationId`\n\n`LintExpectationId` has two variants, `Unstable` and `Stable`. There are\nsome places where both variants are possible, but there are also places\nwhere only one of `Unstable` or `Stable` is possible.\n\nThis commit encodes this into the type system by introducing\nnew types `UnstableLintExpectationId` and `StableLintExpectationId`. The\nvariants of `LintExpectationId` now enclose these. This makes it clearer\nwhat values are possible where.\n\nOther things of note:\n- `LintLevelsProvider` gets an associated type and some method changes.\n- `LintContext` gets an associated type.\n- `LevelSpec` is made generic. `UnstableLevelSpec` and `StableLevelSpec`\n  typedefs are added.\n- The unstable types are now guaranteed by the type system to never be\n  stably hashed. Previously this was a runtime check.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ec1eb7eeb6fc0ca40407d669b01979edb4465493",
      "old_mode": 33188,
      "old_path": "compiler/rustc_codegen_ssa/src/lib.rs",
      "new_id": "fc573108048730eb95143a4d37a11fafcc7e7637",
      "new_mode": 33188,
      "new_path": "compiler/rustc_codegen_ssa/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "4825b61bc6e410cda3547c12df303dbeffc93872",
      "old_mode": 33188,
      "old_path": "compiler/rustc_lint/src/context.rs",
      "new_id": "3cbd02e2ed8d9e18d919cb7ca051e7407df477fb",
      "new_mode": 33188,
      "new_path": "compiler/rustc_lint/src/context.rs"
    },
    {
      "type": "modify",
      "old_id": "481e116d06e0103eeec6e4d72022e5b5df96de81",
      "old_mode": 33188,
      "old_path": "compiler/rustc_lint/src/expect.rs",
      "new_id": "5364a4141805ba9ee8d4fe456dc0c2d2cc34ce97",
      "new_mode": 33188,
      "new_path": "compiler/rustc_lint/src/expect.rs"
    },
    {
      "type": "modify",
      "old_id": "25cc788b63bfa381cbe4cce4112e541dc4b89204",
      "old_mode": 33188,
      "old_path": "compiler/rustc_lint/src/levels.rs",
      "new_id": "3ac1d0e08af735de4abac86753ea0f2bda3f935f",
      "new_mode": 33188,
      "new_path": "compiler/rustc_lint/src/levels.rs"
    },
    {
      "type": "modify",
      "old_id": "2e690c7185f8c655d797d9b25bd3a86946a954dd",
      "old_mode": 33188,
      "old_path": "compiler/rustc_lint_defs/src/lib.rs",
      "new_id": "fc8b2b65a8d489fd6fb755c8d2056af7a2f4e6f3",
      "new_mode": 33188,
      "new_path": "compiler/rustc_lint_defs/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "41eeb1fc9811f5170712e380f31b598adf515a46",
      "old_mode": 33188,
      "old_path": "compiler/rustc_middle/src/lint.rs",
      "new_id": "c1a9c6df72ae3a9201a544e5c24ed0930d3cc596",
      "new_mode": 33188,
      "new_path": "compiler/rustc_middle/src/lint.rs"
    },
    {
      "type": "modify",
      "old_id": "a9fc5dcac8f2977a1519c943a61cbe05d5d31489",
      "old_mode": 33188,
      "old_path": "compiler/rustc_middle/src/queries.rs",
      "new_id": "d62e4ec941d21d33b661a413f7d7651f7fdc08dc",
      "new_mode": 33188,
      "new_path": "compiler/rustc_middle/src/queries.rs"
    },
    {
      "type": "modify",
      "old_id": "5d3ea7e2c237cd789d21f97ce65fba8b048fd790",
      "old_mode": 33188,
      "old_path": "compiler/rustc_passes/src/dead.rs",
      "new_id": "92a0f14f3e94e578d61bf60e74d9dd7d70c6977a",
      "new_mode": 33188,
      "new_path": "compiler/rustc_passes/src/dead.rs"
    },
    {
      "type": "modify",
      "old_id": "cb3cb2479beed526297d09e4c79609e67410300d",
      "old_mode": 33188,
      "old_path": "src/tools/clippy/clippy_lints/src/duplicate_mod.rs",
      "new_id": "f1837e776e824eced156b26fb94bdadfe006a41c",
      "new_mode": 33188,
      "new_path": "src/tools/clippy/clippy_lints/src/duplicate_mod.rs"
    }
  ]
}
