Hi,
We faced a problem with committing and loading packages with Slots. It seams like when loading a package, compiler first compiles a class that uses custom Slot and only then Slot itself. It leads to an error like MessageNotUnderstood: CustomSlot>>index:, but index: is implemented for sure! I'm using the latest image and vm.
I think the reason why this fails is that it loads the first all classes and then the methods. But this just makes another issue prominent:
I want to add a class in-between Slot and InstanceVariableSlot for people to subclass in this cas
(AbstractInstanceVariableSlot).
Because InstanceVariableSlot already needs the byte code level stuff, while Slot is the superclass of all Slots, even those that have
no index.
I will do that as the next step.
How to reproduce:
1) Create CustomSlot:
Slot subclass: #CustomSlot
instanceVariableNames: ''
classVariableNames: ''
category: 'CustomSlot-Test'
Implement the following methods:
index: anIndex
index := anIndex
read: anObject
^ anObject instVarAt: index
write: aValue to: anObject
^ anObject instVarAt: index put: aValue.
2) Add our custom class:
Object subclass: #CutomClass
slots: { #var => CustomSlot }
classVariables: { }
category: 'CustomSlot-Test'
3) Commit
4) Try to load in fresh image
5) Face error
Any suggestions?