clang-tools 19.0.0git
Namespaces | Functions
AST.h File Reference
#include "Headers.h"
#include "index/Symbol.h"
#include "index/SymbolID.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/TypeLoc.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Lex/MacroInfo.h"
#include "llvm/ADT/StringRef.h"
#include <optional>
#include <string>
#include <vector>

Go to the source code of this file.


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


bool clang::clangd::isImplementationDetail (const Decl *D)
 Returns true if the declaration is considered implementation detail based on heuristics.
SourceLocation clang::clangd::nameLocation (const clang::Decl &D, const SourceManager &SM)
 Find the source location of the identifier for D.
std::string clang::clangd::printQualifiedName (const NamedDecl &ND)
 Returns the qualified name of ND.
std::string clang::clangd::printNamespaceScope (const DeclContext &DC)
 Returns the first enclosing namespace scope starting from DC.
std::string clang::clangd::printUsingNamespaceName (const ASTContext &Ctx, const UsingDirectiveDecl &D)
 Returns the name of the namespace inside the 'using namespace' directive, as written in the code.
std::string clang::clangd::printName (const ASTContext &Ctx, const NamedDecl &ND)
 Prints unqualified name of the decl for the purpose of displaying it to the user.
std::string clang::clangd::printTemplateSpecializationArgs (const NamedDecl &ND)
 Prints template arguments of a decl as written in the source code, including enclosing '<' and '>', e.g for a partial specialization like: template <typename U> struct Foo<int, U> will return '<int, U>'.
std::string clang::clangd::printObjCMethod (const ObjCMethodDecl &Method)
 Print the Objective-C method name, including the full container name, e.g.
std::string clang::clangd::printObjCContainer (const ObjCContainerDecl &C)
 Print the Objective-C container name including categories, e.g. MyClass,.
bool clang::clangd::hasReservedName (const Decl &)
 Returns true if this is a NamedDecl with a reserved name.
bool clang::clangd::hasReservedScope (const DeclContext &)
 Returns true if this scope would be written with a reserved name.
SymbolID clang::clangd::getSymbolID (const Decl *D)
 Gets the symbol ID for a declaration. Returned SymbolID might be null.
SymbolID clang::clangd::getSymbolID (const llvm::StringRef MacroName, const MacroInfo *MI, const SourceManager &SM)
 Gets the symbol ID for a macro.
const ObjCImplDecl * clang::clangd::getCorrespondingObjCImpl (const ObjCContainerDecl *D)
 Return the corresponding implementation/definition for the given ObjC container if it has one, otherwise, return nullptr.
Symbol::IncludeDirective clang::clangd::preferredIncludeDirective (llvm::StringRef FileName, const LangOptions &LangOpts, ArrayRef< Inclusion > MainFileIncludes, ArrayRef< const Decl * > TopLevelDecls)
 Infer the include directive to use for the given FileName.
std::string clang::clangd::printType (const QualType QT, const DeclContext &CurContext, llvm::StringRef Placeholder="")
 Returns a QualType as string.
bool clang::clangd::isImplicitTemplateInstantiation (const NamedDecl *D)
 Indicates if D is a template instantiation implicitly generated by the compiler, e.g.
bool clang::clangd::isExplicitTemplateSpecialization (const NamedDecl *D)
 Indicates if D is an explicit template specialization, e.g.
NestedNameSpecifierLoc clang::clangd::getQualifierLoc (const NamedDecl &ND)
 Returns a nested name specifier loc of ND if it was present in the source, e.g.
QualType clang::clangd::declaredType (const TypeDecl *D)
std::optional< QualType > clang::clangd::getDeducedType (ASTContext &, SourceLocation Loc)
 Retrieves the deduced type at a given location (auto, decltype).
TemplateTypeParmTypeLoc clang::clangd::getContainedAutoParamType (TypeLoc TL)
NamedDecl * clang::clangd::getOnlyInstantiation (NamedDecl *TemplatedDecl)
std::vector< const Attr * > clang::clangd::getAttributes (const DynTypedNode &)
 Return attributes attached directly to a node.
std::string clang::clangd::getQualification (ASTContext &Context, const DeclContext *DestContext, SourceLocation InsertionPoint, const NamedDecl *ND)
 Gets the nested name specifier necessary for spelling ND in DestContext, at InsertionPoint.
std::string clang::clangd::getQualification (ASTContext &Context, const DeclContext *DestContext, const NamedDecl *ND, llvm::ArrayRef< std::string > VisibleNamespaces)
 This function uses the VisibleNamespaces to figure out if a shorter qualification is sufficient for ND, and ignores any using namespace directives.
bool clang::clangd::hasUnstableLinkage (const Decl *D)
 Whether we must avoid computing linkage for D during code completion.
bool clang::clangd::isDeeplyNested (const Decl *D, unsigned MaxDepth=10)
 Checks whether D is more than MaxDepth away from translation unit scope.
SmallVector< const ParmVarDecl * > clang::clangd::resolveForwardingParameters (const FunctionDecl *D, unsigned MaxDepth=10)
 Recursively resolves the parameters of a FunctionDecl that forwards its parameters to another function via variadic template parameters.
bool clang::clangd::isExpandedFromParameterPack (const ParmVarDecl *D)
 Checks whether D is instantiated from a function parameter pack whose type is a bare type parameter pack (e.g.