9#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_HEURISTICRESOLVER_H
10#define LLVM_CLANG_TOOLS_EXTRA_CLANGD_HEURISTICRESOLVER_H
12#include "clang/AST/Decl.h"
20class CXXDependentScopeMemberExpr;
22class DependentScopeDeclRefExpr;
25class UnresolvedUsingValueDecl;
52 std::vector<const NamedDecl *>
54 std::vector<const NamedDecl *>
56 std::vector<const NamedDecl *>
58 std::vector<const NamedDecl *>
60 std::vector<const NamedDecl *>
62 std::vector<const NamedDecl *>
65 const DependentTemplateSpecializationType *DTST)
const;
90 std::vector<const NamedDecl *> resolveDependentMember(
92 llvm::function_ref<
bool(
const NamedDecl *ND)> Filter)
const;
96 const Type *resolveExprToType(
const Expr *
E)
const;
97 std::vector<const NamedDecl *> resolveExprToDecls(
const Expr *
E)
const;
102 CXXRecordDecl *resolveTypeToRecordDecl(
const Type *T)
const;
111 std::vector<const NamedDecl *> lookupDependentName(
112 CXXRecordDecl *RD, DeclarationName
Name,
113 llvm::function_ref<
bool(
const NamedDecl *ND)> Filter)
const;
114 bool findOrdinaryMemberInDependentClasses(
const CXXBaseSpecifier *Specifier,
116 DeclarationName
Name)
const;
std::vector< const NamedDecl * > resolveMemberExpr(const CXXDependentScopeMemberExpr *ME) const
std::vector< const NamedDecl * > resolveDeclRefExpr(const DependentScopeDeclRefExpr *RE) const
const Type * getPointeeType(const Type *T) const
std::vector< const NamedDecl * > resolveDependentNameType(const DependentNameType *DNT) const
std::vector< const NamedDecl * > resolveUsingValueDecl(const UnresolvedUsingValueDecl *UUVD) const
std::vector< const NamedDecl * > resolveCalleeOfCallExpr(const CallExpr *CE) const
const Type * resolveNestedNameSpecifierToType(const NestedNameSpecifier *NNS) const
std::vector< const NamedDecl * > resolveTemplateSpecializationType(const DependentTemplateSpecializationType *DTST) const
std::vector< const NamedDecl * > resolveTypeOfCallExpr(const CallExpr *CE) const
HeuristicResolver(ASTContext &Ctx)
std::string Path
A typedef to represent a file path.
@ Type
An inlay hint that for a type annotation.
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//