)]}'
{
  "commit": "0b930237ec62096a4aa5fcf9ba74005f9c3c64d4",
  "tree": "3ef35f9d7f118d21b032a1e118a703f7d0fbcb4e",
  "parents": [
    "f42b90dbe1f3ad5aee6ef45008f84c27eef7db46"
  ],
  "author": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Tue Dec 15 12:32:18 2020 +0000"
  },
  "committer": {
    "name": "Commit Bot service account",
    "email": "commit-bot@chromium.org",
    "time": "Tue Dec 15 12:32:18 2020 +0000"
  },
  "message": "ast: Clone symbols instead of ever-growing\n\nThe interface for cloning a module was made significantly more complex in https://dawn-review.googlesource.com/c/tint/+/35502/ as some of the transforms required constructing symbols before the clone. This was temporary solution in 35502 was to copy the symbol table, then construct the new types, then perform the clone. This lead to a really messy callback interface, that was extremely error prone (e.g. lamda-capturing stack variables from the initializer callback that had been unwound).\n\nInstead, clone the symbols as they\u0027re encountered. This may produce an entirely different set of identifiers, but no longer ever-grows the symbol list, and keeps the interface clean.\n\nBug: tint:396\nBug: tint:390\nChange-Id: I54affd68ac3b730b649af9b47eba685c8a1d784a\nReviewed-on: https://dawn-review.googlesource.com/c/tint/+/35663\nCommit-Queue: Ben Clayton \u003cbclayton@google.com\u003e\nReviewed-by: dan sinclair \u003cdsinclair@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9ec4bfe894c09f263b020aeafc1263fd7908ff81",
      "old_mode": 33188,
      "old_path": "src/ast/clone_context.cc",
      "new_id": "fe9e84942536c723a3e2358afdc4cdee2a2e136f",
      "new_mode": 33188,
      "new_path": "src/ast/clone_context.cc"
    },
    {
      "type": "modify",
      "old_id": "a9e303beb1b2755bda213c837a67813cc8d0a201",
      "old_mode": 33188,
      "old_path": "src/ast/clone_context.h",
      "new_id": "64a7b11b886903a1b6d4cc6429f0083f93bfc5df",
      "new_mode": 33188,
      "new_path": "src/ast/clone_context.h"
    },
    {
      "type": "modify",
      "old_id": "386a1ae2f51e383f0a1c81ff96154146c4fd8a54",
      "old_mode": 33188,
      "old_path": "src/ast/clone_context_test.cc",
      "new_id": "d8890a2c95c7ca87acec376cf58dbe9b713006f2",
      "new_mode": 33188,
      "new_path": "src/ast/clone_context_test.cc"
    },
    {
      "type": "modify",
      "old_id": "ae692875d87bc21e2171c7539ba0c823d3cc1b77",
      "old_mode": 33188,
      "old_path": "src/ast/function.cc",
      "new_id": "1c22b9a1e9e98a9cd6e11e779a09d15e2a32e5e5",
      "new_mode": 33188,
      "new_path": "src/ast/function.cc"
    },
    {
      "type": "modify",
      "old_id": "a38ea3f6db48dd9229037e9053b323323a387417",
      "old_mode": 33188,
      "old_path": "src/ast/identifier_expression.cc",
      "new_id": "b18ca10ff02f8e2d16662ec14864fec065e38636",
      "new_mode": 33188,
      "new_path": "src/ast/identifier_expression.cc"
    },
    {
      "type": "modify",
      "old_id": "a357554e1863e9230fc4924d556c54b7f19e6016",
      "old_mode": 33188,
      "old_path": "src/ast/module.cc",
      "new_id": "c180639f6411f4467d4bea57d8b10246a8ce2e46",
      "new_mode": 33188,
      "new_path": "src/ast/module.cc"
    },
    {
      "type": "modify",
      "old_id": "30319647e8bcd27ab62c3c4ef8241786bbbc33ad",
      "old_mode": 33188,
      "old_path": "src/ast/module.h",
      "new_id": "a42bd7ff9b979c0805710c3675d004887e48709d",
      "new_mode": 33188,
      "new_path": "src/ast/module.h"
    },
    {
      "type": "modify",
      "old_id": "23be2ada2240be131458fe1199fd6eedd28e0dc8",
      "old_mode": 33188,
      "old_path": "src/ast/module_clone_test.cc",
      "new_id": "8405dc1a2c82a4d4c8bf305caeb9325c2dea85ba",
      "new_mode": 33188,
      "new_path": "src/ast/module_clone_test.cc"
    },
    {
      "type": "modify",
      "old_id": "723bca222c499a57f5ea03b72956eb4df1c16c46",
      "old_mode": 33188,
      "old_path": "src/ast/type/alias_type.cc",
      "new_id": "bef935b9c9110ab3fca695c23a716e3fe5c55f4f",
      "new_mode": 33188,
      "new_path": "src/ast/type/alias_type.cc"
    },
    {
      "type": "modify",
      "old_id": "ddf163bc65a13a104aaeefe13db3085931595e02",
      "old_mode": 33188,
      "old_path": "src/ast/type/struct_type.cc",
      "new_id": "7a127a67eba272baf9c43f6799ba530c2e1c43b0",
      "new_mode": 33188,
      "new_path": "src/ast/type/struct_type.cc"
    },
    {
      "type": "modify",
      "old_id": "3adf6b7d26f50d3f54b90eb246540924e841638b",
      "old_mode": 33188,
      "old_path": "src/transform/bound_array_accessors.cc",
      "new_id": "4543a17983c0209642e2f8ab787d7db9b023e96f",
      "new_mode": 33188,
      "new_path": "src/transform/bound_array_accessors.cc"
    },
    {
      "type": "modify",
      "old_id": "c80fab76e235b77f71034af922bf0948a9932622",
      "old_mode": 33188,
      "old_path": "src/transform/emit_vertex_point_size.cc",
      "new_id": "374bcd1326fa4880df731ac75b499aa632d98e3f",
      "new_mode": 33188,
      "new_path": "src/transform/emit_vertex_point_size.cc"
    },
    {
      "type": "modify",
      "old_id": "b89b94f11e6ff72c69946cb22cb364d4b1d72313",
      "old_mode": 33188,
      "old_path": "src/transform/first_index_offset.cc",
      "new_id": "671076c0375a02cf63ba1a9c21c1236f66178f27",
      "new_mode": 33188,
      "new_path": "src/transform/first_index_offset.cc"
    },
    {
      "type": "modify",
      "old_id": "a03b94394d403b0c87b2164c2f6e182d5ab7b4ad",
      "old_mode": 33188,
      "old_path": "src/transform/transform.cc",
      "new_id": "51fe645aa93de758fe7190ef3f9fe037c2de8a69",
      "new_mode": 33188,
      "new_path": "src/transform/transform.cc"
    },
    {
      "type": "modify",
      "old_id": "b1fa0449daedccd02e82d7564cc27c87d5bc1f70",
      "old_mode": 33188,
      "old_path": "src/transform/vertex_pulling.cc",
      "new_id": "5bbbcb02f0b75829941d6f51120f0059d53a214f",
      "new_mode": 33188,
      "new_path": "src/transform/vertex_pulling.cc"
    }
  ]
}
