classes: unset defining-class in define-class.
parent
331483ab98
commit
a7814b9358
|
@ -196,6 +196,7 @@ GENERIC: metaclass-changed ( use class -- )
|
|||
2bi
|
||||
]
|
||||
[ 2drop t "class" set-word-prop ]
|
||||
[ 2drop f "defining-class" set-word-prop ]
|
||||
[ 2drop update-map+ ]
|
||||
[ nip ?metaclass-changed ]
|
||||
} 3cleave ;
|
||||
|
|
|
@ -246,16 +246,10 @@ M: tuple-class update-class
|
|||
[ define-tuple-prototype ]
|
||||
} cleave ;
|
||||
|
||||
! The "defining-class" word-prop is to ensure that the tuple being
|
||||
! defined becomes a classoid as it's being parsed so that it can
|
||||
! be used as the type of its own slots.
|
||||
: define-new-tuple-class ( class superclass slots -- )
|
||||
{
|
||||
[ drop f f tuple-class define-class ]
|
||||
[ nip "slots" set-word-prop ]
|
||||
[ 2drop update-classes ]
|
||||
[ 2drop f "defining-class" set-word-prop ]
|
||||
} 3cleave ;
|
||||
[ 2drop update-classes ] 3tri ;
|
||||
|
||||
: subclasses ( class -- classes )
|
||||
class-usages [ tuple-class? ] filter ;
|
||||
|
|
Loading…
Reference in New Issue