top | up | prev | next

ConversionTable Class

Definition at line 37 of ConversionTable.hpp

Constructors

ConversionTable(Owner owner_, Module* module_)
ConversionTable(const ConversionTable&) delete

Member Functions

void Add(const ConversionTable& that)
void AddConversion(FunctionSymbol* conversion)
void AddGeneratedConversion(std::unique_ptr<FunctionSymbol>&& generatedConversion)
void Check()
FunctionSymbol* GetConversion(TypeSymbol* sourceType, TypeSymbol* targetType, const Span& span, const boost::uuids::uuid& moduleId) const
ConversionTable& operator=(const ConversionTable&) delete

Enumerations

enum class Owner

Member Variables

std::unordered_map<ConversionTableEntry, FunctionSymbol*, ConversionTableEntryHash> conversionMap
std::vector<std::unique_ptr<FunctionSymbol>> generatedConversions
Module* module
Owner owner

Constructor Details

ConversionTable Constructor

cmajor::symbols::ConversionTable::ConversionTable(Owner owner_, Module * module_)

Definition at line 22 of ConversionTable.cpp :
22 : owner(owner_)module(module_)
23 {
24 }


Declaration at line 44 of ConversionTable.hpp


ConversionTable Constructor

cmajor::symbols::ConversionTable::ConversionTable(const ConversionTable &) delete

Definition at line 45 of ConversionTable.hpp


Member Function Details

Add Member Function

void cmajor::symbols::ConversionTable::Add(const ConversionTable & that)

Definition at line 54 of ConversionTable.cpp
Declaration at line 50 of ConversionTable.hpp

Called by: cmajor::symbols::SymbolTable::Import


AddConversion Member Function

void cmajor::symbols::ConversionTable::AddConversion(FunctionSymbol * conversion)

Definition at line 38 of ConversionTable.cpp
Declaration at line 47 of ConversionTable.hpp

Calls: cmajor::symbols::FunctionSymbol::ConversionSourceType , cmajor::symbols::FunctionSymbol::ConversionTargetType

Called by: cmajor::symbols::SymbolTable::AddConversion , cmajor::symbols::SymbolTable::AddFunctionSymbolToGlobalScope


AddGeneratedConversion Member Function

void cmajor::symbols::ConversionTable::AddGeneratedConversion(std::unique_ptr<FunctionSymbol >&& generatedConversion)

Definition at line 94 of ConversionTable.cpp :
95 {
96     generatedConversions.push_back(std::move(generatedConversion));
97 }


Declaration at line 49 of ConversionTable.hpp


Check Member Function

void cmajor::symbols::ConversionTable::Check()

Definition at line 72 of ConversionTable.cpp :
73 {
74     for (const auto& p : conversionMap)
75     {
76         const ConversionTableEntry& entry = p.first;
77         entry.CheckValid();
78     }
79 }


Declaration at line 51 of ConversionTable.hpp

Calls: cmajor::symbols::ConversionTableEntry::CheckValid

Called by: cmajor::symbols::SymbolTable::Check


GetConversion Member Function

FunctionSymbol * cmajor::symbols::ConversionTable::GetConversion(TypeSymbol * sourceType, TypeSymbol * targetType, const Span& span, const boost::uuids::uuid& moduleId) const

Definition at line 81 of ConversionTable.cpp
Declaration at line 48 of ConversionTable.hpp

Calls: cmajor::symbols::TypeSymbol::PlainType

Called by: cmajor::symbols::SymbolTable::GetConversion


operator= Member Function

ConversionTable & cmajor::symbols::ConversionTable::operator=(const ConversionTable &) delete

Definition at line 46 of ConversionTable.hpp


top | up | prev | next