top | up | prev | next

FunctionToDelegateConversion Class

Definition at line 136 of DelegateSymbol.hpp

Constructors

FunctionToDelegateConversion(TypeSymbol* sourceType_, TypeSymbol* targetType_, FunctionSymbol* function_)
FunctionToDelegateConversion(const Span& span_, const boost::uuids::uuid& sourceModuleId_, const std::u32string& name_)

Member Functions

void Check() override
const char* ClassName() const override
uint8_t ConversionDistance() const override
void GenerateCall(Emitter& emitter, std::vector<GenObject*>& genObjects, OperationFlags flags, const Span& span, const boost::uuids::uuid& moduleId) override
ConversionType GetConversionType() const override
bool IsBasicTypeOperation() const override

Member Variables

FunctionSymbol* function
TypeSymbol* sourceType
TypeSymbol* targetType

Constructor Details

FunctionToDelegateConversion Constructor

cmajor::symbols::FunctionToDelegateConversion::FunctionToDelegateConversion(TypeSymbol * sourceType_, TypeSymbol * targetType_, FunctionSymbol * function_)

Definition at line 619 of DelegateSymbol.cpp :
 619 :
 620 FunctionSymbol(SymbolType::functionToDelegateSymbolfunction_->GetSpan()function_->SourceModuleId()U"@conversion")sourceType(sourceType_)targetType(targetType_)function(function_)
 621 {
 622     SetConversion();
 623     SetConversionSourceType(sourceType->PlainType(GetSpan()SourceModuleId()));
 624     SetConversionTargetType(targetType->PlainType(GetSpan()SourceModuleId()));
 625 }


Declaration at line 140 of DelegateSymbol.hpp


FunctionToDelegateConversion Constructor

cmajor::symbols::FunctionToDelegateConversion::FunctionToDelegateConversion(const Span& span_, const boost::uuids::uuid& sourceModuleId_, const std::u32string& name_)

Definition at line 614 of DelegateSymbol.cpp :
 614 :
 615 FunctionSymbol(SymbolType::functionToDelegateSymbolspan_sourceModuleId_name_)sourceType(nullptr)targetType(nullptr)function(nullptr)
 616 {
 617 }


Declaration at line 139 of DelegateSymbol.hpp


Member Function Details

Check Member Function

void cmajor::symbols::FunctionToDelegateConversion::Check() override

Definition at line 633 of DelegateSymbol.cpp
Declaration at line 146 of DelegateSymbol.hpp

Base class overridden functions: cmajor::symbols::ContainerSymbol::Check , cmajor::symbols::FunctionSymbol::Check , cmajor::symbols::Symbol::Check

Calls: cmajor::symbols::FunctionSymbol::Check , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SourceModuleId


ClassName Member Function

const char * cmajor::symbols::FunctionToDelegateConversion::ClassName() const override

Definition at line 145 of DelegateSymbol.hpp :
145 { return "FunctionToDelegateConversion"; }

Base class overridden functions: cmajor::symbols::ContainerSymbol::ClassName , cmajor::symbols::FunctionSymbol::ClassName , cmajor::symbols::Symbol::ClassName


ConversionDistance Member Function

uint8_t cmajor::symbols::FunctionToDelegateConversion::ConversionDistance() const override

Definition at line 142 of DelegateSymbol.hpp :
142 { return 1; }

Base class overridden functions: cmajor::symbols::FunctionSymbol::ConversionDistance


GenerateCall Member Function

void cmajor::symbols::FunctionToDelegateConversion::GenerateCall(Emitter& emitter, std::vector<GenObject*>& genObjects, OperationFlags flags, const Span& span, const boost::uuids::uuid& moduleId) override

Definition at line 627 of DelegateSymbol.cpp :
 628 {
 629     emitter.Stack().Pop();
 630     emitter.Stack().Push(emitter.GetOrInsertFunction(ToUtf8(function->MangledName())function->IrType(emitter)function->DontThrow()));
 631 }


Declaration at line 143 of DelegateSymbol.hpp

Calls: cmajor::symbols::FunctionSymbol::DontThrow , cmajor::symbols::FunctionSymbol::IrType , cmajor::symbols::Symbol::MangledName


GetConversionType Member Function

ConversionType cmajor::symbols::FunctionToDelegateConversion::GetConversionType() const override

Definition at line 141 of DelegateSymbol.hpp :
141 { return ConversionType::implicit_; }

Base class overridden functions: cmajor::symbols::FunctionSymbol::GetConversionType


IsBasicTypeOperation Member Function

bool cmajor::symbols::FunctionToDelegateConversion::IsBasicTypeOperation() const override

Definition at line 144 of DelegateSymbol.hpp :
144 { return true; }

Base class overridden functions: cmajor::symbols::FunctionSymbol::IsBasicTypeOperation


top | up | prev | next