src: use `ASuperExpr::mpropdef` instead of asking the frame or visitors
authorJean Privat <jean@pryen.org>
Tue, 11 Mar 2014 18:15:12 +0000 (14:15 -0400)
committerJean Privat <jean@pryen.org>
Tue, 11 Mar 2014 18:15:12 +0000 (14:15 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

src/abstract_compiler.nit
src/naive_interpreter.nit
src/rapid_type_analysis.nit

index b4d0779..2de8333 100644 (file)
@@ -2499,7 +2499,7 @@ redef class ASuperExpr
                end
 
                # stantard call-next-method
-               return v.supercall(v.frame.mpropdef.as(MMethodDef), recv.mtype.as(MClassType), args)
+               return v.supercall(mpropdef.as(not null), recv.mtype.as(MClassType), args)
        end
 end
 
index 688d675..afa3fd9 100644 (file)
@@ -1598,9 +1598,8 @@ redef class ASuperExpr
                end
 
                # stantard call-next-method
-               var mpropdef = v.frame.mpropdef
+               var mpropdef = self.mpropdef
                mpropdef = mpropdef.lookup_next_definition(v.mainmodule, recv.mtype)
-               assert mpropdef isa MMethodDef
                var res = v.call_without_varargs(mpropdef, args)
                return res
        end
index eecee11..50e4563 100644 (file)
@@ -544,7 +544,7 @@ redef class ASuperExpr
                        return
                end
 
-               v.analysis.add_super_send(v.receiver, v.mpropdef.as(MMethodDef))
+               v.analysis.add_super_send(v.receiver, mpropdef.as(not null))
        end
 end