)]}'
{
  "commit": "e4194c7075ae35d45bdec1b779a2b57c400af60b",
  "tree": "b3ea2d2c6ad665cd222a767b47f3c99ea2272206",
  "parents": [
    "be0ade2b602bdfe37a3cc259fcc79e8624dcba94"
  ],
  "author": {
    "name": "Yuki Okushi",
    "email": "huyuumi.dev@gmail.com",
    "time": "Sun Oct 12 16:51:28 2025 +0900"
  },
  "committer": {
    "name": "Yuki Okushi",
    "email": "huyuumi.dev@gmail.com",
    "time": "Sun Oct 12 16:51:28 2025 +0900"
  },
  "message": "Deduplicate higher-ranked lifetime capture errors in impl Trait\n\n  Previously, when an `impl Trait` captured multiple higher-ranked\n  lifetimes from an outer `impl Trait`, the compiler would emit a\n  separate error for each captured lifetime. This resulted in verbose\n  and confusing diagnostics, especially in edition 2024 where implicit\n  captures caused duplicate errors.\n\n  This commit introduces error accumulation that collects all capture\n  spans and lifetime declaration spans, then emits a single consolidated\n  diagnostic using MultiSpan. The new error shows all captured lifetimes\n  with visual indicators and lists all declarations in a single note.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8133f9f68234b8f73ef157a056457c8acf211e60",
      "old_mode": 33188,
      "old_path": "compiler/rustc_hir_analysis/src/collect/resolve_bound_vars.rs",
      "new_id": "6f7ce916c7ac74ab545a1fb10faafbd19ac03b78",
      "new_mode": 33188,
      "new_path": "compiler/rustc_hir_analysis/src/collect/resolve_bound_vars.rs"
    },
    {
      "type": "modify",
      "old_id": "49c5106422881a0788b0d80ec159592fba0b248e",
      "old_mode": 33188,
      "old_path": "compiler/rustc_hir_analysis/src/errors.rs",
      "new_id": "c0cb6f7327993403c010779feff956db8f0a3dd8",
      "new_mode": 33188,
      "new_path": "compiler/rustc_hir_analysis/src/errors.rs"
    },
    {
      "type": "modify",
      "old_id": "c9dfc9eb9069df40fea5724a041a436192955f85",
      "old_mode": 33188,
      "old_path": "tests/ui/error-codes/E0657.stderr",
      "new_id": "1d69af5d9654a0a7556839a2169442adb3f41a6b",
      "new_mode": 33188,
      "new_path": "tests/ui/error-codes/E0657.stderr"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8954a802ab95224184ae995fbe236874d4621c6a",
      "new_mode": 33188,
      "new_path": "tests/ui/impl-trait/higher-ranked-lifetime-capture-deduplication.edition2015.stderr"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8954a802ab95224184ae995fbe236874d4621c6a",
      "new_mode": 33188,
      "new_path": "tests/ui/impl-trait/higher-ranked-lifetime-capture-deduplication.edition2024.stderr"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d8da93e5560d7ce89da7e1558d842302a0b568c2",
      "new_mode": 33188,
      "new_path": "tests/ui/impl-trait/higher-ranked-lifetime-capture-deduplication.rs"
    },
    {
      "type": "modify",
      "old_id": "40cb6b647d1e95075542eeae79becd464db41a36",
      "old_mode": 33188,
      "old_path": "tests/ui/impl-trait/impl-fn-hrtb-bounds.stderr",
      "new_id": "36f52e8103a33e36a5c1ec691f6696811390ee8b",
      "new_mode": 33188,
      "new_path": "tests/ui/impl-trait/impl-fn-hrtb-bounds.stderr"
    },
    {
      "type": "modify",
      "old_id": "94b6ffdd912301020fb6c6ba65b2859d1579c451",
      "old_mode": 33188,
      "old_path": "tests/ui/impl-trait/impl-fn-parsing-ambiguities.stderr",
      "new_id": "5ba9567e14e37d3d56f237d280154fb243e7ea1f",
      "new_mode": 33188,
      "new_path": "tests/ui/impl-trait/impl-fn-parsing-ambiguities.stderr"
    },
    {
      "type": "modify",
      "old_id": "27a3c6c8b7ce0bb4064d24c93a19fe6efe3f273a",
      "old_mode": 33188,
      "old_path": "tests/ui/impl-trait/issues/issue-54895.edition2015.stderr",
      "new_id": "8348a1d5e87b13728bf2e664cad37b809e8e120d",
      "new_mode": 33188,
      "new_path": "tests/ui/impl-trait/issues/issue-54895.edition2015.stderr"
    },
    {
      "type": "modify",
      "old_id": "54aa29e62d88024cb176e51111a9e758cfb7a30a",
      "old_mode": 33188,
      "old_path": "tests/ui/impl-trait/issues/issue-54895.edition2024.stderr",
      "new_id": "8348a1d5e87b13728bf2e664cad37b809e8e120d",
      "new_mode": 33188,
      "new_path": "tests/ui/impl-trait/issues/issue-54895.edition2024.stderr"
    },
    {
      "type": "modify",
      "old_id": "bc1841209e170775c9f063df1dfa8d274007a9dc",
      "old_mode": 33188,
      "old_path": "tests/ui/impl-trait/issues/issue-54895.rs",
      "new_id": "ccdb0ce20f9a03c53d8ab5feeb5f71b231e208c3",
      "new_mode": 33188,
      "new_path": "tests/ui/impl-trait/issues/issue-54895.rs"
    },
    {
      "type": "modify",
      "old_id": "a7633c7f20b659e2e2df618a0622ab3ed0eef709",
      "old_mode": 33188,
      "old_path": "tests/ui/impl-trait/issues/issue-67830.stderr",
      "new_id": "7254955ed0bdef7dae810f31098b28a9e6ce61fa",
      "new_mode": 33188,
      "new_path": "tests/ui/impl-trait/issues/issue-67830.stderr"
    },
    {
      "type": "modify",
      "old_id": "4ded9ed386fa68780fbbe54de69b3f04bc19af70",
      "old_mode": 33188,
      "old_path": "tests/ui/impl-trait/issues/issue-88236-2.stderr",
      "new_id": "3943c412184549e4a1034096d12217a0fe5bd800",
      "new_mode": 33188,
      "new_path": "tests/ui/impl-trait/issues/issue-88236-2.stderr"
    },
    {
      "type": "modify",
      "old_id": "5dee5f88c89f2896dcdb8dacb5310927f56214fa",
      "old_mode": 33188,
      "old_path": "tests/ui/impl-trait/issues/issue-88236.stderr",
      "new_id": "6303379288b7f08c69a618095b575534a6ec396a",
      "new_mode": 33188,
      "new_path": "tests/ui/impl-trait/issues/issue-88236.stderr"
    },
    {
      "type": "modify",
      "old_id": "93cd7bd788f45cecff231f0006635f5852bcb547",
      "old_mode": 33188,
      "old_path": "tests/ui/impl-trait/nested-rpit-hrtb.stderr",
      "new_id": "130723035b1ac4f2edda99487919a250ebe9df93",
      "new_mode": 33188,
      "new_path": "tests/ui/impl-trait/nested-rpit-hrtb.stderr"
    },
    {
      "type": "modify",
      "old_id": "7219fda4772a2f81a458244d559fc5be99b98200",
      "old_mode": 33188,
      "old_path": "tests/ui/type-alias-impl-trait/bound-lifetime-through-dyn-trait.stderr",
      "new_id": "6f0c6bb22060a3be4fb095160cac7bd5767c1a19",
      "new_mode": 33188,
      "new_path": "tests/ui/type-alias-impl-trait/bound-lifetime-through-dyn-trait.stderr"
    },
    {
      "type": "modify",
      "old_id": "31bdd0815ec34abcc43b60ca6e21271239089708",
      "old_mode": 33188,
      "old_path": "tests/ui/type-alias-impl-trait/escaping-bound-var.rs",
      "new_id": "4b17448080ed7719a986e664b4ff3f0f726fb899",
      "new_mode": 33188,
      "new_path": "tests/ui/type-alias-impl-trait/escaping-bound-var.rs"
    },
    {
      "type": "modify",
      "old_id": "c9f0618639afb0c4abc9314ae26e12d3ad694101",
      "old_mode": 33188,
      "old_path": "tests/ui/type-alias-impl-trait/escaping-bound-var.stderr",
      "new_id": "cdbcfa6f3dc95cba59a0d7557153c0ab9c380e7f",
      "new_mode": 33188,
      "new_path": "tests/ui/type-alias-impl-trait/escaping-bound-var.stderr"
    }
  ]
}
