[Pharo-project] Fwd: [squeak-dev] bug in OBMetagraphBuilder>>#reference

Mariano Martinez Peck marianopeck at gmail.com
Mon Oct 25 15:16:40 EDT 2010


---------- Forwarded message ----------
From: Chris Muller <asqueaker at gmail.com>
Date: Mon, Oct 25, 2010 at 6:16 PM
Subject: [squeak-dev] bug in OBMetagraphBuilder>>#reference
To: squeak dev <squeak-dev at lists.squeakfoundation.org>

Hi, I just wanted to let the maintainers of OmniBrowser know, there is
a bug with this method.

The method reflects on its class and performs all that begin with
#populate.  However, it is not unusual to expect that someone's
application might have a selector that also begins with the word
'populate'.  And so those selectors would be performed as well.

This is why, for cases like this, it is better for a tool, which is
just a means, not an end, to be polite with the namespace; such as
checking for 'obPopulate' perhaps rather than simply 'populate'.

But that's just a mini-rant, not even the bug.  The bug is, my
'populate' is not a unary message, so I get a failure on the perform,
"incorrect number of arguments."

I therefore always change the method to:

OBMetagraphBuilder >> execute
       ((self class allSelectors select: [:ea | (ea beginsWith: 'populate')
and: [ ea isUnary ]]) asSortedArray)
               do: [:selector | self perform: selector].
       ^ self root

Thank you,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20101025/901afc19/attachment-0001.html>

More information about the Pharo-dev mailing list