X-Git-Url: http://nitlanguage.org diff --git a/src/rapid_type_analysis.nit b/src/rapid_type_analysis.nit index 2bb3a86..404ebce 100644 --- a/src/rapid_type_analysis.nit +++ b/src/rapid_type_analysis.nit @@ -245,7 +245,6 @@ class RapidTypeAnalysis v.add_monomorphic_send(vararg, self.modelbuilder.force_get_primitive_method(node, "with_native", vararg.mclass, self.mainmodule)) end - # TODO? new_msignature var sig = msignature var osig = mmeth.intro.msignature.as(not null) for i in [0..sig.arity[ do @@ -261,9 +260,15 @@ class RapidTypeAnalysis if npropdef isa AClassdef then if mmethoddef.mproperty.is_root_init then + # Final init call if not mmethoddef.is_intro then self.add_super_send(v.receiver, mmethoddef) end + else if mmethoddef.mclassdef.default_init == mmethoddef then + # default_init call + for i in mmethoddef.initializers do + if i isa MMethod then self.add_send(v.receiver, i) + end else npropdef.debug "cannot RTA {mmethoddef}" abort @@ -382,7 +387,6 @@ class RapidTypeAnalysis v.enter_visit(npropdef.n_block) end end - end fun add_cast(mtype: MType) @@ -704,8 +708,6 @@ redef class ACallrefExpr redef fun accept_rapid_type_visitor(v) do super - var b = v.analysis.live_types.has(callsite.recv) - v.add_type(callsite.recv.as(MClassType)) v.add_type(mtype.as(MClassType)) end end