)]}'
{
  "commit": "0687036cb9cc295ab74fad4f2de8547ca4b2cac1",
  "tree": "bc63d207a6ee23a0c469194b09dc5236eae66c72",
  "parents": [
    "b1af1bdd0a245fa4b5787c6ada3eba6e6bd825eb"
  ],
  "author": {
    "name": "Chloe Stefantsova",
    "email": "cstefantsova@google.com",
    "time": "Thu Jul 24 05:51:00 2025 -0700"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Jul 24 05:51:00 2025 -0700"
  },
  "message": "[model] Share greatest and lowest closure of type schema\n\nThe algorithms for computing the greatest and lowest closures of a\ntype schema are shared between the Analyzer and the CFE. As a\nwork-around for the discrepancy between the behavior of the tools, the\ninterface of the greatest closure computation accepts the top type to\nbe used as one of its parameters.\n\nPart of https://github.com/dart-lang/sdk/issues/54902\n\nChange-Id: I378c562c39078b20c48015cdf44eb652c8d4c000\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/438660\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\nCommit-Queue: Chloe Stefantsova \u003ccstefantsova@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "be3b4873a0f13f056afa22de7085bf1aedc077e6",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/lib/src/type_inference/type_analyzer.dart",
      "new_id": "f919a8fae6db977f0d5a2898f4e5627e9ab4a1b2",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/lib/src/type_inference/type_analyzer.dart"
    },
    {
      "type": "modify",
      "old_id": "0370021afe63c86896a617c7edd2b7de928cc4c0",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/lib/src/type_inference/type_analyzer_operations.dart",
      "new_id": "491fe98922940bdb9de76962b8b8358c4d2bbc14",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/lib/src/type_inference/type_analyzer_operations.dart"
    },
    {
      "type": "modify",
      "old_id": "10653380e11ca1be47825b776e4fd307a9919e80",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/test/mini_ast.dart",
      "new_id": "b2a090c28813c0d3aa22b12f837e426f444d99f7",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/test/mini_ast.dart"
    },
    {
      "type": "modify",
      "old_id": "6fdf6416d99f97dce205c9ec4588f07db0933a24",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart",
      "new_id": "4ca1221f4f21a8e32bfbbde0bf7802e47308e24c",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart"
    },
    {
      "type": "modify",
      "old_id": "bf8c1e7ebfe70ba200f2659232b91f73413ec108",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart",
      "new_id": "86ca0186ee414aaf7782d237849052797e007941",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart"
    },
    {
      "type": "modify",
      "old_id": "63d1dc7aa8dd070fac12bcccfccf80299b4afd4f",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart",
      "new_id": "6fbf626d83ce42238f305e2e4884d0d5e63b8db0",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart"
    },
    {
      "type": "modify",
      "old_id": "bf4b595009e48a7fa370a5ca4fbae52b7e96f611",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart",
      "new_id": "a56690bbbf30ca681050c1aa6a5fd47f21a52723",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart"
    },
    {
      "type": "modify",
      "old_id": "0eac5b71d1f28764bb269306ff83dd393919cb37",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/resolver/record_literal_resolver.dart",
      "new_id": "ce5e46f697d47840cfd6893ae696462cc5bf8910",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/resolver/record_literal_resolver.dart"
    },
    {
      "type": "modify",
      "old_id": "7fbd1009d06e5d17928a365bf87525513dde9b9b",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/generated/static_type_analyzer.dart",
      "new_id": "f19e16233fa758c3d14b0e449d0dd3b76f92eda4",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/generated/static_type_analyzer.dart"
    },
    {
      "type": "modify",
      "old_id": "d05e922f23c4d38e290f31621c684da5e7456d17",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/compute_platform_binaries_location.dart",
      "new_id": "d26a5d4f7aa5fcfb7142ab6e127f3dc888bd190d",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/compute_platform_binaries_location.dart"
    },
    {
      "type": "modify",
      "old_id": "8ff99f90cc13ebe6caed48cfd481ef598b6ac9a1",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/type_inference/inference_visitor_base.dart",
      "new_id": "3d6cd9180b03b1032f4515d206f6deb70aff8c48",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/type_inference/inference_visitor_base.dart"
    },
    {
      "type": "modify",
      "old_id": "2e18086594db65c51616286512075ab08cf9d66d",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/type_inference/type_inference_engine.dart",
      "new_id": "5240ab18488d5202dc5336aee4151dafdc9e1c6f",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/type_inference/type_inference_engine.dart"
    },
    {
      "type": "modify",
      "old_id": "3673a475d3da5332e4e6bc3084c5a55eedc5231b",
      "old_mode": 33188,
      "old_path": "pkg/front_end/test/coverage_suite_expected.dart",
      "new_id": "8c9439777df1875443689cc9b614b41451dcadbc",
      "new_mode": 33188,
      "new_path": "pkg/front_end/test/coverage_suite_expected.dart"
    }
  ]
}
