)]}'
{
  "commit": "adaf39bcc247f101fbed6c439eeb8aa1eff7314d",
  "tree": "ea49e20b876d5f88955f4559d818082177256e91",
  "parents": [
    "5c7cab850fc9777e05d81d9c1a177025b3262ae6"
  ],
  "author": {
    "name": "Sam Rawlins",
    "email": "srawlins@google.com",
    "time": "Mon Apr 29 20:55:39 2024 +0000"
  },
  "committer": {
    "name": "dart-internal-monorepo",
    "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
    "time": "Mon Apr 29 13:57:43 2024 -0700"
  },
  "message": "linter: unn_lambdas: check assignability of constructor types\n\nBasically, in `_visitInstanceCreation`, we make sure that, given an\nexpression like `(e) \u003d\u003e C(e))`, that the function type of the outer\nfunction expression is the same as the function type of `C(e)`.\n\nAnd little cleanups:\n\n* _extractElementsOfSimpleIdentifiers\u0027s returned Iterable is only used\n  to check whether it contains something, so change it to a Set.\n* In `isFinalNode`, use `unParenthesized` to unwrap parens, rather\n  calling recursively.\n* In `_Visitor`, we stored a `LinterContext`, but we only need the\n  TypeSystem object, so just store that for more terse code later.\n* In `_visitInstanceCreation`, remove the local function, `matches`,\n  by checking whether all arguments are SimpleIdentifiers.\n* Convert `isFinalElement` to an extension getter on `Expression`.\n* Remove helper `isTearoffAssignable`. It is more concise and I think\n  easier to read to just use TypeSystem.isSubtypeOf on its own.\n* When looking at a VariableDeclaration, get the type from the\n  declared element, which will include inference, rather than the\n  literal type annotation on the declaration.\n\nFixes https://github.com/dart-lang/linter/issues/4914\nFixes https://github.com/dart-lang/linter/issues/3516\n\nChange-Id: I3e89ee4dc011473511d375b0ad324988232c8c96\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/364628\nCommit-Queue: Samuel Rawlins \u003csrawlins@google.com\u003e\nReviewed-by: Phil Quitslund \u003cpquitslund@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/293469ee22ba8cb62679310cdfb682019ffff5bd\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a562ef25a01ac21ec1f5075cf018b6142ca88c5c",
      "old_mode": 33188,
      "old_path": "DEPS",
      "new_id": "76a07b354150144cbc0200ea7e3ee60da98141f0",
      "new_mode": 33188,
      "new_path": "DEPS"
    },
    {
      "type": "modify",
      "old_id": "cc3199d7c7cfd2db798fe6e60a24fa493c3a11b4",
      "old_mode": 33188,
      "old_path": "commits.json",
      "new_id": "bc9a74c9559afa95bffa0e2e8c632d15272ee7d6",
      "new_mode": 33188,
      "new_path": "commits.json"
    }
  ]
}
