)]}'
{
  "commit": "b247724d8efd97a00a38559dd6a760ca916b123e",
  "tree": "d8fa288689a18c6e22ee910448976c0c240709da",
  "parents": [
    "9e498a2b9cf413744fb0ba7c46ed1b3db62193e3"
  ],
  "author": {
    "name": "Ryan Harrison",
    "email": "rharrison@chromium.org",
    "time": "Thu Nov 13 10:45:02 2025 -0800"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Nov 13 10:45:02 2025 -0800"
  },
  "message": "[ir][val] Implement better type/struct traversal\n\nAdds in a new function WalkTypeAndMembers for walking down the type\nhierarchy into struct members and running an impl function on each step.\n\nThis replaces a variety of existing implementations/patterns in the IR\nvalidator, standardizing onto one implementation and setting the\ngroundwork for future refactoring that will unify all of the IO\nattribute validation logic into a more data driven pattern.\n\nThere is some cleanups to the existing code, like re-targeting errors\nmessages to the declaration of MSVs instead of the entry point that\nreferences them.\n\nSome places of multiple walks have been merged where it was trivial to\ndo, though some of the more complex cases have not been merged. Future\nCLs will do more invasive refactoring that will clean up these\ninstances.\n\nBug: 455376684\nChange-Id: If7ba17e6f8465bf78f172187140f44a9cfd95dab\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/273174\nCommit-Queue: dan sinclair \u003cdsinclair@chromium.org\u003e\nAuto-Submit: Ryan Harrison \u003crharrison@chromium.org\u003e\nReviewed-by: dan sinclair \u003cdsinclair@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ec10d1967efef5f890f9bd615fa943224d833b33",
      "old_mode": 33188,
      "old_path": "src/tint/lang/core/ir/validator.cc",
      "new_id": "4468a8b4431a182b50d92928e9ccf4b5fe66fd78",
      "new_mode": 33188,
      "new_path": "src/tint/lang/core/ir/validator.cc"
    },
    {
      "type": "modify",
      "old_id": "3b76f4f4fcf97732be7eacda0485e3f2ef6d9db5",
      "old_mode": 33188,
      "old_path": "src/tint/lang/core/ir/validator_builtin_test.cc",
      "new_id": "aa234477d124299484cd7a6b95034a3025ec37bc",
      "new_mode": 33188,
      "new_path": "src/tint/lang/core/ir/validator_builtin_test.cc"
    },
    {
      "type": "modify",
      "old_id": "0e64a642665ddbc6a65c412d81444d8172a09b58",
      "old_mode": 33188,
      "old_path": "src/tint/lang/core/ir/validator_function_test.cc",
      "new_id": "486bf82f632e96a6a2cc5627be37d64981029c29",
      "new_mode": 33188,
      "new_path": "src/tint/lang/core/ir/validator_function_test.cc"
    }
  ]
}
