)]}'
{
  "commit": "033b66b253d592f1778c0ec4f77b7e39d6afad8e",
  "tree": "cf9dc9ca84dbd536378deb8fd664df217b0445d9",
  "parents": [
    "fc43c8a36314cd00de8d30e900324f7c58179737"
  ],
  "author": {
    "name": "Paul Berry",
    "email": "paulberry@google.com",
    "time": "Thu Sep 28 20:09:40 2023 +0000"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Sep 28 20:09:40 2023 +0000"
  },
  "message": "Add information about field promotion conflicts to element model.\n\nThere are two ways an access to a private property name might not be\npromotable: the property might be non-promotable for a reason inherent\nto itself (e.g. it\u0027s declared as a concrete getter rather than a\nfield, or it\u0027s a non-final field), or the property might have the same\nname as an inherently non-promotable property elsewhere in the same\nlibrary (in which case the inherently non-promotable property is said\nto be \"conflicting\").\n\nWhen a compile-time error occurs because a property is non-promotable\ndue conflicting properties elsewhere in the library, the analyzer\nneeds to be able to find the conflicting properties in order to\ngenerate context messages. This CL adds the necessary data to the\nsummary format so that the analyzer will be able to map each private\nname to the set of conflicting declarations.\n\nThe functionality of generating the appropriate context messages will\nbe added in a follow-up CL.\n\nChange-Id: I29df6f562b3495300b01be1edbc80b9a0f684df5\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/327904\nCommit-Queue: Paul Berry \u003cpaulberry@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Samuel Rawlins \u003csrawlins@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b92ad723c89c6e5ab945f5fe3b45cb66c7ec210a",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/analysis/driver.dart",
      "new_id": "c5f07650c83284862f49341d63c413c0996f5ba9",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/analysis/driver.dart"
    },
    {
      "type": "modify",
      "old_id": "ad002340d5468b62454459dbb2a69a91e3fd01f5",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/element/element.dart",
      "new_id": "65f1c5db5532373a01673705a15ff4be62f5e4b9",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/element/element.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9471382b218777bc10f558fbfddf39391c111101",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/element/field_name_non_promotability_info.dart"
    },
    {
      "type": "modify",
      "old_id": "42b8fb8f962a9456aaa0ae72bc7da117fbcf1f8f",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/summary2/bundle_reader.dart",
      "new_id": "94612b7c693f2c1518487bdca5cc832f96641d96",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/summary2/bundle_reader.dart"
    },
    {
      "type": "modify",
      "old_id": "aedb373dc0a6a6078d3d4b28b6f9da2d6f3f3163",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/summary2/bundle_writer.dart",
      "new_id": "40f63fba07c453e71dc46b21eed61d508b15d641",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/summary2/bundle_writer.dart"
    },
    {
      "type": "modify",
      "old_id": "4084f487eafda33e1f3d7cab3a7d47a7d583371c",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/summary2/library_builder.dart",
      "new_id": "094ad39cddfc16b01d75f1d1d28d1777d2e9ee56",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/summary2/library_builder.dart"
    }
  ]
}
