X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fslots-boot.lisp;h=aee9ea04e33e8ef223e91cca005633c8f25652a8;hb=01e9e8c568777d6480699e6cb3947f38c3bed350;hp=317ccca3bebe2bfed35d3668f78ece2112ea5631;hpb=fbde18e9b7d8e67e24f628638be4f293cb128101;p=sbcl.git diff --git a/src/pcl/slots-boot.lisp b/src/pcl/slots-boot.lisp index 317ccca..aee9ea0 100644 --- a/src/pcl/slots-boot.lisp +++ b/src/pcl/slots-boot.lisp @@ -29,7 +29,7 @@ (ecase type ;; FIXME: change SLOT-OBJECT here to T to get SLOT-MISSING ;; behaviour for non-slot-objects too? - (reader + (reader (values '(object) '(slot-object) 'standard-reader-method (make-std-reader-method-function 'slot-object slot-name) "automatically-generated reader method")) @@ -48,7 +48,7 @@ (defmacro accessor-slot-value (object slot-name) (aver (constantp slot-name)) - (let* ((slot-name (eval slot-name)) + (let* ((slot-name (constant-form-value slot-name)) (reader-name (slot-reader-name slot-name))) `(let ((.ignore. (load-time-value (ensure-accessor 'reader ',reader-name ',slot-name)))) @@ -60,7 +60,7 @@ (aver (constantp slot-name)) (setq object (macroexpand object env)) (setq slot-name (macroexpand slot-name env)) - (let* ((slot-name (eval slot-name)) + (let* ((slot-name (constant-form-value slot-name)) (bindings (unless (or (constantp new-value) (atom new-value)) (let ((object-var (gensym))) (prog1 `((,object-var ,object)) @@ -80,7 +80,7 @@ (defmacro accessor-slot-boundp (object slot-name) (aver (constantp slot-name)) - (let* ((slot-name (eval slot-name)) + (let* ((slot-name (constant-form-value slot-name)) (boundp-name (slot-boundp-name slot-name))) `(let ((.ignore. (load-time-value (ensure-accessor 'boundp ',boundp-name ',slot-name))))