@@ -257,16 +257,39 @@ def defclass(
257257ClassStandardObject = defclass ("STANDARD-OBJECT" , sup = [ClassT ])
258258
259259ClassSpecializer = defclass ("SPECIALIZER" )
260- ClassEqlSpecializer = defclass ("EQL-SPECIALIZER" , sup = [ClassSpecializer ])
261- ClassClass = defclass ("CLASS" , sup = [ClassSpecializer ])
260+ ClassEqlSpecializer = defclass (
261+ "EQL-SPECIALIZER" ,
262+ make_direct_slot_definition ("EQL-SPECIALIZER/OBJECT" ),
263+ make_direct_slot_definition ("EQL-SPECIALIZER/DIRECT-METHODS" ),
264+ sup = [ClassSpecializer ],
265+ )
266+ ClassClass = defclass (
267+ "CLASS" ,
268+ make_direct_slot_definition ("CLASS/NAME" ),
269+ make_direct_slot_definition ("CLASS/CLASS-EQ-SPECIALIZER" ),
270+ make_direct_slot_definition ("CLASS/DIRECT-SUPERCLASSES" ),
271+ make_direct_slot_definition ("CLASS/DIRECT-SUBCLASSES" ),
272+ make_direct_slot_definition ("CLASS/DIRECT-METHODS" ),
273+ make_direct_slot_definition ("CLASS/FINALIZED-P" ),
274+ sup = [ClassSpecializer ],
275+ )
262276init_class (ClassBuiltInClass , "BUILT-IN-CLASS" , direct_superclasses = [ClassClass ])
263277add_direct_subclass (ClassStandardClass , ClassClass )
264278ClassForwardReferencedClass = defclass ("FORWARD-REFERENCED-CLASS" )
265279ClassFuncallableStandardClass = defclass ("FUNCALLABLE-STANDARD-CLASS" , sup = [ClassClass ])
266280
267- ClassSlotDefinition = defclass ("SLOT-DEFINITION" )
281+ ClassSlotDefinition = defclass (
282+ "SLOT-DEFINITION" ,
283+ make_direct_slot_definition ("SLOT-DEFINITION/NAME" ),
284+ make_direct_slot_definition ("SLOT-DEFINITION/INITFORM" ),
285+ make_direct_slot_definition ("SLOT-DEFINITION/INITFUNCTION" ),
286+ make_direct_slot_definition ("SLOT-DEFINITION/INITARGS" ),
287+ )
268288ClassDirectSlotDefinition = defclass (
269- "DIRECT-SLOT-DEFINITION" , sup = [ClassSlotDefinition ]
289+ "DIRECT-SLOT-DEFINITION" ,
290+ make_direct_slot_definition ("DIRECT-SLOT-DEFINITION/READERS" ),
291+ make_direct_slot_definition ("DIRECT-SLOT-DEFINITION/WRITERS" ),
292+ sup = [ClassSlotDefinition ],
270293)
271294ClassEffectiveSlotDefinition = defclass (
272295 "EFFECTIVE-SLOT-DEFINITION" , sup = [ClassSlotDefinition ]
@@ -281,13 +304,20 @@ def defclass(
281304)
282305ClassStandardEffectiveSlotDefinition = defclass (
283306 "STANDARD-EFFECTIVE-SLOT-DEFINITION" ,
307+ make_direct_slot_definition ("STANDARD-EFFECTIVE-SLOT-DEFINITION/LOCATION" ),
284308 sup = [ClassStandardSlotDefinition , ClassEffectiveSlotDefinition ],
285309)
286310
287311ClassMethodCombination = defclass ("METHOD-COMBINATION" )
288312
289313ClassMethod = defclass ("METHOD" )
290- ClassStandardMethod = defclass ("STANDARD-METHOD" , sup = [ClassMethod ])
314+ ClassStandardMethod = defclass (
315+ "STANDARD-METHOD" ,
316+ make_direct_slot_definition ("STANDARD-METHOD/QUALIFIERS" ),
317+ make_direct_slot_definition ("STANDARD-METHOD/SPECIALIZERS" ),
318+ make_direct_slot_definition ("STANDARD-METHOD/LAMBDA-LIST" ),
319+ sup = [ClassMethod ],
320+ )
291321ClassStandardAccessorMethod = defclass (
292322 "STANDARD-ACCESSOR-METHOD" , sup = [ClassStandardMethod ]
293323)
@@ -303,7 +333,13 @@ def defclass(
303333 "GENERIC-FUNCTION" , sup = [ClassFuncallableStandardObject ]
304334)
305335ClassStandardGenericFunction = defclass (
306- "STANDARD-GENERIC-FUNCTION" , sup = [ClassGenericFunction ]
336+ "STANDARD-GENERIC-FUNCTION" ,
337+ make_direct_slot_definition ("STANDARD-GENERIC-FUNCTION/NAME" ),
338+ make_direct_slot_definition ("STANDARD-GENERIC-FUNCTION/METHODS" ),
339+ make_direct_slot_definition ("STANDARD-GENERIC-FUNCTION/METHOD-CLASS" ),
340+ make_direct_slot_definition ("STANDARD-GENERIC-FUNCTION/METHOD-COMBINATION" ),
341+ make_direct_slot_definition ("STANDARD-GENERIC-FUNCTION/DECLARATIONS" ),
342+ sup = [ClassGenericFunction ],
307343)
308344
309345### Implement class finalization and finalize the metaobject classes.
0 commit comments