It seems to me and my co-workers that the Flex compiler is broken when
it comes to local variable scoping within methods.
For example:
for (var i:int=0; i<count; i++)
{
// do something
}
for (var i:int=0; i<count; i++)
{
// do something else
}
This gives a compiler warning stating that 'i' is already defined.
But in every other language that I have used, this is completely
valid. Yes 'i' was defined above, but 'i' should only be scoped
within the 'for' loop and should be invalid outside of it.
Another example:
if (x)
{
var myArray:Array = new Array();
// do more stuff
}
myArray.push("some data");
This one compiles, when I believe that it shouldn't. myArray should
only be defined within the 'if' statement. If you don't go into the
'if' statement you have a problem here.
Does anyone understand why the Flex compiler allows this? Is this
just a BUG with the compiler?
Anyway, this is just driving me a little crazy. ;)
Gary