)]}'
{
  "commit": "6233cede64838b98fd5457a5a44ceb292de3e478",
  "tree": "4b1eef952c2d0dd0b97778773a3c4c4ce97e6221",
  "parents": [
    "d4a70c8423919be0eea5c70113161a32396fc41b"
  ],
  "author": {
    "name": "Paul Berry",
    "email": "paulberry@google.com",
    "time": "Fri Jul 14 19:03:47 2023 +0000"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Jul 14 19:03:47 2023 +0000"
  },
  "message": "Simplify the \"mini-ast\" for shared flow analysis and type analysis tests.\n\nWhen using the \"mini-ast\" pseudo-language to write unit tests for the\nflow analysis and type analysis logic in the `_fe_analyzer_shared`, it\nis no longer necessary to use `.stmt` to turn an expression into an\nexpression statement; this now happens automatically. The way this\nworks under the hood is that both the `Statement` and `Expression`\nclasses mix in the `ProtoStatement` mixin; constructs that expect\nstatements are declared with input parameters of type\n`ProtoStatement`, and they automatically convert expressions to\nstatements when necessary.\n\nAlso, the functions `checkNotPromoted`, `checkPromoted`,\n`checkReachable`, `localFunction` now have a return type of\n`Expression` rather than `Statement`. This allows them to be used\neither where an expression is exprected or where a statement is\nexpected, which should give us the ability to write some tests that\nare not possible (or very difficult) to write today.\n\nChange-Id: I9f7ad5b15bcf8ccfccafc6985e0163b550c5ad1c\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/313680\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ad60652192471cb16bf728abd2eeb5e5cd0bc3b0",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/flow_analysis/flow_analysis_test.dart",
      "new_id": "c231a47e5710ce9a76a891d83e3e44f9230c1cfe",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/flow_analysis/flow_analysis_test.dart"
    },
    {
      "type": "modify",
      "old_id": "b4fb8b7292fe9d01ecdbd1da8fbec2758737d62b",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/mini_ast.dart",
      "new_id": "f9d3111912c48d17b96df31b6e3cbfffba1fd07f",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/mini_ast.dart"
    },
    {
      "type": "modify",
      "old_id": "d0c90a4edc866a5960089f282280099eb4d44b52",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/type_inference/type_inference_test.dart",
      "new_id": "a5345c5db0c83d9f736c026d19e719c9e96aea6a",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/type_inference/type_inference_test.dart"
    }
  ]
}
