top | up | prev | next

ClassTemplateRepository Class

Definition at line 23 of ClassTemplateRepository.hpp

Constructors

ClassTemplateRepository(BoundCompileUnit& boundCompileUnit_)

Member Functions

void BindClassTemplateSpecialization(ClassTemplateSpecializationSymbol* classTemplateSpecialization, ContainerScope* containerScope, const Span& span, const boost::uuids::uuid& moduleId)
bool Instantiate(FunctionSymbol* memberFunction, ContainerScope* containerScope, BoundFunction* currentFunction, const Span& span, const boost::uuids::uuid& moduleId)
bool InstantiateDestructorAndVirtualFunctions(ClassTemplateSpecializationSymbol* classTemplateSpecialization, ContainerScope* containerScope, BoundFunction* currentFunction, const Span& span, const boost::uuids::uuid& moduleId)
void ResolveDefaultTemplateArguments(std::vector<TypeSymbol*>& templateArgumentTypes, ClassTypeSymbol* classTemplate, ContainerScope* containerScope, const Span& span, const boost::uuids::uuid& moduleId)

Member Variables

BoundCompileUnit& boundCompileUnit
std::unordered_set<std::pair<boost::uuids::uuid, int>, ClassIdMemberFunctionIndexHash> classIdMemberFunctionIndexSet
std::unordered_set<FunctionSymbol*> instantiatedMemberFunctions

Constructor Details

ClassTemplateRepository Constructor

cmajor::binder::ClassTemplateRepository::ClassTemplateRepository(BoundCompileUnit & boundCompileUnit_)

Definition at line 31 of ClassTemplateRepository.cpp :
 31 : boundCompileUnit(boundCompileUnit_)
 32 {
 33 }


Declaration at line 26 of ClassTemplateRepository.hpp


Member Function Details

BindClassTemplateSpecialization Member Function

void cmajor::binder::ClassTemplateRepository::BindClassTemplateSpecialization(ClassTemplateSpecializationSymbol* classTemplateSpecialization, ContainerScope* containerScope, const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 113 of ClassTemplateRepository.cpp

Calls: cmajor::binder::BoundCompileUnit::AddFileScope , cmajor::binder::BoundCompileUnit::BindingTypes , cmajor::binder::BoundCompileUnit::GetCompileUnitNode , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundCompileUnit::ReleaseLastFileScope , cmajor::binder::BoundCompileUnit::RemoveLastFileScope , cmajor::binder::TypeBinder::CreateMemberSymbols , cmajor::binder::TypeBinder::SetContainerScope

Called by: cmajor::binder::BoundCompileUnit::GetConversion , cmajor::binder::BoundFunction::AddTemporaryDestructorCall , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::TypeBinder::BindClassTemplate , cmajor::binder::TypeBinder::Visit , cmajor::binder::TypeResolver::Visit


Instantiate Member Function

bool cmajor::binder::ClassTemplateRepository::Instantiate(FunctionSymbol* memberFunction, ContainerScope* containerScope, BoundFunction * currentFunction, const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 237 of ClassTemplateRepository.cpp

Calls: cmajor::binder::BoundCompileUnit::AddBoundNode , cmajor::binder::BoundCompileUnit::AddFileScope , cmajor::binder::BoundCompileUnit::FinalizeBinding , cmajor::binder::BoundCompileUnit::GetCompileUnitNode , cmajor::binder::BoundCompileUnit::GetModule , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundCompileUnit::RemoveLastFileScope , cmajor::binder::BoundNode::GetBoundNodeType , cmajor::binder::ClassTemplateRepository::InstantiateDestructorAndVirtualFunctions , cmajor::binder::StatementBinder::ReleaseStatement , cmajor::binder::StatementBinder::SetContainerScope , cmajor::binder::StatementBinder::SetCurrentClass , cmajor::binder::StatementBinder::SetCurrentConstructor , cmajor::binder::StatementBinder::SetCurrentDestructor , cmajor::binder::StatementBinder::SetCurrentFunction , cmajor::binder::StatementBinder::SetCurrentMemberFunction , cmajor::binder::TypeBinder::SetContainerScope , cmajor::binder::TypeBinder::SetCurrentFunctionSymbol , cmajor::symbols::Module::GetLock , cmajor::symbols::SymbolTable::AddFunctionSymbol

Called by: cmajor::binder::BoundCompileUnit::InstantiateClassTemplateMemberFunction , cmajor::binder::BoundFunction::AddTemporaryDestructorCall , cmajor::binder::ClassTemplateRepository::InstantiateDestructorAndVirtualFunctions


InstantiateDestructorAndVirtualFunctions Member Function

bool cmajor::binder::ClassTemplateRepository::InstantiateDestructorAndVirtualFunctions(ClassTemplateSpecializationSymbol* classTemplateSpecialization, ContainerScope* containerScope, BoundFunction * currentFunction, const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 420 of ClassTemplateRepository.cpp

Calls: cmajor::binder::ClassTemplateRepository::Instantiate

Called by: cmajor::binder::ClassTemplateRepository::Instantiate


ResolveDefaultTemplateArguments Member Function

void cmajor::binder::ClassTemplateRepository::ResolveDefaultTemplateArguments(std::vector<TypeSymbol*>& templateArgumentTypes, ClassTypeSymbol* classTemplate, ContainerScope* containerScope, const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 35 of ClassTemplateRepository.cpp

Calls: cmajor::binder::BoundCompileUnit::AddFileScope , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundCompileUnit::RemoveLastFileScope

Called by: cmajor::binder::ExpressionBinder::Visit , cmajor::binder::TypeResolver::Visit


top | up | prev | next