)]}'
{
  "commit": "148c97f6876e427efd76d2328122c3075eab4b8f",
  "tree": "912e30ac496f6adc2cfaee40b6b544e4dbcbc2c2",
  "parents": [
    "142bf7de83b550b549b4049eb1f3dcb2ff007ec1"
  ],
  "author": {
    "name": "Steven Perron",
    "email": "stevenperron@google.com",
    "time": "Fri May 31 08:13:20 2024 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri May 31 14:13:20 2024 +0200"
  },
  "message": "Avoid use of type manager in extact-\u003econstruct folding (#5684)\n\n* Avoid use of type manager in extact-\u003econstruct folding\n\nWhen dealing with structs the type manager merge two different structs\ninto a single entry if they have all of the same decorations and\nelement types. This is because they hash to the same value in the hash\ntable. This can cause problems if you need to get the id of a type from\nthe type manager because you could get either one. In this case, it\nreturns the wrong one.\n\nThe fix avoids using the type manager in one place. I have not\nlooked closely at other places the type manager is used to make\nsure it is used safely everywhere.\n\nFixes #5624\n\n* Remove use of TypeManager::GetId\n\nThis removes a use of TypeManager::GetId by keeping the id around. This\navoid a potential problem if the type manager gets confused. These types\nof bugs are hard to generate test cases for, so I do not have a test.\nHowever, existing tests make sure that do not regress.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5f836699404c9c137414b7c08a55bbe6bc4c22ce",
      "old_mode": 33188,
      "old_path": "source/opt/folding_rules.cpp",
      "new_id": "24979671f27be7b6d46af8d2e511c556faf37fe5",
      "new_mode": 33188,
      "new_path": "source/opt/folding_rules.cpp"
    },
    {
      "type": "modify",
      "old_id": "255449dbbf324cf8151e8e46746e9058cd903ff9",
      "old_mode": 33188,
      "old_path": "test/opt/fold_test.cpp",
      "new_id": "35828ab22f6e95395bf2dca342380698361bdeca",
      "new_mode": 33188,
      "new_path": "test/opt/fold_test.cpp"
    }
  ]
}
