)]}'
{
  "commit": "ea7bee75156b66bbdc6fb5be57edf4c709e5ac7e",
  "tree": "d15f0392ac7c0e5ff50a2a53b2dc09d89f6255e2",
  "parents": [
    "b6aa11a02ac81f6ce5d81bed6bc0cf47d29f83c1"
  ],
  "author": {
    "name": "Nicholas Nethercote",
    "email": "n.nethercote@gmail.com",
    "time": "Thu Jul 16 13:42:52 2026 +1000"
  },
  "committer": {
    "name": "Nicholas Nethercote",
    "email": "n.nethercote@gmail.com",
    "time": "Mon Jul 20 15:10:16 2026 +1000"
  },
  "message": "Change `AttrItem::span` from a method to a field\n\nCurrently the method computes the span from the path\u0027s span and the\nargs\u0027 span. That used to be fine but then `unsafe(..)`/`safe(..)` were\nadded without it being changed. So it doesn\u0027t account for those optional\nkeywords and parentheses. The only way to handle those reliably is with\na dedicated span for the entire `AttrItem`.\n\nConsequences:\n- `NormalAttr` grows from 72 bytes to 80. (It\u0027s the only AST node that\n  contains an `AttrItem`.) Not ideal, but non-doc-comment attributes\n  aren\u0027t that common (not compared to expressions, for example). Also,\n  `NormalAttr` is always boxed and jemalloc will round up 72 byte\n  allocations to 80 bytes anyway.\n- In `lint-unsafe-code.rs` various spans now point to `unsafe(foo)`\n  rather than just `foo`. (It makes sense to include the `unsafe` keyword\n  in the complaint about unsafety.)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "867c77d129de0f8df1c62bac162e21f9e07c7974",
      "old_mode": 33188,
      "old_path": "compiler/rustc_ast/src/ast.rs",
      "new_id": "882464c5dcfea2ac751d7fc3f41effb338425f65",
      "new_mode": 33188,
      "new_path": "compiler/rustc_ast/src/ast.rs"
    },
    {
      "type": "modify",
      "old_id": "424280e3c9be66c3090d0d8704e3236b46a48fbd",
      "old_mode": 33188,
      "old_path": "compiler/rustc_ast/src/attr/mod.rs",
      "new_id": "2a3251c80d15ef2541c13db913edce8e8b770eb8",
      "new_mode": 33188,
      "new_path": "compiler/rustc_ast/src/attr/mod.rs"
    },
    {
      "type": "modify",
      "old_id": "fc7f7731199e9f88700e1b090e8e2943c1fb35eb",
      "old_mode": 33188,
      "old_path": "compiler/rustc_attr_parsing/src/attributes/cfg.rs",
      "new_id": "c0b0e6f03acc9ec497bdbbee2775f060520d7aa5",
      "new_mode": 33188,
      "new_path": "compiler/rustc_attr_parsing/src/attributes/cfg.rs"
    },
    {
      "type": "modify",
      "old_id": "54ba6c189b54496e7ef9da682a2f9d798e8001d1",
      "old_mode": 33188,
      "old_path": "compiler/rustc_attr_parsing/src/interface.rs",
      "new_id": "a15d5bfa175a76c556e04027ed092d33bb29aa99",
      "new_mode": 33188,
      "new_path": "compiler/rustc_attr_parsing/src/interface.rs"
    },
    {
      "type": "modify",
      "old_id": "29013d7c8b94dda93af8daf154b48aaa46fae000",
      "old_mode": 33188,
      "old_path": "compiler/rustc_builtin_macros/src/autodiff.rs",
      "new_id": "51ab44d8a03ef03faa8f3cb60a69ab449596ea72",
      "new_mode": 33188,
      "new_path": "compiler/rustc_builtin_macros/src/autodiff.rs"
    },
    {
      "type": "modify",
      "old_id": "fcba0b6be4ee0d6c9dc536a7aa3d4cd07231274d",
      "old_mode": 33188,
      "old_path": "compiler/rustc_builtin_macros/src/deriving/generic/mod.rs",
      "new_id": "78fb93cd1522c0f386973be17386c2b1d50af278",
      "new_mode": 33188,
      "new_path": "compiler/rustc_builtin_macros/src/deriving/generic/mod.rs"
    },
    {
      "type": "modify",
      "old_id": "6218674917098bd5e00511d272b46be0b90c5f97",
      "old_mode": 33188,
      "old_path": "compiler/rustc_builtin_macros/src/offload.rs",
      "new_id": "cdb3ba22ec6c8ff7c4f4eae9c04b487b2df61207",
      "new_mode": 33188,
      "new_path": "compiler/rustc_builtin_macros/src/offload.rs"
    },
    {
      "type": "modify",
      "old_id": "2cf7e6abe2a24e477dd3f2b49d3e7d5efd787201",
      "old_mode": 33188,
      "old_path": "compiler/rustc_expand/src/mbe/transcribe.rs",
      "new_id": "c5c1ed3937e3f6b9757a845fe99bfb3e76d7e293",
      "new_mode": 33188,
      "new_path": "compiler/rustc_expand/src/mbe/transcribe.rs"
    },
    {
      "type": "modify",
      "old_id": "c0e3116211d8aedbb04c73c18b470d5077bf0d62",
      "old_mode": 33188,
      "old_path": "compiler/rustc_parse/src/parser/attr.rs",
      "new_id": "5e3f15fbdf56bda1284c5022a42ff44a3f1b6596",
      "new_mode": 33188,
      "new_path": "compiler/rustc_parse/src/parser/attr.rs"
    },
    {
      "type": "modify",
      "old_id": "2f36aecc987da3f00a312256cb0c730420838379",
      "old_mode": 33188,
      "old_path": "tests/ui/lint/lint-unsafe-code.stderr",
      "new_id": "7580756d612eb04ff41eff66a5c55a91706bf054",
      "new_mode": 33188,
      "new_path": "tests/ui/lint/lint-unsafe-code.stderr"
    }
  ]
}
