From 52a0c8a870f5c03d1df001d8116c5f44fdcfc6c2 Mon Sep 17 00:00:00 2001 From: Kodi Arfer Date: Tue, 19 Sep 2017 16:35:33 -0700 Subject: [PATCH] Unify implementations of `eval-X-compile` --- hy/compiler.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/hy/compiler.py b/hy/compiler.py index 8ca12ae..ccd28e4 100755 --- a/hy/compiler.py +++ b/hy/compiler.py @@ -2081,22 +2081,15 @@ class HyASTCompiler(object): expr = tag_macroexpand(tag, expression.pop(0), self) return self.compile(expr) - @builds("eval_and_compile") - def compile_eval_and_compile(self, expression): + @builds("eval_and_compile", "eval_when_compile") + def compile_eval_and_compile(self, expression, building): expression[0] = HySymbol("do") hy.importer.hy_eval(expression, compile_time_ns(self.module_name), self.module_name) - expression.pop(0) - return self._compile_branch(expression) - - @builds("eval_when_compile") - def compile_eval_when_compile(self, expression): - expression[0] = HySymbol("do") - hy.importer.hy_eval(expression, - compile_time_ns(self.module_name), - self.module_name) - return Result() + return (self._compile_branch(expression[1:]) + if building == "eval_and_compile" + else Result()) @builds(HyCons) def compile_cons(self, cons):