[AST][NFC] Small doc update for DeclContext

Factored out from https://reviews.llvm.org/D49729
following @erichkeane comments.

* Add missing classes in the list of classes
  deriving directly from DeclContext.
* Move the friend declarations together and
  add a comment for why they are required.

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D49790

llvm-svn: 338887
This commit is contained in:
Bruno Ricci 2018-08-03 13:31:20 +00:00
parent 480a6c1a0b
commit c5176cf77e
1 changed files with 15 additions and 8 deletions

View File

@ -1250,16 +1250,29 @@ public:
/// that directly derive from DeclContext are mentioned, not their subclasses): /// that directly derive from DeclContext are mentioned, not their subclasses):
/// ///
/// TranslationUnitDecl /// TranslationUnitDecl
/// ExternCContext
/// NamespaceDecl /// NamespaceDecl
/// FunctionDecl
/// TagDecl /// TagDecl
/// OMPDeclareReductionDecl
/// FunctionDecl
/// ObjCMethodDecl /// ObjCMethodDecl
/// ObjCContainerDecl /// ObjCContainerDecl
/// LinkageSpecDecl /// LinkageSpecDecl
/// ExportDecl /// ExportDecl
/// BlockDecl /// BlockDecl
/// OMPDeclareReductionDecl /// CapturedDecl
class DeclContext { class DeclContext {
/// For makeDeclVisibleInContextImpl
friend class ASTDeclReader;
/// For reconcileExternalVisibleStorage, CreateStoredDeclsMap,
/// hasNeedToReconcileExternalVisibleStorage
friend class ExternalASTSource;
/// For CreateStoredDeclsMap
friend class DependentDiagnostic;
/// For hasNeedToReconcileExternalVisibleStorage,
/// hasLazyLocalLexicalLookups, hasLazyExternalLexicalLookups
friend class ASTWriter;
// We use uint64_t in the bit-fields below since some bit-fields // We use uint64_t in the bit-fields below since some bit-fields
// cross the unsigned boundary and this breaks the packing. // cross the unsigned boundary and this breaks the packing.
@ -1716,10 +1729,6 @@ protected:
"BlockDeclBitfields is larger than 8 bytes!"); "BlockDeclBitfields is larger than 8 bytes!");
}; };
friend class ASTDeclReader;
friend class ASTWriter;
friend class ExternalASTSource;
/// FirstDecl - The first declaration stored within this declaration /// FirstDecl - The first declaration stored within this declaration
/// context. /// context.
mutable Decl *FirstDecl = nullptr; mutable Decl *FirstDecl = nullptr;
@ -2398,8 +2407,6 @@ private:
DeclContextBits.HasLazyExternalLexicalLookups = HasLELL; DeclContextBits.HasLazyExternalLexicalLookups = HasLELL;
} }
friend class DependentDiagnostic;
void reconcileExternalVisibleStorage() const; void reconcileExternalVisibleStorage() const;
bool LoadLexicalDeclsFromExternalStorage() const; bool LoadLexicalDeclsFromExternalStorage() const;