top | up | prev | next

BoundDereferenceExpression Class

Definition at line 236 of BoundExpression.hpp

Constructors

BoundDereferenceExpression(std::unique_ptr<BoundExpression>&& subject_, TypeSymbol* type_)

Member Functions

void Accept(BoundNodeVisitor& visitor) override
BoundExpression* Clone() override
bool ContainsExceptionCapture() const override
bool IsLvalueExpression() const override
void Load(Emitter& emitter, OperationFlags flags) override
void Store(Emitter& emitter, OperationFlags flags) override
std::unique_ptr<BoundExpression>& Subject()
std::string TypeString() const override

Member Variables

std::unique_ptr<BoundExpression> subject

Constructor Details

BoundDereferenceExpression Constructor

cmajor::binder::BoundDereferenceExpression::BoundDereferenceExpression(std::unique_ptr<BoundExpression >&& subject_, TypeSymbol* type_)

Definition at line 677 of BoundExpression.cpp :
 677 :
 678 BoundExpression(subject_->GetSpan()subject_->ModuleId()BoundNodeType::boundDereferenceExpressiontype_)subject(std::move(subject_))
 679 {
 680     subject->MoveTemporaryDestructorCallsTo(*this);
 681 }



Member Function Details

Accept Member Function

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

Definition at line 725 of BoundExpression.cpp :
 726 {
 727     visitor.Visit(*this);
 728 }


Declaration at line 243 of BoundExpression.hpp

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

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


Clone Member Function

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

Definition at line 683 of BoundExpression.cpp :
 684 {
 685     std::unique_ptr<BoundExpression> clonedSubject;
 686     clonedSubject.reset(subject->Clone());
 687     return new BoundDereferenceExpression(std::move(clonedSubject)GetType());
 688 }


Declaration at line 240 of BoundExpression.hpp

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

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

Called by: cmajor::binder::BoundDereferenceExpression::Clone


ContainsExceptionCapture Member Function

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

Definition at line 730 of BoundExpression.cpp
Declaration at line 247 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundDereferenceExpression::ContainsExceptionCapture , cmajor::binder::BoundExpression::ContainsExceptionCapture

Called by: cmajor::binder::BoundDereferenceExpression::ContainsExceptionCapture


IsLvalueExpression Member Function

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

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

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


Load Member Function

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

Definition at line 690 of BoundExpression.cpp
Declaration at line 241 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundAddressOfExpression::Subject , cmajor::binder::BoundDereferenceExpression::Load , cmajor::binder::BoundExpression::DestroyTemporaries , cmajor::binder::BoundNode::GetBoundNodeType

Called by: cmajor::binder::BoundDereferenceExpression::Load


Store Member Function

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

Definition at line 711 of BoundExpression.cpp
Declaration at line 242 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundAddressOfExpression::Subject , cmajor::binder::BoundDereferenceExpression::Store , cmajor::binder::BoundExpression::DestroyTemporaries , cmajor::binder::BoundNode::GetBoundNodeType

Called by: cmajor::binder::BoundDereferenceExpression::Store


Subject Member Function

std::unique_ptr<BoundExpression >& cmajor::binder::BoundDereferenceExpression::Subject()

Definition at line 246 of BoundExpression.hpp :
246 { return subject; }

Called by: cmajor::binder::BoundAddressOfExpression::Load , cmajor::binder::BoundAddressOfExpression::Store , cmajor::binder::ExpressionBinder::Visit


TypeString Member Function

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

Definition at line 244 of BoundExpression.hpp :
244 { return "deference expression"; }

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


top | up | prev | next