X-Git-Url: http://nitlanguage.org diff --git a/src/interpreter/naive_interpreter.nit b/src/interpreter/naive_interpreter.nit index 7b2515f..233d758 100644 --- a/src/interpreter/naive_interpreter.nit +++ b/src/interpreter/naive_interpreter.nit @@ -2222,6 +2222,12 @@ redef class ASendExpr do var recv = v.expr(self.n_expr) if recv == null then return null + + # Safe call shortcut if recv is null + if is_safe and recv.is_null then + return recv + end + var args = v.varargize(callsite.mpropdef, callsite.signaturemap, recv, self.raw_arguments) if args == null then return null @@ -2371,6 +2377,13 @@ redef class AVarargExpr end end +redef class ASafeExpr + redef fun expr(v) + do + return v.expr(self.n_expr) + end +end + redef class ANamedargExpr redef fun expr(v) do