)]}'
{
  "commit": "39f9a6d85e04b2794d0e39697b127b691f6f995d",
  "tree": "412eb8c4db9e2d3de6a90bc16c6e600a65f52af3",
  "parents": [
    "7f71cb31de14321ee196919caad6df02f0ac4341"
  ],
  "author": {
    "name": "Aaron Webster",
    "email": "AaronWebster@users.noreply.github.com",
    "time": "Mon Oct 12 11:56:52 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Oct 12 11:56:52 2026 -0700"
  },
  "message": "Add an equivalence test for the optimized Ok() method (#280)\n\nThe C++ back end rewrites the per-field Ok() checks of conditional fields\nthat share a discriminant into a switch, and gates residual arms on the\nresidual predicate alone. There is no option to emit the unoptimized form,\nso this test pins Ok() to an independent reference written directly from\nits definition: the structure is complete, and every field\u0027s existence is\nKnown and, when present, the field is Ok().\n\nEvery structure with a conditional discriminant in condition.emb, plus\nLargeConditionals, DisjunctionConditionals and OuterGuardedUnion from\nmany_conditionals.emb, is checked at every buffer length from zero to its\nfull size. The bytes that existence conditions read take every value; the\nremaining payload bytes take two fill patterns; the four-byte discriminants\nare sampled over every arm, the gaps between arms and the top of the\nrange, as documented in the test. Each test also asserts the number of\nbuffers it checked, so the enumeration cannot shrink unnoticed.\n\nCompiled against headers regenerated with earlier generators and the same\nschema, the test fails on the master generator (ResidualConditional-,\nDisjunctionConditional- and EnumConditionalDiscriminant: a buffer with\n`outer !\u003d 1` is wrongly rejected) and passes from the guard-demotion fix\nonwards.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0ea2249e28a33517a1a1bc6ee749ad343c303c41",
      "old_mode": 33188,
      "old_path": "compiler/back_end/cpp/BUILD",
      "new_id": "08ffecf9a0e99585961cd478b901fe2adaa0a5d5",
      "new_mode": 33188,
      "new_path": "compiler/back_end/cpp/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ac92fe6b62e247c2f71257fef476d941bddd6f55",
      "new_mode": 33188,
      "new_path": "compiler/back_end/cpp/testcode/ok_equivalence_test.cc"
    }
  ]
}
