top | up | prev | next

MemberFunctionToClassDelegateConversion Class

Definition at line 305 of DelegateSymbol.hpp

Constructors

MemberFunctionToClassDelegateConversion(const Span& span_, const boost::uuids::uuid& sourceModuleId_, TypeSymbol* sourceType_, ClassDelegateTypeSymbol* targetType_, FunctionSymbol* function_)
MemberFunctionToClassDelegateConversion(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
std::vector<LocalVariableSymbol*> CreateTemporariesTo(FunctionSymbol* currentFunction) 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
bool IsMemberFunctionToClassDelegateConversion() const override

Member Variables

FunctionSymbol* function
TypeSymbol* sourceType
ClassDelegateTypeSymbol* targetType

Constructor Details

MemberFunctionToClassDelegateConversion Constructor

cmajor::symbols::MemberFunctionToClassDelegateConversion::MemberFunctionToClassDelegateConversion(const Span& span_, const boost::uuids::uuid& sourceModuleId_, TypeSymbol * sourceType_, ClassDelegateTypeSymbol * targetType_, FunctionSymbol * function_)

Definition at line 1227 of DelegateSymbol.cpp :
1227 :
1228 FunctionSymbol(SymbolType::memberFunctionToClassDelegateSymbolspan_sourceModuleId_U"@conversion")sourceType(sourceType_)targetType(targetType_)function(function_)
1229 {
1230     SetConversion();
1231     SetConversionSourceType(sourceType->PlainType(GetSpan()SourceModuleId()));
1232     SetConversionTargetType(targetType->PlainType(GetSpan()SourceModuleId()));
1233 }


Declaration at line 309 of DelegateSymbol.hpp


MemberFunctionToClassDelegateConversion Constructor

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

Definition at line 1222 of DelegateSymbol.cpp :
1222 :
1223 FunctionSymbol(SymbolType::memberFunctionToClassDelegateSymbolspan_sourceModuleId_name_)sourceType(nullptr)targetType(nullptr)function(nullptr)
1224 {
1225 }


Declaration at line 308 of DelegateSymbol.hpp


Member Function Details

Check Member Function

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

Definition at line 1263 of DelegateSymbol.cpp
Declaration at line 317 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::MemberFunctionToClassDelegateConversion::ClassName() const override

Definition at line 316 of DelegateSymbol.hpp :
316 { return "MemberFunctionToClassDelegateConversion"; }

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


ConversionDistance Member Function

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

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

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


CreateTemporariesTo Member Function

std::vector<LocalVariableSymbol *> cmajor::symbols::MemberFunctionToClassDelegateConversion::CreateTemporariesTo(FunctionSymbol * currentFunction) override

Definition at line 1235 of DelegateSymbol.cpp :
1236 {
1237     std::vector<LocalVariableSymbol*> temporaries;
1238     LocalVariableSymbol* objectDelegatePairVariable = currentFunction->CreateTemporary(targetType->ObjectDelegatePairType()GetSpan()SourceModuleId());
1239     temporaries.push_back(objectDelegatePairVariable);
1240     return temporaries;
1241 }


Declaration at line 313 of DelegateSymbol.hpp

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

Calls: cmajor::symbols::ClassDelegateTypeSymbol::ObjectDelegatePairType , cmajor::symbols::FunctionSymbol::CreateTemporary , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SourceModuleId


GenerateCall Member Function

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

Definition at line 1243 of DelegateSymbol.cpp
Declaration at line 314 of DelegateSymbol.hpp

Calls: cmajor::symbols::ClassDelegateTypeSymbol::DelegateType , cmajor::symbols::DelegateTypeSymbol::IrType , cmajor::symbols::FunctionSymbol::DontThrow , cmajor::symbols::FunctionSymbol::IrType , cmajor::symbols::Symbol::MangledName


GetConversionType Member Function

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

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

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


IsBasicTypeOperation Member Function

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

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

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


IsMemberFunctionToClassDelegateConversion Member Function

bool cmajor::symbols::MemberFunctionToClassDelegateConversion::IsMemberFunctionToClassDelegateConversion() const override

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

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


top | up | prev | next