top | up | prev | next

BoundConcept Class

Definition at line 73 of BoundConstraint.hpp

Constructors

BoundConcept(ConceptSymbol* conceptSymbol_, const std::vector<TypeSymbol*>& typeArguments_, const Span& span_, const boost::uuids::uuid& moduleId_)

Member Functions

void Accept(BoundNodeVisitor& visitor) override
void AddBoundTemplateParameter(std::unique_ptr<BoundTemplateParameterSymbol>&& boundTemplateParameter)
int Arity() const
TypeSymbol* CommonType() const
BoundConstraint* GetBoundConstraint()
ConceptSymbol* GetConceptSymbol() const
void Load(Emitter& emitter, OperationFlags flags) override
void SetBoundConstraint(std::unique_ptr<BoundConstraint>&& boundConstraint_)
void SetCommonType(TypeSymbol* commonType_)
void Store(Emitter& emitter, OperationFlags flags) override
const std::vector<TypeSymbol*>& TypeArguments() const

Member Variables

std::unique_ptr<BoundConstraint> boundConstraint
std::vector<std::unique_ptr<BoundTemplateParameterSymbol>> boundTemplateParameters
TypeSymbol* commonType
ConceptSymbol* conceptSymbol
std::u32string name
std::vector<TypeSymbol*> typeArguments

Constructor Details

BoundConcept Constructor

cmajor::binder::BoundConcept::BoundConcept(ConceptSymbol* conceptSymbol_, const std::vector<TypeSymbol*>& typeArguments_, const Span& span_, const boost::uuids::uuid& moduleId_)

Definition at line 256 of BoundConstraint.cpp :
256 :
257 BoundNode(span_moduleId_BoundNodeType::boundConcept)name(MakeBoundConceptName(conceptSymbol_typeArguments_))conceptSymbol(conceptSymbol_)typeArguments(typeArguments_)
258 commonType(nullptr)
259 {
260 }



Member Function Details

Accept Member Function

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

Definition at line 272 of BoundConstraint.cpp :
273 {
274     throw Exception("cannot visit bound concept"GetSpan()ModuleId());
275 }


Declaration at line 79 of BoundConstraint.hpp

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

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


AddBoundTemplateParameter Member Function

void cmajor::binder::BoundConcept::AddBoundTemplateParameter(std::unique_ptr<BoundTemplateParameterSymbol>&& boundTemplateParameter)

Definition at line 282 of BoundConstraint.cpp :
283 {
284     boundTemplateParameters.push_back(std::move(boundTemplateParameter));
285 }


Called by: cmajor::binder::ConstraintChecker::Visit , cmajor::binder::ConstraintChecker::Visit , cmajor::binder::ConstraintChecker::Visit


Arity Member Function

int cmajor::binder::BoundConcept::Arity() const

Definition at line 82 of BoundConstraint.hpp :
 82 { return typeArguments.size(); }


CommonType Member Function

TypeSymbol * cmajor::binder::BoundConcept::CommonType() const

Definition at line 83 of BoundConstraint.hpp :
 83 { return commonType; }

Called by: cmajor::binder::ConstraintChecker::Visit , cmajor::binder::ConstraintChecker::Visit , cmajor::binder::ConstraintChecker::Visit


GetBoundConstraint Member Function

BoundConstraint * cmajor::binder::BoundConcept::GetBoundConstraint()

Definition at line 86 of BoundConstraint.hpp :
 86 { return boundConstraint.get(); }

Called by: cmajor::binder::ConstraintChecker::Visit , cmajor::binder::ConstraintChecker::Visit , cmajor::binder::ConstraintChecker::Visit


GetConceptSymbol Member Function

ConceptSymbol * cmajor::binder::BoundConcept::GetConceptSymbol() const

Definition at line 80 of BoundConstraint.hpp :
 80 { return conceptSymbol; }


Load Member Function

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

Definition at line 262 of BoundConstraint.cpp :
263 {
264     throw Exception("cannot load bound concept"GetSpan()ModuleId());
265 }


Declaration at line 77 of BoundConstraint.hpp

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

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


SetBoundConstraint Member Function

void cmajor::binder::BoundConcept::SetBoundConstraint(std::unique_ptr<BoundConstraint >&& boundConstraint_)

Definition at line 277 of BoundConstraint.cpp :
278 {
279     boundConstraint = std::move(boundConstraint_);
280 }


Declaration at line 85 of BoundConstraint.hpp


SetCommonType Member Function

void cmajor::binder::BoundConcept::SetCommonType(TypeSymbol * commonType_)

Definition at line 84 of BoundConstraint.hpp :
 84 { commonType = commonType_; }


Store Member Function

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

Definition at line 267 of BoundConstraint.cpp :
268 {
269     throw Exception("cannot store bound concept"GetSpan()ModuleId());
270 }


Declaration at line 78 of BoundConstraint.hpp

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

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


TypeArguments Member Function

const std::vector<TypeSymbol *>& cmajor::binder::BoundConcept::TypeArguments() const

Definition at line 81 of BoundConstraint.hpp :
 81 { return typeArguments; }


top | up | prev | next