top | up | prev | next

ClassToInterfaceConversion Class

Definition at line 85 of InterfaceTypeSymbol.hpp

Constructors

ClassToInterfaceConversion(ClassTypeSymbol* sourceClassType_, InterfaceTypeSymbol* targetInterfaceType_, int32_t interfaceIndex_, const Span& span_, const boost::uuids::uuid& sourceModuleId_)

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 IsClassToInterfaceTypeConversion() const override

Member Variables

int32_t interfaceIndex
ClassTypeSymbol* sourceClassType
InterfaceTypeSymbol* targetInterfaceType

Constructor Details

ClassToInterfaceConversion Constructor

cmajor::symbols::ClassToInterfaceConversion::ClassToInterfaceConversion(ClassTypeSymbol * sourceClassType_, InterfaceTypeSymbol * targetInterfaceType_, int32_t interfaceIndex_, const Span& span_, const boost::uuids::uuid& sourceModuleId_)

Definition at line 462 of InterfaceTypeSymbol.cpp :
463 :
464 FunctionSymbol(span_sourceModuleId_U"@classToInterfaceConversion")sourceClassType(sourceClassType_)targetInterfaceType(targetInterfaceType_)interfaceIndex(interfaceIndex_)
465 {
466     SetConversion();
467     SetConversionSourceType(sourceClassType->PlainType(GetSpan()SourceModuleId()));
468     SetConversionTargetType(targetInterfaceType->PlainType(GetSpan()SourceModuleId()));
469 }


Declaration at line 88 of InterfaceTypeSymbol.hpp


Member Function Details

Check Member Function

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

Definition at line 494 of InterfaceTypeSymbol.cpp
Declaration at line 96 of InterfaceTypeSymbol.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::ClassToInterfaceConversion::ClassName() const override

Definition at line 95 of InterfaceTypeSymbol.hpp :
 95 { return "ClassToInterfaceConversion"; }

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


ConversionDistance Member Function

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

Definition at line 90 of InterfaceTypeSymbol.hpp :
 90 { return 1; }

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


CreateTemporariesTo Member Function

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

Definition at line 471 of InterfaceTypeSymbol.cpp :
472 {
473     std::vector<LocalVariableSymbol*> temporaries;
474     temporaries.push_back(currentFunction->CreateTemporary(targetInterfaceTypeGetSpan()SourceModuleId()));
475     return temporaries;
476 }


Declaration at line 91 of InterfaceTypeSymbol.hpp

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

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


GenerateCall Member Function

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

Definition at line 478 of InterfaceTypeSymbol.cpp
Declaration at line 92 of InterfaceTypeSymbol.hpp

Calls: cmajor::symbols::ClassTypeSymbol::VmtObject


GetConversionType Member Function

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

Definition at line 89 of InterfaceTypeSymbol.hpp :
 89 { return ConversionType::implicit_; }

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


IsBasicTypeOperation Member Function

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

Definition at line 93 of InterfaceTypeSymbol.hpp :
 93 { return true; }

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


IsClassToInterfaceTypeConversion Member Function

bool cmajor::symbols::ClassToInterfaceConversion::IsClassToInterfaceTypeConversion() const override

Definition at line 94 of InterfaceTypeSymbol.hpp :
 94 {return true; }

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


top | up | prev | next