top | up | prev | next

BoundConstructExpression Class

Definition at line 334 of BoundExpression.hpp

Constructors

BoundConstructExpression(std::unique_ptr<BoundExpression>&& constructorCall_, TypeSymbol* resultType_)

Member Functions

void Accept(BoundNodeVisitor& visitor) override
BoundExpression* Clone() override
BoundExpression* ConstructorCall()
bool ContainsExceptionCapture() const override
bool HasValue() const override
void Load(Emitter& emitter, OperationFlags flags) override
void Store(Emitter& emitter, OperationFlags flags) override
std::string TypeString() const override

Member Variables

std::unique_ptr<BoundExpression> constructorCall

Constructor Details

BoundConstructExpression Constructor

cmajor::binder::BoundConstructExpression::BoundConstructExpression(std::unique_ptr<BoundExpression >&& constructorCall_, TypeSymbol* resultType_)

Definition at line 1255 of BoundExpression.cpp :
1255 :
1256 BoundExpression(constructorCall_->GetSpan()constructorCall_->ModuleId()BoundNodeType::boundConstructExpressionresultType_)constructorCall(std::move(constructorCall_))
1257 {
1258     constructorCall->MoveTemporaryDestructorCallsTo(*this);
1259 }



Member Function Details

Accept Member Function

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

Definition at line 1298 of BoundExpression.cpp :
1299 {
1300     visitor.Visit(*this);
1301 }


Declaration at line 341 of BoundExpression.hpp

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

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


Clone Member Function

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

Definition at line 1261 of BoundExpression.cpp :
1262 {
1263     std::unique_ptr<BoundExpression> clonedConstructorCall;
1264     clonedConstructorCall.reset(constructorCall->Clone());
1265     return new BoundConstructExpression(std::move(clonedConstructorCall)GetType());
1266 }


Declaration at line 338 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundConstructExpression::Clone , cmajor::binder::BoundExpression::GetType

Called by: cmajor::binder::BoundConstructExpression::Clone


ConstructorCall Member Function

BoundExpression * cmajor::binder::BoundConstructExpression::ConstructorCall()

Definition at line 345 of BoundExpression.hpp :
345 { return constructorCall.get(); }


ContainsExceptionCapture Member Function

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

Definition at line 1303 of BoundExpression.cpp :
1304 {
1305     if (BoundExpression::ContainsExceptionCapture())
1306     {
1307         return true;
1308     }
1309     return constructorCall->ContainsExceptionCapture();
1310 }


Declaration at line 344 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundConstructExpression::ContainsExceptionCapture , cmajor::binder::BoundExpression::ContainsExceptionCapture

Called by: cmajor::binder::BoundConstructExpression::ContainsExceptionCapture


HasValue Member Function

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

Definition at line 342 of BoundExpression.hpp :
342 { return true; }

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


Load Member Function

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

Definition at line 1268 of BoundExpression.cpp
Declaration at line 339 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundConstructExpression::Load , cmajor::binder::BoundExpression::DestroyTemporaries , cmajor::binder::BoundNode::GetSpan , cmajor::binder::BoundNode::ModuleId , cmajor::ir::Emitter::GetObjectPointer , cmajor::ir::Emitter::SetObjectPointer , cmajor::ir::Emitter::Stack , cmajor::ir::ValueStack::Push

Called by: cmajor::binder::BoundConstructExpression::Load


Store Member Function

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

Definition at line 1293 of BoundExpression.cpp :
1294 {
1295     throw Exception("cannot store to construct expression"GetSpan()ModuleId());
1296 }


Declaration at line 340 of BoundExpression.hpp

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

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


TypeString Member Function

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

Definition at line 343 of BoundExpression.hpp :
343 { return "construct expression"; }

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


top | up | prev | next