diff --git a/clang-tools-extra/clang-doc/JSONGenerator.cpp b/clang-tools-extra/clang-doc/JSONGenerator.cpp index b17cc80bdba34..93ec90e9048ea 100644 --- a/clang-tools-extra/clang-doc/JSONGenerator.cpp +++ b/clang-tools-extra/clang-doc/JSONGenerator.cpp @@ -468,7 +468,6 @@ static void insertArray(Object &Obj, json::Value &Array, StringRef Key) { static void serializeInfo(const RecordInfo &I, json::Object &Obj, const std::optional &RepositoryUrl) { serializeCommonAttributes(I, Obj, RepositoryUrl); - Obj["FullName"] = I.FullName; Obj["TagType"] = getTagType(I.TagType); Obj["IsTypedef"] = I.IsTypeDef; Obj["MangledName"] = I.MangledName; diff --git a/clang-tools-extra/clang-doc/Representation.h b/clang-tools-extra/clang-doc/Representation.h index d8c2b9c0a5842..79e9bfc291c3a 100644 --- a/clang-tools-extra/clang-doc/Representation.h +++ b/clang-tools-extra/clang-doc/Representation.h @@ -437,10 +437,6 @@ struct FunctionInfo : public SymbolInfo { // (AS_public = 0, AS_protected = 1, AS_private = 2, AS_none = 3) AccessSpecifier Access = AccessSpecifier::AS_public; - // Full qualified name of this function, including namespaces and template - // specializations. - SmallString<16> FullName; - // Function Prototype SmallString<256> Prototype; @@ -460,10 +456,6 @@ struct RecordInfo : public SymbolInfo { // Type of this record (struct, class, union, interface). TagTypeKind TagType = TagTypeKind::Struct; - // Full qualified name of this record, including namespaces and template - // specializations. - SmallString<16> FullName; - // When present, this record is a template or specialization. std::optional Template; diff --git a/clang-tools-extra/clang-doc/Serialize.cpp b/clang-tools-extra/clang-doc/Serialize.cpp index 186f634dd892a..7f8691d63622f 100644 --- a/clang-tools-extra/clang-doc/Serialize.cpp +++ b/clang-tools-extra/clang-doc/Serialize.cpp @@ -178,55 +178,6 @@ static llvm::SmallString<16> getTypeAlias(const TypeAliasDecl *Alias) { return Result; } -// extract full syntax for record declaration -static llvm::SmallString<16> getRecordPrototype(const CXXRecordDecl *CXXRD) { - llvm::SmallString<16> Result; - LangOptions LangOpts; - PrintingPolicy Policy(LangOpts); - Policy.SuppressTagKeyword = false; - Policy.FullyQualifiedName = true; - Policy.IncludeNewlines = false; - llvm::raw_svector_ostream OS(Result); - if (const auto *TD = CXXRD->getDescribedClassTemplate()) { - OS << "template <"; - bool FirstParam = true; - for (const auto *Param : *TD->getTemplateParameters()) { - if (!FirstParam) - OS << ", "; - Param->print(OS, Policy); - FirstParam = false; - } - OS << ">\n"; - } - - if (CXXRD->isStruct()) - OS << "struct "; - else if (CXXRD->isClass()) - OS << "class "; - else if (CXXRD->isUnion()) - OS << "union "; - - OS << CXXRD->getNameAsString(); - - // We need to make sure we have a good enough declaration to check. In the - // case where the class is a forward declaration, we'll fail assertions in - // DeclCXX. - if (CXXRD->isCompleteDefinition() && CXXRD->getNumBases() > 0) { - OS << " : "; - bool FirstBase = true; - for (const auto &Base : CXXRD->bases()) { - if (!FirstBase) - OS << ", "; - if (Base.isVirtual()) - OS << "virtual "; - OS << getAccessSpelling(Base.getAccessSpecifier()) << " "; - OS << Base.getType().getAsString(Policy); - FirstBase = false; - } - } - return Result; -} - // A function to extract the appropriate relative path for a given info's // documentation. The path returned is a composite of the parent namespaces. // @@ -1033,7 +984,6 @@ emitInfo(const RecordDecl *D, const FullComment *FC, Location Loc, parseFields(*RI, D, PublicOnly); if (const auto *C = dyn_cast(D)) { - RI->FullName = getRecordPrototype(C); if (const TypedefNameDecl *TD = C->getTypedefNameForAnonDecl()) { RI->Name = TD->getNameAsString(); RI->IsTypeDef = true; diff --git a/clang-tools-extra/test/clang-doc/json/class.cpp b/clang-tools-extra/test/clang-doc/json/class.cpp index 20a9f218b3d79..adb1ed7511c3b 100644 --- a/clang-tools-extra/test/clang-doc/json/class.cpp +++ b/clang-tools-extra/test/clang-doc/json/class.cpp @@ -124,8 +124,6 @@ struct MyClass { // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ], -// COM: FIXME: FullName is not emitted correctly. -// CHECK-NEXT: "FullName": "", // CHECK-NEXT: "HasEnums": true, // CHECK-NEXT: "HasPublicFunctions": true, // CHECK-NEXT: "HasPublicMembers": true, diff --git a/clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp b/clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp index 07c761fcd0685..2706a5145ebfd 100644 --- a/clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp +++ b/clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp @@ -16,8 +16,6 @@ static std::unique_ptr getJSONGenerator() { TEST(JSONGeneratorTest, emitRecordJSON) { RecordInfo I; I.Name = "Foo"; - // FIXME: FullName is not emitted correctly. - I.FullName = ""; I.IsTypeDef = false; I.Namespace.emplace_back(EmptySID, "GlobalNamespace", InfoType::IT_namespace); I.Path = "GlobalNamespace"; @@ -64,7 +62,6 @@ TEST(JSONGeneratorTest, emitRecordJSON) { { "Access": "public", "End": true, - "FullName": "", "HasPublicFunctions": true, "HasPublicMembers": true, "InfoType": "record", @@ -115,7 +112,6 @@ TEST(JSONGeneratorTest, emitRecordJSON) { "USR": "0000000000000000000000000000000000000000" } ], - "FullName": "", "HasEnums": true, "HasPublicFunctions": true, "HasRecords": true,