[Issue 19125] New: IFTI and inout removes head mutability qualifier on by-val parameters
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun Jul 29 13:14:42 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=19125
Issue ID: 19125
Summary: IFTI and inout removes head mutability qualifier on
by-val parameters
Product: D
Version: D2
Hardware: x86
OS: Mac OS X
Status: NEW
Severity: enhancement
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: ali.akhtarzada at gmail.com
>From here: https://forum.dlang.org/post/jxcohrtxsfkechfgwrgo@forum.dlang.org
import std.stdio;
struct W(T) {
T t;
}
auto wrap0(T)(auto ref inout(T) t) {
return inout(W!T)(t);
}
auto wrap1(T)(auto ref inout(T) t) {
return t;
}
void main() {
pragma(msg, typeof(wrap0("foo"))); // removes it
pragma(msg, typeof(wrap1("bar"))); // keeps it
immutable int i0;
pragma(msg, typeof(wrap1(i0))); // keeps it
string s0 = "baz";
pragma(msg, typeof(wrap0(s0))); // keeps it
}
prints:
immutable(W!(char[]))
immutable(string)
immutable(int)
W!string
--
More information about the Digitalmars-d-bugs
mailing list