clang 20.0.0git
|
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. | |
![]() | |
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. | |
Additional Inherited Members | |
![]() | |
enum | ExtKind { EK_Always , EK_Never , EK_ReplyHazy } |
![]() | |
static bool | classof (const ExternalASTSource *S) |
![]() | |
uint32_t | incrementGeneration (ASTContext &C) |
Increment the current generation. | |
![]() | |
static DeclContextLookupResult | SetExternalVisibleDeclsForName (const DeclContext *DC, DeclarationName Name, ArrayRef< NamedDecl * > Decls) |
static DeclContextLookupResult | SetNoExternalVisibleDeclsForName (const DeclContext *DC, DeclarationName Name) |
Definition at line 220 of file CodeCompletion.cpp.
clang::ExternalSource::ExternalSource | ( | ASTContext & | ChildASTCtxt, |
FileManager & | ChildFM, | ||
ASTContext & | ParentASTCtxt, | ||
FileManager & | ParentFM | ||
) |
Definition at line 263 of file CodeCompletion.cpp.
|
overridevirtual |
Ensures that the table of all visible declarations inside this context is up to date.
The default implementation of this function is a no-op.
Reimplemented from clang::ExternalASTSource.
Definition at line 292 of file CodeCompletion.cpp.
References clang::NamedDecl::getDeclName(), clang::Decl::getPreviousDecl(), clang::DeclContext::hasExternalVisibleStorage(), clang::ExternalASTSource::SetExternalVisibleDeclsForName(), and clang::DeclContext::setHasExternalLexicalStorage().
|
overridevirtual |
Find all declarations with the given name in the given context, and add them to the context by calling SetExternalVisibleDeclsForName or SetNoExternalVisibleDeclsForName.
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. |
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().