Stef
Done - https://pharo.fogbugz.com/f/cases/20363/ThemeIcons- downloadTo-has-an-argument- which-is-never-referenced-in- code
What really puzzled me is that this situation was not picked up by a code critic. 'Local variable declared and not referenced' is a common critic message, and this looks like a parallel situation. But I don't think this can be called a bug in the code critic system - can it?
Peter Kenny
-----Original Message-----
From: Pharo-users [mailto:pharo-users-bounces@lists.pharo.org ] On Behalf Of Stephane Ducasse
Sent: 31 August 2017 19:16
To: Any question about pharo is welcome <pharo-users@lists.pharo.org>
Subject: Re: [Pharo-users] Code mystery
Can you open a bug entry?
I can tell you that we clean a lot but human activity will always leads to glitches.
On Tue, Aug 29, 2017 at 1:23 AM, Dimitris Chloupis <kilon.alios@gmail.com> wrote:
> You are not going crazy that's an ugly method. Probably the author
> intended to use dir and the forgot about it and instead hard coded the
> dir path inside a class method. A mistake that can happen to anyone.
>
> The method will have to be updated anyway because name is to be
> removed, so it won't work.
>
> As always too much code too few people. If you think that's bad
> embrace yourself if you try to read Morphic code. Huge suffering for
> me when I tried to learn how the task bar works and apparently using
> it wrong it freezes the image.
>
> Tons of Pharo code needs a clean but needs also a lot more people.
> On Tue, 29 Aug 2017 at 01:52, PBKResearch <peter@pbkresearch.co.uk> wrote:
>>
>> Hello All
>>
>>
>>
>> Following the discussion on dark mode, I was browsing the code on
>> themes (in Moose 6.1 = Pharo 6.0, Latest update: #60486). In Class
>> ThemeIcons, I found this method:
>>
>>
>>
>> downloadTo: dir
>>
>>�� �� �� �� �� �� �� �� | zipArchive |
>>
>>
>>
>>�� �� �� �� �� �� �� �� zipArchive := self class destinationPath / (self name,
>> '.zip').
>>
>>�� �� �� �� �� �� �� �� zipArchive exists
>>
>>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��ifFalse: [
>>
>>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ZnClient new
>>
>>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��url: self
>> url;
>>
>>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��downloadTo:
>> zipArchive ].
>>
>>
>>
>>�� �� �� �� �� �� �� �� ^ zipArchive
>>
>>
>>
>> The mystery is that the argument dir is not referred to anywhere in
>> the code. It probably works, because the only invocation of the
>> method is from
>> ThemeIcons>>downloadFromUrl, which sets the argument from self class
>> destinationPath, and the code above recreates this as the path to
>> zipArchive.
>>
>>
>>
>> I thought I understood Smalltalk coding fairly well, but this really
>> puzzles me. Why would anyone code like this? Shouldn���t it be picked
>> up by a code critic? Or am I going crazy?
>>
>>
>>
>> Any help gratefully received
>>
>>
>>
>> Peter Kenny