#include "clang/ExtractAPI/DeclarationFragments.h"
#include "clang/AST/ASTFwd.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/TemplateName.h"
#include "clang/AST/Type.h"
#include "clang/AST/TypeLoc.h"
#include "clang/ExtractAPI/TypedefUnderlyingTypeResolver.h"
#include "clang/Index/USRGeneration.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <optional>
usingnamespaceclang::extractapi;
usingnamespacellvm;
namespace {
void findTypeLocForBlockDecl(const clang::TypeSourceInfo *TSInfo,
clang::FunctionTypeLoc &Block,
clang::FunctionProtoTypeLoc &BlockProto) { … }
}
DeclarationFragments &
DeclarationFragments::appendUnduplicatedTextCharacter(char Character) { … }
DeclarationFragments &DeclarationFragments::appendSpace() { … }
DeclarationFragments &DeclarationFragments::appendSemicolon() { … }
DeclarationFragments &DeclarationFragments::removeTrailingSemicolon() { … }
StringRef DeclarationFragments::getFragmentKindString(
DeclarationFragments::FragmentKind Kind) { … }
DeclarationFragments::FragmentKind
DeclarationFragments::parseFragmentKindFromString(StringRef S) { … }
DeclarationFragments DeclarationFragments::getExceptionSpecificationString(
ExceptionSpecificationType ExceptionSpec) { … }
DeclarationFragments
DeclarationFragments::getStructureTypeFragment(const RecordDecl *Record) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForNNS(const NestedNameSpecifier *NNS,
ASTContext &Context,
DeclarationFragments &After) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForType(
const Type *T, ASTContext &Context, DeclarationFragments &After) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForQualifiers(const Qualifiers Quals) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForType(
const QualType QT, ASTContext &Context, DeclarationFragments &After) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForNamespace(
const NamespaceDecl *Decl) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForVar(const VarDecl *Var) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForVarTemplate(const VarDecl *Var) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForParam(const ParmVarDecl *Param) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForBlock(
const NamedDecl *BlockDecl, FunctionTypeLoc &Block,
FunctionProtoTypeLoc &BlockProto, DeclarationFragments &After) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForFunction(const FunctionDecl *Func) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForEnumConstant(
const EnumConstantDecl *EnumConstDecl) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForEnum(const EnumDecl *EnumDecl) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForField(const FieldDecl *Field) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForRecordDecl(
const RecordDecl *Record) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForCXXClass(
const CXXRecordDecl *Record) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForSpecialCXXMethod(
const CXXMethodDecl *Method) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForCXXMethod(
const CXXMethodDecl *Method) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForConversionFunction(
const CXXConversionDecl *ConversionFunction) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForOverloadedOperator(
const CXXMethodDecl *Method) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForTemplateParameters(
ArrayRef<NamedDecl *> ParameterArray) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForTemplateArguments(
const ArrayRef<TemplateArgument> TemplateArguments, ASTContext &Context,
const std::optional<ArrayRef<TemplateArgumentLoc>> TemplateArgumentLocs) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForConcept(
const ConceptDecl *Concept) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForRedeclarableTemplate(
const RedeclarableTemplateDecl *RedeclarableTemplate) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForClassTemplateSpecialization(
const ClassTemplateSpecializationDecl *Decl) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForClassTemplatePartialSpecialization(
const ClassTemplatePartialSpecializationDecl *Decl) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForVarTemplateSpecialization(
const VarTemplateSpecializationDecl *Decl) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForVarTemplatePartialSpecialization(
const VarTemplatePartialSpecializationDecl *Decl) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForFunctionTemplate(
const FunctionTemplateDecl *Decl) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForFunctionTemplateSpecialization(
const FunctionDecl *Decl) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getFragmentsForMacro(StringRef Name,
const MacroInfo *MI) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForObjCCategory(
const ObjCCategoryDecl *Category) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForObjCInterface(
const ObjCInterfaceDecl *Interface) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForObjCMethod(
const ObjCMethodDecl *Method) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForObjCProperty(
const ObjCPropertyDecl *Property) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForObjCProtocol(
const ObjCProtocolDecl *Protocol) { … }
DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForTypedef(
const TypedefNameDecl *Decl) { … }
template FunctionSignature
DeclarationFragmentsBuilder::getFunctionSignature(const FunctionDecl *);
template FunctionSignature
DeclarationFragmentsBuilder::getFunctionSignature(const ObjCMethodDecl *);
DeclarationFragments
DeclarationFragmentsBuilder::getSubHeading(const NamedDecl *Decl) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getSubHeading(const ObjCMethodDecl *Method) { … }
DeclarationFragments
DeclarationFragmentsBuilder::getSubHeadingForMacro(StringRef Name) { … }