On Sunday, 2 July 2017 at 09:15:45 UTC, Walter Bright wrote:
On 7/1/2017 3:12 PM, Timon Gehr wrote:
It used to be the case that const(inout(T)) = const(T),

Anyone want to run git bisect and see when this changed? This would help in figuring out the rationale.

Here's the code to test with it:

inout(const char)* foo(inout(const(char))* p)
{
    pragma(msg, typeof(p));
    static assert(is(typeof(p) == const(char)*));
    return p;
}

This code doesn't compile in any version going as far back as 2.038, and before that one this code gets a syntax error.

This line:

static assert(is(const(inout(int)) == const(int)));

stops working after:

https://github.com/dlang/dmd/pull/2992

The same pull request changes the type of p in the above example from inout(char)* to inout(const(char))* (it was never const(char)*).

Reply via email to