clang: clang::ExternalSource Class Reference (original) (raw)

Public Member Functions

ExternalSource (ASTContext &ChildASTCtxt, FileManager &ChildFM, ASTContext &ParentASTCtxt, FileManager &ParentFM)

bool

FindExternalVisibleDeclsByName (const DeclContext *DC, DeclarationName Name, const DeclContext *OriginalDC) override

Find all declarations with the given name in the given context, and add them to the context by calling SetExternalVisibleDeclsForName or SetNoExternalVisibleDeclsForName.

void

completeVisibleDeclsMap (const clang::DeclContext *childDeclContext) override

Ensures that the table of all visible declarations inside this context is up to date.

- Public Member Functions inherited from clang::ExternalASTSource

ExternalASTSource ()=default

virtual

~ExternalASTSource ()

uint32_t

getGeneration () const

Get the current generation of this AST source.

virtual Decl *

GetExternalDecl (GlobalDeclID ID)

Resolve a declaration ID into a declaration, potentially building a new declaration.

virtual Selector

GetExternalSelector (uint32_t ID)

Resolve a selector ID into a selector.

virtual uint32_t

GetNumExternalSelectors ()

Returns the number of selectors known to the external AST source.

virtual Stmt *

GetExternalDeclStmt (uint64_t Offset)

Resolve the offset of a statement in the decl stream into a statement.

virtual CXXCtorInitializer **

GetExternalCXXCtorInitializers (uint64_t Offset)

Resolve the offset of a set of C++ constructor initializers in the decl stream into an array of initializers.

virtual CXXBaseSpecifier *

GetExternalCXXBaseSpecifiers (uint64_t Offset)

Resolve the offset of a set of C++ base specifiers in the decl stream into an array of specifiers.

virtual void

updateOutOfDateIdentifier (const IdentifierInfo &II)

Update an out-of-date identifier.

virtual bool

FindExternalVisibleDeclsByName (const DeclContext *DC, DeclarationName Name, const DeclContext *OriginalDC)

Find all declarations with the given name in the given context, and add them to the context by calling SetExternalVisibleDeclsForName or SetNoExternalVisibleDeclsForName.

virtual bool

LoadExternalSpecializations (const Decl *D, bool OnlyPartial)

Load all the external specializations for the Decl.

virtual bool

LoadExternalSpecializations (const Decl *D, ArrayRef< TemplateArgument > TemplateArgs)

Load all the specializations for the Decl.

virtual void

completeVisibleDeclsMap (const DeclContext *DC)

Ensures that the table of all visible declarations inside this context is up to date.

virtual Module *

getModule (unsigned ID)

Retrieve the module that corresponds to the given module ID.

virtual std::optional< ASTSourceDescriptor >

getSourceDescriptor (unsigned ID)

Return a descriptor for the corresponding module, if one exists.

virtual ExtKind

hasExternalDefinitions (const Decl *D)

virtual void

FindExternalLexicalDecls (const DeclContext *DC, llvm::function_ref< bool(Decl::Kind)> IsKindWeWant, SmallVectorImpl< Decl * > &Result)

Finds all declarations lexically contained within the given DeclContext, after applying an optional filter predicate.

void

FindExternalLexicalDecls (const DeclContext *DC, SmallVectorImpl< Decl * > &Result)

Finds all declarations lexically contained within the given DeclContext.

virtual void

FindFileRegionDecls (FileID File, unsigned Offset, unsigned Length, SmallVectorImpl< Decl * > &Decls)

Get the decls that are contained in a file in the Offset/Length range.

virtual void

CompleteRedeclChain (const Decl *D)

Gives the external AST source an opportunity to complete the redeclaration chain for a declaration.

virtual void

CompleteType (TagDecl *Tag)

Gives the external AST source an opportunity to complete an incomplete type.

virtual void

CompleteType (ObjCInterfaceDecl *Class)

Gives the external AST source an opportunity to complete an incomplete Objective-C class.

virtual void

ReadComments ()

Loads comment ranges.

virtual void

StartedDeserializing ()

Notify ExternalASTSource that we started deserialization of a decl or type so until FinishedDeserializing is called there may be decls that are initializing.

virtual void

FinishedDeserializing ()

Notify ExternalASTSource that we finished the deserialization of a decl or type.

virtual void

StartTranslationUnit (ASTConsumer *Consumer)

Function that will be invoked when we begin parsing a new translation unit involving this external AST source.

virtual void

PrintStats ()

Print any statistics that have been gathered regarding the external AST source.

virtual bool

layoutRecordType (const RecordDecl *Record, uint64_t &Size, uint64_t &Alignment, llvm::DenseMap< const FieldDecl *, uint64_t > &FieldOffsets, llvm::DenseMap< const CXXRecordDecl *, CharUnits > &BaseOffsets, llvm::DenseMap< const CXXRecordDecl *, CharUnits > &VirtualBaseOffsets)

Perform layout on the given record.

MemoryBufferSizes

getMemoryBufferSizes () const

Return the amount of memory used by memory buffers, breaking down by heap-backed versus mmap'ed memory.

virtual void

getMemoryBufferSizes (MemoryBufferSizes &sizes) const

virtual bool

isA (const void *ClassID) const

LLVM-style RTTI.

Definition at line 220 of file CodeCompletion.cpp.

Find all declarations with the given name in the given context, and add them to the context by calling SetExternalVisibleDeclsForName or SetNoExternalVisibleDeclsForName.

Parameters

DC The context for lookup in. DC should be a primary context.
Name The name to look for.
OriginalDC The original context for lookup. OriginalDC can provide more information than DC. e.g., The same namespace can appear in multiple module units. So we need the OriginalDC to tell us what the module the lookup come from.

Returns

true if any declarations might have been found, false if we definitely have no declarations with tbis name.

The default implementation of this method is a no-op returning false.

Reimplemented from clang::ExternalASTSource.

Definition at line 274 of file CodeCompletion.cpp.

References clang::DeclContextLookupResult::empty(), clang::IdentifierTable::get(), clang::ASTContext::Idents, and clang::DeclContext::lookup().