)]}'
{
  "commit": "08391d2b4d4e75e5fc874a87f6d3bf8958a3a19c",
  "tree": "ab7672294f950d37b1f9ac1de216a3319a20dc73",
  "parents": [
    "c8e5259c0947f4c52bc5ff9bfcc51617bbbbe7c0"
  ],
  "author": {
    "name": "Quan Zhuo",
    "email": "quanzhuo@kylinos.cn",
    "time": "Tue Jan 20 22:41:55 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jan 20 15:41:55 2026 +0100"
  },
  "message": "[clangd] Do not skip Attr nodes in SelectionTree traversal (#174199)\n\nSelectionTree attempts to skip nodes that don\u0027t intersect with the\nselection for performance. However, Attr nodes (like AlignedAttr) often\nhave inaccurate source ranges (e.g. pointing to a single location).\n\nPreviously, canSafelySkipNode handled nodes that *have* attributes\nattached, but failed to account for the case where the node being\nvisited *is* the attribute itself. This caused `alignas(WALDO)` to be\nskipped, breaking features like go-to-definition on WALDO.\n\nThis commit adds a check to ensure explicit Attr nodes are visited,\nfixing the issue.\n\nFixes https://github.com/clangd/clangd/issues/2502",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "faa00d20497fad27c6b173e2833de865c32238c9",
      "old_mode": 33188,
      "old_path": "clang-tools-extra/clangd/Selection.cpp",
      "new_id": "01f1470f7fac319eae27cebc97043a7b82477b15",
      "new_mode": 33188,
      "new_path": "clang-tools-extra/clangd/Selection.cpp"
    },
    {
      "type": "modify",
      "old_id": "63c0403ab2e7023d4bcf082dac7300444623b242",
      "old_mode": 33188,
      "old_path": "clang-tools-extra/clangd/unittests/SelectionTests.cpp",
      "new_id": "5e897fae79df48ed8b3adb9c76a80a0926bd6839",
      "new_mode": 33188,
      "new_path": "clang-tools-extra/clangd/unittests/SelectionTests.cpp"
    }
  ]
}
