)]}'
{
  "commit": "b5e1ef4e14eeb5666bf62318390cf68840a71773",
  "tree": "4c1a3503629188a9faf182b4aa989b062e29c34b",
  "parents": [
    "1504dc63623eb05211cb520307d0501a9e0315ed"
  ],
  "author": {
    "name": "Johnni Winther",
    "email": "johnniwinther@google.com",
    "time": "Mon May 05 01:10:33 2025 -0700"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon May 05 01:10:33 2025 -0700"
  },
  "message": "[model] Update handling of ?.length in constants\n\nThis adds reporting of an error in CFE for ?.length in constant expressions and improves the message for the analyzer in the same case. The error in the analyzer was previously the invalid claim that\n\n    The property \u0027length\u0027 can\u0027t be accessed on the type \u0027Null\u0027 in a constant expression.\n\nCloses #60509\n\nChange-Id: Ibbe0fa1ace3bea9d83efea2ccf3ea9716a125d74\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/421841\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Johnni Winther \u003cjohnniwinther@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "876e85719b235b0e87a9d97488af202a7a52f736",
      "old_mode": 33188,
      "old_path": "pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart",
      "new_id": "dffd2fb42ee40d85700e434b524eba021bfbf622",
      "new_mode": 33188,
      "new_path": "pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart"
    },
    {
      "type": "modify",
      "old_id": "9e2f2c4b64c3c0dbe0b2d6aba6ea95752e2eaa72",
      "old_mode": 33188,
      "old_path": "pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml",
      "new_id": "fd782527971463c89b9577ef3a352f1fc3209fb9",
      "new_mode": 33188,
      "new_path": "pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml"
    },
    {
      "type": "modify",
      "old_id": "03781bb3f62756caf691b52c859f1a47b1405cf4",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/constant/constant_verifier.dart",
      "new_id": "6e3203845ca57ab81c895ef4ec86e07d7b037182",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/constant/constant_verifier.dart"
    },
    {
      "type": "modify",
      "old_id": "8c68516e1bf6ced1bdd3004799b5e41f292aaf79",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/constant/evaluation.dart",
      "new_id": "8bd49ff9f92851451227c8c9179e6932284612d5",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/constant/evaluation.dart"
    },
    {
      "type": "modify",
      "old_id": "7f14f825e8bc60a1a621f20eb29982a8b1ca0f7f",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/error/codes.g.dart",
      "new_id": "831215169218c55b0d920adde542545bb0fb198d",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/error/codes.g.dart"
    },
    {
      "type": "modify",
      "old_id": "8f3a5a10f970c9fb444ce47530d7cc8c85eff9f8",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/error/error_code_values.g.dart",
      "new_id": "c49effd191daa38f7993ec7310d5629004356ec5",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/error/error_code_values.g.dart"
    },
    {
      "type": "modify",
      "old_id": "e6cfa3e2cab687d3a3e550591ff8c4cd56e49fe7",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/lint/constants.dart",
      "new_id": "85961b1e5623737313fd5196d81645c087c2e45c",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/lint/constants.dart"
    },
    {
      "type": "modify",
      "old_id": "d59d2339804174f02c9e09e521de855a477a94e3",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/messages.yaml",
      "new_id": "66118174f13659e225f73c3b2c2f08f3abf9b5bd",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/messages.yaml"
    },
    {
      "type": "modify",
      "old_id": "f8d9669233546680740b9e986f35d61a83af0bb0",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/test/src/diagnostics/const_eval_property_access_test.dart",
      "new_id": "0cb44d9597713ed24325fb993ce7cb3758991ee8",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/test/src/diagnostics/const_eval_property_access_test.dart"
    },
    {
      "type": "modify",
      "old_id": "28985dd30d42e4d23e4e55cc5a3bce20bc3d5da1",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/kernel/body_builder.dart",
      "new_id": "84be4a720160786e58dc81cba8bcba61c1a2f53e",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/kernel/body_builder.dart"
    },
    {
      "type": "modify",
      "old_id": "f3f0bb84d332d132b6a72baac05467768d1cda76",
      "old_mode": 33188,
      "old_path": "pkg/front_end/messages.yaml",
      "new_id": "7b7d22d44dacbb8949992ec3abd1c1e9bd745a8c",
      "new_mode": 33188,
      "new_path": "pkg/front_end/messages.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b88ac318f88827057e14847c14dc5353275c21b5",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/cascade.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9f11ce0fd2e18eec5155da2aeb115c8f4ee77669",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/cascade.dart.strong.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9f11ce0fd2e18eec5155da2aeb115c8f4ee77669",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/cascade.dart.strong.modular.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5179d02661f643525e8bf908f3658aa5e968c75b",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/cascade.dart.strong.outline.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9f11ce0fd2e18eec5155da2aeb115c8f4ee77669",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/cascade.dart.strong.transformed.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9be0679f6daa8d343efdcff7c7c2c31d0fa9c231",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/cascade.dart.textual_outline.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9be0679f6daa8d343efdcff7c7c2c31d0fa9c231",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/cascade.dart.textual_outline_modelled.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "246306c1965fe5d2b66bd652d1c75020e1590a7b",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/null_aware_string_length.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ff44c31e0ae5ce5e67f9bb095ad9f90d65caf51c",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/null_aware_string_length.dart.strong.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ff44c31e0ae5ce5e67f9bb095ad9f90d65caf51c",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/null_aware_string_length.dart.strong.modular.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "29416c368b069d5720d6255fe28c9e77b0eb2e5f",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/null_aware_string_length.dart.strong.outline.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ff44c31e0ae5ce5e67f9bb095ad9f90d65caf51c",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/null_aware_string_length.dart.strong.transformed.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "96c9fa6ef8ce47fe21f348e49eae2666d82b3d22",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/null_aware_string_length.dart.textual_outline.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "96c9fa6ef8ce47fe21f348e49eae2666d82b3d22",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/general/constants/null_aware_string_length.dart.textual_outline_modelled.expect"
    }
  ]
}
