diff --git a/ansi-tests/cl-symbols.lsp b/ansi-tests/cl-symbols.lsp index 58f8cb69371cebba54682faf8c1497627ac0396f..6da71a75eebcc9386c5b9bc56b3b45432bdb5a9c 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)