if initprop != null then
add_send(maintype, initprop)
end
- var mainprop = mainmodule.try_get_primitive_method("main", maintype.mclass)
+ var mainprop = mainmodule.try_get_primitive_method("run", maintype.mclass) or else
+ mainmodule.try_get_primitive_method("main", maintype.mclass)
if mainprop != null then
add_send(maintype, mainprop)
end
+ var finalizable_type = mainmodule.finalizable_type
+ if finalizable_type != null then
+ var finalize_meth = mainmodule.try_get_primitive_method("finalize", finalizable_type.mclass)
+ if finalize_meth != null then add_send(finalizable_type, finalize_meth)
+ end
+
# Force primitive types
force_alive("Bool")
force_alive("Int")
# It is an init for a class?
if mmeth.name == "init" then
var nclassdef = self.modelbuilder.mclassdef2nclassdef[mmethoddef.mclassdef]
+ assert mmethoddef == nclassdef.mfree_init
var super_inits = nclassdef.super_inits
if super_inits != null then
#assert args.length == 1
fun add_super_send(recv: MType, mpropdef: MMethodDef)
do
+ assert mpropdef.has_supercall
if live_super_sends.has(mpropdef) then return
#print "new super prop: {mpropdef}"
live_super_sends.add(mpropdef)