[clang-tools-extra] [clang-doc] simplify filename selection for namespaces (PR #162885)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 10 10:01:21 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-tools-extra
Author: Erick Velez (evelez7)
<details>
<summary>Changes</summary>
determineFileName was confusing regarding namespaces. The comment and
conditional were both misleading. Now, we just check against a static
global namespace USR to make a file use "index", or just use the name.
---
Full diff: https://github.com/llvm/llvm-project/pull/162885.diff
2 Files Affected:
- (modified) clang-tools-extra/clang-doc/JSONGenerator.cpp (+3-4)
- (modified) clang-tools-extra/clang-doc/Representation.h (+3)
``````````diff
diff --git a/clang-tools-extra/clang-doc/JSONGenerator.cpp b/clang-tools-extra/clang-doc/JSONGenerator.cpp
index 26794a5e34d02..1b08b1791b6eb 100644
--- a/clang-tools-extra/clang-doc/JSONGenerator.cpp
+++ b/clang-tools-extra/clang-doc/JSONGenerator.cpp
@@ -582,11 +582,10 @@ static SmallString<16> determineFileName(Info *I, SmallString<128> &Path) {
if (I->IT == InfoType::IT_record) {
auto *RecordSymbolInfo = static_cast<SymbolInfo *>(I);
FileName = RecordSymbolInfo->MangledName;
- } else if (I->IT == InfoType::IT_namespace && I->Name != "")
- // Serialize the global namespace as index.json
- FileName = I->Name;
+ } else if (I->USR == GlobalNamespace)
+ FileName = "index";
else
- FileName = I->getFileBaseName();
+ FileName = I->Name;
sys::path::append(Path, FileName + ".json");
return FileName;
}
diff --git a/clang-tools-extra/clang-doc/Representation.h b/clang-tools-extra/clang-doc/Representation.h
index 2a75f89696b7d..4dd7ce86b9304 100644
--- a/clang-tools-extra/clang-doc/Representation.h
+++ b/clang-tools-extra/clang-doc/Representation.h
@@ -30,6 +30,9 @@ namespace doc {
// SHA1'd hash of a USR.
using SymbolID = std::array<uint8_t, 20>;
+static const SymbolID GlobalNamespace = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
struct BaseRecordInfo;
struct EnumInfo;
struct FunctionInfo;
``````````
</details>
https://github.com/llvm/llvm-project/pull/162885
More information about the cfe-commits
mailing list