On Saturday, 21 April 2012 at 13:32:28 UTC, Marco Leise wrote:
Am Thu, 19 Apr 2012 18:58:26 +0200
schrieb "Roman D. Boiko" <r...@d-coding.com>:
I doubt specifying symbol it would be any better than
location. For example, you would not be able to rename a local
variable or any other symbol nested in a function.
Yes you can! Try to compile this:
void x() {
int i = 1;
void y() {
int i = 2;
{
int i = 3;
}
}
}
Prints: Error: shadowing declaration x.y.i is deprecated
Local variables have unique names and creating duplicate names
is deprecated since a while.
I guess x.y.i is just a convenience naming used by DMD, and it
does not appear in specification.
Also, Artur Skawina provided a nice counter-example where it
would not work.