From 52f720d02830c3fe29a36e36d28d2d6c0e82ba98 Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Thu, 25 Jul 2013 22:13:39 -0400 Subject: [PATCH] rta: ASuperExpr use linearized polymorphic super-call Signed-off-by: Jean Privat --- src/rapid_type_analysis.nit | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/rapid_type_analysis.nit b/src/rapid_type_analysis.nit index 6675dcd..cfe091a 100644 --- a/src/rapid_type_analysis.nit +++ b/src/rapid_type_analysis.nit @@ -589,15 +589,9 @@ redef class ASuperExpr return end - #FIXME: we do not want an ugly static call! - var mpropdef = v.mpropdef - var mpropdefs = mpropdef.mproperty.lookup_super_definitions(mpropdef.mclassdef.mmodule, mpropdef.mclassdef.bound_mtype) - if mpropdefs.length != 1 then - debug("MPRODFEFS for super {mpropdef} for {v.receiver}: {mpropdefs.join(", ")}") - end - var msuperpropdef = mpropdefs.first - assert msuperpropdef isa MMethodDef - v.analysis.add_static_call(v.receiver, msuperpropdef) + var mpropdef = v.mpropdef.lookup_next_definition(v.analysis.mainmodule, v.receiver) + assert mpropdef isa MMethodDef + v.analysis.add_static_call(v.receiver, mpropdef) end end -- 1.7.9.5