2017-04-14 11:09 GMT+02:00 tesonep@gmail.com <tesonep@gmail.com>:
Hi, I think the problem was not clearly explained. This is the scenario that is problematic.��
This scenario does not happen in the new Spur implementation of forwarding, but I think is happening in the old one.

1. You have, let's say 3 instances of ClassA.
2. You add a new instance variable to ClassA. It produces
�� ��2a. A new ClassAv2 is created with the instances variables of ClassA and the newone
�� ��2b. 3 Instances of ClassAv2 are created
�� ��2c. The values of the instance variables of ClassA are copied to the ones in ClassAv2 (the ones missing are left in nil).
�� ��2d. The 3 instances of ClassA are becomed forward to the 3 instances of ClassAv2
�� ��2e. The ClassA is becomed forward ClassAv2

I still not see why my example not reflects all these steps. I checked also scenario with class becoming:

c1 := Class1 new.
c2 := Class2 new.
c1 becomeForward: c2.
Class1 becomeForward: Class2.
Class2 allInstances "=>#(aClass2)"

It also works in Cog