top | up | prev | next

ClassCopyConstructorOperation Abstract Class

Definition at line 2275 of OperationRepository.cpp

Constructors

ClassCopyConstructorOperation(BoundCompileUnit& boundCompileUnit_)

Member Functions

void AddFunction(std::unique_ptr<FunctionSymbol>&& function)
void CollectViableFunctions(ContainerScope* containerScope, const std::vector<std::unique_ptr<BoundExpression>>& arguments, BoundFunction* currentFunction, ViableFunctionSet& viableFunctions, std::unique_ptr<Exception>& exception, const Span& span, const boost::uuids::uuid& moduleId, CollectFlags flags) override
bool GenerateImplementation(ClassCopyConstructor* copyConstructor, ContainerScope* containerScope, BoundFunction* currentFunction, std::unique_ptr<Exception>& exception, const Span& span, const boost::uuids::uuid& moduleId)

Member Variables

std::unordered_map<boost::uuids::uuid, FunctionSymbol*, boost::hash<boost::uuids::uuid>> functionMap
std::vector<std::unique_ptr<FunctionSymbol>> functions

Constructor Details

ClassCopyConstructorOperation Constructor

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

Definition at line 2289 of OperationRepository.cpp :
2289 : Operation(U"@constructor"2boundCompileUnit_)
2290 {
2291 }


Declaration at line 2278 of OperationRepository.cpp


Member Function Details

AddFunction Member Function

void cmajor::binder::ClassCopyConstructorOperation::AddFunction(std::unique_ptr<FunctionSymbol>&& function)

Definition at line 2283 of OperationRepository.cpp :
2283 { functions.push_back(std::move(function)); }


CollectViableFunctions Member Function

void cmajor::binder::ClassCopyConstructorOperation::CollectViableFunctions(ContainerScope* containerScope, const std::vector<std::unique_ptr<BoundExpression >>& arguments, BoundFunction * currentFunction, ViableFunctionSet& viableFunctions, std::unique_ptr<Exception>& exception, const Span& span, const boost::uuids::uuid& moduleId, CollectFlags flags) override

Definition at line 2293 of OperationRepository.cpp
Declaration at line 2279 of OperationRepository.cpp

Calls: cmajor::binder::BoundCompileUnit::AddCopyConstructorToMap , cmajor::binder::BoundCompileUnit::FinalizeBinding , cmajor::binder::BoundCompileUnit::GetCompileUnitNode , cmajor::binder::BoundCompileUnit::GetConversion , cmajor::binder::BoundCompileUnit::GetCopyConstructorFor , cmajor::binder::BoundCompileUnit::GetModule , cmajor::binder::BoundCompileUnit::HasCopyConstructorFor , cmajor::binder::ClassCopyConstructorOperation::GenerateImplementation , cmajor::binder::Operation::GetBoundCompileUnit


GenerateImplementation Member Function

bool cmajor::binder::ClassCopyConstructorOperation::GenerateImplementation(ClassCopyConstructor * copyConstructor, ContainerScope* containerScope, BoundFunction * currentFunction, std::unique_ptr<Exception>& exception, const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 2368 of OperationRepository.cpp
Declaration at line 2281 of OperationRepository.cpp

Calls: cmajor::binder::BoundCompileUnit::AddBoundNode , cmajor::binder::BoundCompileUnit::GetConversion , cmajor::binder::BoundExpression::GetType , cmajor::binder::BoundMemberVariable::SetClassPtr , cmajor::binder::ClassCopyConstructor::ClassType , cmajor::binder::Operation::GetBoundCompileUnit , cmajor::symbols::TypeSymbol::AddPointer

Called by: cmajor::binder::ClassCopyConstructorOperation::CollectViableFunctions , cmajor::binder::OperationRepository::GenerateCopyConstructorFor


top | up | prev | next