From cdf074c58a3d31a038e851b82c2ab4978016191e Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Wed, 8 Apr 2015 20:11:35 +0700 Subject: [PATCH] engines: implement special fall-back to sys Signed-off-by: Jean Privat --- src/compiler/abstract_compiler.nit | 7 +++++++ src/interpreter/naive_interpreter.nit | 8 ++++++++ 2 files changed, 15 insertions(+) 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 -- 1.7.9.5