- (lambda (slot)
- (if (luna-class-slot-index entity-class slot)
- (catch 'derived
- (setq parents (luna-class-parents entity-class))
- (while parents
- (setq parent-class (luna-find-class (car parents)))
- (if (luna-class-slot-index parent-class slot)
- (throw 'derived nil))
- (setq parents (cdr parents))
- )
- (eval
- `(progn
- (defmacro ,(intern (format "%s-%s-internal"
- class-name slot))
- (entity)
- (list 'aref entity
- ,(luna-class-slot-index entity-class
- (intern (symbol-name slot)))
- ))
- (defmacro ,(intern (format "%s-set-%s-internal"
- class-name slot))
- (entity value)
- (list 'aset entity
- ,(luna-class-slot-index
- entity-class (intern (symbol-name slot)))
- value))
- ))
- )))
+ (function
+ (lambda (slot)
+ (if (luna-class-slot-index entity-class slot)
+ (catch 'derived
+ (setq parents (luna-class-parents entity-class))
+ (while parents
+ (setq parent-class (luna-find-class (car parents)))
+ (if (luna-class-slot-index parent-class slot)
+ (throw 'derived nil))
+ (setq parents (cdr parents))
+ )
+ (eval
+ (` (progn
+ (defmacro (, (intern (format "%s-%s-internal"
+ class-name slot)))
+ (entity)
+ (list 'aref entity
+ (, (luna-class-slot-index entity-class
+ (intern (symbol-name slot))))
+ ))
+ (defmacro (, (intern (format "%s-set-%s-internal"
+ class-name slot)))
+ (entity value)
+ (list 'aset entity
+ (, (luna-class-slot-index
+ entity-class (intern (symbol-name slot))))
+ value))
+ )))
+ ))))