http://d.puremagic.com/issues/show_bug.cgi?id=7757
Summary: Inout function with lazy inout parameter doesn't compile Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: critical Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: hst...@quickfur.ath.cx --- Comment #0 from hst...@quickfur.ath.cx 2012-03-23 19:04:06 PDT --- Code: inout(int) func(int x, lazy inout(int) defaultVal) { return defaultVal; } void main() { int x = func(1,2); const(int) cx = func(1,2); } Compiler error: test2.d(4): Error: inout on return means inout must be on a parameter as well for pure @safe inout(int)() test2.d(8): Error: inout on return means inout must be on a parameter as well for inout(int)() test2.d(9): Error: inout on return means inout must be on a parameter as well for inout(int)() Clearly, this is wrong, because inout *is* on the second parameter. It's being masked by the "lazy", as can be proven by removing "lazy" and it will compile. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------