gendl
gendl copied to clipboard
Move slots to their most appropriate class definition
It doesn't seem to make a lot of sense to have these two slots in the vanilla-mixin* definition:
(%corners% nil)
(%vertex-array% nil)
Would've expected those slots in base-object. I think it qualifies as an issue, a logically designed language is imperative. These two slots don't follow that cause.
These were put there for a reason - they are the minimal placeholders in vanilla-mixin to avoid crashing of tasty if you try to include a non-geometric object in the display-list. But you are right, it's not a clean way to do it. We'll make tasty smarter about what it tries to do with non-geometric objects in display list, and remove these slots from here.
I understand the purpose of these slots, but if they are abstract slots and merely templates for subclasses that are supposed to be overridden, consider maybe to use:
(%corners% *undefined*)
(%vertex-array% *undefined*)
or:
(%corners% (error "gendl: not implemented, should be overridden in subclasses.")
(%vertex-array% (error "gendl: not implemented, should be overridden in subclasses.")
or add a slot:
(%drawable?% nil)
That you put to true on subclassing.