class Savi::Compiler::CodeGen::GenType

Defined in:

savi/compiler/code_gen/gen_type.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(g : CodeGen, type_def : Savi::Compiler::Reach::Def) #

[View source]

Instance Method Detail

def [](name) #

[View source]
def default_constructor #

[View source]
def desc : LLVM::Value #

[View source]
def desc? : LLVM::Value | Nil #

[View source]
def desc_type : LLVM::Type #

[View source]
def desc_type? : LLVM::Type | Nil #

[View source]
def each_gfunc #

[View source]
def field(name) #

[View source]
def field?(name) #

[View source]
def field_index(name) #

[View source]
def field_llvm_type(name) #

[View source]
def fields : Array(Tuple(String, Reach::Ref)) #

[View source]
def fields_struct_index #

[View source]
def fields_struct_type : LLVM::Type #

[View source]
def fields_struct_type? : LLVM::Type | Nil #

[View source]
def gen_desc(g : CodeGen) #

Generate the type descriptor global for this type.


[View source]
def gen_desc_init(g : CodeGen) #

Generate the initializer data for the type descriptor for this type.


[View source]
def gen_func_decls(g : CodeGen) #

Generate function declarations.


[View source]
def gen_func_impls(g : CodeGen) #

Generate function implementations.


[View source]
def gen_singleton(g : CodeGen) #

Generate the global singleton value for this type. We skip this for abstract types (traits).


[View source]
def gen_struct_type(g : CodeGen) #

Generate struct type bodies.


[View source]
def gen_vtable(g : CodeGen) : Array(LLVM::Value) #

Generate virtual call table.


[View source]
def gfuncs : Hash(String, GenFunc) #

[View source]
def gfuncs_by_sig_name : Hash(String, GenFunc) #

[View source]
def singleton : LLVM::Value #

[View source]
def singleton? : LLVM::Value | Nil #

[View source]
def struct_type : LLVM::Type #

[View source]
def struct_type? : LLVM::Type | Nil #

[View source]
def type_def : Reach::Def #

[View source]
def vtable_size : Int32 #

[View source]