From: Jean Privat Date: Wed, 8 Apr 2015 13:11:35 +0000 (+0700) Subject: engines: implement special fall-back to sys X-Git-Tag: v0.7.4~31^2~8 X-Git-Url: http://nitlanguage.org engines: implement special fall-back to sys Signed-off-by: Jean Privat --- diff --git a/src/compiler/abstract_compiler.nit b/src/compiler/abstract_compiler.nit index 3956744..059961f 100644 --- a/src/compiler/abstract_compiler.nit +++ b/src/compiler/abstract_compiler.nit @@ -2521,6 +2521,13 @@ redef class ASelfExpr redef fun expr(v) do return v.frame.arguments.first end +redef class AImplicitSelfExpr + redef fun expr(v) do + if not is_sys then return super + return v.new_expr("glob_sys", mtype.as(not null)) + end +end + redef class AEscapeExpr redef fun stmt(v) do v.add("goto BREAK_{v.escapemark_name(self.escapemark)};") end diff --git a/src/interpreter/naive_interpreter.nit b/src/interpreter/naive_interpreter.nit index 8818874..7e1c9db 100644 --- a/src/interpreter/naive_interpreter.nit +++ b/src/interpreter/naive_interpreter.nit @@ -1321,6 +1321,14 @@ redef class ASelfExpr end end +redef class AImplicitSelfExpr + redef fun expr(v) + do + if not is_sys then return super + return v.mainobj + end +end + redef class AEscapeExpr redef fun stmt(v) do