)]}'
{
  "commit": "3172a7cd06fbad518fe517edc46491ed35825ffb",
  "tree": "27c1a64513ecd73ce1e3500755dc427ccfa9a620",
  "parents": [
    "b54e38e4a9198108d3a27339da4cbaf57e7d5041"
  ],
  "author": {
    "name": "Konstantin Shcheglov",
    "email": "scheglov@google.com",
    "time": "Mon Sep 01 11:57:11 2025 -0700"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Sep 01 11:57:11 2025 -0700"
  },
  "message": "Fine. Track mixin base flag and super-invoked names.\n\nCapture additional mixin semantics in the fine-grained manifest to\nimprove dependency sensitivity and determinism.\n\n- Add `isBase` to `MixinItem` and include it in encode/read/match/write,\n  so manifest IDs change when a mixin’s base modifier changes.\n- Record `superInvokedNames` in `MixinItem` as a `List\u003cLookupName\u003e` and\n  include it in matching, making the manifest sensitive to whether a\n  mixin invokes a member on `super` (getter, setter, or method).\n- Canonicalize `superInvokedNames` by sorting them during collection in\n  `LibraryBuilder.collectMixinSuperInvokedNames()`, eliminating\n  nondeterminism from source reordering.\n- Add `SummaryDataReader.readLookupNameList()` to simplify decoding of\n  `LookupName` lists.\n- Bump `AnalysisDriver.DATA_VERSION` to 532 to reflect the binary format\n  change and invalidate incompatible caches.\n\nThese changes ensure that altering a mixin’s base status or its use of\n`super` correctly affects manifest identity, while simple reordering of\n`super` calls does not.\n\nChange-Id: I9147f6505070f28ffbc476acac3cdaaaf55c2fc1\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/448000\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0adba4f739b6e74ac24f2edb6eea8ce4851bd199",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/analysis/driver.dart",
      "new_id": "02826757516ec55a2908c07ab560f44b5fbf6375",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/analysis/driver.dart"
    },
    {
      "type": "modify",
      "old_id": "c23f28470755abe53a41f975f59c0c778116be3a",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/fine/lookup_name.dart",
      "new_id": "069f53b341c3ed5258042a9a864f1772f2105db7",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/fine/lookup_name.dart"
    },
    {
      "type": "modify",
      "old_id": "757c4f261e4f8ec545424c3a5c0334d00ae6962d",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/fine/manifest_item.dart",
      "new_id": "5b59799423c2632fcf29c963fd8583e2bfbd9cbd",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/fine/manifest_item.dart"
    },
    {
      "type": "modify",
      "old_id": "c4f76da3fe678e96f01277233205a01da0e93ce8",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/summary2/library_builder.dart",
      "new_id": "79258a447a5d7ada72a87efb4b557fe85f3f43de",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/summary2/library_builder.dart"
    },
    {
      "type": "modify",
      "old_id": "1080c29fcacc21a5ef5f96bcd92176063e9ba03f",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/test/src/dart/analysis/driver_test.dart",
      "new_id": "45027367fe9d2100318dd459b9e476c09a40cc52",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/test/src/dart/analysis/driver_test.dart"
    }
  ]
}
