)]}'
{
  "commit": "c033dd24afd5e8cc9e61599caa063f9f22948261",
  "tree": "0a6422f15510005e5d564930d42941a548b90b86",
  "parents": [
    "609f2f95b1b5e676b64427a75e7dfb84b45fff7c"
  ],
  "author": {
    "name": "MarkZ",
    "email": "markzipan@google.com",
    "time": "Wed Jan 08 13:40:33 2025 -0800"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Jan 08 13:40:33 2025 -0800"
  },
  "message": "[ddc] Updating tearoffs to be evaluated on access.\n\nTearoffs are now represented as a closure that resolves an underlying bound context and property on access. `_boundMethod` and RTI getters must also be evaluated late.\n\nAdditionally, we now both canonicalize static methods and tag them with their types at class-declaration time (though lazily) - so that late resolved closures have access to their types.\n\nSome tests have been updated to expect simpler errors. DDC traditionally emits slightly different errors that might aid in debugging.\n\nChange-Id: I1f762b8df45e0766d16dbc8688073768c8bfd233\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/401321\nReviewed-by: Nicholas Shahan \u003cnshahan@google.com\u003e\nCommit-Queue: Mark Zhou \u003cmarkzipan@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e7d3106156d62e544a7126b744a7b6d5fd3055dd",
      "old_mode": 33188,
      "old_path": "pkg/dev_compiler/lib/src/kernel/compiler_new.dart",
      "new_id": "8b7838a8fc527967e790d61c22561dba9abc75a6",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/lib/src/kernel/compiler_new.dart"
    },
    {
      "type": "modify",
      "old_id": "7a9a21682939e4815836e37d571e349c1a41cb32",
      "old_mode": 33188,
      "old_path": "pkg/dev_compiler/lib/src/kernel/expression_compiler.dart",
      "new_id": "c368ebdf0a92f9fefd9657df4c224e42ee542617",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/lib/src/kernel/expression_compiler.dart"
    },
    {
      "type": "modify",
      "old_id": "a05d6d5a5636dcdb0de4c145038f7ba6d6a585d2",
      "old_mode": 33188,
      "old_path": "pkg/dev_compiler/test/expression_compiler/runtime_debugger_api_test.dart",
      "new_id": "b69ea9a891d65b3575c597c4646e6a5634554cd1",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/test/expression_compiler/runtime_debugger_api_test.dart"
    },
    {
      "type": "modify",
      "old_id": "9129258080853dfd2c51cbe5bb928fd63c0f382f",
      "old_mode": 33188,
      "old_path": "sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/debugger.dart",
      "new_id": "70a87063997c003af6a6f3b1e07eb15d95ae6392",
      "new_mode": 33188,
      "new_path": "sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/debugger.dart"
    },
    {
      "type": "modify",
      "old_id": "ceb1bcf51b17996e35d2d2f80703f55d3b6762af",
      "old_mode": 33188,
      "old_path": "sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart",
      "new_id": "cf552819126e72ed72959d3f3cab3f7b54cd1eef",
      "new_mode": 33188,
      "new_path": "sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart"
    },
    {
      "type": "modify",
      "old_id": "e6a7491045ee9cc0491b4752319b285eb750040a",
      "old_mode": 33188,
      "old_path": "sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/rtti.dart",
      "new_id": "1e93794ccb61853f80d7199c4abf546b7ad15d1d",
      "new_mode": 33188,
      "new_path": "sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/rtti.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c41db6ed483b1ec87cfe74c5891b13c2e823e29d",
      "new_mode": 33188,
      "new_path": "tests/dartdevc/debugger/debugger_ddc_test_golden.txt"
    },
    {
      "type": "modify",
      "old_id": "5f6f47eaf6c9372f92ebeb34f1f5329af05f6515",
      "old_mode": 33188,
      "old_path": "tests/dartdevc/debugger/debugger_test.dart",
      "new_id": "7a945a61edcdcd4f4c6fc77fb2aab88e1a23dd16",
      "new_mode": 33188,
      "new_path": "tests/dartdevc/debugger/debugger_test.dart"
    },
    {
      "type": "modify",
      "old_id": "90f81357489253fb6d6ba4e03175d8194e7aaddd",
      "old_mode": 33188,
      "old_path": "tests/dartdevc/no_such_method_errors_test.dart",
      "new_id": "d62cf704649918b756169a91be6f7aff6ea5bd5d",
      "new_mode": 33188,
      "new_path": "tests/dartdevc/no_such_method_errors_test.dart"
    },
    {
      "type": "modify",
      "old_id": "6299256b1b40abaffec22c7e1a97ad7005b7b18a",
      "old_mode": 33188,
      "old_path": "tests/hot_reload/tear_off_add_arguments/main.0.dart",
      "new_id": "113ae4cc13ce3e7ed0aef93cd9d51f1055b8497e",
      "new_mode": 33188,
      "new_path": "tests/hot_reload/tear_off_add_arguments/main.0.dart"
    },
    {
      "type": "modify",
      "old_id": "2029fc8890b5c520a6213e8558488692e7659f6e",
      "old_mode": 33188,
      "old_path": "tests/hot_reload/tear_off_add_arguments/main.1.dart",
      "new_id": "d30e47e7a4f4608646eed9bba53584e6c77d0ce2",
      "new_mode": 33188,
      "new_path": "tests/hot_reload/tear_off_add_arguments/main.1.dart"
    },
    {
      "type": "modify",
      "old_id": "8c81487dcf03006f825c10f8881ccb363931f271",
      "old_mode": 33188,
      "old_path": "tests/hot_reload/tear_off_add_arguments2/main.0.dart",
      "new_id": "3852d01f4a47c2bd41479ce1d31bc5aa1ad46cb7",
      "new_mode": 33188,
      "new_path": "tests/hot_reload/tear_off_add_arguments2/main.0.dart"
    },
    {
      "type": "modify",
      "old_id": "3e38aff820e158050e3e486211c0cad1d1ead46f",
      "old_mode": 33188,
      "old_path": "tests/hot_reload/tear_off_add_arguments2/main.1.dart",
      "new_id": "be7ebc2a213f0e976c18187f4b86b6d04a5398c5",
      "new_mode": 33188,
      "new_path": "tests/hot_reload/tear_off_add_arguments2/main.1.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5a983a91ae970940f761638e7cfd51043a2a5085",
      "new_mode": 33188,
      "new_path": "tests/hot_reload/tear_off_add_arguments3/main.0.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a96dee62abfb3e59e8b52465159eb79f054ab269",
      "new_mode": 33188,
      "new_path": "tests/hot_reload/tear_off_add_arguments3/main.1.dart"
    },
    {
      "type": "modify",
      "old_id": "034947b7469726f361d34fadbcbc8fae1fb6fdfd",
      "old_mode": 33188,
      "old_path": "tests/hot_reload/tear_off_instance_equality/main.0.dart",
      "new_id": "a6e26199e42d335e553662ef33903ba510c77370",
      "new_mode": 33188,
      "new_path": "tests/hot_reload/tear_off_instance_equality/main.0.dart"
    },
    {
      "type": "modify",
      "old_id": "21f260d718b58ed424c08d4ac05ff001fcd9178b",
      "old_mode": 33188,
      "old_path": "tests/hot_reload/tear_off_instance_equality/main.1.dart",
      "new_id": "e6002995f4a8342b86ff71711e2672df482a2329",
      "new_mode": 33188,
      "new_path": "tests/hot_reload/tear_off_instance_equality/main.1.dart"
    }
  ]
}
