)]}'
{
  "commit": "351026d7709e56e76001f66cb5544cd177b87f07",
  "tree": "1c809b3a54b5c41c2b514e061c25f15ba678f437",
  "parents": [
    "402500cffedfe7c9b881ce5691227fd3180b5a72"
  ],
  "author": {
    "name": "Nicholas Nethercote",
    "email": "n.nethercote@gmail.com",
    "time": "Tue Jul 07 14:30:42 2026 +1000"
  },
  "committer": {
    "name": "Nicholas Nethercote",
    "email": "n.nethercote@gmail.com",
    "time": "Fri Jul 10 17:15:45 2026 +1000"
  },
  "message": "Remove `AttrItem::tokens`\n\nThe same basic idea from the previous commit applies: the tokens are\nonly sometimes needed and we can store them next to the `AttrItem`\n(using `WithTokens`) instead of inside the `AttrItem`. The change is a\nbit more complex because more than just `parse_nonterminal` is involved\n(e.g. `parse_attr_item`, `parse_cfg_attr`, `expand_cfg_attr_item`).\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3156cf058ae2013285768427abafdcff1fae2274",
      "old_mode": 33188,
      "old_path": "compiler/rustc_ast/src/ast.rs",
      "new_id": "2c095e367a258edaec788e267406bb4823abaa1c",
      "new_mode": 33188,
      "new_path": "compiler/rustc_ast/src/ast.rs"
    },
    {
      "type": "modify",
      "old_id": "b2ee2fae1c95649609e51ee16740051346fe6186",
      "old_mode": 33188,
      "old_path": "compiler/rustc_ast/src/ast_traits.rs",
      "new_id": "9ee8ece414b7cf9f8d4a6c8bafcb6a808716b7f9",
      "new_mode": 33188,
      "new_path": "compiler/rustc_ast/src/ast_traits.rs"
    },
    {
      "type": "modify",
      "old_id": "c88db6d4f1bc75e339a1ce477809d398d410eb6c",
      "old_mode": 33188,
      "old_path": "compiler/rustc_ast/src/attr/mod.rs",
      "new_id": "2e54e1a7c320c68c5bfa54d44bdc35db6965f335",
      "new_mode": 33188,
      "new_path": "compiler/rustc_ast/src/attr/mod.rs"
    },
    {
      "type": "modify",
      "old_id": "be4c0e151f49ced217261a00d5b2e8a2257f9860",
      "old_mode": 33188,
      "old_path": "compiler/rustc_ast/src/tokenstream.rs",
      "new_id": "b37d5fd9dc9c1fd5c96c76541411d3817abe75d7",
      "new_mode": 33188,
      "new_path": "compiler/rustc_ast/src/tokenstream.rs"
    },
    {
      "type": "modify",
      "old_id": "3e754c33cad6a5495a92e6c87a090684505f2dd0",
      "old_mode": 33188,
      "old_path": "compiler/rustc_attr_parsing/src/attributes/cfg.rs",
      "new_id": "6ec677d0d1f1a615affbf686677cb1ec86f7f141",
      "new_mode": 33188,
      "new_path": "compiler/rustc_attr_parsing/src/attributes/cfg.rs"
    },
    {
      "type": "modify",
      "old_id": "4290fbc6b8aa04d4bb4d3624c101b4058a549ae8",
      "old_mode": 33188,
      "old_path": "compiler/rustc_builtin_macros/src/autodiff.rs",
      "new_id": "1b9305a3d58512b9aff4b5f423b6c1a502b4d0a3",
      "new_mode": 33188,
      "new_path": "compiler/rustc_builtin_macros/src/autodiff.rs"
    },
    {
      "type": "modify",
      "old_id": "54a9185955c4c4dfc7ea6366ad8644bd73cc7c74",
      "old_mode": 33188,
      "old_path": "compiler/rustc_builtin_macros/src/deriving/generic/mod.rs",
      "new_id": "f9ec93a1115dd700f7665bcf56c2d6f6edf5a7bb",
      "new_mode": 33188,
      "new_path": "compiler/rustc_builtin_macros/src/deriving/generic/mod.rs"
    },
    {
      "type": "modify",
      "old_id": "d20c07f8619dcea2566ce2b4ca58d51ca1cae5c6",
      "old_mode": 33188,
      "old_path": "compiler/rustc_builtin_macros/src/offload.rs",
      "new_id": "598c0123094899bc75f58658144875304860b2b0",
      "new_mode": 33188,
      "new_path": "compiler/rustc_builtin_macros/src/offload.rs"
    },
    {
      "type": "modify",
      "old_id": "1289f8ed63af69c8f2763bee785ba74af09cff89",
      "old_mode": 33188,
      "old_path": "compiler/rustc_expand/src/config.rs",
      "new_id": "b3582494f226e15814c096bc8d3d40e0900f388a",
      "new_mode": 33188,
      "new_path": "compiler/rustc_expand/src/config.rs"
    },
    {
      "type": "modify",
      "old_id": "9a110340a06a98237c90264d02ac025c7ae32563",
      "old_mode": 33188,
      "old_path": "compiler/rustc_expand/src/mbe/transcribe.rs",
      "new_id": "2cf7e6abe2a24e477dd3f2b49d3e7d5efd787201",
      "new_mode": 33188,
      "new_path": "compiler/rustc_expand/src/mbe/transcribe.rs"
    },
    {
      "type": "modify",
      "old_id": "78b42ee11e2dc247c3b0d35e97fd3bad2ac651c9",
      "old_mode": 33188,
      "old_path": "compiler/rustc_parse/src/parser/attr.rs",
      "new_id": "4d92b8273d5c90eb6492a97ae3ec88a89b90ac14",
      "new_mode": 33188,
      "new_path": "compiler/rustc_parse/src/parser/attr.rs"
    },
    {
      "type": "modify",
      "old_id": "4071276b8c48fccec656a84ea2d11080a2f93e75",
      "old_mode": 33188,
      "old_path": "compiler/rustc_parse/src/parser/mod.rs",
      "new_id": "8a8d1bd2c2e3fa4d100d176d7ef1560f7fb70a03",
      "new_mode": 33188,
      "new_path": "compiler/rustc_parse/src/parser/mod.rs"
    },
    {
      "type": "modify",
      "old_id": "321b690e1a7dd639265f13ed6817bc251c22274f",
      "old_mode": 33188,
      "old_path": "compiler/rustc_parse/src/parser/nonterminal.rs",
      "new_id": "19b4dd1d0af7a1c33233b46f8746f2b9ff3cd409",
      "new_mode": 33188,
      "new_path": "compiler/rustc_parse/src/parser/nonterminal.rs"
    },
    {
      "type": "modify",
      "old_id": "69727f584d78f72607d9e0e8336ec372c553e84e",
      "old_mode": 33188,
      "old_path": "tests/ui-fulldeps/pprust-expr-roundtrip.rs",
      "new_id": "ab12eb48520403c3a8a102e37a918808014b5984",
      "new_mode": 33188,
      "new_path": "tests/ui-fulldeps/pprust-expr-roundtrip.rs"
    }
  ]
}
