2016-07-26 15:08 GMT+02:00 Denis Kudriashov <[email protected]>: > Hi. > > Look at UndefinedObject instance side methods. You will see class > hierarchy protocol. For example nil understands #subclasses message: > > nil subclasses "==> {ProtoObject}" > > ProtoObjects superclass is nil, so maybe it just should behave the same way for all other objects.
ByteString superclass subclasses includes: ByteString. "true" ProtoObject superclass subclasses includes: ProtoObject. "true" > > It implemented like this: > > UndefinedObject >>subclassesDo: aBlock > "Evaluate aBlock with all subclasses of nil. Others are not direct > subclasses of Class." > > ^ Class subclassesDo: [:cl | > cl isMeta ifTrue: [aBlock value: cl soleInstance]]. > > > > So my question is: why it needs to be like that? And does it really needed? > > I removed all this methods and not saw any problem. >
