From 8f45c84483658bd94f90b58257ad1cb4805bc7aa Mon Sep 17 00:00:00 2001 From: pfdietz <pfdietz@localhost> Date: Mon, 4 Nov 2002 04:31:09 +0000 Subject: [PATCH] Changed SPECIAL-OPERATOR-P.2 to allow non-standard special operator symbols, as long as the have a MACRO-FUNCTION in the null lexical environment. The spec is inconsistent on whether any such symbols can exist. --- ansi-tests/cl-symbols.lsp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ansi-tests/cl-symbols.lsp b/ansi-tests/cl-symbols.lsp index 58f8cb69..6da71a75 100644 --- a/ansi-tests/cl-symbols.lsp +++ b/ansi-tests/cl-symbols.lsp @@ -1063,12 +1063,16 @@ nil) ;;; None of the standard symbols except those in +special-operators+ -;;; are special operators +;;; are special operators, unless they have a macro function +;;; (See the page for MACRO-FUNCTION) + (deftest special-operator-p.2 (let ((p (find-package "CL"))) (loop for name in *cl-symbol-names* unless (or (member name +special-operators+ :test #'string=) - (not (special-operator-p (find-symbol name p)))) + (let ((sym (find-symbol name p))) + (or (not (special-operator-p sym)) + (macro-function sym)))) collect name)) nil) -- GitLab