)]}'
{
  "commit": "365c0e1d7a614ca94cb48431dcd2bc6d3b645db1",
  "tree": "486b7cb94287d51bbf8b57cc43123dc7f1a992d3",
  "parents": [
    "ba1a955819d72439dc59d5f73ad7a6a01e3fcdfe",
    "36b6eeb66e46b6bc20105546ea4a363c7743c6ef"
  ],
  "author": {
    "name": "bors",
    "email": "bors@rust-lang.org",
    "time": "Wed May 06 13:55:09 2026 +0000"
  },
  "committer": {
    "name": "bors",
    "email": "bors@rust-lang.org",
    "time": "Wed May 06 13:55:09 2026 +0000"
  },
  "message": "Auto merge of #155443 - jdonszelmann:canonical, r\u003dlcnr\n\nImprove caching by introducing `TypingMode::ErasedNotCoherence`\n\n\n\nr? @lcnr\r\n\r\n\r\nThis introduces `TypingMode::ErasedNotCoherence`. Most typing modes contain a list of opaque types, which are quite often unused during canonicalization. With this change, any time we try canonicalization, we replace whichever typing mode we\u0027re currently in with `ErasedNotcoherence`, attempt to canonicalize, and if that fails *retry* in the original typing mode. If erased mode succeeds, this is beneficial because that way the opaque types don\u0027t end up in the cache key, allowing more cache reuse.\r\n\r\nThis seems to have a small (0.5%) slowdown on most programs, but a dramatic (\u003e60%) speedup in specific cases like the rustc-perf `wg-grammar` benchmark. Some more improvements are expected with \"eager normalization\", which is work that\u0027s under way right now.",
  "tree_diff": []
}
