)]}'
{
  "commit": "ae28cfcde297ebcd504e527e602f1e0f527ac0f2",
  "tree": "e75dd67e0f758dec92e4769a92ab129d4e252ca7",
  "parents": [
    "a1848d71f02153346913002ed2a67feb80ea8374"
  ],
  "author": {
    "name": "Konstantin Shcheglov",
    "email": "scheglov@google.com",
    "time": "Sun Oct 25 09:24:20 2026 -0700"
  },
  "committer": {
    "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sun Oct 25 09:24:20 2026 -0700"
  },
  "message": "Issue 64693. Check language version overrides against the SDK version.\n\nA `// @dart \u003d X.Y` comment was checked against the analyzer\u0027s own\n`ExperimentStatus.currentVersion`, while the compiler checks it against\nthe language version of its SDK. So, when the analyzer from pub runs\nwith an SDK of a different version, it disagreed with the compiler: with\na newer analyzer it accepted overrides that the compiler rejects, and\nwith an older analyzer it reported overrides that the compiler accepts,\nand analyzed the file with the package language version instead.\n\nUse the language version of the host SDK as the latest language version\nfor overrides, as is already done for the default language version and\nfor experiments.\n\n`FileState` passes `FeatureSetProvider.sdkLanguageVersion` to\n`Scanner.configureFeatures`. Other clients of `Scanner`, including\n`parseString`, have no SDK and still use the analyzer\u0027s language\nversion. The scan result now depends on the SDK language version, so add\nit to the unlinked, elements, and resolution salts of `AnalysisDriver`.\n\nBug: https://github.com/dart-lang/sdk/issues/64693\nChange-Id: I52ac49b1c117ea67394b9435dd968d072046f170\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/568822\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5605a1ba0ee6f416489582f49975c3bb9555013f",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/CHANGELOG.md",
      "new_id": "5ef964667e182900193332646da14b8aa389dafc",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "b98e130428649b91b611cc40e5945af3ef53517d",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/analysis/driver.dart",
      "new_id": "56d6aa7ffc90ccffcfb6cce651c3128e5c809b5c",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/analysis/driver.dart"
    },
    {
      "type": "modify",
      "old_id": "29973e2e92aec6bb269f742ff84a2eec28edfd6a",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/analysis/feature_set_provider.dart",
      "new_id": "544c6815b110f2210530000705efd4b349921227",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/analysis/feature_set_provider.dart"
    },
    {
      "type": "modify",
      "old_id": "d4636c3cc5eaca0ddbdd131804583d1231342d1d",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/analysis/file_state.dart",
      "new_id": "edcad4f0732c8f87e54cfbedcfc1033e749645df",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/analysis/file_state.dart"
    },
    {
      "type": "modify",
      "old_id": "4d11ff11c68a14ef412ec7d3d8528afb556b972d",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/scanner/scanner.dart",
      "new_id": "901cf075181834b68a7fe3aafec5e5e5db77dc9e",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/scanner/scanner.dart"
    },
    {
      "type": "modify",
      "old_id": "8ecf62665198b2755d82b162ca7cf636e0c5e8ab",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/test_utilities/mock_sdk.dart",
      "new_id": "37c1e290ece2ff8d345e479830c46981cbe533cd",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/test_utilities/mock_sdk.dart"
    },
    {
      "type": "modify",
      "old_id": "6cb155a3ce2101dee26ea4c4eac874707e1b8a4b",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/test/src/dart/analysis/driver_caching_test.dart",
      "new_id": "04e9f9434d5624a408c2691be4778f13911b8500",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/test/src/dart/analysis/driver_caching_test.dart"
    },
    {
      "type": "modify",
      "old_id": "8ebb6b055bd92429fbf4ef7ada5c71a6b8250ab1",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart",
      "new_id": "e89e49930ad3e30909a45e05f21284f4df4bc2c4",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart"
    },
    {
      "type": "modify",
      "old_id": "4b6c1ddcd62d3c03b100e498005875151b61c591",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/test/src/diagnostics/invalid_language_override_greater_test.dart",
      "new_id": "c17aaf4eea129c327c836cebc816804508fcc81d",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/test/src/diagnostics/invalid_language_override_greater_test.dart"
    }
  ]
}
