Author: Paul Kirth
Date: 2026-06-07T01:58:34Z
New Revision: a0344e9f990d503274662b9cbf7f15b7ad92a3e9

URL: 
https://github.com/llvm/llvm-project/commit/a0344e9f990d503274662b9cbf7f15b7ad92a3e9
DIFF: 
https://github.com/llvm/llvm-project/commit/a0344e9f990d503274662b9cbf7f15b7ad92a3e9.diff

LOG: [clang-doc] Move Generator classes into the anonymous namespace (#202058)

Clang-Tidy suggest moving these classes into the anonymous namespace,
to enforce internal linkage.

Added: 
    

Modified: 
    clang-tools-extra/clang-doc/HTMLGenerator.cpp
    clang-tools-extra/clang-doc/JSONGenerator.cpp
    clang-tools-extra/clang-doc/MDGenerator.cpp
    clang-tools-extra/clang-doc/MDMustacheGenerator.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clang-doc/HTMLGenerator.cpp 
b/clang-tools-extra/clang-doc/HTMLGenerator.cpp
index 438c2c6986cba..1b2ef57071e2c 100644
--- a/clang-tools-extra/clang-doc/HTMLGenerator.cpp
+++ b/clang-tools-extra/clang-doc/HTMLGenerator.cpp
@@ -21,19 +21,17 @@
 using namespace llvm;
 using namespace llvm::json;
 using namespace llvm::mustache;
+using namespace clang::doc;
 
-namespace clang {
-namespace doc {
+namespace {
 
 static std::unique_ptr<MustacheTemplateFile> NamespaceTemplate = nullptr;
-
 static std::unique_ptr<MustacheTemplateFile> RecordTemplate = nullptr;
-
 static std::unique_ptr<MustacheTemplateFile> IndexTemplate = nullptr;
 
 class HTMLGenerator : public MustacheGenerator {
 public:
-  static const char *Format;
+  static StringRef Format;
   Error createResources(ClangDocContext &CDCtx) override;
   Error generateDocForInfo(Info *I, raw_ostream &OS,
                            const ClangDocContext &CDCtx) override;
@@ -45,11 +43,13 @@ class HTMLGenerator : public MustacheGenerator {
   Error setupTemplateResources(const ClangDocContext &CDCtx, json::Value &V,
                                SmallString<128> RelativeRootPath);
   llvm::Error generateDocumentation(StringRef RootDir,
-                                    llvm::StringMap<doc::Info *> Infos,
+                                    llvm::StringMap<Info *> Infos,
                                     const ClangDocContext &CDCtx,
                                     std::string DirName) override;
 };
 
+} // namespace
+
 Error HTMLGenerator::setupTemplateFiles(const ClangDocContext &CDCtx) {
   // Template files need to use the native path when they're opened,
   // but have to be used in POSIX style when used in HTML.
@@ -184,21 +184,20 @@ Error HTMLGenerator::createResources(ClangDocContext 
&CDCtx) {
 }
 
 Error HTMLGenerator::generateDocumentation(StringRef RootDir,
-                                           llvm::StringMap<doc::Info *> Infos,
+                                           llvm::StringMap<Info *> Infos,
                                            const ClangDocContext &CDCtx,
                                            std::string DirName) {
   return MustacheGenerator::generateDocumentation(RootDir, std::move(Infos),
                                                   CDCtx, "html");
 }
 
-const char *HTMLGenerator::Format = "html";
+StringRef HTMLGenerator::Format = "html";
 
 static GeneratorRegistry::Add<HTMLGenerator>
     HTML(HTMLGenerator::Format, "Generator for mustache HTML output.");
 
+namespace clang::doc {
 // This anchor is used to force the linker to link in the generated object
 // file and thus register the generator.
 volatile int HTMLGeneratorAnchorSource = 0;
-
-} // namespace doc
-} // namespace clang
+} // namespace clang::doc

diff  --git a/clang-tools-extra/clang-doc/JSONGenerator.cpp 
b/clang-tools-extra/clang-doc/JSONGenerator.cpp
index fc629dc8449e0..1a15618b14bf4 100644
--- a/clang-tools-extra/clang-doc/JSONGenerator.cpp
+++ b/clang-tools-extra/clang-doc/JSONGenerator.cpp
@@ -21,9 +21,7 @@
 
 using namespace llvm;
 using namespace llvm::json;
-
-namespace clang {
-namespace doc {
+using namespace clang::doc;
 
 template <typename Container, typename SerializationFunc>
 static void serializeArray(
@@ -35,6 +33,7 @@ static void serializeArray(
 // sophisticated heuristic than number of parameters.
 constexpr static unsigned getMaxParamWrapLimit() { return 2; }
 
+namespace {
 typedef std::function<void(const Reference &, Object &)> ReferenceFunc;
 
 class JSONGenerator : public Generator {
@@ -81,15 +80,14 @@ class JSONGenerator : public Generator {
   }
 
   llvm::DenseMap<const Info *, SmallVector<Context, 4>> ContextsMap;
-  llvm::StringMap<doc::Info *> *Infos = nullptr;
+  llvm::StringMap<Info *> *Infos = nullptr;
   const ClangDocContext *CDCtx;
   bool Markdown;
 
 public:
   static const char *Format;
 
-  Error generateDocumentation(StringRef RootDir,
-                              llvm::StringMap<doc::Info *> Infos,
+  Error generateDocumentation(StringRef RootDir, llvm::StringMap<Info *> Infos,
                               const ClangDocContext &CDCtx,
                               std::string DirName) override;
   Error createResources(ClangDocContext &CDCtx) override;
@@ -99,6 +97,8 @@ class JSONGenerator : public Generator {
                            const ClangDocContext &CDCtx) override;
 };
 
+} // namespace
+
 const char *JSONGenerator::Format = "json";
 
 static void insertNonEmpty(StringRef Key, StringRef Value, Object &Obj) {
@@ -589,11 +589,11 @@ void JSONGenerator::serializeInfo(const TemplateInfo 
&Template, Object &Obj) {
 
   if (!Template.Params.empty()) {
     bool VerticalDisplay = Template.Params.size() > getMaxParamWrapLimit();
-    serializeArray(Template.Params, TemplateObj, "Parameters",
-                   SerializeTemplateParam, "End",
-                   [VerticalDisplay](Object &JsonObj) {
-                     JsonObj["VerticalDisplay"] = VerticalDisplay;
-                   });
+    ::serializeArray(Template.Params, TemplateObj, "Parameters",
+                     SerializeTemplateParam, "End",
+                     [VerticalDisplay](Object &JsonObj) {
+                       JsonObj["VerticalDisplay"] = VerticalDisplay;
+                     });
   }
 
   if (!Template.Constraints.empty())
@@ -738,10 +738,10 @@ void JSONGenerator::serializeInfo(const RecordInfo &I, 
json::Object &Obj) {
       json::Value FunctionVal = Object();
       auto &FunctionObj = *FunctionVal.getAsObject();
       serializeInfo(Function, FunctionObj);
-      AccessSpecifier Access = Function->Access;
-      if (Access == AccessSpecifier::AS_public)
+      clang::AccessSpecifier Access = Function->Access;
+      if (Access == clang::AccessSpecifier::AS_public)
         PubFunctionsArrayRef.push_back(FunctionVal);
-      else if (Access == AccessSpecifier::AS_protected)
+      else if (Access == clang::AccessSpecifier::AS_protected)
         ProtFunctionsArrayRef.push_back(FunctionVal);
     }
 
@@ -767,11 +767,11 @@ void JSONGenerator::serializeInfo(const RecordInfo &I, 
json::Object &Obj) {
       MemberObj["Type"] = Member.Type.Name;
       MemberObj["IsStatic"] = Member.IsStatic;
 
-      if (Member.Access == AccessSpecifier::AS_public)
+      if (Member.Access == clang::AccessSpecifier::AS_public)
         PubMembersArrayRef.push_back(MemberVal);
-      else if (Member.Access == AccessSpecifier::AS_protected)
+      else if (Member.Access == clang::AccessSpecifier::AS_protected)
         ProtMembersArrayRef.push_back(MemberVal);
-      else if (Member.Access == AccessSpecifier::AS_private)
+      else if (Member.Access == clang::AccessSpecifier::AS_private)
         PrivateMembersArrayRef.push_back(MemberVal);
     }
 
@@ -945,7 +945,7 @@ Error JSONGenerator::serializeIndex(StringRef RootDir) {
     json::Value IdxVal = Object();
     auto &IdxObj = *IdxVal.getAsObject();
     if (Markdown)
-      TypeStr.at(0) = toUppercase(TypeStr.at(0));
+      TypeStr.at(0) = clang::toUppercase(TypeStr.at(0));
     IdxObj["Type"] = TypeStr;
     serializeReference(*Idx, IdxObj);
     IndexArrayRef.push_back(IdxVal);
@@ -994,13 +994,13 @@ void JSONGenerator::serializeContexts(Info *I, 
StringMap<Info *> &Infos) {
 }
 
 Error JSONGenerator::generateDocumentation(StringRef RootDir,
-                                           llvm::StringMap<doc::Info *> Infos,
+                                           llvm::StringMap<Info *> Infos,
                                            const ClangDocContext &CDCtx,
                                            std::string DirName) {
   this->CDCtx = &CDCtx;
   this->Infos = &Infos;
   StringSet<> CreatedDirs;
-  StringMap<std::vector<doc::Info *>> FileToInfos;
+  StringMap<std::vector<Info *>> FileToInfos;
   for (const auto &Group : Infos) {
     Info *Info = Group.getValue();
 
@@ -1067,10 +1067,8 @@ Error JSONGenerator::generateDocForInfo(Info *I, 
raw_ostream &OS,
   case InfoType::IT_default:
     return createStringError(inconvertibleErrorCode(), "unexpected info type");
   }
-  if (CDCtx.Pretty)
-    OS << llvm::formatv("{0:2}", llvm::json::Value(std::move(Obj)));
-  else
-    OS << llvm::formatv("{0}", llvm::json::Value(std::move(Obj)));
+  StringRef Fmt = CDCtx.Pretty ? "{0:2}" : "{0}";
+  OS << llvm::formatv(Fmt.data(), llvm::json::Value(std::move(Obj)));
   return Error::success();
 }
 
@@ -1080,6 +1078,6 @@ Error JSONGenerator::createResources(ClangDocContext 
&CDCtx) {
 
 static GeneratorRegistry::Add<JSONGenerator> JSON(JSONGenerator::Format,
                                                   "Generator for JSON 
output.");
+namespace clang::doc {
 volatile int JSONGeneratorAnchorSource = 0;
-} // namespace doc
-} // namespace clang
+} // namespace clang::doc

diff  --git a/clang-tools-extra/clang-doc/MDGenerator.cpp 
b/clang-tools-extra/clang-doc/MDGenerator.cpp
index 4d412cde557ed..2129880c890f4 100644
--- a/clang-tools-extra/clang-doc/MDGenerator.cpp
+++ b/clang-tools-extra/clang-doc/MDGenerator.cpp
@@ -17,9 +17,7 @@
 #include <string>
 
 using namespace llvm;
-
-namespace clang {
-namespace doc {
+using namespace clang::doc;
 
 // Markdown generation
 
@@ -495,32 +493,35 @@ static llvm::Error genIndex(ClangDocContext &CDCtx) {
   return llvm::Error::success();
 }
 
+namespace {
 /// Generator for Markdown documentation.
 class MDGenerator : public Generator {
 public:
-  static const char *Format;
+  static StringRef Format;
 
   llvm::Error generateDocumentation(StringRef RootDir,
-                                    llvm::StringMap<doc::Info *> Infos,
+                                    llvm::StringMap<Info *> Infos,
                                     const ClangDocContext &CDCtx,
                                     std::string DirName) override;
   llvm::Error createResources(ClangDocContext &CDCtx) override;
   llvm::Error generateDocForInfo(Info *I, llvm::raw_ostream &OS,
                                  const ClangDocContext &CDCtx) override;
 };
+} // namespace
 
-const char *MDGenerator::Format = "md";
+StringRef MDGenerator::Format = "md";
 
-llvm::Error MDGenerator::generateDocumentation(
-    StringRef RootDir, llvm::StringMap<doc::Info *> Infos,
-    const ClangDocContext &CDCtx, std::string DirName) {
+llvm::Error MDGenerator::generateDocumentation(StringRef RootDir,
+                                               llvm::StringMap<Info *> Infos,
+                                               const ClangDocContext &CDCtx,
+                                               std::string DirName) {
   // Track which directories we already tried to create.
   llvm::StringSet<> CreatedDirs;
 
   // Collect all output by file name and create the necessary directories.
-  llvm::StringMap<std::vector<doc::Info *>> FileToInfos;
+  llvm::StringMap<std::vector<Info *>> FileToInfos;
   for (const auto &Group : Infos) {
-    doc::Info *Info = Group.getValue();
+    Info *Info = Group.getValue();
 
     llvm::SmallString<128> Path;
     llvm::sys::path::native(RootDir, Path);
@@ -603,6 +604,9 @@ llvm::Error MDGenerator::createResources(ClangDocContext 
&CDCtx) {
 static GeneratorRegistry::Add<MDGenerator> MD(MDGenerator::Format,
                                               "Generator for MD output.");
 
+namespace clang {
+namespace doc {
+
 // This anchor is used to force the linker to link in the generated object
 // file and thus register the generator.
 volatile int MDGeneratorAnchorSource = 0;

diff  --git a/clang-tools-extra/clang-doc/MDMustacheGenerator.cpp 
b/clang-tools-extra/clang-doc/MDMustacheGenerator.cpp
index e0fb926b6bfe1..d2fd065a9453f 100644
--- a/clang-tools-extra/clang-doc/MDMustacheGenerator.cpp
+++ b/clang-tools-extra/clang-doc/MDMustacheGenerator.cpp
@@ -16,9 +16,9 @@
 
 #include "Generators.h"
 
-namespace clang {
 using namespace llvm;
-namespace doc {
+using namespace clang::doc;
+
 static std::unique_ptr<MustacheTemplateFile> RecordTemplate = nullptr;
 
 static std::unique_ptr<MustacheTemplateFile> NamespaceTemplate = nullptr;
@@ -27,9 +27,10 @@ static std::unique_ptr<MustacheTemplateFile> 
AllFilesTemplate = nullptr;
 
 static std::unique_ptr<MustacheTemplateFile> IndexTemplate = nullptr;
 
+namespace {
 struct MDMustacheGenerator : public MustacheGenerator {
   static const char *Format;
-  Error generateDocumentation(StringRef RootDir, StringMap<doc::Info *> Infos,
+  Error generateDocumentation(StringRef RootDir, StringMap<Info *> Infos,
                               const ClangDocContext &CDCtx,
                               std::string DirName) override;
   Error setupTemplateFiles(const ClangDocContext &CDCtx) override;
@@ -42,6 +43,7 @@ struct MDMustacheGenerator : public MustacheGenerator {
   Error generateDocForInfo(Info *I, llvm::raw_ostream &OS,
                            const ClangDocContext &CDCtx) override;
 };
+} // namespace
 
 Error MDMustacheGenerator::setupTemplateFiles(const ClangDocContext &CDCtx) {
   std::string ClassFilePath = CDCtx.MustacheTemplates.lookup("class-template");
@@ -74,7 +76,7 @@ Error MDMustacheGenerator::setupTemplateFiles(const 
ClangDocContext &CDCtx) {
 }
 
 Error MDMustacheGenerator::generateDocumentation(
-    StringRef RootDir, StringMap<doc::Info *> Infos,
+    StringRef RootDir, StringMap<Info *> Infos,
     const clang::doc::ClangDocContext &CDCtx, std::string Dirname) {
   return MustacheGenerator::generateDocumentation(RootDir, std::move(Infos),
                                                   CDCtx, "md");
@@ -112,6 +114,8 @@ static GeneratorRegistry::Add<MDMustacheGenerator>
     MDMustache(MDMustacheGenerator::Format,
                "Generator for mustache Markdown output.");
 
+namespace clang {
+namespace doc {
 volatile int MDMustacheGeneratorAnchorSource = 0;
 } // namespace doc
 } // namespace clang


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to