Go to the documentation of this file.
12 #ifndef LLVM_CLANG_SEMA_EXTERNALSEMASOURCE_H
13 #define LLVM_CLANG_SEMA_EXTERNALSEMASOURCE_H
19 #include "llvm/ADT/MapVector.h"
28 class CXXConstructorDecl;
34 class TypedefNameDecl;
37 struct LateParsedTemplate;
191 llvm::MapVector<
const FunctionDecl *, std::unique_ptr<LateParsedTemplate>>
214 bool EnteringContext,
235 bool isA(
const void *ClassID)
const override {
virtual void updateOutOfDateSelector(Selector Sel)
Load the contents of the global method pool for a given selector if necessary.
YAML serialization mapping.
virtual void ReadKnownNamespaces(SmallVectorImpl< NamespaceDecl * > &Namespaces)
Load the set of namespaces that are known to the external source, which will be used during typo corr...
DeclContext - This is used only as base class of specific decl types that can act as declaration cont...
Simple class containing the result of Sema::CorrectTypo.
virtual void ReadDelegatingConstructors(SmallVectorImpl< CXXConstructorDecl * > &Decls)
Read the set of delegating constructors known to the external Sema source.
Encodes a location in the source.
A (possibly-)qualified type.
virtual void ReadUnusedLocalTypedefNameCandidates(llvm::SmallSetVector< const TypedefNameDecl *, 4 > &Decls)
Read the set of potentially unused typedefs known to the source.
virtual void ReadMismatchingDeleteExpressions(llvm::MapVector< FieldDecl *, llvm::SmallVector< std::pair< SourceLocation, bool >, 4 >> &)
Represents a member of a struct/union/class.
Represents the results of name lookup.
virtual TypoCorrection CorrectTypo(const DeclarationNameInfo &Typo, int LookupKind, Scope *S, CXXScopeSpec *SS, CorrectionCandidateCallback &CCC, DeclContext *MemberContext, bool EnteringContext, const ObjCObjectPointerType *OPT)
Try to "correct" a typo in the source code by finding visible declarations whose names are similar to...
virtual void ReadUnusedFileScopedDecls(SmallVectorImpl< const DeclaratorDecl * > &Decls)
Read the set of unused file-scope declarations known to the external Sema source.
Represents a C++ nested-name-specifier or a global scope specifier.
A simple structure that captures a vtable use for the purposes of the ExternalSemaSource.
virtual void ReadUsedVTables(SmallVectorImpl< ExternalVTableUse > &VTables)
Read the set of used vtables known to the external Sema source.
~ExternalSemaSource() override
Scope - A scope is a transient data structure that is used while parsing the program.
An abstract interface that should be implemented by external AST sources that also provide informatio...
static bool classof(const ExternalASTSource *S)
virtual void ReadMethodPool(Selector Sel)
Load the contents of the global method pool for a given selector.
virtual bool isA(const void *ClassID) const
LLVM-style RTTI.
virtual void ReadExtVectorDecls(SmallVectorImpl< TypedefNameDecl * > &Decls)
Read the set of ext_vector type declarations known to the external Sema source.
virtual void ReadUndefinedButUsed(llvm::MapVector< NamedDecl *, SourceLocation > &Undefined)
Load the set of used but not defined functions or variables with internal linkage,...
Represents a pointer to an Objective C object.
Represents a C++ struct/union/class.
Represent the declaration of a variable (in which case it is an lvalue) a function (in which case it ...
virtual bool MaybeDiagnoseMissingCompleteType(SourceLocation Loc, QualType T)
Produces a diagnostic note if the external source contains a complete definition for T.
Sema - This implements semantic analysis and AST building for C.
virtual void InitializeSema(Sema &S)
Initialize the semantic source with the Sema instance being used to perform semantic analysis on the ...
virtual void ReadLateParsedTemplates(llvm::MapVector< const FunctionDecl *, std::unique_ptr< LateParsedTemplate >> &LPTMap)
Read the set of late parsed template functions for this source.
virtual void ForgetSema()
Inform the semantic consumer that Sema is no longer available.
Smart pointer class that efficiently represents Objective-C method names.
Base class for callback objects used by Sema::CorrectTypo to check the validity of a potential typo c...
virtual void ReadPendingInstantiations(SmallVectorImpl< std::pair< ValueDecl *, SourceLocation > > &Pending)
Read the set of pending instantiations known to the external Sema source.
virtual bool LookupUnqualified(LookupResult &R, Scope *S)
Do last resort, unqualified lookup on a LookupResult that Sema cannot find.
bool isA(const void *ClassID) const override
LLVM-style RTTI.
virtual void ReadTentativeDefinitions(SmallVectorImpl< VarDecl * > &TentativeDefs)
Read the set of tentative definitions known to the external Sema source.
Abstract interface for external sources of AST nodes.
virtual void ReadReferencedSelectors(SmallVectorImpl< std::pair< Selector, SourceLocation > > &Sels)
Read the set of referenced selectors known to the external Sema source.
DeclarationNameInfo - A collector data type for bundling together a DeclarationName and the correspnd...
ExternalSemaSource()=default
virtual void ReadDeclsToCheckForDeferredDiags(llvm::SmallSetVector< Decl *, 4 > &Decls)
Read the set of decls to be checked for deferred diags.
Represents a function declaration or definition.
virtual void ReadWeakUndeclaredIdentifiers(SmallVectorImpl< std::pair< IdentifierInfo *, WeakInfo > > &WI)
Read the set of weak, undeclared identifiers known to the external Sema source.