top | up | prev | next

BoundClassDelegateCall Class

Definition at line 314 of BoundExpression.hpp

Constructors

BoundClassDelegateCall(const Span& span_, const boost::uuids::uuid& moduleId_, ClassDelegateTypeSymbol* classDelegateType_)

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
ClassDelegateTypeSymbol* GetClassDelegateSymbol()
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
ClassDelegateTypeSymbol* classDelegateTypeSymbol

Constructor Details

BoundClassDelegateCall Constructor

cmajor::binder::BoundClassDelegateCall::BoundClassDelegateCall(const Span& span_, const boost::uuids::uuid& moduleId_, ClassDelegateTypeSymbol* classDelegateType_)

Definition at line 1123 of BoundExpression.cpp :
1123 :
1124 BoundExpression(span_moduleId_BoundNodeType::boundClassDelegateCallclassDelegateType_->ReturnType())classDelegateTypeSymbol(classDelegateType_)arguments()
1125 {
1126 }



Member Function Details

Accept Member Function

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

Definition at line 1214 of BoundExpression.cpp :
1215 {
1216     visitor.Visit(*this);
1217 }


Declaration at line 321 of BoundExpression.hpp

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

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


AddArgument Member Function

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

Definition at line 1234 of BoundExpression.cpp :
1235 {
1236     arguments.push_back(std::move(argument));
1237 }


Declaration at line 326 of BoundExpression.hpp

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


Arguments Member Function

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

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

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


Clone Member Function

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

Definition at line 1128 of BoundExpression.cpp :
1129 {
1130     return new BoundClassDelegateCall(GetSpan()ModuleId()classDelegateTypeSymbol);
1131 }


Declaration at line 318 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::BoundClassDelegateCall::ContainsExceptionCapture() const override

Definition at line 1239 of BoundExpression.cpp
Declaration at line 328 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundClassDelegateCall::ContainsExceptionCapture , cmajor::binder::BoundExpression::ContainsExceptionCapture

Called by: cmajor::binder::BoundClassDelegateCall::ContainsExceptionCapture


GetClassDelegateSymbol Member Function

ClassDelegateTypeSymbol * cmajor::binder::BoundClassDelegateCall::GetClassDelegateSymbol()

Definition at line 325 of BoundExpression.hpp :
325 { return classDelegateTypeSymbol; }


HasValue Member Function

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

Definition at line 1219 of BoundExpression.cpp :
1220 {
1221     return classDelegateTypeSymbol->ReturnType()->GetSymbolType() != SymbolType::voidTypeSymbol;
1222 }


Declaration at line 322 of BoundExpression.hpp

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

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


IsLvalueExpression Member Function

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

Definition at line 1224 of BoundExpression.cpp :
1225 {
1226     TypeSymbol* returnType = classDelegateTypeSymbol->ReturnType();
1227     if (returnType->GetSymbolType() != SymbolType::voidTypeSymbol)
1228     {
1229         return !returnType->IsConstType() && returnType->IsLvalueReferenceType();
1230     }
1231     return false;
1232 }


Declaration at line 324 of BoundExpression.hpp

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

Calls: cmajor::symbols::ClassDelegateTypeSymbol::ReturnType


Load Member Function

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

Definition at line 1133 of BoundExpression.cpp
Declaration at line 319 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::ClassDelegateTypeSymbol::GenerateCall , cmajor::symbols::Symbol::IsNothrow


Store Member Function

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

Definition at line 1167 of BoundExpression.cpp
Declaration at line 320 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::ClassDelegateTypeSymbol::GenerateCall , cmajor::symbols::Symbol::IsNothrow


TypeString Member Function

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

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

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


top | up | prev | next