[Cuis-dev] RenameTemporary of var with same name fix

Hernan Wilkinson hernan.wilkinson at 10pines.com
Sun Dec 22 15:38:46 PST 2019


Thank you!
Integrated

On Wed, Dec 18, 2019 at 7:04 PM Eric Brandwein <brandweineric at gmail.com>
wrote:

> Here we go, a ChangeSet that fixes this issue. Attached also is another
> test for the class.
>
> Cheers,
> Eric
>
> El mié., 18 dic. 2019 a las 10:29, Hernan Wilkinson (<
> hernan.wilkinson at 10pines.com>) escribió:
>
>>
>>
>> On Wed, Dec 18, 2019 at 1:51 AM Eric Brandwein <brandweineric at gmail.com>
>> wrote:
>>
>>> Great! I was actually working on that but your approach seems better
>>> than mine. I got a little bit stuck solving another issue with it, that
>>> happens when changing the name to one already used in another block.
>>>
>>
>> hehe, yeap, I saw that problem too... we should work together man! :-) or
>> communicate more :-)
>>
>>
>>> For example, one should be able to rename the temp variable 'old' to
>>> 'new' in the method:
>>>
>>> method
>>>     [ | old | ^old ].
>>>     [ | new | ^new ].
>>>
>>> , but the current implementation doesn't support it. Attached is a
>>> ChangeSet with a test demonstrating this.
>>>
>>> I was stuck because it meant we should be able to determine if the block
>>> B declaring the new variable A neither has any inner blocks defining the
>>> same variable nor any block that contains B defines A. If both these things
>>> are true (and all the other checks pass), the variable can be renamed.
>>> This, in turn, meant we should go through all the parse tree looking for
>>> the branch that corresponds to B, and just check for A in the nodes on that
>>> branch. It can be done probably with a ParseNodeVisitor; it just was too
>>> late when I was programming this and it seemed that it was going to take me
>>> a longer while to implement it, so I just left it there to continue later.
>>> I'll probably do it tomorrow if I have some time.
>>>
>>
>> Cool! Let me know if you can solve it.
>>
>> The scopeTable is the problem, it does not support levels of
>> environments... that is the root of all the problems we are having with the
>> rename, shadowing, etc etc.
>> Changing how the scopeTable is right not is not easy, maybe some day I'll
>> have time to look at it.
>>
>> Cheers!
>> Hernan.
>>
>>
>>> Cheers,
>>> Eric
>>>
>>> El mar., 17 dic. 2019 a las 19:30, Hernan Wilkinson via Cuis-dev (<
>>> cuis-dev at lists.cuis.st>) escribió:
>>>
>>>> Hi,
>>>>  I just uploaded to the repo a fix for that bug.
>>>>  Now if two different blocks define a var with the same name, the
>>>> rename works as expected.
>>>>
>>>> Cheers!
>>>> Hernan.
>>>>
>>>> --
>>>>
>>>> *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
>>>> --
>>>> 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
>>
>

-- 

*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/20191222/a05554a0/attachment-0001.htm>


More information about the Cuis-dev mailing list