)]}'
{
  "commit": "91efb90f437bb6a30e6726c3369a2fcb9bba06e7",
  "tree": "8612ca4446088cc61455bebd99891891c72e199f",
  "parents": [
    "84079e8b8531309e06ba7276b1c28bdca9210ad6"
  ],
  "author": {
    "name": "Martin Kustermann",
    "email": "kustermann@google.com",
    "time": "Tue Jun 30 21:10:30 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jun 30 21:10:30 2026 +0200"
  },
  "message": "Use `$_createMessage()` of type `GeneratedMessage Function()` in Dart protoc compiler (#1093)\n\nOften apps use extensive numbers of protos. The `BuilderInfo` of a proto will refer to sub proto messages via using `Foo.create` tear-offs.\n\nBig apps can end up with tens of thousands of those `\u003cname\u003e.create` closures. All of them currently have a unique `\u003cname\u003e Function()` function type.\n\nThough the actual usage of those closures is only in contexts where the caller of the closure expects a `GeneratedMessage` as return type. If a caller knew the actual return type, then the caller could call the constructor directly.\n\nTo avoid having to create potentially tens of thousands of unique function types, we make those closures have the\n`GeneratedMessage Function()` type.\n\nThis mirrors cl/923994549  \u0026 cl/940364489",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "db84e7e97a7f76fb3ec26a9b04398c78d393cbda",
      "old_mode": 33261,
      "old_path": "benchmarks/tool/compile_benchmarks.dart",
      "new_id": "4db2216509090533f0fa094acbabdd227246a1e4",
      "new_mode": 33261,
      "new_path": "benchmarks/tool/compile_benchmarks.dart"
    },
    {
      "type": "modify",
      "old_id": "219a13cc1c43c264b92e010f0bd5d60c97cdfb9a",
      "old_mode": 33188,
      "old_path": "protobuf/CHANGELOG.md",
      "new_id": "5019a98319598a0cdbc47d17ec57c63c1fb25745",
      "new_mode": 33188,
      "new_path": "protobuf/CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "28997e4c2e685c1f86b81303891f52dd420724c4",
      "old_mode": 33188,
      "old_path": "protobuf/lib/src/protobuf/builder_info.dart",
      "new_id": "b98c685cfdcdac98e0adda9858fb60850d202b01",
      "new_mode": 33188,
      "new_path": "protobuf/lib/src/protobuf/builder_info.dart"
    },
    {
      "type": "modify",
      "old_id": "1af1529a911a9f4034e3b4797fc38d72a749c92f",
      "old_mode": 33188,
      "old_path": "protobuf/lib/src/protobuf/extension.dart",
      "new_id": "9d4e311fa1f4c357ea4e4482fb15d5853df1ab57",
      "new_mode": 33188,
      "new_path": "protobuf/lib/src/protobuf/extension.dart"
    },
    {
      "type": "modify",
      "old_id": "59c709f98ab0152f7db7ae5febec5a96c92a6dae",
      "old_mode": 33188,
      "old_path": "protobuf/lib/src/protobuf/field_info.dart",
      "new_id": "2ce89721193c2337a059d44f833ef9cbb31633ef",
      "new_mode": 33188,
      "new_path": "protobuf/lib/src/protobuf/field_info.dart"
    },
    {
      "type": "modify",
      "old_id": "acfe9f802900cad079739fe32d4482131aa65e57",
      "old_mode": 33188,
      "old_path": "protobuf/lib/src/protobuf/generated_message.dart",
      "new_id": "b27f91cdefc8e5b747968313b8adef4e3826d201",
      "new_mode": 33188,
      "new_path": "protobuf/lib/src/protobuf/generated_message.dart"
    },
    {
      "type": "modify",
      "old_id": "2623677c174f8d1cb4c4725a70e400d15869cd2d",
      "old_mode": 33188,
      "old_path": "protobuf/lib/well_known_types/google/protobuf/any.pb.dart",
      "new_id": "c95744be27394e9a6ffad9c6bb4c60f38fdebec2",
      "new_mode": 33188,
      "new_path": "protobuf/lib/well_known_types/google/protobuf/any.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "b2761060a4ca0db620d29fd765e6fbec5d80d5fc",
      "old_mode": 33188,
      "old_path": "protobuf/lib/well_known_types/google/protobuf/api.pb.dart",
      "new_id": "9103e169f6753d23dbe952fe52ca2358ecb6611b",
      "new_mode": 33188,
      "new_path": "protobuf/lib/well_known_types/google/protobuf/api.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "1d2be314c558510ffced4add792d74e833a01110",
      "old_mode": 33188,
      "old_path": "protobuf/lib/well_known_types/google/protobuf/duration.pb.dart",
      "new_id": "0e9595203b116f465b68eb71c64c7c279675cd67",
      "new_mode": 33188,
      "new_path": "protobuf/lib/well_known_types/google/protobuf/duration.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "8c77bb7d1e253a660fffce9992c0982ee4fd06ae",
      "old_mode": 33188,
      "old_path": "protobuf/lib/well_known_types/google/protobuf/empty.pb.dart",
      "new_id": "cf89822bf5250ac71ebada62df698242f949007f",
      "new_mode": 33188,
      "new_path": "protobuf/lib/well_known_types/google/protobuf/empty.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "a41c1e73006892a4c6785012c9ef48e049045833",
      "old_mode": 33188,
      "old_path": "protobuf/lib/well_known_types/google/protobuf/field_mask.pb.dart",
      "new_id": "e9aa5e6dc88c9283d0746562058ce4eefed011ea",
      "new_mode": 33188,
      "new_path": "protobuf/lib/well_known_types/google/protobuf/field_mask.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "b2663260f047e1431fbbe3b8a510b8af4517ef42",
      "old_mode": 33188,
      "old_path": "protobuf/lib/well_known_types/google/protobuf/source_context.pb.dart",
      "new_id": "6d2db116152495515f1e135367dd0afa45d8ca70",
      "new_mode": 33188,
      "new_path": "protobuf/lib/well_known_types/google/protobuf/source_context.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "ba3ba129d1a5a4271ba1c0ed3a6ceb7b8ef08cbe",
      "old_mode": 33188,
      "old_path": "protobuf/lib/well_known_types/google/protobuf/struct.pb.dart",
      "new_id": "1c500e3e5852b90553315fcb9947552a1ec9be86",
      "new_mode": 33188,
      "new_path": "protobuf/lib/well_known_types/google/protobuf/struct.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "0df118ca2512577b755f8ea147c4a5d2732f1ffc",
      "old_mode": 33188,
      "old_path": "protobuf/lib/well_known_types/google/protobuf/timestamp.pb.dart",
      "new_id": "0dd44661bf05ef817c3a8bdee9f75ac3df528086",
      "new_mode": 33188,
      "new_path": "protobuf/lib/well_known_types/google/protobuf/timestamp.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "020580e622116a7057e1ef840995566c85fae7ae",
      "old_mode": 33188,
      "old_path": "protobuf/lib/well_known_types/google/protobuf/type.pb.dart",
      "new_id": "a999b20a597f03b3f92d7d1953d139e6f6fc5c1f",
      "new_mode": 33188,
      "new_path": "protobuf/lib/well_known_types/google/protobuf/type.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "f802750111962c48015d2b8e1d6fb1d50f14673e",
      "old_mode": 33188,
      "old_path": "protobuf/lib/well_known_types/google/protobuf/wrappers.pb.dart",
      "new_id": "783cd833306831214ddf9a0ec4a3777694592ff1",
      "new_mode": 33188,
      "new_path": "protobuf/lib/well_known_types/google/protobuf/wrappers.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "b2fa5d54ec891b528ec34b5f9abd2f00cf27ca85",
      "old_mode": 33188,
      "old_path": "protobuf/pubspec.yaml",
      "new_id": "e614c0432d6746d44666df00b32845cd9b894b60",
      "new_mode": 33188,
      "new_path": "protobuf/pubspec.yaml"
    },
    {
      "type": "modify",
      "old_id": "add00ba72eaca08e29f8eda3aeeec5415fb4769a",
      "old_mode": 33188,
      "old_path": "protoc_plugin/CHANGELOG.md",
      "new_id": "72b3244bdfc21e7ec4862057432a3173947f487c",
      "new_mode": 33188,
      "new_path": "protoc_plugin/CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "54da34c64e6c8151902e0ea01db2bf2dd2fed95c",
      "old_mode": 33261,
      "old_path": "protoc_plugin/bin/protoc_plugin.dart",
      "new_id": "5a37e07ad8d7f594387aff4b1e2bd764e7a60e36",
      "new_mode": 33261,
      "new_path": "protoc_plugin/bin/protoc_plugin.dart"
    },
    {
      "type": "modify",
      "old_id": "c6dd2a6bab01bbafdbf302b0cd72254f6e1131ef",
      "old_mode": 33261,
      "old_path": "protoc_plugin/bin/protoc_plugin_bazel.dart",
      "new_id": "227b1dad048a3d13e0730b48d7553d776306847b",
      "new_mode": 33261,
      "new_path": "protoc_plugin/bin/protoc_plugin_bazel.dart"
    },
    {
      "type": "modify",
      "old_id": "2f95fa62ea2e48d25091bc13fa62a9f0391d5f6b",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/extension_generator.dart",
      "new_id": "8878db5da7db8efb35b044f013b64b35afab3c80",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/extension_generator.dart"
    },
    {
      "type": "modify",
      "old_id": "4f81a4ab73449931d957390f151203acdc57c839",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/gen/dart_options.pb.dart",
      "new_id": "c0e0fdb46d10cbf19d9e3fcf18f9719a74dd27ee",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/gen/dart_options.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "b3c3f8ae8fb228d243ea1995f0897714f91264e6",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/gen/google/api/client.pb.dart",
      "new_id": "82fe038b6c6bfcae4faf3af36b36121cabfd5347",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/gen/google/api/client.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "53ded61130c244957e5914f240fda7cc5ddc10c7",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/gen/google/api/http.pb.dart",
      "new_id": "b99625b24c3ea1da59cb5102ae40b4a316955a59",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/gen/google/api/http.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "dd8c1300c31c196de0a308e23baf6ec637beb8fc",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/gen/google/api/routing.pb.dart",
      "new_id": "5785af9755f71b82dcd7710f74d06492f8d689aa",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/gen/google/api/routing.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "2395e7038b9aeeb0299e7446e336d78af941487a",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/gen/google/protobuf/compiler/plugin.pb.dart",
      "new_id": "91c73bc58aedef8007170a8659225164271c02bf",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/gen/google/protobuf/compiler/plugin.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "f70dbd4fb0aa78ec728feff3ceb6b07ce223ffc1",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/gen/google/protobuf/descriptor.pb.dart",
      "new_id": "5a438e5ba2e43ed691bc802efb4e9419442abdb4",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/gen/google/protobuf/descriptor.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "4489dfde1d77ee4c0ca975d2388ea03e1e7d7b55",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/gen/google/protobuf/unittest_features.pb.dart",
      "new_id": "daef2804486eaeed2e3dfc8b30f7e75906b89065",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/gen/google/protobuf/unittest_features.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "737288a162c90fc0767ab9f57f8e4fea384c8f03",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/message_generator.dart",
      "new_id": "d25d6fc1176084f43bdeeb4bc08b2192bc7cb01a",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/message_generator.dart"
    },
    {
      "type": "modify",
      "old_id": "42bbb7bb921cbe41107fd7c74973dbe57d362cbb",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/protobuf_field.dart",
      "new_id": "db66db344984a6dff9ea10f0aab4fb28701582f0",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/protobuf_field.dart"
    },
    {
      "type": "modify",
      "old_id": "662d3853bc43864c483e33b80927f211b05ed907",
      "old_mode": 33188,
      "old_path": "protoc_plugin/pubspec.yaml",
      "new_id": "cd52907d8a0b04de1cb4c40b944d9d7c02645a2d",
      "new_mode": 33188,
      "new_path": "protoc_plugin/pubspec.yaml"
    },
    {
      "type": "modify",
      "old_id": "8d9c6a50df6122b3aa4c1da39a4cab24159042c0",
      "old_mode": 33188,
      "old_path": "protoc_plugin/test/goldens/deprecations.pb.dart",
      "new_id": "3f7296998d66f1b97ad5b0fa53f0ea4aca9432ad",
      "new_mode": 33188,
      "new_path": "protoc_plugin/test/goldens/deprecations.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "0b8b02d6d166d30360acbf47c70f0d6b9c3d69e9",
      "old_mode": 33188,
      "old_path": "protoc_plugin/test/goldens/doc_comments.pb.dart",
      "new_id": "df1de92c2896e10107a729e1255d2977dc2743d4",
      "new_mode": 33188,
      "new_path": "protoc_plugin/test/goldens/doc_comments.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "e95ebd931ab425ed36a9e723b03bac9ae07cca1c",
      "old_mode": 33188,
      "old_path": "protoc_plugin/test/goldens/grpc_service.pb.dart",
      "new_id": "35cf53527e28c3cc276c1c0b94af43853830b573",
      "new_mode": 33188,
      "new_path": "protoc_plugin/test/goldens/grpc_service.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "ab3d779544b0ae7477130432a7cae26bec936573",
      "old_mode": 33188,
      "old_path": "protoc_plugin/test/goldens/imports.pb.dart",
      "new_id": "954e1bc2e6cc794d8889c4a6c5cfcf616e102b97",
      "new_mode": 33188,
      "new_path": "protoc_plugin/test/goldens/imports.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "64e790e30acba9a35e4a672ba816f675c11d7398",
      "old_mode": 33188,
      "old_path": "protoc_plugin/test/goldens/int64.pb.dart",
      "new_id": "df164e6ae7cbbaefc839e027c382b8002f615c4c",
      "new_mode": 33188,
      "new_path": "protoc_plugin/test/goldens/int64.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "7b6c9cf2569889ece1c97a825a4f2b65cafec5b6",
      "old_mode": 33188,
      "old_path": "protoc_plugin/test/goldens/messageGenerator.pb.dart",
      "new_id": "95c7ed1cce16e5baf165d457687663dd04e7c976",
      "new_mode": 33188,
      "new_path": "protoc_plugin/test/goldens/messageGenerator.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "f4f8312add6939872676b2f24fc6ce8f3580d7da",
      "old_mode": 33188,
      "old_path": "protoc_plugin/test/goldens/messageGenerator.pb.dart.meta",
      "new_id": "c711a3bcaa62c1cd82f8ea23db67c1a7e8527b22",
      "new_mode": 33188,
      "new_path": "protoc_plugin/test/goldens/messageGenerator.pb.dart.meta"
    },
    {
      "type": "modify",
      "old_id": "cfadf0f11b1b339b54a06a24e3bb3167426c89a5",
      "old_mode": 33188,
      "old_path": "protoc_plugin/test/goldens/oneMessage.pb.dart",
      "new_id": "7ae9b829fc0f92ddaf5baf43070bfccd0e6c5b26",
      "new_mode": 33188,
      "new_path": "protoc_plugin/test/goldens/oneMessage.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "aeeaaafb0eea16205438c312370f5f67a44f054b",
      "old_mode": 33188,
      "old_path": "protoc_plugin/test/goldens/oneMessage.pb.dart.meta",
      "new_id": "abd15d44b7a7a518341c10b1790f4dfcbbbddb29",
      "new_mode": 33188,
      "new_path": "protoc_plugin/test/goldens/oneMessage.pb.dart.meta"
    },
    {
      "type": "modify",
      "old_id": "1f2aea64e8cfdba9130efea665ecb51a19bd1896",
      "old_mode": 33188,
      "old_path": "protoc_plugin/test/goldens/service.pb.dart",
      "new_id": "3f9387ace019308f2beca97cb183c65badf12459",
      "new_mode": 33188,
      "new_path": "protoc_plugin/test/goldens/service.pb.dart"
    },
    {
      "type": "modify",
      "old_id": "8e60b33f246de06b52e17037e025ca52ee736bb2",
      "old_mode": 33188,
      "old_path": "protoc_plugin/test/send_protos_via_sendports_test.dart",
      "new_id": "a254db942db825fd0c4e3a7f2cc402a68153c582",
      "new_mode": 33188,
      "new_path": "protoc_plugin/test/send_protos_via_sendports_test.dart"
    }
  ]
}
