[Issue 19125] IFTI and inout removes head mutability qualifier on by-val parameters

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Jul 17 15:36:39 UTC 2019


Steven Schveighoffer <schveiguy at yahoo.com> changed:

           What    |Removed                     |Added
           Hardware|x86                         |All
                 OS|Mac OS X                    |All
           Severity|enhancement                 |regression

--- Comment #2 from Steven Schveighoffer <schveiguy at yahoo.com> ---
I have another simpler case which is absolutely unacceptable:

Nullable!string s;

string x = s.get(""); // error

This is because Nullable.get is taking the above input as an inout(char[])!

It should be inout(string).

Checking all versions, looks like this worked in 2.065 and prior. Well, the
concept worked anyway, since I don't think that form of get was added to
Nullable until later.

An equivalent test:

struct S
    string boo;
    auto get(U)(inout(U) u) inout
        return boo.length == 0 ? u : boo;
void main()
    S s;
    string x = s.get("");

This fails from 2.066 on. Changing to regression.


More information about the Digitalmars-d-bugs mailing list