On Monday, 29 July 2013 at 17:52:41 UTC, Meta wrote:
In your notation, it seems like there could be issues. What if
T2 is a local variable, then is that an assignment? If there
is no possible issues then I wouldn't mind having such a
syntax... anything is better than nothing.
I don't think it would be an issue, as it would work the same
way as local variables in functions that shadow those in an
outer scope.
...
Actually, I think I misunderstood your meaning. You're right,
this could be a problem. Currently:
import std.stdio;
void main()
{
int x = 0;
int test(int x, int y)
{
return x + y;
}
//Prints 2
writeln(test(x = 1, 1));
//Prints 1
writeln(x);
}
So in a hypothetical situation where we now have named parameters:
import std.stdio;
void main()
{
int x = 0;
int test(@name("x") x, @name("y") y)
{
return x + y;
}
//Prints 3
writeln(test(x = 1, y = 2));
//What does this print?
writeln(x);
}