clang  6.0.0svn
Public Types | Public Member Functions | Public Attributes | List of all members
clang::StoredDeclsList Struct Reference

An array of decls optimized for the common case of only containing one entry. More...

#include "clang/AST/DeclContextInternals.h"

Collaboration diagram for clang::StoredDeclsList:
Collaboration graph
[legend]

Public Types

using DeclsTy = SmallVector< NamedDecl *, 4 >
 When in vector form, this is what the Data pointer points to. More...
 
using DeclsAndHasExternalTy = llvm::PointerIntPair< DeclsTy *, 1, bool >
 A collection of declarations, with a flag to indicate if we have further external declarations. More...
 

Public Member Functions

 StoredDeclsList ()=default
 
 StoredDeclsList (StoredDeclsList &&RHS)
 
 ~StoredDeclsList ()
 
StoredDeclsListoperator= (StoredDeclsList &&RHS)
 
bool isNull () const
 
NamedDeclgetAsDecl () const
 
DeclsAndHasExternalTy getAsVectorAndHasExternal () const
 
DeclsTygetAsVector () const
 
bool hasExternalDecls () const
 
void setHasExternalDecls ()
 
void setOnlyValue (NamedDecl *ND)
 
void remove (NamedDecl *D)
 
void removeExternalDecls ()
 Remove any declarations which were imported from an external AST source. More...
 
DeclContext::lookup_result getLookupResult ()
 getLookupResult - Return an array of all the decls that this list represents. More...
 
bool HandleRedeclaration (NamedDecl *D, bool IsKnownNewer)
 HandleRedeclaration - If this is a redeclaration of an existing decl, replace the old one with D and return true. More...
 
void AddSubsequentDecl (NamedDecl *D)
 AddSubsequentDecl - This is called on the second and later decl when it is not a redeclaration to merge it into the appropriate place in our list. More...
 

Public Attributes

llvm::PointerUnion< NamedDecl *, DeclsAndHasExternalTyData
 The stored data, which will be either a pointer to a NamedDecl, or a pointer to a vector with a flag to indicate if there are further external declarations. More...
 

Detailed Description

An array of decls optimized for the common case of only containing one entry.

Definition at line 35 of file DeclContextInternals.h.

Member Typedef Documentation

◆ DeclsAndHasExternalTy

using clang::StoredDeclsList::DeclsAndHasExternalTy = llvm::PointerIntPair<DeclsTy *, 1, bool>

A collection of declarations, with a flag to indicate if we have further external declarations.

Definition at line 41 of file DeclContextInternals.h.

◆ DeclsTy

When in vector form, this is what the Data pointer points to.

Definition at line 37 of file DeclContextInternals.h.

Constructor & Destructor Documentation

◆ StoredDeclsList() [1/2]

clang::StoredDeclsList::StoredDeclsList ( )
default

Referenced by removeExternalDecls().

◆ StoredDeclsList() [2/2]

clang::StoredDeclsList::StoredDeclsList ( StoredDeclsList &&  RHS)
inline

Definition at line 51 of file DeclContextInternals.h.

◆ ~StoredDeclsList()

clang::StoredDeclsList::~StoredDeclsList ( )
inline

Definition at line 55 of file DeclContextInternals.h.

References getAsVector().

Member Function Documentation

◆ AddSubsequentDecl()

void clang::StoredDeclsList::AddSubsequentDecl ( NamedDecl D)
inline

AddSubsequentDecl - This is called on the second and later decl when it is not a redeclaration to merge it into the appropriate place in our list.

Definition at line 191 of file DeclContextInternals.h.

References getAsDecl(), getAsVector(), clang::Decl::getIdentifierNamespace(), clang::Decl::hasTagIdentifierNamespace(), clang::Decl::IDNS_Using, and isNull().

Referenced by clang::DeclContext::makeDeclVisibleInContext().

◆ getAsDecl()

NamedDecl* clang::StoredDeclsList::getAsDecl ( ) const
inline

◆ getAsVector()

DeclsTy* clang::StoredDeclsList::getAsVector ( ) const
inline

◆ getAsVectorAndHasExternal()

DeclsAndHasExternalTy clang::StoredDeclsList::getAsVectorAndHasExternal ( ) const
inline

Definition at line 75 of file DeclContextInternals.h.

Referenced by getAsVector(), and hasExternalDecls().

◆ getLookupResult()

DeclContext::lookup_result clang::StoredDeclsList::getLookupResult ( )
inline

getLookupResult - Return an array of all the decls that this list represents.

Definition at line 145 of file DeclContextInternals.h.

References getAsDecl(), getAsVector(), and isNull().

◆ HandleRedeclaration()

bool clang::StoredDeclsList::HandleRedeclaration ( NamedDecl D,
bool  IsKnownNewer 
)
inline

HandleRedeclaration - If this is a redeclaration of an existing decl, replace the old one with D and return true.

Otherwise return false.

Definition at line 166 of file DeclContextInternals.h.

References clang::NamedDecl::declarationReplaces(), getAsDecl(), getAsVector(), and setOnlyValue().

Referenced by clang::DeclContext::makeDeclVisibleInContext().

◆ hasExternalDecls()

bool clang::StoredDeclsList::hasExternalDecls ( ) const
inline

Definition at line 83 of file DeclContextInternals.h.

References getAsVectorAndHasExternal().

◆ isNull()

bool clang::StoredDeclsList::isNull ( ) const
inline

◆ operator=()

StoredDeclsList& clang::StoredDeclsList::operator= ( StoredDeclsList &&  RHS)
inline

Definition at line 61 of file DeclContextInternals.h.

References Data, and getAsVector().

◆ remove()

void clang::StoredDeclsList::remove ( NamedDecl D)
inline

Definition at line 107 of file DeclContextInternals.h.

References getAsDecl(), getAsVector(), and isNull().

◆ removeExternalDecls()

void clang::StoredDeclsList::removeExternalDecls ( )
inline

Remove any declarations which were imported from an external AST source.

Definition at line 127 of file DeclContextInternals.h.

References getAsDecl(), getAsVector(), isNull(), and StoredDeclsList().

◆ setHasExternalDecls()

void clang::StoredDeclsList::setHasExternalDecls ( )
inline

Definition at line 87 of file DeclContextInternals.h.

References getAsDecl(), and getAsVector().

Referenced by clang::DeclContext::makeDeclVisibleInContext().

◆ setOnlyValue()

void clang::StoredDeclsList::setOnlyValue ( NamedDecl ND)
inline

Member Data Documentation

◆ Data

llvm::PointerUnion<NamedDecl *, DeclsAndHasExternalTy> clang::StoredDeclsList::Data

The stored data, which will be either a pointer to a NamedDecl, or a pointer to a vector with a flag to indicate if there are further external declarations.

Definition at line 46 of file DeclContextInternals.h.

Referenced by operator=().


The documentation for this struct was generated from the following file: