)]}'
{
  "commit": "3cc5f5669bfcffa1ab74ec224405706e078032ce",
  "tree": "e93e8b229da16425a52d963cc177d8fbd665444e",
  "parents": [
    "579ad244df754e7408d33e9ae390a989ba204682"
  ],
  "author": {
    "name": "Konstantin Shcheglov",
    "email": "scheglov@google.com",
    "time": "Tue Sep 02 10:08:02 2025 -0700"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Sep 02 10:08:02 2025 -0700"
  },
  "message": "Fine. Persist isSimplyBounded; track isValidMixin indirectly.\n\nCapture the simply-boundedness of instance elements in the fine-grained\nmanifest and stop baking `isValidMixin` into item IDs.\n\nWhat:\n- Add `isSimplyBounded` to `InstanceItem` and all subclasses\n  (`ClassItem`, `EnumItem`, `ExtensionItem`, `ExtensionTypeItem`,\n  `MixinItem`). Persist it in summaries and compare it in `match`.\n- Update the summary schema to write/read `isSimplyBounded` immediately\n  after `typeParameters` for all instance items.\n- Reclassify `ClassElementImpl.isValidMixin` from\n  `@trackedIncludedInId` to `@trackedIndirectly`.\n- Bump `AnalysisDriver.DATA_VERSION` from 533 to 536.\n\nWhy:\n- `isSimplyBounded` is an observable property of generic declarations.\n  Not recording it could allow identity reuse when simply-boundedness\n  changes without other shape differences. Persisting it yields more\n  precise matching and invalidation.\n- `isValidMixin` is derived from other fields (e.g., `supertype`,\n  constructors). Tracking it indirectly avoids unnecessary ID churn and\n  reduces over-invalidation while remaining responsive to the inputs it\n  depends on.\n\nImpact:\n- More accurate fine-grained dependency tracking for generics.\n- Fewer spurious item-ID changes from mixin validity checks.\n- Existing caches are invalidated due to the data format bump; no public\n  API changes.\n\nChange-Id: I2700b16add664a4fd127f492fb186c8e1f3635e9\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/448100\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "de37c33158774d841fa7f8a9aa3b6c60d93c8e4d",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/analysis/driver.dart",
      "new_id": "0bbfe7a935cdb6f343ab21539421c007ca1497e1",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/analysis/driver.dart"
    },
    {
      "type": "modify",
      "old_id": "5ef7452657d7827e01fc3c8aa6e35229c37fd858",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/element/element.dart",
      "new_id": "de89006b609c213858d4afe90770521569f292f5",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/element/element.dart"
    },
    {
      "type": "modify",
      "old_id": "cb39666354929e314d2396c5bcdcc8d4281d85cd",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/fine/manifest_item.dart",
      "new_id": "d166e62d870af2cc5ceb1c4367d52d07458b7a46",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/fine/manifest_item.dart"
    },
    {
      "type": "modify",
      "old_id": "2a35dc3e26354b4f55bbd9f697bd9d5d5d0c78bd",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/test/src/dart/analysis/driver_test.dart",
      "new_id": "e01384aec8fe16d55bb3d8fed04fae829a821a3d",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/test/src/dart/analysis/driver_test.dart"
    }
  ]
}
