)]}'
{
  "commit": "287abc4aba4d52ed98d7fc204ad933571accc8c1",
  "tree": "03aafa3b56020a024e11b989e95dc2c47e4832a5",
  "parents": [
    "c1bafec4bcb7b2d1d28a32a013f096b03b56763d"
  ],
  "author": {
    "name": "Liam Appelbe",
    "email": "liama@google.com",
    "time": "Tue May 03 10:01:57 2022 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue May 03 10:01:57 2022 -0700"
  },
  "message": "[ffigen] Block support (#333)\n\n* WIP: Blocks\r\n\r\n* Move ObjCBuiltInFunctions to its own file and its singleton to data.dart\r\n\r\n* Block parsing\r\n\r\n* Add a test\r\n\r\n* More WIP on blocks\r\n\r\n* WIP test\r\n\r\n* Test is working (with a few hacks)\r\n\r\n* Add pointer getter\r\n\r\n* Default values for exceptional return\r\n\r\n* Fix tests\r\n\r\n* Fix analysis errors\r\n\r\n* Update test expectations\r\n\r\n* Merge cruft\r\n\r\n* Merge",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f599c7b8fd0d88090dd828f363ca0bbaa020e5d0",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/code_generator.dart",
      "new_id": "82b2ed6b329ef135b38bcdcd5c540bbb35a06609",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/code_generator.dart"
    },
    {
      "type": "modify",
      "old_id": "84c4da8bdccd227e10317e1ece289bbefc6eb849",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/code_generator/binding_string.dart",
      "new_id": "decfd6fc90c5789916ca28ad425f654de5a5429c",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/code_generator/binding_string.dart"
    },
    {
      "type": "modify",
      "old_id": "2656e04c102928c3eb2fde02eb97a43adb9d2099",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/code_generator/compound.dart",
      "new_id": "ec994cdfea519fddc763a38f9fe73d2846c7c360",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/code_generator/compound.dart"
    },
    {
      "type": "modify",
      "old_id": "07b9eede3166b2cea85b164518431dd210ad65ea",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/code_generator/enum_class.dart",
      "new_id": "4e8ec3aac21f68d9a25eabdbca37905aee69d3ce",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/code_generator/enum_class.dart"
    },
    {
      "type": "modify",
      "old_id": "1a516112b708022c7cbbb567b47648078553d50a",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/code_generator/imports.dart",
      "new_id": "44e6f04331c2b8f751364721c088e139d376c070",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/code_generator/imports.dart"
    },
    {
      "type": "modify",
      "old_id": "ea65169395cd3fa10949f4cebddcc627ff7f9b98",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/code_generator/native_type.dart",
      "new_id": "e05d170f221d1c856a2f20aba405300f94f48d53",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/code_generator/native_type.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "04f4c0b5f4c594f2abd7ae594eb561e4ff4a4ad9",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/code_generator/objc_block.dart"
    },
    {
      "type": "modify",
      "old_id": "3f0a647e9bc1662cd6d12aeaee4c04f1716ea1f9",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/code_generator/objc_built_in_functions.dart",
      "new_id": "7babb2b6d1bf6676023e898b7d02aebadb86b8a7",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/code_generator/objc_built_in_functions.dart"
    },
    {
      "type": "modify",
      "old_id": "bddaec9f2663a6167d152d6401a9bff5fd049b4d",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/code_generator/objc_interface.dart",
      "new_id": "70fa7f2e639cc098205a16df8e69d3d055142931",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/code_generator/objc_interface.dart"
    },
    {
      "type": "modify",
      "old_id": "f430d0f81fa45a9f741d094dfdcdf37f27d2f2f0",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/code_generator/struct.dart",
      "new_id": "c65e04b9928ee663f41b4f403844b75d0c35a77a",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/code_generator/struct.dart"
    },
    {
      "type": "modify",
      "old_id": "0ad138ffef4bc99efba154846df5ceea41fac13e",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/code_generator/type.dart",
      "new_id": "8468eca3a183cfd055000ec52ac43b5dedcec403",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/code_generator/type.dart"
    },
    {
      "type": "modify",
      "old_id": "9211ae845412f16075d82dc0e688dc4aa148bcca",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/code_generator/typealias.dart",
      "new_id": "f42e86360138be2e68e64d29a2aaf72cab172139",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/code_generator/typealias.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "83f82234a9311780868e371bab5cfad6fdfff2e7",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/header_parser/sub_parsers/objc_block_parser.dart"
    },
    {
      "type": "modify",
      "old_id": "de2a599bf6eb70086c4e56f0ed6374e9c2d6b311",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/header_parser/type_extractor/extractor.dart",
      "new_id": "1a69715c40c8dbc8533b2e17bb9fce6a7d7eadd5",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/header_parser/type_extractor/extractor.dart"
    },
    {
      "type": "modify",
      "old_id": "068b78644b745525533ec4effe8436913d65f280",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/lib/src/header_parser/utils.dart",
      "new_id": "e8c60cfdd10b123ef589275df160eea14f81b197",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/lib/src/header_parser/utils.dart"
    },
    {
      "type": "modify",
      "old_id": "5fa6fc71b57465b3d7e045bad6b8f67a7d9870ba",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_objc_basic_types_bindings.dart",
      "new_id": "b677511666424e28068c88e17db3cc56417cc93f",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_objc_basic_types_bindings.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8ae5e4bfe97e32a93d06ea345482d9c2ccd63f10",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/test/native_objc_test/block_bindings.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "38316c2be9a106900e2e3a8efd70f7fb44776a4e",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/test/native_objc_test/block_config.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "767404eae41bc695d4350bfd8b9a51bc3d7719bc",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/test/native_objc_test/block_test.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "43d6a2c2b9eccb4f6902016070262ff42e315e6d",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/test/native_objc_test/block_test.m"
    },
    {
      "type": "modify",
      "old_id": "73e0ae32915cd17caf6890fca6fd84de6a1d789f",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/test/native_objc_test/native_objc_test_bindings.dart",
      "new_id": "29d1652a20841c2e5e415ea3e728c6053c206238",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/test/native_objc_test/native_objc_test_bindings.dart"
    },
    {
      "type": "modify",
      "old_id": "60ec7a640408d59562de132d820ee72744e61d56",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/test/native_objc_test/setup.dart",
      "new_id": "2681389aa3e33a7e49e60aafdeb3fb0907a493a7",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/test/native_objc_test/setup.dart"
    },
    {
      "type": "modify",
      "old_id": "ae27fc91dd5c1f58844f51b993e2a9be0c0940e7",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/test/native_objc_test/string_bindings.dart",
      "new_id": "4614d8e2fcecfb5632bed67f1d3b66f82172e101",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/test/native_objc_test/string_bindings.dart"
    },
    {
      "type": "modify",
      "old_id": "d0a6a4f6beb3d3695cc0e8ba023ac950bc90bf02",
      "old_mode": 33188,
      "old_path": "pkgs/ffigen/test/regen.dart",
      "new_id": "d77d3ca3e9edf2d254baaea61facba255bb9d654",
      "new_mode": 33188,
      "new_path": "pkgs/ffigen/test/regen.dart"
    }
  ]
}
