From 3509a7f224bc6d7fa4e7eb629a416720eb7256fa Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 29 Jan 2012 17:43:13 -0500 Subject: [PATCH] Fix primitive-eval to return # for definitions * module/ice-9/eval.scm (primitive-eval): Return # for definitions. Previously the variable object was returned. * test-suite/tests/eval.test (evaluator): Add test. * NEWS: Add news entry. --- NEWS | 1 + module/ice-9/eval.scm | 3 ++- test-suite/tests/eval.test | 4 ++++ 3 files changed, 7 insertions(+), 1 deletions(-) diff --git a/NEWS b/NEWS index ce47686..02b824d 100644 --- a/NEWS +++ b/NEWS @@ -180,6 +180,7 @@ Search the manual for these identifiers and modules, for more. ** Fix erroneous check in `set-procedure-properties!'. ** Fix generalized-vector-{ref,set!} for slices. ** Fix error messages involving definition forms. +** Fix primitive-eval to return # for definitions. ** HTTP: Extend handling of "Cache-Control" header. ** HTTP: Fix qstring writing of cache-extension values ** HTTP: Fix validators for various list-style headers. diff --git a/module/ice-9/eval.scm b/module/ice-9/eval.scm index c0fa64c..74b8532 100644 --- a/module/ice-9/eval.scm +++ b/module/ice-9/eval.scm @@ -428,7 +428,8 @@ (let ((x (eval x env))) (if (and (procedure? x) (not (procedure-property x 'name))) (set-procedure-property! x 'name name)) - (define! name x))) + (define! name x) + (if #f #f))) (('toplevel-set! (var-or-sym . x)) (variable-set! diff --git a/test-suite/tests/eval.test b/test-suite/tests/eval.test index f532059..c3121c5 100644 --- a/test-suite/tests/eval.test +++ b/test-suite/tests/eval.test @@ -75,6 +75,10 @@ (with-test-prefix "evaluator" + (pass-if "definitions return #" + (eq? (primitive-eval '(define test-var 'foo)) + (if #f #f))) + (with-test-prefix "symbol lookup" (with-test-prefix "top level" -- 1.7.5.4