clang-tools 22.0.0git
Serialize.cpp File Reference
#include "Serialize.h"
#include "BitcodeWriter.h"
#include "clang/AST/Attr.h"
#include "clang/AST/Comment.h"
#include "clang/AST/DeclFriend.h"
#include "clang/AST/Mangle.h"
#include "clang/Index/USRGeneration.h"
#include "clang/Lex/Lexer.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/SHA1.h"

Go to the source code of this file.

Classes

class  clang::doc::serialize::ClangDocCommentVisitor

Namespaces

namespace  clang
 ===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
namespace  clang::doc
namespace  clang::doc::serialize

Functions

SymbolID clang::doc::serialize::hashUSR (llvm::StringRef USR)
template<typename T>
static void clang::doc::serialize::populateParentNamespaces (llvm::SmallVector< Reference, 4 > &Namespaces, const T *D, bool &IsAnonymousNamespace)
static void clang::doc::serialize::populateMemberTypeInfo (MemberTypeInfo &I, const Decl *D)
static void clang::doc::serialize::populateMemberTypeInfo (RecordInfo &I, AccessSpecifier &Access, const DeclaratorDecl *D, bool IsStatic=false)
static void clang::doc::serialize::getTemplateParameters (const TemplateParameterList *TemplateParams, llvm::raw_ostream &Stream)
static llvm::SmallString< 256 > clang::doc::serialize::getFunctionPrototype (const FunctionDecl *FuncDecl)
static llvm::SmallString< 16 > clang::doc::serialize::getTypeAlias (const TypeAliasDecl *Alias)
static llvm::SmallString< 16 > clang::doc::serialize::getRecordPrototype (const CXXRecordDecl *CXXRD)
static llvm::SmallString< 128 > clang::doc::serialize::getInfoRelativePath (const llvm::SmallVectorImpl< doc::Reference > &Namespaces)
static llvm::SmallString< 128 > clang::doc::serialize::getInfoRelativePath (const Decl *D)
static std::string clang::doc::serialize::getSourceCode (const Decl *D, const SourceRange &R)
template<typename T>
static std::string clang::doc::serialize::serialize (T &I)
std::string clang::doc::serialize::serialize (std::unique_ptr< Info > &I)
static void clang::doc::serialize::parseFullComment (const FullComment *C, CommentInfo &CI)
static SymbolID clang::doc::serialize::getUSRForDecl (const Decl *D)
static TagDecl * clang::doc::serialize::getTagDeclForType (const QualType &T)
static RecordDecl * clang::doc::serialize::getRecordDeclForType (const QualType &T)
static TypeInfo clang::doc::serialize::getTypeInfoForType (const QualType &T, const PrintingPolicy &Policy)
static bool clang::doc::serialize::isPublic (const clang::AccessSpecifier AS, const clang::Linkage Link)
static bool clang::doc::serialize::shouldSerializeInfo (bool PublicOnly, bool IsInAnonymousNamespace, const NamedDecl *D)
static void clang::doc::serialize::InsertChild (ScopeChildren &Scope, const NamespaceInfo &Info)
static void clang::doc::serialize::InsertChild (ScopeChildren &Scope, const RecordInfo &Info)
static void clang::doc::serialize::InsertChild (ScopeChildren &Scope, EnumInfo Info)
static void clang::doc::serialize::InsertChild (ScopeChildren &Scope, FunctionInfo Info)
static void clang::doc::serialize::InsertChild (ScopeChildren &Scope, TypedefInfo Info)
static void clang::doc::serialize::InsertChild (ScopeChildren &Scope, ConceptInfo Info)
static void clang::doc::serialize::InsertChild (ScopeChildren &Scope, VarInfo Info)
template<typename ChildType>
static std::unique_ptr< Infoclang::doc::serialize::makeAndInsertIntoParent (ChildType Child)
static AccessSpecifier clang::doc::serialize::getFinalAccessSpecifier (AccessSpecifier FirstAS, AccessSpecifier SecondAS)
static void clang::doc::serialize::parseFields (RecordInfo &I, const RecordDecl *D, bool PublicOnly, AccessSpecifier Access=AccessSpecifier::AS_public)
static void clang::doc::serialize::parseEnumerators (EnumInfo &I, const EnumDecl *D)
static void clang::doc::serialize::parseParameters (FunctionInfo &I, const FunctionDecl *D)
static void clang::doc::serialize::parseBases (RecordInfo &I, const CXXRecordDecl *D)
static void clang::doc::serialize::populateTemplateParameters (std::optional< TemplateInfo > &TemplateInfo, const clang::Decl *D)
static TemplateParamInfo clang::doc::serialize::convertTemplateArgToInfo (const clang::Decl *D, const TemplateArgument &Arg)
template<typename T>
static void clang::doc::serialize::populateInfo (Info &I, const T *D, const FullComment *C, bool &IsInAnonymousNamespace)
template<typename T>
static void clang::doc::serialize::populateSymbolInfo (SymbolInfo &I, const T *D, const FullComment *C, Location Loc, bool &IsInAnonymousNamespace)
static void clang::doc::serialize::handleCompoundConstraints (const Expr *Constraint, std::vector< ConstraintInfo > &ConstraintInfos)
static void clang::doc::serialize::populateConstraints (TemplateInfo &I, const TemplateDecl *D)
static void clang::doc::serialize::populateFunctionInfo (FunctionInfo &I, const FunctionDecl *D, const FullComment *FC, Location Loc, bool &IsInAnonymousNamespace)
static void clang::doc::serialize::parseBases (RecordInfo &I, const CXXRecordDecl *D, bool IsFileInRootDir, bool PublicOnly, bool IsParent, AccessSpecifier ParentAccess=AccessSpecifier::AS_public)
std::pair< std::unique_ptr< Info >, std::unique_ptr< Info > > clang::doc::serialize::emitInfo (const NamespaceDecl *D, const FullComment *FC, Location Loc, bool PublicOnly)
static void clang::doc::serialize::parseFriends (RecordInfo &RI, const CXXRecordDecl *D)
std::pair< std::unique_ptr< Info >, std::unique_ptr< Info > > clang::doc::serialize::emitInfo (const RecordDecl *D, const FullComment *FC, Location Loc, bool PublicOnly)
std::pair< std::unique_ptr< Info >, std::unique_ptr< Info > > clang::doc::serialize::emitInfo (const FunctionDecl *D, const FullComment *FC, Location Loc, bool PublicOnly)
std::pair< std::unique_ptr< Info >, std::unique_ptr< Info > > clang::doc::serialize::emitInfo (const CXXMethodDecl *D, const FullComment *FC, Location Loc, bool PublicOnly)
static void clang::doc::serialize::extractCommentFromDecl (const Decl *D, TypedefInfo &Info)
std::pair< std::unique_ptr< Info >, std::unique_ptr< Info > > clang::doc::serialize::emitInfo (const TypedefDecl *D, const FullComment *FC, Location Loc, bool PublicOnly)
std::pair< std::unique_ptr< Info >, std::unique_ptr< Info > > clang::doc::serialize::emitInfo (const TypeAliasDecl *D, const FullComment *FC, Location Loc, bool PublicOnly)
std::pair< std::unique_ptr< Info >, std::unique_ptr< Info > > clang::doc::serialize::emitInfo (const EnumDecl *D, const FullComment *FC, Location Loc, bool PublicOnly)
std::pair< std::unique_ptr< Info >, std::unique_ptr< Info > > clang::doc::serialize::emitInfo (const ConceptDecl *D, const FullComment *FC, const Location &Loc, bool PublicOnly)
std::pair< std::unique_ptr< Info >, std::unique_ptr< Info > > clang::doc::serialize::emitInfo (const VarDecl *D, const FullComment *FC, const Location &Loc, bool PublicOnly)