hoshi-lang dev
Yet another programming language
Loading...
Searching...
No Matches
IRInterfaceImplementationDefinition::Builder Struct Reference

#include <IR.h>

Public Member Functions

 Builder ()=default
 
BuildersetName (const yoi::wstr &name)
 
BuildersetImplStructIndex (std::tuple< IRValueType::valueType, yoi::indexT, yoi::indexT > implStructIndex)
 
BuildersetImplInterfaceIndex (const std::pair< yoi::indexT, yoi::indexT > &implInterfaceIndex)
 
BuilderaddVirtualMethod (const yoi::wstr &methodName, const std::shared_ptr< IRValueType > &methodType)
 
std::shared_ptr< IRInterfaceImplementationDefinitionyield ()
 

Public Attributes

yoi::wstr name
 
std::tuple< IRValueType::valueType, yoi::indexT, yoi::indexTimplStructIndex
 
std::pair< yoi::indexT, yoi::indexTimplInterfaceIndex
 
yoi::vec< std::shared_ptr< IRValueType > > virtualMethods
 
std::map< yoi::wstr, yoi::indexTvirtualMethodIndexMap
 

Detailed Description

Definition at line 708 of file IR.h.

Constructor & Destructor Documentation

◆ Builder()

Builder ( )
default

Member Function Documentation

◆ addVirtualMethod()

IRInterfaceImplementationDefinition::Builder & addVirtualMethod ( const yoi::wstr methodName,
const std::shared_ptr< IRValueType > &  methodType 
)

Definition at line 564 of file IR.cpp.

Referenced by visitor::createCallableImplementationForLambda(), visitor::specializeInterfaceImplementation(), and visitor::visit().

Here is the caller graph for this function:

◆ setImplInterfaceIndex()

IRInterfaceImplementationDefinition::Builder & setImplInterfaceIndex ( const std::pair< yoi::indexT, yoi::indexT > &  implInterfaceIndex)

Definition at line 558 of file IR.cpp.

Referenced by visitor::createCallableImplementationForLambda(), visitor::specializeInterfaceImplementation(), and visitor::visit().

Here is the caller graph for this function:

◆ setImplStructIndex()

IRInterfaceImplementationDefinition::Builder & setImplStructIndex ( std::tuple< IRValueType::valueType, yoi::indexT, yoi::indexT implStructIndex)

Definition at line 552 of file IR.cpp.

Referenced by visitor::createCallableImplementationForLambda(), visitor::specializeInterfaceImplementation(), and visitor::visit().

Here is the caller graph for this function:

◆ setName()

Definition at line 546 of file IR.cpp.

References IRFunctionDefinition::name.

Referenced by visitor::specializeInterfaceImplementation(), and visitor::visit().

Here is the caller graph for this function:

◆ yield()

std::shared_ptr< IRInterfaceImplementationDefinition > yield ( )

Definition at line 570 of file IR.cpp.

References IRFunctionDefinition::name.

Referenced by visitor::createCallableImplementationForLambda(), visitor::specializeInterfaceImplementation(), and visitor::visit().

Here is the caller graph for this function:

Member Data Documentation

◆ implInterfaceIndex

std::pair<yoi::indexT, yoi::indexT> implInterfaceIndex

Definition at line 711 of file IR.h.

◆ implStructIndex

std::tuple<IRValueType::valueType, yoi::indexT, yoi::indexT> implStructIndex

Definition at line 710 of file IR.h.

◆ name

yoi::wstr name

Definition at line 709 of file IR.h.

◆ virtualMethodIndexMap

std::map<yoi::wstr, yoi::indexT> virtualMethodIndexMap

Definition at line 714 of file IR.h.

◆ virtualMethods

yoi::vec<std::shared_ptr<IRValueType> > virtualMethods

Definition at line 713 of file IR.h.


The documentation for this struct was generated from the following files: