[squeak-dev] The Inbox: Collections-nice.423.mcz

Eliot Miranda eliot.miranda at gmail.com
Fri Sep 30 23:05:35 UTC 2011


I disagree.  size implemented in terms of do: is quite appropriate.  The
subclass responsibility is do:.  If this doesn't suit SequenceableCollection
then size should be implemented as a subclass responsibility in
SequenceableCollection, /not/ in Collection.

On Fri, Sep 30, 2011 at 1:12 PM, <commits at source.squeak.org> wrote:

> A new version of Collections was added to project The Inbox:
> http://source.squeak.org/inbox/Collections-nice.423.mcz
>
> ==================== Summary ====================
>
> Name: Collections-nice.423
> Author: nice
> Time: 30 September 2011, 10:12:20.333 pm
> UUID: 7613573f-6d08-9d4c-9d9e-2eaacff799fe
> Ancestors: Collections-ul.422
>
> #size and #do: default implementation will cause an infinite loop in every
> new subclass of SequenceableCollection without any form of warning to the
> poor programmer.
>
> It's simple to avoid this bad behavior by:
> - moving Collection>>size implementation to the sole place where it is used
> (LinkedList)
> - replacing it with a subclassResponsibility.
>
> =============== Diff against Collections-ul.422 ===============
>
> Item was changed:
>  ----- Method: Collection>>size (in category 'accessing') -----
>  size
>        "Answer how many elements the receiver contains."
>
> +       ^self subclassResponsibility!
> -       | tally |
> -       tally := 0.
> -       self do: [:each | tally := tally + 1].
> -       ^ tally!
>
> Item was added:
> + ----- Method: LinkedList>>size (in category 'accessing') -----
> + size
> +       "Answer how many elements the receiver contains."
> +
> +       | tally |
> +       tally := 0.
> +       self do: [:each | tally := tally + 1].
> +       ^ tally!
>
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20110930/da3a7422/attachment.htm


More information about the Squeak-dev mailing list