Opened 11 years ago

Closed 11 years ago

Last modified 9 years ago

#460 closed defect (invalid)

coops: anonymous classes can't be used as metaclasses

Reported by: Moritz Heidkamp Owned by: felix winkelmann
Priority: minor Milestone: 4.9.0
Component: extensions Version: 4.6.x
Keywords: coops anonymous metaclasses Cc:
Estimated difficulty:

Description

This program reproduces the issue:

(use coops)

(define-class <foo> ()
  ()
  metaclass: (make-class (<standard-class>)
                         ((bar 1))))

(print (slot-value <foo> 'bar))

It results in this error:

Error: (slot-value) slot not found
bar 
#<coops standard-class `<foo>'>

Change History (4)

comment:1 Changed 11 years ago by felix winkelmann

Resolution: invalid
Status: newclosed

Try

...(make-class (<standard-class>) (bar))...

comment:2 Changed 11 years ago by Moritz Heidkamp

That does work indeed. I know understand that make-class does not accept initforms at all. Shouldn't my make-class call above fail then as I give a list rather than just a symbol? Thanks for looking into it!

comment:3 Changed 11 years ago by felix winkelmann

Milestone: 4.7.04.8.0

Milestone 4.7.0 deleted

comment:4 Changed 9 years ago by felix winkelmann

Milestone: 4.8.04.9.0

Milestone 4.8.0 deleted

Note: See TracTickets for help on using tickets.