On Sun, May 27, 2012 at 2:31 PM, Igor Stasenko <siguctua@gmail.com> wrote:
On 27 May 2012 11:40, Mariano Martinez Peck <marianopeck@gmail.com> wrote:
On Sun, May 27, 2012 at 11:02 AM, Denis Kudriashov <dionisiydk@gmail.com
wrote:
I found problem.
Proxy classes in SMock and Mocketry are subclasses of ProtoObject which not implements #class. But proxy classes use "self class" in some methods (like #printOn: implementation).
I add #class implementation from Object to ProtoObject and all SMock and Mocketry tests become green.
So questions: Is ProtoObject should implement #class? Can we move #class method from Object to ProtoObject?
ups....good catch! indeed, we should move it to ProtoObject.
mm.. why?
Because ALL objects do have a class. Right? if you want to change the semantics of #class then just subclass and change it. This is not the real reason, but in addition because since previously #class used to have a special bytecode, it means it was understood by "everybody". So at least with this we don't break anything. For me it does not make sense to get a #dnu for #class when the object really has a class.
the more we put to ProtoObject, the more it looks like Object. at some point you will see not difference between them, and then someone will come with a brilliant idea of having one more "clean" class ahead - ProtoProtoObject.
You cannot tell that to me ;) I was the one who spent 2 days to remove all the 10 menthods tryNamedPrimitive* from ProtoObject.
-- Best regards, Igor Stasenko.
-- Mariano http://marianopeck.wordpress.com