[Cuis-dev] Removing unused temps from inside blocks
Hernan Wilkinson
hernan.wilkinson at 10pines.com
Thu Dec 12 11:34:05 PST 2019
Hi Eric,
thank you for the fix! It is in github now.
Re-parsing is not a problem because methods are usually small in Smalltalk
and the parser is fast enough, but it introduces an issue: when you say you
don't want to remove the variable and then you remove another one, it will
ask you again for the first one.
I integrated the change anyway because it is a rare condition and it is
better to remove unused temps on blocks.
If you can fix that new issue, the better, but I think it will not be so
simple...
BTW, I also fixed another problem, it there was no temps in the method but
unused temps in a block, it did not work.
Thanks!
Hernan.
On Thu, Dec 12, 2019 at 3:03 AM Eric Brandwein via Cuis-dev <
cuis-dev at lists.cuis.st> wrote:
> Sorry, I just realised this doesn't work if you're erasing many variables
> at a time. The obvious solution is to just reparse each time a temporary
> variable is removed, and that is what this new attached ChangeSet does.
>
> This is maybe slow, and I guess the alternative would be to go through all
> the declarations of all blocks inside the parsed method from the bottom to
> the top, so as to not change the positions of other possibly unused
> declarations when removing one of them. Let me know if this other solution
> seems better or if the one that reparses every time is fine.
>
> Cheers,
> Eric
>
> El jue., 12 dic. 2019 a las 2:23, Eric Brandwein (<brandweineric at gmail.com>)
> escribió:
>
>> Hi all,
>>
>> Currently, when you save a method with an unused temporary variable
>> declared, it prompts you to decide if you want to remove it or not. If you
>> click yes, it removes the declaration, but only if it's declared in the
>> method scope, and not if it is declared inside a block.
>>
>> To reproduce, just create a method with an unused temporary variable
>> declared inside a block, save it, and click 'Yes' on the popup that appears.
>>
>> This is because the Parser only looks for the variable in the temps
>> declared in the method scope. Here's a ChangeSet that fixes it making the
>> Parser look inside blocks too, taking advantage of the fact that the
>> Encoder has already found the positions for each variable.
>>
>> Cheers,
>> Eric
>>
> --
> Cuis-dev mailing list
> Cuis-dev at lists.cuis.st
> https://lists.cuis.st/mailman/listinfo/cuis-dev
>
--
*Hernán WilkinsonAgile Software Development, Teaching & Coaching*
*Phone: +54-011*-4893-2057
*Twitter: @HernanWilkinson*
*site: http://www.10Pines.com <http://www.10pines.com/>*
Address: Alem 896, Floor 6, Buenos Aires, Argentina
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20191212/6a4648c4/attachment.htm>
More information about the Cuis-dev
mailing list