http://d.puremagic.com/issues/show_bug.cgi?id=4832
Summary: Functions external to class break immutability Product: D Version: D2 Platform: Other OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: andrej.mitrov...@gmail.com --- Comment #0 from Andrej Mitrovic <andrej.mitrov...@gmail.com> 2010-09-06 13:37:14 PDT --- Code: import std.stdio : writeln; void foo(ref int x) { x = 10; } class Bar { immutable int x; this() { x = 5; } void printMe() { writeln(this.x); } void change() { //~ this.x = 20; // illegal, errors out } } void main() { Bar bar = new Bar; bar.printMe(); // prints 5 //~ bar.x = 10; // illegal, errors out foo(bar.x); // no error! bar.printMe(); // prints 10 } The commented out code would error out at compile time, which is expected. But the function bar() is breaking immutability of x. A relevant bug is bug 4416 , and my comment: http://d.puremagic.com/issues/show_bug.cgi?id=4416#c1 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------