)]}'
{
  "commit": "c30dd253a3f03751ea9fc229a19844f56083acd0",
  "tree": "61282eb9de43581533db9040aa280844182decc9",
  "parents": [
    "51fee27069b4d853421857ad29888d8ae597ba7c"
  ],
  "author": {
    "name": "Paul Berry",
    "email": "paulberry@google.com",
    "time": "Wed Jul 02 17:42:14 2025 -0700"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Jul 02 17:42:14 2025 -0700"
  },
  "message": "Use package_root.dart for all analyzer_utilities-based codegen.\n\nAll code generation logic that uses the analyzer_utilities package\u0027s\n`GeneratedContent` class hierarchy is modified to use\n`package:analyzer_testing/package_root.dart` to locate the `pkg`\ndirectory in the root of the SDK repo.\n\nThis paves the way for some follow-up work in which I intend to modify\nthe `GeneratedContent` class hierarchy so that it tracks the locations\nof all code generation targets relative to the `pkg` directory rather\nthan the individual package directories. That in turn should make it\neasier for code generation logic to be shared between error messages\nbelonging to `pkg/analyzer`, `pkg/front_end`, and\n`pkg/_fe_analyzer_shared`.\n\nChange-Id: Iee59e977e844261f46fb62ed4e222db79db45a25\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/438061\nAuto-Submit: Paul Berry \u003cpaulberry@google.com\u003e\nCommit-Queue: Samuel Rawlins \u003csrawlins@google.com\u003e\nReviewed-by: Samuel Rawlins \u003csrawlins@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a0be24c96ce53e4800d1d36256d8998659c39a7c",
      "old_mode": 33188,
      "old_path": "pkg/analysis_server/integration_test/coverage_test.dart",
      "new_id": "a7408c33035a31d1c98678e1bf534ab556c9275b",
      "new_mode": 33188,
      "new_path": "pkg/analysis_server/integration_test/coverage_test.dart"
    },
    {
      "type": "modify",
      "old_id": "296c0a1edac9023f03841a1743e2880ef2c6d951",
      "old_mode": 33188,
      "old_path": "pkg/analysis_server/tool/spec/check_all_test.dart",
      "new_id": "187941239ab7ca19c58f486bfcdd93f9801297a3",
      "new_mode": 33188,
      "new_path": "pkg/analysis_server/tool/spec/check_all_test.dart"
    },
    {
      "type": "modify",
      "old_id": "990174b03b22aed2f0394aea445c7aad614fb350",
      "old_mode": 33188,
      "old_path": "pkg/analysis_server/tool/spec/generate_all.dart",
      "new_id": "a04b228806fd2b59d85c62f227b9ed4a7af437d5",
      "new_mode": 33188,
      "new_path": "pkg/analysis_server/tool/spec/generate_all.dart"
    },
    {
      "type": "modify",
      "old_id": "0c39b73c9b0ae1f09789cd838b23a777ce486aca",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/tool/experiments/experiments_test.dart",
      "new_id": "99420929b86d96abf365d105eed5cf1fe2046ec9",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/tool/experiments/experiments_test.dart"
    },
    {
      "type": "modify",
      "old_id": "0528a828ab00d55a6e2469e4657db6f203d4707c",
      "old_mode": 33261,
      "old_path": "pkg/analyzer/tool/generate_files",
      "new_id": "6664701915cd1052e021a1a5e316965e2f80eb99",
      "new_mode": 33261,
      "new_path": "pkg/analyzer/tool/generate_files"
    },
    {
      "type": "modify",
      "old_id": "14f0eaeeeb0104c4ed26c762151cc2eec5f20808",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/tool/summary/check_test.dart",
      "new_id": "b4b463b6b54f8382f677642c48f83dbe29c90b98",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/tool/summary/check_test.dart"
    },
    {
      "type": "modify",
      "old_id": "dfd73acc72fd8b487032f4cbd1191c881fc8c799",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/tool/summary/generate.dart",
      "new_id": "76778925ba00fcf7e9e87210a92dc687ec049d27",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/tool/summary/generate.dart"
    },
    {
      "type": "modify",
      "old_id": "24b06fa42f3bc24b257534fcb3773dc46ed27258",
      "old_mode": 33188,
      "old_path": "pkg/analyzer_plugin/tool/spec/check_all_test.dart",
      "new_id": "959b590bff31d038c7046cb406e25fdf45d04f08",
      "new_mode": 33188,
      "new_path": "pkg/analyzer_plugin/tool/spec/check_all_test.dart"
    },
    {
      "type": "modify",
      "old_id": "b57ef467d12e221af500e0e807bc851a87b68f0d",
      "old_mode": 33188,
      "old_path": "pkg/analyzer_plugin/tool/spec/generate_all.dart",
      "new_id": "2fd6897ccd0875d3d004c947a5f8048386f76967",
      "new_mode": 33188,
      "new_path": "pkg/analyzer_plugin/tool/spec/generate_all.dart"
    },
    {
      "type": "modify",
      "old_id": "f07036780e01f36f7f7f62c585d54d093f55bf2d",
      "old_mode": 33188,
      "old_path": "pkg/analyzer_utilities/lib/tools.dart",
      "new_id": "ad5cb572683d9340b5be44629c79dac501af0e52",
      "new_mode": 33188,
      "new_path": "pkg/analyzer_utilities/lib/tools.dart"
    },
    {
      "type": "modify",
      "old_id": "d1ef7b3105bd81707f2268fa6f3d39ce0a05f2e4",
      "old_mode": 33188,
      "old_path": "pkg/linter/tool/generate_lints.dart",
      "new_id": "e468dcfdfdeccd4b5e0d43e9cd6e723abb652679",
      "new_mode": 33188,
      "new_path": "pkg/linter/tool/generate_lints.dart"
    },
    {
      "type": "modify",
      "old_id": "5122f2d5c64f9989e1fe71dc98c1d612573cb8e4",
      "old_mode": 33188,
      "old_path": "pkg/linter/tool/util/path_utils.dart",
      "new_id": "3246702fc7f35e1ec6dad1630e43718ca194e606",
      "new_mode": 33188,
      "new_path": "pkg/linter/tool/util/path_utils.dart"
    }
  ]
}
