)]}'
{
  "commit": "f6ac970290fd4fb76c296a309e4c7daf8e99c826",
  "tree": "eb385f45bc3db9c71808f082f829297c7d77c4ae",
  "parents": [
    "7c89ac9df8f4d56f89aa0ee0156ddc87d9c21470"
  ],
  "author": {
    "name": "Lasse R.H. Nielsen",
    "email": "lrn@google.com",
    "time": "Wed Mar 29 16:54:23 2023 +0000"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Mar 29 16:54:23 2023 +0000"
  },
  "message": "Reland \"Add class modifiers to `dart:convert`.\" again.\n\nThis is a reland of commit 608934e330e3e9792cc108c116b43f02233bba8a\n\nCan be landed when Flutter with https://github.com/flutter/flutter/pull/123211\nhas been rolled into internal repository.\n\n\n\nOriginal change\u0027s description:\n\u003e Reland \"Add class modifiers to `dart:convert`.\"\n\u003e\n\u003e This is a reland of commit b2f4cf3e01edf2a26a031ab7151c282713c8bd1b\n\u003e\n\u003e Commented out deprecation for now.\n\u003e\n\u003e Original change\u0027s description:\n\u003e \u003e Add class modifiers to `dart:convert`.\n\u003e \u003e\n\u003e \u003e The usual approach:\n\u003e \u003e Pure interfaces marked `interface`.\n\u003e \u003e Pure implementation classes marked `final`.\n\u003e \u003e Base classes marked `base` or nothing, and `mixin class` if reasonable.\n\u003e \u003e Combined X/XBase/XMixin where possible.\n\u003e \u003e\n\u003e \u003e CoreLibraryReviewExempt: Aske is away\n\u003e \u003e Change-Id: I927f9bd488fb385ff9c17c8fc94920a1f5076347\n\u003e \u003e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289200\n\u003e \u003e Reviewed-by: Stephen Adams \u003csra@google.com\u003e\n\u003e \u003e Reviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n\u003e \u003e Reviewed-by: Nate Bosch \u003cnbosch@google.com\u003e\n\u003e \u003e Commit-Queue: Lasse Nielsen \u003clrn@google.com\u003e\n\u003e\n\u003e CoreLibraryReviewExempt: Approved in original.\n\u003e Change-Id: I1bc14f99b742567e2634dcfcbc52f332dbcc5364\n\u003e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/290521\n\u003e Reviewed-by: Nate Bosch \u003cnbosch@google.com\u003e\n\u003e Commit-Queue: Lasse Nielsen \u003clrn@google.com\u003e\n\nCoreLibraryReviewExempt: Approved in original.\nChange-Id: If157e1ef2339d7a06e99a1e402f2f8ac93550b83\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/290960\nReviewed-by: Nate Bosch \u003cnbosch@google.com\u003e\nCommit-Queue: Lasse Nielsen \u003clrn@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f0490ec7a9f4c7a525b2ef8877dccc1c47ab60f4",
      "old_mode": 33188,
      "old_path": "pkg/analysis_server/benchmark/integration/input_converter.dart",
      "new_id": "2c72d565c8f897a0be16b6f9b903afb74a107e83",
      "new_mode": 33188,
      "new_path": "pkg/analysis_server/benchmark/integration/input_converter.dart"
    },
    {
      "type": "modify",
      "old_id": "f17f32edefbbf710e255aa05a80a907d57805107",
      "old_mode": 33188,
      "old_path": "pkg/analysis_server/lib/src/channel/channel.dart",
      "new_id": "e5ec806118eb72d6d53fcd924a31aa9cc5a48d71",
      "new_mode": 33188,
      "new_path": "pkg/analysis_server/lib/src/channel/channel.dart"
    },
    {
      "type": "modify",
      "old_id": "06588b5174bf87c97f7bae087147de383cb113dc",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/test_utilities/mock_sdk.dart",
      "new_id": "3fc6327d3d7ebf73ad75c59755b07e7aeb2b0b19",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/test_utilities/mock_sdk.dart"
    },
    {
      "type": "modify",
      "old_id": "794f8c2612dfbca7fc2a0c2c37f3c02063de9765",
      "old_mode": 33188,
      "old_path": "sdk/lib/_internal/vm_shared/lib/convert_patch.dart",
      "new_id": "01e8d3a25ee3a92e9902a6e0642574d976aab353",
      "new_mode": 33188,
      "new_path": "sdk/lib/_internal/vm_shared/lib/convert_patch.dart"
    },
    {
      "type": "modify",
      "old_id": "30a959982364396cc1d7edb58398f3f6bc7c29d8",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/ascii.dart",
      "new_id": "6768d715c2cb73a0e8fa6749d3fa9213c7cb450e",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/ascii.dart"
    },
    {
      "type": "modify",
      "old_id": "23fa301edfc8642f5fe3ac75a41b1b7be2cd75bc",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/base64.dart",
      "new_id": "1133ba2845b65ed97774db3a3fb366903cd51d19",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/base64.dart"
    },
    {
      "type": "modify",
      "old_id": "3d52d78ee1c2e70afee09b4db37b3ad1d3b98e97",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/byte_conversion.dart",
      "new_id": "7c5ab6855a23d775d06ce43d3779693956d2b37e",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/byte_conversion.dart"
    },
    {
      "type": "modify",
      "old_id": "19a85619341c4367c8b2b8db21c854c85d71e032",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/chunked_conversion.dart",
      "new_id": "a36f58478d5c240f17add5a9782aca621f5a31df",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/chunked_conversion.dart"
    },
    {
      "type": "modify",
      "old_id": "38e4a3c32aa7931f1da5ea0f9dd0f2b5ce66d1f4",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/codec.dart",
      "new_id": "42205cc079ecb0583e1a6fc2a0c8f4756b3cf167",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/codec.dart"
    },
    {
      "type": "modify",
      "old_id": "21679333660b6a74486aaf5788960ac18d65f2db",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/converter.dart",
      "new_id": "a9b1135943846883f159411352a680b8203739d5",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/converter.dart"
    },
    {
      "type": "modify",
      "old_id": "5974366ca6e590afd10bbbed2412b27ba46e684a",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/encoding.dart",
      "new_id": "e2234b5c4a221716f41794de87f668aa566e15a9",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/encoding.dart"
    },
    {
      "type": "modify",
      "old_id": "ced0a4a7b7bbc96c626ff3b22c8e167c3af8043e",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/html_escape.dart",
      "new_id": "29fa2ae2911c4b0542af0259e6b0a3068f4ecbb9",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/html_escape.dart"
    },
    {
      "type": "modify",
      "old_id": "bf9ab6761ef897f8be5c6b02081d758693a49ae6",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/json.dart",
      "new_id": "ef5c82fca0dd5a22498353e17ef5ade879274eae",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/json.dart"
    },
    {
      "type": "modify",
      "old_id": "76b2dbdfaebc8d38e746037abfe1fde8b7f5557d",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/latin1.dart",
      "new_id": "0156b19d8e4ee584b4b26cb0c617ea8f7670ea76",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/latin1.dart"
    },
    {
      "type": "modify",
      "old_id": "a227046f1ccd71f35ab0b58e94eba8ece877d066",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/line_splitter.dart",
      "new_id": "5a7e8070fd5e0e79a1844b163b00efcb214bbb09",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/line_splitter.dart"
    },
    {
      "type": "modify",
      "old_id": "5a310937f202ea8f19b9faed2f1bb84acbb37168",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/string_conversion.dart",
      "new_id": "3770be2334d4a49a1dfd526c814d2342349b9a47",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/string_conversion.dart"
    },
    {
      "type": "modify",
      "old_id": "85bc297868179f57c470b2b6da1d1ab31edf42dc",
      "old_mode": 33188,
      "old_path": "sdk/lib/convert/utf.dart",
      "new_id": "7473d82e2b5ea7e3085f0484f6f6496cf129e74c",
      "new_mode": 33188,
      "new_path": "sdk/lib/convert/utf.dart"
    },
    {
      "type": "modify",
      "old_id": "5bb7f3862c5d94b337676852013e76b0fa0be2b5",
      "old_mode": 33188,
      "old_path": "sdk/lib/io/string_transformer.dart",
      "new_id": "8e90aed0d2eb0499baa57c9753eaef8fd0a7c1e7",
      "new_mode": 33188,
      "new_path": "sdk/lib/io/string_transformer.dart"
    },
    {
      "type": "modify",
      "old_id": "cfbad2406d90cb7c731e83100c43510e3bbaafd5",
      "old_mode": 33188,
      "old_path": "tests/lib/convert/chunked_conversion1_test.dart",
      "new_id": "edf788217bc6c5ce707e420114d53932b0628591",
      "new_mode": 33188,
      "new_path": "tests/lib/convert/chunked_conversion1_test.dart"
    },
    {
      "type": "modify",
      "old_id": "ca37d101c649edc2c808ab4e0d1211371ee5c6cd",
      "old_mode": 33188,
      "old_path": "tests/lib/convert/chunked_conversion2_test.dart",
      "new_id": "717cd4de1dc9e9399f673ed6e3ae5b1288056456",
      "new_mode": 33188,
      "new_path": "tests/lib/convert/chunked_conversion2_test.dart"
    },
    {
      "type": "modify",
      "old_id": "d93767f20295f932e7290aab800ff6d48bbb4b46",
      "old_mode": 33188,
      "old_path": "tests/lib/convert/chunked_conversion_json_encode1_test.dart",
      "new_id": "5ffad23c3ab029bc690ed968b685d4b37c22a55e",
      "new_mode": 33188,
      "new_path": "tests/lib/convert/chunked_conversion_json_encode1_test.dart"
    },
    {
      "type": "modify",
      "old_id": "893abea536f3b5d3684dc76b07e53351c93a2a62",
      "old_mode": 33188,
      "old_path": "tests/lib/convert/chunked_conversion_utf89_test.dart",
      "new_id": "28911eb8fadc1495afc8e756c427aae8eb441f26",
      "new_mode": 33188,
      "new_path": "tests/lib/convert/chunked_conversion_utf89_test.dart"
    },
    {
      "type": "modify",
      "old_id": "fc1667607e83cd6f71280c098106025dc03896a2",
      "old_mode": 33188,
      "old_path": "tests/lib_2/convert/chunked_conversion1_test.dart",
      "new_id": "c998f548658d3b68a8bd164cdfcccf274a198b7e",
      "new_mode": 33188,
      "new_path": "tests/lib_2/convert/chunked_conversion1_test.dart"
    },
    {
      "type": "modify",
      "old_id": "93592ad774ec81f32b64f8538da0657965ebd688",
      "old_mode": 33188,
      "old_path": "tests/lib_2/convert/chunked_conversion2_test.dart",
      "new_id": "ca6336c4a693e14a8db901c3b4cde20a0f581713",
      "new_mode": 33188,
      "new_path": "tests/lib_2/convert/chunked_conversion2_test.dart"
    },
    {
      "type": "modify",
      "old_id": "4a994b115fb80742b4f078ec9a61362d81e7afb9",
      "old_mode": 33188,
      "old_path": "tests/lib_2/convert/chunked_conversion_json_encode1_test.dart",
      "new_id": "6d77cd7d99a54cb874d302cc70e3b85f5562d95b",
      "new_mode": 33188,
      "new_path": "tests/lib_2/convert/chunked_conversion_json_encode1_test.dart"
    },
    {
      "type": "modify",
      "old_id": "748bfebc3ec8dee47529ec75de422e11bddad4af",
      "old_mode": 33188,
      "old_path": "tests/lib_2/convert/chunked_conversion_utf89_test.dart",
      "new_id": "fad9fcd753da73f408adea434b381ed691982ed6",
      "new_mode": 33188,
      "new_path": "tests/lib_2/convert/chunked_conversion_utf89_test.dart"
    }
  ]
}
