diff --git a/code/symbol.lisp b/code/symbol.lisp index cb2a7bf82da56a2309afef79ba025cc53dbf6d48..2b0d03d09c80d6202690d2b158512bbfebf5a12a 100644 --- a/code/symbol.lisp +++ b/code/symbol.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/symbol.lisp,v 1.9 1992/02/24 01:46:19 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/symbol.lisp,v 1.10 1992/03/02 17:22:49 wlott Exp $") ;;; ;;; ********************************************************************** ;;; @@ -48,15 +48,15 @@ "VARIABLE must evaluate to a symbol. This symbol's special value cell is set to the specified new value." (declare (type symbol variable)) - (etypecase variable - (null - (error "Nilhil ex nilhil (Can't set NIL).")) - ((member t) - (error "Can't set T.")) - (keyword - (error "Can't set keywords.")) - (symbol - (%set-symbol-value variable new-value)))) + (cond ((null variable) + (error "Nihil ex nihil, can't set NIL.")) + ((eq variable t) + (error "Veritas aeterna, can't set T.")) + ((and (boundp '*keyword-package*) + (keywordp variable)) + (error "Can't set keywords.")) + (t + (%set-symbol-value variable new-value)))) (defun %set-symbol-value (symbol new-value) (%set-symbol-value symbol new-value))