From: David Date: Fri, 21 Feb 2014 19:52:00 +0000 (+0100) Subject: SETQ signals error if the first argument is not a symbol X-Git-Url: http://repo.macrolet.net/gitweb/?p=jscl.git;a=commitdiff_plain;h=c482b4547542853e71a3af2870c87ea366069913 SETQ signals error if the first argument is not a symbol --- diff --git a/src/compiler/compiler.lisp b/src/compiler/compiler.lisp index a19b51d..d5f0b55 100644 --- a/src/compiler/compiler.lisp +++ b/src/compiler/compiler.lisp @@ -440,12 +440,14 @@ (defun setq-pair (var val) + (unless (symbolp var) + (error "~a is not a symbol" var)) (let ((b (lookup-in-lexenv var *environment* 'variable))) (cond ((and b - (eq (binding-type b) 'variable) - (not (member 'special (binding-declarations b))) - (not (member 'constant (binding-declarations b)))) + (eq (binding-type b) 'variable) + (not (member 'special (binding-declarations b))) + (not (member 'constant (binding-declarations b)))) `(= ,(binding-value b) ,(convert val))) ((and b (eq (binding-type b) 'macro)) (convert `(setf ,var ,val)))