)]}'
{
  "commit": "0e5a539315e690eb1bfac9ecf8a676822fcbf714",
  "tree": "1a67ac8e696b903d08482171ddd3124be68fd5a4",
  "parents": [
    "442836bce4676cd4ed1b8518af2e1a2dc5c1a463"
  ],
  "author": {
    "name": "Alexander Markov",
    "email": "alexmarkov@google.com",
    "time": "Thu Jan 13 15:32:50 2022 +0000"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Thu Jan 13 15:32:50 2022 +0000"
  },
  "message": "[vm/aot] Keep toString methods on exception classes in toString transformer\n\nFlutter in google3 uses --delete-tostring-package-uri compiler option\nto remove toString methods in package:flutter and dart:ui to reduce\nsize in release mode.\nThis has unfortunate effect of removing toString methods from exception\nclasses which may provide valuable information for investigating\nproblems seen in the wild.\n\nThis change adds a new @pragma(\u0027flutter:keep-to-string-in-subtypes\u0027)\non classes to keep toString methods on all subtypes of the annotated\nclasses. This pragma is now used on Exception and Error classes in\ndart:core.\n\nTEST\u003dpkg/vm/test/transformations/to_string_transformer_test.dart\n\nIssue: https://github.com/flutter/flutter/issues/61562\nChange-Id: Ib739c83cdf6b539208f705ba198e63b8bc54fa61\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/227920\nReviewed-by: Dan Field \u003cdnfield@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nCommit-Queue: Alexander Markov \u003calexmarkov@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0cd1b5fa1a2c6ce32a088a5ab55f5fd66eaf4996",
      "old_mode": 33188,
      "old_path": "pkg/vm/lib/transformations/to_string_transformer.dart",
      "new_id": "824282d7238d2f718785692de8afcbad0174eeb7",
      "new_mode": 33188,
      "new_path": "pkg/vm/lib/transformations/to_string_transformer.dart"
    },
    {
      "type": "modify",
      "old_id": "96544f2009518c1514c9ebd7ed13f1463432f336",
      "old_mode": 33188,
      "old_path": "pkg/vm/testcases/transformations/to_string_transformer/lib/main.dart",
      "new_id": "aa53235ce94e577b7500fa3c7e518ad45d130d5d",
      "new_mode": 33188,
      "new_path": "pkg/vm/testcases/transformations/to_string_transformer/lib/main.dart"
    },
    {
      "type": "modify",
      "old_id": "29c959a4e3c5f61454eec41e4c4b2ac794f72d44",
      "old_mode": 33188,
      "old_path": "pkg/vm/testcases/transformations/to_string_transformer/not_transformed.expect",
      "new_id": "6d48b41e0f25ab0531eb751ba2204c53b6a047d9",
      "new_mode": 33188,
      "new_path": "pkg/vm/testcases/transformations/to_string_transformer/not_transformed.expect"
    },
    {
      "type": "modify",
      "old_id": "dca5efba14d39546be966594e6208ccb21da48ee",
      "old_mode": 33188,
      "old_path": "pkg/vm/testcases/transformations/to_string_transformer/transformed.expect",
      "new_id": "75d87ae35c97c3997dffbcb658967d0aad2ded28",
      "new_mode": 33188,
      "new_path": "pkg/vm/testcases/transformations/to_string_transformer/transformed.expect"
    },
    {
      "type": "modify",
      "old_id": "589699c04cddcda943aa6e46eca2d005794ffa22",
      "old_mode": 33188,
      "old_path": "runtime/docs/pragmas.md",
      "new_id": "77d6d8e24346797c18f57fba27374b8e620a9b03",
      "new_mode": 33188,
      "new_path": "runtime/docs/pragmas.md"
    },
    {
      "type": "modify",
      "old_id": "6190c83f8b5188107aa2f1f8cbe9f5136fe03f2b",
      "old_mode": 33188,
      "old_path": "sdk/lib/core/errors.dart",
      "new_id": "00d69ce8db330edac7ccc54558c131fb3393df62",
      "new_mode": 33188,
      "new_path": "sdk/lib/core/errors.dart"
    },
    {
      "type": "modify",
      "old_id": "889c99163b6d839244bbf2b8954bdd10e0f5435f",
      "old_mode": 33188,
      "old_path": "sdk/lib/core/exceptions.dart",
      "new_id": "f522d27699a51d8ea9269e0acfb1f2879a60df3a",
      "new_mode": 33188,
      "new_path": "sdk/lib/core/exceptions.dart"
    }
  ]
}
