)]}'
{
  "commit": "7f2b8cd8fc8edf464602ea64d2145def40fa3475",
  "tree": "18a17967225ad29054d75c9eb45099f82c57d773",
  "parents": [
    "23696b1ba3fd523f9f989677890af18db0d68d7a"
  ],
  "author": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Wed May 18 22:41:48 2022 +0000"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed May 18 22:41:48 2022 +0000"
  },
  "message": "tint: Refactor Extensions / Enables.\n\n* Extract ast::Enable::ExtensionKind to ast::Extension.\n* Move the parsing out of ast::Enable and next to ast/extension.h\n* Change the ast::Enable constructor to take the Extension, instead of\n  a std::string. It\u0027s the WGSL parser\u0027s responsibility to parse, not the\n  AST nodes.\n* Add ProgramBuilder::Enable() helper.\n* Keep ast::Module simple - keep track of the declared AST Enable nodes,\n  don\u0027t do any deduplicating of the enabled extensions.\n* Add the de-duplicated ast::Extensions to the sem::Module.\n* Remove the kInternalExtensionForTesting enum value - we have kF16\n  now, which can be used instead for testing.\n* Rename kNoExtension to kNone.\n\nBug: tint:1472\nChange-Id: I9af635e95d36991ea468e6e0bf6798bb50937edc\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90523\nReviewed-by: Dan Sinclair \u003cdsinclair@chromium.org\u003e\nCommit-Queue: Ben Clayton \u003cbclayton@google.com\u003e\nKokoro: Kokoro \u003cnoreply+kokoro@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "57069ed6c261fa5fa9429a856720d99d715f45e5",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/validation/ShaderModuleValidationTests.cpp",
      "new_id": "d6add45355a7958809ae23366b26c50ae32b353f",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/validation/ShaderModuleValidationTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "0cacca46813829b1c27b8f9f99a77693b7a49618",
      "old_mode": 33188,
      "old_path": "src/tint/BUILD.gn",
      "new_id": "2f4fd6273079b517285545caa3f35b7b6ddac99d",
      "new_mode": 33188,
      "new_path": "src/tint/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "f4c38840c04485f68b5e8654bb589584726fa5b1",
      "old_mode": 33188,
      "old_path": "src/tint/CMakeLists.txt",
      "new_id": "2c03e8130bde9225848e40cba1aabd490c30b7b2",
      "new_mode": 33188,
      "new_path": "src/tint/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "200c2bec0068b45b7aec17b03c665b41a5917eb8",
      "old_mode": 33188,
      "old_path": "src/tint/ast/enable.cc",
      "new_id": "ef43200c052275d7a39fc577dbd52b445765e00f",
      "new_mode": 33188,
      "new_path": "src/tint/ast/enable.cc"
    },
    {
      "type": "modify",
      "old_id": "f190b0a7923ba6d1aa55b3880c72862c0fa93a12",
      "old_mode": 33188,
      "old_path": "src/tint/ast/enable.h",
      "new_id": "674d9cb42f77376b8081a14c70acc7cb45c211f4",
      "new_mode": 33188,
      "new_path": "src/tint/ast/enable.h"
    },
    {
      "type": "modify",
      "old_id": "208c85df89e33be503856fec0fc63092e64f3c87",
      "old_mode": 33188,
      "old_path": "src/tint/ast/enable_test.cc",
      "new_id": "e8b6e5c20fc5579fc7fda1d49404d15e60d5c7bf",
      "new_mode": 33188,
      "new_path": "src/tint/ast/enable_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f03e3a02985394a214983d026de73564164f9fb2",
      "new_mode": 33188,
      "new_path": "src/tint/ast/extension.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "21e9ac15b38c06689e622c82e545047700fa3c3d",
      "new_mode": 33188,
      "new_path": "src/tint/ast/extension.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ed27674b9e0b042f762d8231fe0c11eb2b3c92d1",
      "new_mode": 33188,
      "new_path": "src/tint/ast/extension_test.cc"
    },
    {
      "type": "modify",
      "old_id": "e163c19d990f84d50a7466b26d95d11c82a0a093",
      "old_mode": 33188,
      "old_path": "src/tint/ast/module.cc",
      "new_id": "40dff98599791e7ede6d0ff8f238e6a1a77ce269",
      "new_mode": 33188,
      "new_path": "src/tint/ast/module.cc"
    },
    {
      "type": "modify",
      "old_id": "d8be2ed67b1b192dcff48d543c34077988d30ee4",
      "old_mode": 33188,
      "old_path": "src/tint/ast/module.h",
      "new_id": "45b1ec6ebe4dcd3528fc3c61d1f69bb72f62641b",
      "new_mode": 33188,
      "new_path": "src/tint/ast/module.h"
    },
    {
      "type": "modify",
      "old_id": "2bfe8157a5eb13cf4151a2c45bb8255e29044fb2",
      "old_mode": 33188,
      "old_path": "src/tint/inspector/inspector.cc",
      "new_id": "9a2afb8eeec5c9bbea75438a0ba72c436913bf8d",
      "new_mode": 33188,
      "new_path": "src/tint/inspector/inspector.cc"
    },
    {
      "type": "modify",
      "old_id": "18a33b1afab16140bc28cee6f9a9f1985a768ee5",
      "old_mode": 33188,
      "old_path": "src/tint/inspector/inspector_test.cc",
      "new_id": "033f5b82b12cc24265f1d8a0e3e224d38d20bde4",
      "new_mode": 33188,
      "new_path": "src/tint/inspector/inspector_test.cc"
    },
    {
      "type": "modify",
      "old_id": "a91d87c82e6ced4f6ea682cd719cd7019021ea17",
      "old_mode": 33188,
      "old_path": "src/tint/program_builder.h",
      "new_id": "32c0e93382f1f494b21978d9e973725fe13a071a",
      "new_mode": 33188,
      "new_path": "src/tint/program_builder.h"
    },
    {
      "type": "modify",
      "old_id": "abd97e50ca27d6bd40a8a8aff18377dba61790eb",
      "old_mode": 33188,
      "old_path": "src/tint/reader/wgsl/parser_impl.cc",
      "new_id": "4f0b152934e78714dffb096ff154f9de5aade358",
      "new_mode": 33188,
      "new_path": "src/tint/reader/wgsl/parser_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "0fd6b802b3c1156facafd145c9bf2c8c6049a64b",
      "old_mode": 33188,
      "old_path": "src/tint/reader/wgsl/parser_impl_enable_directive_test.cc",
      "new_id": "bdf7eebd12c59740db302843e1cebb88aeab465e",
      "new_mode": 33188,
      "new_path": "src/tint/reader/wgsl/parser_impl_enable_directive_test.cc"
    },
    {
      "type": "modify",
      "old_id": "0e48b55048c4a38aea396d2ca0cbd6441784f374",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/builtin_validation_test.cc",
      "new_id": "770d8d0b4dcf3caf41d2d45f0d738de49419a1ec",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/builtin_validation_test.cc"
    },
    {
      "type": "modify",
      "old_id": "4993cfef84924c1a47835ad334f3c596084055f8",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/resolver.cc",
      "new_id": "b9c0833c8ef372c8d2b626dc4b53ae41c5a03544",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/resolver.cc"
    },
    {
      "type": "modify",
      "old_id": "348c8e753aed9ae0519f33e4f0855e843d14943c",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/resolver.h",
      "new_id": "865c243c007d7c1cc05793c1cd566be48de860fc",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/resolver.h"
    },
    {
      "type": "modify",
      "old_id": "5f4617eb6117f02e43368856c6fde383b2a856ba",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/type_validation_test.cc",
      "new_id": "26b705f00af1177047bb1156f7a8c50dc431e050",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/type_validation_test.cc"
    },
    {
      "type": "modify",
      "old_id": "350e93bd06c7514aa39a3df2fff4425daf7f8570",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/uniformity.cc",
      "new_id": "273a07e44e0ae3d0ef48304bdedf55ae6631aaa6",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/uniformity.cc"
    },
    {
      "type": "modify",
      "old_id": "b27895438998aad7f672ee0521faf7a716f733b0",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/validator.cc",
      "new_id": "9f698e6a868a8d5c1da9fa457bb5c064ba81c6b2",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/validator.cc"
    },
    {
      "type": "modify",
      "old_id": "6efb543fcea9cf2d57ab51ee1bf9e619820bb5c6",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/validator.h",
      "new_id": "a8c18d589480c1cc2e1f326a01338f9826562368",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/validator.h"
    },
    {
      "type": "modify",
      "old_id": "faf451e01a52a7854824e8c5df3688dfbd594c51",
      "old_mode": 33188,
      "old_path": "src/tint/sem/builtin.cc",
      "new_id": "bb2878be3a5c86389217e2ed32fbc359cd7763bc",
      "new_mode": 33188,
      "new_path": "src/tint/sem/builtin.cc"
    },
    {
      "type": "modify",
      "old_id": "4752f1608df32c14da01240243bdfac9528ac16c",
      "old_mode": 33188,
      "old_path": "src/tint/sem/builtin.h",
      "new_id": "1dc61ad9d58675537f1430f4ab2fb412d02b8abd",
      "new_mode": 33188,
      "new_path": "src/tint/sem/builtin.h"
    },
    {
      "type": "modify",
      "old_id": "83b71360a518ce3f8aa3c35772f18402826f3140",
      "old_mode": 33188,
      "old_path": "src/tint/sem/module.cc",
      "new_id": "7c606505728830bb8b45886e574549e7209c33d9",
      "new_mode": 33188,
      "new_path": "src/tint/sem/module.cc"
    },
    {
      "type": "modify",
      "old_id": "c265d4ea08d181d3d82bd8ac911e57953e66875d",
      "old_mode": 33188,
      "old_path": "src/tint/sem/module.h",
      "new_id": "a7b3d452fdd099f6ae04f80eb79e19d300cf706d",
      "new_mode": 33188,
      "new_path": "src/tint/sem/module.h"
    },
    {
      "type": "modify",
      "old_id": "c02503128ca48f8c883adf5b851c4be5dbbffed3",
      "old_mode": 33188,
      "old_path": "src/tint/transform/disable_uniformity_analysis.cc",
      "new_id": "7a3002377dfc52b4a40706bc4c3be7641e7e6900",
      "new_mode": 33188,
      "new_path": "src/tint/transform/disable_uniformity_analysis.cc"
    },
    {
      "type": "modify",
      "old_id": "6c573ffb15e2be190a26e81e9e27c0d0133b21f5",
      "old_mode": 33188,
      "old_path": "src/tint/writer/hlsl/generator_impl_builtin_test.cc",
      "new_id": "f6e0d987ec6a2d862fb73f47dd4d1803dd511fe6",
      "new_mode": 33188,
      "new_path": "src/tint/writer/hlsl/generator_impl_builtin_test.cc"
    },
    {
      "type": "modify",
      "old_id": "aaa64cec5758ebcbc5ccff21b1d6807fed92d6c0",
      "old_mode": 33188,
      "old_path": "src/tint/writer/spirv/builder.cc",
      "new_id": "0b3118a9c18f1e72e02cbc9b85271fbe82370355",
      "new_mode": 33188,
      "new_path": "src/tint/writer/spirv/builder.cc"
    },
    {
      "type": "modify",
      "old_id": "34cfd7629240013883aa48834ee3a59919465bc6",
      "old_mode": 33188,
      "old_path": "src/tint/writer/spirv/builder.h",
      "new_id": "1745ed568f1134cded7663c689379aad8eae72c4",
      "new_mode": 33188,
      "new_path": "src/tint/writer/spirv/builder.h"
    },
    {
      "type": "modify",
      "old_id": "121d90425d633fa04589db3e8056e0931bbe18d8",
      "old_mode": 33188,
      "old_path": "src/tint/writer/wgsl/generator_impl.cc",
      "new_id": "677421d0705889d73065eafbac9cd1c26fe7c902",
      "new_mode": 33188,
      "new_path": "src/tint/writer/wgsl/generator_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "8473b4f6fe01fcba56735996097fb3c3922fc5ad",
      "old_mode": 33188,
      "old_path": "src/tint/writer/wgsl/generator_impl.h",
      "new_id": "a17e2da70fbd78c2188f8f865c095c51ae12dfe3",
      "new_mode": 33188,
      "new_path": "src/tint/writer/wgsl/generator_impl.h"
    },
    {
      "type": "modify",
      "old_id": "f9de37146b7566fae9e286d7d0adc2a59c5897fe",
      "old_mode": 33188,
      "old_path": "src/tint/writer/wgsl/generator_impl_enable_test.cc",
      "new_id": "503a9a0022c50217d4e4f5a5a65a8a634de45d25",
      "new_mode": 33188,
      "new_path": "src/tint/writer/wgsl/generator_impl_enable_test.cc"
    },
    {
      "type": "modify",
      "old_id": "a66428b540aabe7eb3c9d9ab91acea547de2af45",
      "old_mode": 33188,
      "old_path": "test/tint/BUILD.gn",
      "new_id": "c89e1b57b78f111dcccfe82385ecfb3195e0df18",
      "new_mode": 33188,
      "new_path": "test/tint/BUILD.gn"
    },
    {
      "type": "delete",
      "old_id": "9ed8f61592f347ef470e493590ade64b8cfa5d4c",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_InternalExtensionForTesting.wgsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "f07e73300792969d6d3cb94bcc16b80b91adba64",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_InternalExtensionForTesting.wgsl.expected.spvasm",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "987fb57fa8e7301044642942d7aa52b98959bb12",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_InternalExtensionForTesting.wgsl.expected.wgsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "c20b4535ba6f5f57de4b6d2fb31baa8d8afc1922",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_duplicated_InternalExtensionForTesting.wgsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "995583f921de9341d3b549a549cfdef5b888a6d8",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_duplicated_InternalExtensionForTesting.wgsl.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "93c7fa730157b13cef8a9288f6b3779daaa0ca70",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_duplicated_InternalExtensionForTesting.wgsl.expected.hlsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "d7fde539d8a2680cf8881f5f7cff520a9df39dcc",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_duplicated_InternalExtensionForTesting.wgsl.expected.msl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "f07e73300792969d6d3cb94bcc16b80b91adba64",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_duplicated_InternalExtensionForTesting.wgsl.expected.spvasm",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "987fb57fa8e7301044642942d7aa52b98959bb12",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_duplicated_InternalExtensionForTesting.wgsl.expected.wgsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d1d3017dddd16e0b1a626a36c133b2c897a4a8ba",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/parsing/basic.wgsl"
    },
    {
      "type": "rename",
      "old_id": "995583f921de9341d3b549a549cfdef5b888a6d8",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_InternalExtensionForTesting.wgsl.expected.glsl",
      "new_id": "b094b6e4a7eca34a597829609d7421dd5e46e705",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/parsing/basic.wgsl.expected.glsl",
      "score": 61
    },
    {
      "type": "rename",
      "old_id": "93c7fa730157b13cef8a9288f6b3779daaa0ca70",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_InternalExtensionForTesting.wgsl.expected.hlsl",
      "new_id": "1af441af3424343c34d470ce392855b37bd19d17",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/parsing/basic.wgsl.expected.hlsl",
      "score": 67
    },
    {
      "type": "rename",
      "old_id": "d7fde539d8a2680cf8881f5f7cff520a9df39dcc",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_InternalExtensionForTesting.wgsl.expected.msl",
      "new_id": "dc9192691744d140a1a9c2127c64548dd9e743cc",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/parsing/basic.wgsl.expected.msl",
      "score": 74
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "225da82e55dfadddd01e9a9009c920e17ae5ad87",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/parsing/basic.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c084b23263cad86b873f88fedf7cbc219bef904f",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/parsing/basic.wgsl.expected.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d72f18de62d25e2403891fd7189bd1f1b25e9a2e",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/parsing/duplicated_extensions.wgsl"
    },
    {
      "type": "copy",
      "old_id": "995583f921de9341d3b549a549cfdef5b888a6d8",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_InternalExtensionForTesting.wgsl.expected.glsl",
      "new_id": "b094b6e4a7eca34a597829609d7421dd5e46e705",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.glsl",
      "score": 61
    },
    {
      "type": "copy",
      "old_id": "93c7fa730157b13cef8a9288f6b3779daaa0ca70",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_InternalExtensionForTesting.wgsl.expected.hlsl",
      "new_id": "1af441af3424343c34d470ce392855b37bd19d17",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.hlsl",
      "score": 67
    },
    {
      "type": "copy",
      "old_id": "d7fde539d8a2680cf8881f5f7cff520a9df39dcc",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/InternalExtensionForTesting/simple_with_InternalExtensionForTesting.wgsl.expected.msl",
      "new_id": "dc9192691744d140a1a9c2127c64548dd9e743cc",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.msl",
      "score": 74
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "225da82e55dfadddd01e9a9009c920e17ae5ad87",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "be5f381a0f6569fb203cacda8c40536d917a76ff",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.wgsl"
    }
  ]
}
