)]}'
{
  "commit": "485ac7da1e72d1b6d4305317eb7fe1a9dd046c0a",
  "tree": "b6c5386d4567db041c98e2d9c8dc38615a0d5cef",
  "parents": [
    "ca61aeeb87e330635548ce6368ac053576ee994c"
  ],
  "author": {
    "name": "Thomas Lively",
    "email": "tlively@google.com",
    "time": "Sat Nov 23 00:28:11 2024"
  },
  "committer": {
    "name": "Thomas Lively",
    "email": "tlively@google.com",
    "time": "Sat Nov 23 00:36:30 2024"
  },
  "message": "Do note code fold ifs with concrete arms\n\nCode folding does not support folding tails that produce concrete\nvalues, but it previously did not check for this condition when deciding\nwhether to attempt to code fold ifs. As a result, code folding would\nproceed on ifs with concretely typed arms. The incorrect block types\nproduced by the folding logic as a result of the violated assumption\nthat the folded tails would never produce concrete values were papered\nover by later refinalization, so this never caused problems.\n\nHowever, an upcoming change (#7094) that relaxes the typing of ifs to\nallow them to be unreachable whenever their conditions are unreachable\nmakes it possible for the violated assumptions in code folding to cause\nproblems that are not fixed by refinalization. Fix code folding to\ndisallow folding of concretely typed if arms and add a test that would\nfail once #7094 lands without this fix.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "21527da6b18cf3ec892074c1da0cd22a4d885359",
      "old_mode": 33188,
      "old_path": "src/passes/CodeFolding.cpp",
      "new_id": "47e7916fab04b20959124be122d16bb0754cd9c6",
      "new_mode": 33188,
      "new_path": "src/passes/CodeFolding.cpp"
    },
    {
      "type": "modify",
      "old_id": "b07000278ed30e1e5fd97119139687f47e3abac4",
      "old_mode": 33188,
      "old_path": "test/lit/passes/code-folding_enable-threads.wast",
      "new_id": "3df2d8c8aebfb1dcc56dc1b077c2dd27346cf45c",
      "new_mode": 33188,
      "new_path": "test/lit/passes/code-folding_enable-threads.wast"
    },
    {
      "type": "modify",
      "old_id": "f6df73056202bf070a0ad207fe5e1d938c6c6fbd",
      "old_mode": 33188,
      "old_path": "test/lit/passes/inlining-optimizing_optimize-level\u003d3.wast",
      "new_id": "9e514cc2733f2137a350ccd91e738ac748a80ba3",
      "new_mode": 33188,
      "new_path": "test/lit/passes/inlining-optimizing_optimize-level\u003d3.wast"
    },
    {
      "type": "modify",
      "old_id": "d0486b3c784aadecc7df5952a223d05a4ed1cccc",
      "old_mode": 33188,
      "old_path": "test/passes/remove-unused-names_code-folding.txt",
      "new_id": "4b228bd4ee1156d6922c24566eb1eb48748e5b7f",
      "new_mode": 33188,
      "new_path": "test/passes/remove-unused-names_code-folding.txt"
    }
  ]
}
