Provide compiler macros for the slot accessors of the root classes.

This commit is contained in:
Juan Jose Garcia Ripoll 2009-11-29 22:00:29 +01:00
parent e8f57bdec6
commit 2c3feb09d5

View file

@ -114,3 +114,18 @@
(when (si::fixnump index)
(c1expr `(si::instance-set ,(second args) ,index ,(first args))))))))))
(progn .
#.(loop for var in '(clos::+standard-generic-function-slots+
clos::+standard-method-slots+
clos::+standard-class-slots+
clos::+class-slots+)
for slot-list = (symbol-value var)
nconc
(loop for i from 0
for slot-definition in slot-list
for accessor = (cadr (member :accessor slot-definition))
when accessor
collect `(define-compiler-macro ,accessor (&whole whole obj &environment env)
(if (policy-inline-slot-access-p env)
`(si::instance-ref ,obj ,,i)
whole)))))