9#ifndef LLVM_CLANG_SEMA_HEURISTICRESOLVER_H
10#define LLVM_CLANG_SEMA_HEURISTICRESOLVER_H
20class CXXDependentScopeMemberExpr;
22class DependentScopeDeclRefExpr;
23class FunctionProtoTypeLoc;
26class 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 *>
75 std::vector<const NamedDecl *>
77 llvm::function_ref<
bool(
const NamedDecl *ND)> Filter);
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Represents a C++ member access expression where the actual member referenced could not be resolved be...
Represents a C++ struct/union/class.
CallExpr - Represents a function call (C99 6.5.2.2, C++ [expr.call]).
The name of a declaration.
Represents a qualified type name for which the type name is dependent.
A qualified reference to a name whose declaration cannot yet be resolved.
Represents a template specialization type whose template cannot be resolved, e.g.
This represents one expression.
std::vector< const NamedDecl * > resolveDeclRefExpr(const DependentScopeDeclRefExpr *RE) const
const QualType getPointeeType(QualType T) const
QualType simplifyType(QualType Type, const Expr *E, bool UnwrapPointer)
std::vector< const NamedDecl * > resolveMemberExpr(const CXXDependentScopeMemberExpr *ME) const
FunctionProtoTypeLoc getFunctionProtoTypeLoc(const Expr *Fn) const
QualType resolveNestedNameSpecifierToType(NestedNameSpecifier NNS) const
std::vector< const NamedDecl * > resolveCalleeOfCallExpr(const CallExpr *CE) const
TagDecl * resolveTypeToTagDecl(QualType T) const
std::vector< const NamedDecl * > resolveTypeOfCallExpr(const CallExpr *CE) const
std::vector< const NamedDecl * > resolveUsingValueDecl(const UnresolvedUsingValueDecl *UUVD) const
std::vector< const NamedDecl * > resolveTemplateSpecializationType(const DependentTemplateSpecializationType *DTST) const
HeuristicResolver(ASTContext &Ctx)
std::vector< const NamedDecl * > resolveDependentNameType(const DependentNameType *DNT) const
std::vector< const NamedDecl * > lookupDependentName(CXXRecordDecl *RD, DeclarationName Name, llvm::function_ref< bool(const NamedDecl *ND)> Filter)
This represents a decl that may have a name.
Represents a C++ nested name specifier, such as "\::std::vector<int>::".
A (possibly-)qualified type.
Represents the declaration of a struct/union/class/enum.
The base class of the type hierarchy.
Represents a dependent using declaration which was not marked with typename.
The JSON file list parser is used to communicate input to InstallAPI.
const FunctionProtoType * T