Delete evaluator.py shim: all imports go directly to bootstrapped sx_ref.py
EvalError moved to types.py. All 27 files updated to import eval_expr, trampoline, call_lambda, etc. directly from shared.sx.ref.sx_ref instead of through the evaluator.py indirection layer. 320/320 spec tests pass. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -18,7 +18,7 @@ from shared.sx.types import Symbol, Keyword, Lambda, Component, Macro, NIL
|
||||
|
||||
def hw_eval(text, env=None):
|
||||
"""Evaluate via hand-written evaluator.py."""
|
||||
from shared.sx.evaluator import evaluate as _evaluate, EvalError
|
||||
from shared.sx.ref.sx_ref import evaluate as _evaluate
|
||||
if env is None:
|
||||
env = {}
|
||||
return _evaluate(parse(text), env)
|
||||
@@ -50,7 +50,7 @@ def ref_render(text, env=None):
|
||||
|
||||
def hw_eval_multi(text, env=None):
|
||||
"""Evaluate multiple expressions (e.g. defines then call)."""
|
||||
from shared.sx.evaluator import evaluate as _evaluate
|
||||
from shared.sx.ref.sx_ref import evaluate as _evaluate
|
||||
if env is None:
|
||||
env = {}
|
||||
result = None
|
||||
@@ -736,7 +736,7 @@ class TestParityDeps:
|
||||
|
||||
class TestParityErrors:
|
||||
def test_undefined_symbol(self):
|
||||
from shared.sx.evaluator import EvalError as HwError
|
||||
from shared.sx.types import EvalError as HwError
|
||||
from shared.sx.ref.sx_ref import EvalError as RefError
|
||||
with pytest.raises(HwError):
|
||||
hw_eval("undefined_var")
|
||||
|
||||
Reference in New Issue
Block a user