[Issue 19749] Inout causes wrong type inference
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Mar 18 13:51:05 UTC 2019
https://issues.dlang.org/show_bug.cgi?id=19749
--- Comment #3 from Ali Ak <ali.akhtarzada at gmail.com> ---
What do you mean that's how inout works? It works by changing your types? Why
is it secretly changing my types?
And try adding a function that takes an S!T instead of a catch all and simple
inference doesn't work anymore. It's not scalable to have opaque types on every
function:
auto f(T)(auto ref S!T s) {
return make(s);
}
Also, if inout changes the type that you expect then even more insanity ensues:
struct S(T) {
static if (is(T == char[])) {
// implement 1
} else {
// implement 2
}
}
auto a = make("hi"); // implementation 1
auto b = S!string("hi") // implementation 2
--
More information about the Digitalmars-d-bugs
mailing list