fdorg / flashdevelop

FlashDevelop is a free and open source code editor.
MIT License
820 stars 220 forks source link

Incorrect scope visibility of renaming #578

Open andrew-git opened 9 years ago

andrew-git commented 9 years ago

If we have few loops with same iterator name, when rename iterator in any of loops we got renaming in all loops, but should rename locally in target loop.

For example we rename first "i1"

var sprites:Array<Sprite> = [];
for (i1 in sprites)
{
    trace(i1);
}

var ints:Array<Sprite> = [];
for (i1 in ints)
{
    trace(i1);      
}

and got

var sprites:Array<Sprite> = [];
for (i2 in sprites)
{
    trace(i2);
}

var ints:Array<Sprite> = [];
for (i2 in ints)
{
    trace(i2);      
}

but should be renamed only one

var sprites:Array<Sprite> = [];
for (i2 in sprites)
{
    trace(i2);
}

var ints:Array<Sprite> = [];
for (i1 in ints)
{
    trace(i1);      
}
Neverbirth commented 9 years ago

Currently FlashDevelop doesn't discern between block level variables when looking for references in Haxe.

andrew-git commented 9 years ago

Is it possible to fix this?

Neverbirth commented 9 years ago

With enough time it is, of course.

elsassph commented 9 years ago

It's in the "really minor annoyances" category for me.

SlavaRa commented 7 years ago

Fixed via #1430

Neverbirth commented 7 years ago

I wouldn't say this issue is fully fixed as it depends on Haxe 3.2+ (although I'm tempted to say 3.4+...). I know some people depend still on previous versions.