December 14, 2013 [Issue 11743] New: cannot initialize const arrays with out parameters | ||||
---|---|---|---|---|
| ||||
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 --- Comment #0 from Walter Bright <bugzilla@digitalmars.com> 2013-12-14 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: ------- |
December 15, 2013 [Issue 11743] cannot initialize const arrays with out parameters | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | https://d.puremagic.com/issues/show_bug.cgi?id=11743 --- Comment #1 from Kenji Hara <k.hara.pg@gmail.com> 2013-12-14 22:00:57 PST --- (In reply to comment #0) > 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; } > --------------------- 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: ------- |
Copyright © 1999-2021 by the D Language Foundation