)]}'
{
  "commit": "39d9e82229787cbbdcb8e2811421307822f2d61a",
  "tree": "69736852c3d2c236d3f704a7e383e08fa95133c0",
  "parents": [
    "c9c204c2b479a4ba7687485feac1adef29b63b43"
  ],
  "author": {
    "name": "Stephen Adams",
    "email": "sra@google.com",
    "time": "Fri Sep 11 20:08:42 2026 -0700"
  },
  "committer": {
    "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Sep 11 20:08:42 2026 -0700"
  },
  "message": "[dart2js] Use exactOrEmpty in RecordTypeMask.toFlatTypeMask\n\nWhen a record shape is uninstantiated in the closed world,\nRecordTypeMask.toFlatTypeMask falls back to the record arity class\n(e.g. _Record3). If no record literals are instantiated anywhere in the\nprogram, the arity class itself is also uninstantiated and has no strict\nsubclasses.\n\nUsing TypeMask.exactOrEmpty / TypeMask.nonNullExactOrEmpty ensures that\nan uninstantiated record arity class normalizes to an empty mask instead\nof triggering an assertion failure in TypeMask.assertIsNormalized.\n\nAlso preserve special values (null, lateSentinel) in\nRecordTypeMask.createRecordWithPowerset when any field type is empty.\n\nFixes https://github.com/dart-lang/sdk/issues/64100\n\nTAG\u003dagy\nCONV\u003dbca542cb-694d-48a1-baac-322aa1508f0c\n\nChange-Id: Icd22328a35481d2af7e179a5e98c59d5163d05a6\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/549040\nReviewed-by: Nate Biggs \u003cnatebiggs@google.com\u003e\nCommit-Queue: Stephen Adams \u003csra@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a20eaf799ffb48377d76fdbcc41a278bbaef96c0",
      "old_mode": 33188,
      "old_path": "pkg/compiler/lib/src/inferrer/typemasks/record_type_mask.dart",
      "new_id": "6c115e4e217466f4ff426910d5b30d2976892e7f",
      "new_mode": 33188,
      "new_path": "pkg/compiler/lib/src/inferrer/typemasks/record_type_mask.dart"
    },
    {
      "type": "modify",
      "old_id": "c5871645303f899d5dcbb6e5cdd50c78cdc5afb1",
      "old_mode": 33188,
      "old_path": "pkg/compiler/test/inference/record_type_test.dart",
      "new_id": "e259ac13e0c95b71c52a07484552f0b0f4e4fe07",
      "new_mode": 33188,
      "new_path": "pkg/compiler/test/inference/record_type_test.dart"
    }
  ]
}
