SETQ signals error if the first argument is not a symbol
authorDavid <davazp@debian>
Fri, 21 Feb 2014 19:52:00 +0000 (20:52 +0100)
committerDavid <davazp@debian>
Fri, 21 Feb 2014 19:52:00 +0000 (20:52 +0100)
src/compiler/compiler.lisp

index a19b51d..d5f0b55 100644 (file)
 
 
 (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)))