digitalmars.D.bugs - [Issue 11743] New: cannot initialize const arrays with out parameters
- d-bugmail puremagic.com (34/34) Dec 14 2013 https://d.puremagic.com/issues/show_bug.cgi?id=11743
- d-bugmail puremagic.com (24/42) Dec 14 2013 https://d.puremagic.com/issues/show_bug.cgi?id=11743
https://d.puremagic.com/issues/show_bug.cgi?id=11743 Summary: cannot initialize const arrays with out parameters Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: bugzilla digitalmars.com 11:08:45 PST --- The following shows the problem: --------------------- struct S { const int[] x; const int[] y; const int z; this(int i) { x = null; // works foo(y); // fails bar(z); // works } } void foo(out int[] y) { y = null; } void bar(out int z) { z = 1; } --------------------- dmd -c foo foo.d(9): Error: function foo.foo (out int[] y) is not callable using argument types (const(int[])) -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 14 2013
https://d.puremagic.com/issues/show_bug.cgi?id=11743The following shows the problem: --------------------- struct S { const int[] x; const int[] y; const int z; this(int i) { x = null; // works foo(y); // fails bar(z); // works } } void foo(out int[] y) { y = null; } void bar(out int z) { z = 1; } ---------------------I think bar(z); should also be rejected, because it would violate const system. struct S { immutable int z; this(int i) { bar(z); // works } } int* g; void bar(out int z) { z = 1; g = &z; } void main() { S s = S(1); assert(s.z == 1 && is(typeof(s.z) == immutable int)); *g = 100; assert(s.z == 1); // fails! } -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 14 2013