Nitlanguage.org
  • Nitdoc
  • nitc
  • compiler
  • global_compiler
  • GlobalCompiler
  • generate_box_instance

fun generate_box_instance(mtype: MClassType)

nitc :: GlobalCompiler :: generate_box_instance

  • Doc
  • Linearization

Summary

  • Property definitions

  • nitc$GlobalCompiler$generate_box_instance

Property definitions

nitc $ GlobalCompiler :: generate_box_instance
	fun generate_box_instance(mtype: MClassType)
	do
		assert self.runtime_type_analysis.live_types.has(mtype)
		var v = self.new_visitor

		self.header.add_decl("val* BOX_{mtype.c_name}({mtype.ctype});")
		v.add_decl("/* allocate {mtype} */")
		v.add_decl("val* BOX_{mtype.c_name}({mtype.ctype} value) \{")
		v.add("struct {mtype.c_name}*res = nit_alloc(sizeof(struct {mtype.c_name}));")
		v.add("res->classid = {self.classid(mtype)};")
		v.add("res->value = value;")
		v.add("return (val*)res;")
		v.add("\}")
	end
src/compiler/global_compiler.nit:299,2--312,4
Nit tools. Version .