)]}'
{
  "commit": "1f66e14a97caa9e3f92273abed87750ff12c9976",
  "tree": "19e29c61766c09358029629a1e8daebf64d7e5d5",
  "parents": [
    "1f1f229f239465b55ec5e00c177afb52576cd246"
  ],
  "author": {
    "name": "Paul Berry",
    "email": "paulberry@google.com",
    "time": "Wed Mar 20 17:33:28 2024 +0000"
  },
  "committer": {
    "name": "dart-internal-monorepo",
    "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
    "time": "Wed Mar 20 10:36:25 2024 -0700"
  },
  "message": "Remove special analyzer behavior for await expressions with \"null context\".\n\nIn the front end, type inference of an expression always takes place\nwith respect to a type schema (the \"context\"). In the analyzer, type\ninference of an expression sometimes takes place with respect to a\ncontext, but sometimes takes place with respect to no context at all;\nthe latter circumstance arises when the analyzer uses its standard\nAstVisitor mechanism to call one of the visit methods in the\nResolverVisitor class, and so the visit method\u0027s contextType argument\ntakes on the value null. Because of this I am calling this situation a\n\"null context\".\n\nIn all the circumstances where the analyzer infers an expression using\na null context, the front end infers the same expression using a\ncontext of _. Furthermore, prior to this change, all but one of the\nanalyzer\u0027s visit methods treated a null context the same as they\ntreated a context of _. The one exception was visitAwaitExpression: in\nthis method, if the context was the null context, then the analyzer\nanalyzed the await expression\u0027s subexpression using a context of _;\notherwise, it analyzed it using a context of FutureOr\u003c_\u003e. Whereas the\nfront end, lacking any notion of a \"null context\", analyzes the await\nexpression\u0027s subexpression using a context of FutureOr\u003c_\u003e in the same\ncircumstances.\n\nThis change brings the analyzer behavior into line with the front end.\n\nFixes https://github.com/dart-lang/language/issues/3648.\n\nBug: https://github.com/dart-lang/language/issues/3648\nChange-Id: Ifd77988010d4387ce48eaa20dff4356beec03753\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/357521\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/f7d5d0cfbeaade73f322811da5e1527cd053201f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4cfc872003055d6cb608eb432796a3e6d02bfc0d",
      "old_mode": 33188,
      "old_path": "DEPS",
      "new_id": "4940f4168ad75726269744fbc92fb722117a7146",
      "new_mode": 33188,
      "new_path": "DEPS"
    },
    {
      "type": "modify",
      "old_id": "105df9f593714892579f093ccfe2ba3313b6d277",
      "old_mode": 33188,
      "old_path": "commits.json",
      "new_id": "cb5df5d2821225d469d8b0c055d2c40f780eafde",
      "new_mode": 33188,
      "new_path": "commits.json"
    }
  ]
}
