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);
}

Reply via email to