top | up | prev | next

BoundDelegateCall Class

Definition at line 294 of BoundExpression.hpp

Constructors

BoundDelegateCall(const Span& span_, const boost::uuids::uuid& moduleId_, DelegateTypeSymbol* delegateType_)

Member Functions

void Accept(BoundNodeVisitor& visitor) override
void AddArgument(std::unique_ptr<BoundExpression>&& argument)
const std::vector<std::unique_ptr<BoundExpression>>& Arguments() const
BoundExpression* Clone() override
bool ContainsExceptionCapture() const override
DelegateTypeSymbol* GetDelegateSymbol()
bool HasValue() const override
bool IsLvalueExpression() const override
void Load(Emitter& emitter, OperationFlags flags) override
void Store(Emitter& emitter, OperationFlags flags) override
std::string TypeString() const override

Member Variables

std::vector<std::unique_ptr<BoundExpression>> arguments
DelegateTypeSymbol* delegateTypeSymbol

Constructor Details

BoundDelegateCall Constructor

cmajor::binder::BoundDelegateCall::BoundDelegateCall(const Span& span_, const boost::uuids::uuid& moduleId_, DelegateTypeSymbol* delegateType_)

Definition at line 991 of BoundExpression.cpp :
 991 :
 992 BoundExpression(span_moduleId_BoundNodeType::boundDelegateCalldelegateType_->ReturnType())delegateTypeSymbol(delegateType_)arguments()
 993 {
 994 }



Member Function Details

Accept Member Function

void cmajor::binder::BoundDelegateCall::Accept(BoundNodeVisitor & visitor) override

Definition at line 1082 of BoundExpression.cpp :
1083 {
1084     visitor.Visit(*this);
1085 }


Declaration at line 301 of BoundExpression.hpp

Base class overridden functions: cmajor::binder::BoundNode::Accept

Calls: cmajor::binder::BoundNodeVisitor::Visit


AddArgument Member Function

void cmajor::binder::BoundDelegateCall::AddArgument(std::unique_ptr<BoundExpression >&& argument)

Definition at line 1102 of BoundExpression.cpp :
1103 {
1104     arguments.push_back(std::move(argument));
1105 }


Declaration at line 306 of BoundExpression.hpp

Called by: cmajor::binder::ExpressionBinder::Visit


Arguments Member Function

const std::vector<std::unique_ptr<BoundExpression >>& cmajor::binder::BoundDelegateCall::Arguments() const

Definition at line 307 of BoundExpression.hpp :
307 { return arguments; }

Called by: cmajor::binder::ExpressionBinder::Visit


Clone Member Function

BoundExpression * cmajor::binder::BoundDelegateCall::Clone() override

Definition at line 996 of BoundExpression.cpp :
 997 {
 998     return new BoundDelegateCall(GetSpan()ModuleId()delegateTypeSymbol);
 999 }


Declaration at line 298 of BoundExpression.hpp

Base class overridden functions: cmajor::binder::BoundExpression::Clone

Calls: cmajor::binder::BoundNode::GetSpan , cmajor::binder::BoundNode::ModuleId


ContainsExceptionCapture Member Function

bool cmajor::binder::BoundDelegateCall::ContainsExceptionCapture() const override

Definition at line 1107 of BoundExpression.cpp
Declaration at line 308 of BoundExpression.hpp

Base class overridden functions: cmajor::binder::BoundExpression::ContainsExceptionCapture

Calls: cmajor::binder::BoundDelegateCall::ContainsExceptionCapture , cmajor::binder::BoundExpression::ContainsExceptionCapture

Called by: cmajor::binder::BoundDelegateCall::ContainsExceptionCapture


GetDelegateSymbol Member Function

DelegateTypeSymbol * cmajor::binder::BoundDelegateCall::GetDelegateSymbol()

Definition at line 305 of BoundExpression.hpp :
305 { return delegateTypeSymbol; }


HasValue Member Function

bool cmajor::binder::BoundDelegateCall::HasValue() const override

Definition at line 1087 of BoundExpression.cpp :
1088 {
1089     return delegateTypeSymbol->ReturnType()->GetSymbolType() != SymbolType::voidTypeSymbol;
1090 }


Declaration at line 302 of BoundExpression.hpp

Base class overridden functions: cmajor::binder::BoundExpression::HasValue

Calls: cmajor::symbols::DelegateTypeSymbol::ReturnType , cmajor::symbols::Symbol::GetSymbolType


IsLvalueExpression Member Function

bool cmajor::binder::BoundDelegateCall::IsLvalueExpression() const override

Definition at line 1092 of BoundExpression.cpp :
1093 {
1094     TypeSymbol* returnType = delegateTypeSymbol->ReturnType();
1095     if (returnType->GetSymbolType() != SymbolType::voidTypeSymbol)
1096     {
1097         return !returnType->IsConstType() && returnType->IsLvalueReferenceType();
1098     }
1099     return false;
1100 }


Declaration at line 304 of BoundExpression.hpp

Base class overridden functions: cmajor::binder::BoundExpression::IsLvalueExpression

Calls: cmajor::symbols::DelegateTypeSymbol::ReturnType


Load Member Function

void cmajor::binder::BoundDelegateCall::Load(Emitter & emitter, OperationFlags flags) override

Definition at line 1001 of BoundExpression.cpp
Declaration at line 299 of BoundExpression.hpp

Base class overridden functions: cmajor::ir::GenObject::Load

Calls: cmajor::binder::BoundExpression::DestroyTemporaries , cmajor::binder::BoundExpression::GetType , cmajor::binder::BoundNode::GetSpan , cmajor::binder::BoundNode::ModuleId , cmajor::ir::Emitter::CreateLoad , cmajor::ir::Emitter::SetLineNumber , cmajor::ir::Emitter::Stack , cmajor::ir::GenObject::SetType , cmajor::ir::ValueStack::Pop , cmajor::ir::ValueStack::Push , cmajor::symbols::DelegateTypeSymbol::GenerateCall , cmajor::symbols::Symbol::IsNothrow


Store Member Function

void cmajor::binder::BoundDelegateCall::Store(Emitter & emitter, OperationFlags flags) override

Definition at line 1035 of BoundExpression.cpp
Declaration at line 300 of BoundExpression.hpp

Base class overridden functions: cmajor::ir::GenObject::Store

Calls: cmajor::binder::BoundExpression::DestroyTemporaries , cmajor::binder::BoundExpression::GetFlag , cmajor::binder::BoundExpression::GetType , cmajor::binder::BoundNode::GetSpan , cmajor::binder::BoundNode::ModuleId , cmajor::ir::Emitter::CreateLoad , cmajor::ir::Emitter::CreateStore , cmajor::ir::Emitter::SaveObjectPointer , cmajor::ir::Emitter::SetLineNumber , cmajor::ir::Emitter::Stack , cmajor::ir::GenObject::SetType , cmajor::ir::ValueStack::Pop , cmajor::symbols::DelegateTypeSymbol::GenerateCall , cmajor::symbols::Symbol::IsNothrow


TypeString Member Function

std::string cmajor::binder::BoundDelegateCall::TypeString() const override

Definition at line 303 of BoundExpression.hpp :
303 { return "delegate call"; }

Base class overridden functions: cmajor::binder::BoundExpression::TypeString


top | up | prev | next