)]}'
{
  "commit": "ae2e4768f9bdcbb2c33906708a0ab6e2a7059734",
  "tree": "3dd0f5f6366e8bf025492d25da25711a82289e8b",
  "parents": [
    "be1f7941b851427be01abac112057a50f8d333d2"
  ],
  "author": {
    "name": "Matheus Izvekov",
    "email": "mizvekov@gmail.com",
    "time": "Tue Apr 14 10:15:45 2026 -0300"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Apr 14 10:15:45 2026 -0300"
  },
  "message": "[clang] NFC: Refactor UnsignedOrNone into OptionalUnsigned\u003cT\u003e with enum support (#191828)\n\nThis kind optional is simpler to use when it needs to be represented in\na bitfield, because it has an `unsigned` integer representation which\navoids overflows. This applies to enums as well.\n\nThis also adds a single use of this new functionality, migrating users\nof `std::optional\u003cNullabilityKind\u003e`\nThis optional used to be represented as two members in a bitfield, and\nthis simplifies things down to one.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0f370953fca59a4393f824e2891fef65b9ec0284",
      "old_mode": 33188,
      "old_path": "clang/include/clang/APINotes/Types.h",
      "new_id": "4a87f36a72cd35a155ea98bdc0b4145c7952fa6a",
      "new_mode": 33188,
      "new_path": "clang/include/clang/APINotes/Types.h"
    },
    {
      "type": "modify",
      "old_id": "f362f24ebc72afb99ce2d6fae7c169d90f3b1fad",
      "old_mode": 33188,
      "old_path": "clang/include/clang/AST/ASTConcept.h",
      "new_id": "4319df35ab7e568a6014345ee962a5bf0bd498b3",
      "new_mode": 33188,
      "new_path": "clang/include/clang/AST/ASTConcept.h"
    },
    {
      "type": "modify",
      "old_id": "076d9ba9355837f05cb9c1c47fb1183760e009be",
      "old_mode": 33188,
      "old_path": "clang/include/clang/AST/Decl.h",
      "new_id": "e45a6dae56d9bea18b5b902797c53a861f84c9db",
      "new_mode": 33188,
      "new_path": "clang/include/clang/AST/Decl.h"
    },
    {
      "type": "modify",
      "old_id": "b6999a1b4e9b98b2b73d6e864a69aef613f9b7b3",
      "old_mode": 33188,
      "old_path": "clang/include/clang/AST/TemplateName.h",
      "new_id": "47cfec8f61e6ff43308700696006e0c607a881cf",
      "new_mode": 33188,
      "new_path": "clang/include/clang/AST/TemplateName.h"
    },
    {
      "type": "modify",
      "old_id": "8802b15d9903482a1db6cd1f2a4afe3b2f399464",
      "old_mode": 33188,
      "old_path": "clang/include/clang/AST/TypeBase.h",
      "new_id": "a64bbb99b13d21683184ea6cfbe9948df6aaeaf8",
      "new_mode": 33188,
      "new_path": "clang/include/clang/AST/TypeBase.h"
    },
    {
      "type": "modify",
      "old_id": "aa05f9d60dadf8305f39197bbc5548ab471f8e3e",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Basic/Diagnostic.h",
      "new_id": "826b747f2c751d01d1eb3d68e59fbfb532984a52",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Basic/Diagnostic.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ded84857310dc28e9619ab35c2a03bca379d7003",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Basic/OptionalUnsigned.h"
    },
    {
      "type": "modify",
      "old_id": "118c3b75aed951b79e3a1daa3e4ee751a8d3a95e",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Basic/Specifiers.h",
      "new_id": "8da6fd4cf454aeb3c65e2994a485b3e3832f8968",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Basic/Specifiers.h"
    },
    {
      "type": "delete",
      "old_id": "659fd8c6487d24ff8b5eb38a7a58632b8ce0a0a5",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Basic/UnsignedOrNone.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "78b3b5a237e38e7c97e60d61534af1fc78698913",
      "old_mode": 33188,
      "old_path": "clang/lib/APINotes/APINotesTypes.cpp",
      "new_id": "8a368bc4686854eb3fc6bf57555fc3c5806922c6",
      "new_mode": 33188,
      "new_path": "clang/lib/APINotes/APINotesTypes.cpp"
    },
    {
      "type": "modify",
      "old_id": "78983fd38410d079eec193dcface4d932dc2b131",
      "old_mode": 33188,
      "old_path": "clang/lib/AST/Type.cpp",
      "new_id": "1cc318697d936ad67b3cd2cea1e59c53753df9d0",
      "new_mode": 33188,
      "new_path": "clang/lib/AST/Type.cpp"
    },
    {
      "type": "modify",
      "old_id": "ef45d5842c795e5b05a3dbdfdda6bb6729e16a75",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/Sema.cpp",
      "new_id": "8a68f2f19bf3de6d541d2e6d35c25d2d3a00f23c",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/Sema.cpp"
    },
    {
      "type": "modify",
      "old_id": "9fd8c6a0a54514fd48eb850e52a714f4f968f763",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaExpr.cpp",
      "new_id": "cf235095d489d27740124ba1235cc9a7a7c7637a",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaExpr.cpp"
    },
    {
      "type": "modify",
      "old_id": "36be822c817d2f0206f738528826ebf3e4b40e21",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaExprObjC.cpp",
      "new_id": "bc191359db839ac793b19c275eaa0b1aa7ec1efe",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaExprObjC.cpp"
    },
    {
      "type": "modify",
      "old_id": "846474fe94adfd9101400c233554b421c31e377e",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaType.cpp",
      "new_id": "3dc8ceb70f3cdacb8ca7d25fe97202baa0d0fac2",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaType.cpp"
    }
  ]
}
