)]}'
{
  "commit": "5ce6cd9fd2fe2e636892680ad0ad7cef6a512c99",
  "tree": "04a3b6d217e2a029e75e9664748f297ebae9bd2e",
  "parents": [
    "eb3fdd76838e04de4269cefcb35656aef4410343"
  ],
  "author": {
    "name": "Konstantin Shcheglov",
    "email": "scheglov@google.com",
    "time": "Tue Sep 02 11:18:25 2025 -0700"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Sep 02 11:18:25 2025 -0700"
  },
  "message": "Fine. Record isSynthetic in manifest items.\n\nCapture whether an element is synthetic in the manifest and make it part\nof equality/matching so changes between implicit and explicit\ndeclarations are treated as API-relevant.\n\nPreviously the manifest did not distinguish synthetic from declared\nmembers (e.g., default constructors, field-generated accessors, and\nvariable-generated top-level accessors). Flipping between synthetic and\nexplicit could reuse stale IDs and interfaces, leading to incorrect link\nreuse and dependency tracking.\n\nIt might be surprising, but we actually do use `isSynthetic` during\nresolution, e.g. to decide whether look at metadata of a getter, or the\nfield.\n\nThis change:\n- Adds an `isSynthetic` flag to `ManifestItem` and all subclasses.\n- Populates it from `element.isSynthetic` in `fromElement` factories.\n- Persists it in the binary format (written after `id`, before metadata)\n  and reads it in all `read(...)` constructors.\n- Includes it in `ManifestItem.match(...)` so ID stability reflects\n  synthetic ↔ explicit transitions.\n- Bumps `AnalysisDriver.DATA_VERSION` to 535 to invalidate old caches.\n\nImpact: switching between synthetic and explicit declarations now causes\nmanifest ID changes and corrects fine-grained invalidation without\naffecting unrelated behavior.\n\nChange-Id: I6e4bc83f3f71573c3e6fa73c83857998585cc29d\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/448080\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0bbfe7a935cdb6f343ab21539421c007ca1497e1",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/analysis/driver.dart",
      "new_id": "38a7861c8c7371f59124da6b9253acba4052f531",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/analysis/driver.dart"
    },
    {
      "type": "modify",
      "old_id": "d166e62d870af2cc5ceb1c4367d52d07458b7a46",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/fine/manifest_item.dart",
      "new_id": "24fcbf42a015889f861aacd63131995760abacbe",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/fine/manifest_item.dart"
    },
    {
      "type": "modify",
      "old_id": "e01384aec8fe16d55bb3d8fed04fae829a821a3d",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/test/src/dart/analysis/driver_test.dart",
      "new_id": "c36cbe95d064f2606f2cd13f77eb3dff79789d79",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/test/src/dart/analysis/driver_test.dart"
    }
  ]
}
