)]}'
{
  "commit": "23d70f6f23cab79d0a677f8b0afb3a5c2cf0f3ba",
  "tree": "1e2ae4c41211bd3fa352ed530852ce9af70557f5",
  "parents": [
    "5c0c41cc689c8abb2cbc6bd83daf131f1bef3549"
  ],
  "author": {
    "name": "Johnni Winther",
    "email": "johnniwinther@google.com",
    "time": "Wed Jun 03 08:15:49 2020 +0000"
  },
  "committer": {
    "name": "commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Wed Jun 03 08:15:49 2020 +0000"
  },
  "message": "Reland: [cfe] Embed and use allowed experiments in CFE\n\nThis CL embeds the sdk_nnbd/lib/_internal/allowed_experiments.json\ninto the CFE and uses this to allow experiments enabled on a\nper library basis. The file is embedded through generated code to\navoid reliance on access to the file itself.\n\nA presubmit check is also added to ensure that the json file and\nthe generated code are in sync.\n\nThis work is in preparation for https://github.com/dart-lang/sdk/issues/41538\n\nThis was reverted in https://dart-review.googlesource.com/c/sdk/+/149620\nbecause flutter wasn\u0027t prepared for auto-enabling nnbd in dart:* libraries.\nThis has now been fixed in https://github.com/flutter/engine/pull/18714\n\nCloses #42162\n\nChange-Id: I686ed6feaef8ee066b426068fe2a0f5080bf1713\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/149588\nReviewed-by: Jens Johansen \u003cjensj@google.com\u003e\nCommit-Queue: Johnni Winther \u003cjohnniwinther@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0ef7461ca51810c484615dae1617d0b24a4c8d80",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/lib/src/sdk/allowed_experiments.dart",
      "new_id": "a7faa11a7415b6fb401de921c9c58d0f1d3dc925",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/lib/src/sdk/allowed_experiments.dart"
    },
    {
      "type": "modify",
      "old_id": "602303d2c4df91c2fdacc59b84c95b10184c71db",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/api_prototype/compiler_options.dart",
      "new_id": "2e8dc26d347e2542561b05d3f9cfe3612ebf66ab",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/api_prototype/compiler_options.dart"
    },
    {
      "type": "modify",
      "old_id": "bfcb2b852e1dce652506f5d44c16adca9745f78d",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/api_prototype/experimental_flags.dart",
      "new_id": "9a9da8ce18f34d64b21c59f03074c88a12491f88",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/api_prototype/experimental_flags.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9ce8b51a105731ee79793526cb3473327efa7de2",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart"
    },
    {
      "type": "modify",
      "old_id": "48303eb3b3da2dcc77acc2c9c04fbbdeb87b91a8",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/base/processed_options.dart",
      "new_id": "b2cc5a74bd82f45c3d82e49364b6d2db0f765549",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/base/processed_options.dart"
    },
    {
      "type": "modify",
      "old_id": "cc25ccdae7a4002168e1496029b273a4dc53c6df",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/fasta/kernel/body_builder.dart",
      "new_id": "02645e8dbb7b9a0ed3fb65bb6116c4c805409f3c",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/fasta/kernel/body_builder.dart"
    },
    {
      "type": "modify",
      "old_id": "19b36257ee18a71b33f88eaa21a3fe907acdb729",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/fasta/kernel/kernel_target.dart",
      "new_id": "440a118fbd0a501f19620f3706eec3c4dc6660d0",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/fasta/kernel/kernel_target.dart"
    },
    {
      "type": "modify",
      "old_id": "753b7fc5fe0e9f2a414166bef259a6b6736af8d1",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/fasta/source/outline_builder.dart",
      "new_id": "da9bf9d8451945b5c7d6a252738c8160ae9afafc",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/fasta/source/outline_builder.dart"
    },
    {
      "type": "modify",
      "old_id": "2534dd5c5e39f74ab96ca0c2639550f3739fb906",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/fasta/source/source_library_builder.dart",
      "new_id": "1860a7190478e460a1187ca92a16a6735e0cc89d",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/fasta/source/source_library_builder.dart"
    },
    {
      "type": "modify",
      "old_id": "0401c0bf7c8f497162c7ac337dbc9a926e980834",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/fasta/source/source_loader.dart",
      "new_id": "34a3675cff6e0c1c1b14a65a6e472fc4cf698cec",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/fasta/source/source_loader.dart"
    },
    {
      "type": "modify",
      "old_id": "26baf6419beae04adfdac226ff3ea3de090389ff",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/fasta/source/stack_listener_impl.dart",
      "new_id": "9eb4912c8a5aabe5e8b250cad22c9ee1e6bd7e9c",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/fasta/source/stack_listener_impl.dart"
    },
    {
      "type": "modify",
      "old_id": "26400d62b75eff0c70a7182fe9152e732e7d6065",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/fasta/target_implementation.dart",
      "new_id": "e9f8d6cd49fae98bc793a6edc24bbd6145da0504",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/fasta/target_implementation.dart"
    },
    {
      "type": "modify",
      "old_id": "1445f319bd164f8ecb4298aac1efbfb5f71036d5",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/testing/id_testing_helper.dart",
      "new_id": "c7ccf952d0a5f5f1266aed09cfef7537552df0d8",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/testing/id_testing_helper.dart"
    },
    {
      "type": "modify",
      "old_id": "fdb1fc73e2d815576f816faab5775b513a609cd6",
      "old_mode": 33188,
      "old_path": "pkg/front_end/test/extensions/extensions_test.dart",
      "new_id": "9cf6d7e2e619e9cfa52d700e9087d94e292e25a5",
      "new_mode": 33188,
      "new_path": "pkg/front_end/test/extensions/extensions_test.dart"
    },
    {
      "type": "modify",
      "old_id": "43c367930a7d21956404a1a73440eb17e462a8ee",
      "old_mode": 33188,
      "old_path": "pkg/front_end/test/fasta/expression_suite.dart",
      "new_id": "7ca9e566001a7f10bdc510ae5f892aa6552889ca",
      "new_mode": 33188,
      "new_path": "pkg/front_end/test/fasta/expression_suite.dart"
    },
    {
      "type": "modify",
      "old_id": "f04de7591ec73c87599b1a6f088ea9b467b6ec7a",
      "old_mode": 33188,
      "old_path": "pkg/front_end/test/fasta/testing/suite.dart",
      "new_id": "4b03080f0750ff76e59882be29e2253dae1632ca",
      "new_mode": 33188,
      "new_path": "pkg/front_end/test/fasta/testing/suite.dart"
    },
    {
      "type": "modify",
      "old_id": "3e4a103f832d4e15d6d23c06c2f3dbc2be9ad6c7",
      "old_mode": 33188,
      "old_path": "pkg/front_end/test/patching/patching_test.dart",
      "new_id": "4cce8c03256911c6726765f145ce3b22e296ccd6",
      "new_mode": 33188,
      "new_path": "pkg/front_end/test/patching/patching_test.dart"
    },
    {
      "type": "modify",
      "old_id": "cba63b382d19f601d2ecc3439141e74205021972",
      "old_mode": 33188,
      "old_path": "pkg/front_end/test/spell_checking_list_tests.txt",
      "new_id": "4a9c1b6cdfde919267f527f33a0099e5a54741fb",
      "new_mode": 33188,
      "new_path": "pkg/front_end/test/spell_checking_list_tests.txt"
    },
    {
      "type": "modify",
      "old_id": "154c73c30b2b5069c229305078260bb0a486ec51",
      "old_mode": 33188,
      "old_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/libraries.json",
      "new_id": "98a1772b272e834142c1b66f211ac8288a973987",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/libraries.json"
    },
    {
      "type": "modify",
      "old_id": "0e4e5afb6d6306992633465966b3dbc7d518af87",
      "old_mode": 33188,
      "old_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.outline.expect",
      "new_id": "461cb2676221b1151fa0dc865f9a0cfb0f4f25b4",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.outline.expect"
    },
    {
      "type": "modify",
      "old_id": "d823eb35dd37b7993963cfac38e58996d59a21ca",
      "old_mode": 33188,
      "old_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.strong.expect",
      "new_id": "873a55334556860f5a9ef65275ad1b07428965ca",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.strong.expect"
    },
    {
      "type": "modify",
      "old_id": "d823eb35dd37b7993963cfac38e58996d59a21ca",
      "old_mode": 33188,
      "old_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.strong.transformed.expect",
      "new_id": "873a55334556860f5a9ef65275ad1b07428965ca",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.strong.transformed.expect"
    },
    {
      "type": "modify",
      "old_id": "d823eb35dd37b7993963cfac38e58996d59a21ca",
      "old_mode": 33188,
      "old_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.expect",
      "new_id": "873a55334556860f5a9ef65275ad1b07428965ca",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.expect"
    },
    {
      "type": "modify",
      "old_id": "d823eb35dd37b7993963cfac38e58996d59a21ca",
      "old_mode": 33188,
      "old_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.transformed.expect",
      "new_id": "873a55334556860f5a9ef65275ad1b07428965ca",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.transformed.expect"
    },
    {
      "type": "modify",
      "old_id": "4a93691090e114c3b1ab0062c8c1cd6370336c2a",
      "old_mode": 33188,
      "old_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/patch_lib.dart",
      "new_id": "308e3e8c1d2ff0355c140ea03197a633e4ab678b",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/patch_lib.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "33a18050a854257b859cc346401a336bb94ca539",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/nnbd/platform_nonnullable_fields/patch_lib2.dart"
    },
    {
      "type": "modify",
      "old_id": "04ccb82c638f144f5d871937640dddb65eee4260",
      "old_mode": 33188,
      "old_path": "pkg/front_end/tool/_fasta/generate_experimental_flags.dart",
      "new_id": "8978f14dd5a8401e348213bc145bf310ab0196d8",
      "new_mode": 33188,
      "new_path": "pkg/front_end/tool/_fasta/generate_experimental_flags.dart"
    }
  ]
}
