On 2012-08-17, at 22:50, Eliot Miranda <eliot.miranda@gmail.com> wrote:
On Fri, Aug 17, 2012 at 1:42 PM, Mariano Martinez Peck < marianopeck@gmail.com> wrote:
Hi guys. Right now we have
methodClass "answer the class that I am installed in" ^self numLiterals > 0 ifTrue: [ (self literalAt: self numLiterals) value ] ifFalse: [ nil ]
But of course my image has no method with 0 literals:
(CompiledMethod allInstances select: [:each | each numLiterals = 0 ]) size -> 0
So...can this really happen? or I can just remove the if ?
Yes it could happen. For example, i the Newspeak implementation above Squeak these is a collection of inst-var accessors that are shared through all Newspeak classes in the system.
so it will never happen in Pharo right?
These have a nil methodClass. If one wanted to save space they could have no methodClass instead of nil in the methodClass slot. (Note that the above works for these since nil value = value). So IMO its a harmless piece of defensice programming. IIABDFI (If it ain't broke don't fix it).
again, this is not pharo mentality...