#include "InlayHints.h"
#include "../clang-tidy/utils/DesignatedInitializers.h"
#include "AST.h"
#include "Config.h"
#include "HeuristicResolver.h"
#include "ParsedAST.h"
#include "SourceCode.h"
#include "clang/AST/ASTDiagnostic.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/RecursiveASTVisitor.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtVisitor.h"
#include "clang/AST/Type.h"
#include "clang/Basic/Builtins.h"
#include "clang/Basic/OperatorKinds.h"
#include "clang/Basic/SourceManager.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/SaveAndRestore.h"
#include "llvm/Support/ScopedPrinter.h"
#include "llvm/Support/raw_ostream.h"
#include <optional>
#include <string>
namespace clang {
namespace clangd {
namespace {
enum class HintSide { … };
void stripLeadingUnderscores(StringRef &Name) { … }
template <typename Ty, typename = decltype(((Ty *)nullptr)->getDecl())>
const NamedDecl *getDeclForTypeImpl(const Ty *T) { … }
const NamedDecl *getDeclForTypeImpl(const void *T) { … }
const NamedDecl *getDeclForType(const Type *T) { … }
llvm::StringRef getSimpleName(const DeclarationName &DN) { … }
llvm::StringRef getSimpleName(const NamedDecl &D) { … }
llvm::StringRef getSimpleName(QualType T) { … }
std::string summarizeExpr(const Expr *E) { … }
bool isSugaredTemplateParameter(QualType QT) { … }
std::optional<QualType> desugar(ASTContext &AST, QualType QT) { … }
QualType maybeDesugar(ASTContext &AST, QualType QT) { … }
static FunctionProtoTypeLoc getPrototypeLoc(Expr *Fn) { … }
ArrayRef<const ParmVarDecl *>
maybeDropCxxExplicitObjectParameters(ArrayRef<const ParmVarDecl *> Params) { … }
struct Callee { … };
class InlayHintVisitor : public RecursiveASTVisitor<InlayHintVisitor> { … };
}
std::vector<InlayHint> inlayHints(ParsedAST &AST,
std::optional<Range> RestrictRange) { … }
}
}