src: introduce new constructors
[nit.git] / src / separate_erasure_compiler.nit
index 126cde0..dcb9d6c 100644 (file)
@@ -32,6 +32,15 @@ redef class ToolContext
                self.option_context.add_option(self.opt_erasure, self.opt_no_check_erasure_cast, opt_rta)
        end
 
+       redef fun process_options(args)
+       do
+               super
+
+               if opt_no_check_all.value then
+                       opt_no_check_erasure_cast.value = true
+               end
+       end
+
        var erasure_compiler_phase = new ErasureCompilerPhase(self, null)
 end
 
@@ -71,6 +80,7 @@ redef class ModelBuilder
 
                # The main function of the C
                compiler.new_file("{mainmodule.name}.main")
+               compiler.compile_nitni_global_ref_functions
                compiler.compile_main_function
 
                # compile methods
@@ -338,6 +348,7 @@ class SeparateErasureCompiler
                        v.require_declaration("class_{c_name}")
                        v.add("{res}->class = &class_{c_name};")
                        self.generate_init_attr(v, res, mtype)
+                       v.set_finalizer res
                        v.add("return {res};")
                end
                v.add("\}")