Re: A refinement for pure implementation

2012-11-10 Thread bearophile
Timon Gehr: The point was that the code you gave should work even without your proposed enhancement. So my original question was: do you remember if Hara has already written a patch to fix that bug? :-) Bye, bearophile

Re: A refinement for pure implementation

2012-11-10 Thread Timon Gehr
On 11/10/2012 05:21 PM, bearophile wrote: Timon Gehr: It is strongly pure regardless of potential aliasing in the return value. This is a bug. This can't be strongly pure: int[] foo2(int[] a) pure { a[0]++; return a; } Bye, bearophile The point was that the code you gave shoul

Re: A refinement for pure implementation

2012-11-10 Thread bearophile
Timon Gehr: It is strongly pure regardless of potential aliasing in the return value. This is a bug. This can't be strongly pure: int[] foo2(int[] a) pure { a[0]++; return a; } Bye, bearophile

A refinement for pure implementation

2012-11-10 Thread bearophile
Do you remember if Hara has implemented a patch to allow a2 to be immutable? int[] foo1(int x) pure { return null; } int[] foo2(string s) pure { return null; } void main() { immutable a1 = foo1(10); // OK immutable a2 = foo2("hello"); // currently error } The idea behind this

Re: A refinement for pure implementation

2012-11-10 Thread Timon Gehr
On 11/10/2012 03:32 PM, bearophile wrote: Do you remember if Hara has implemented a patch to allow a2 to be immutable? int[] foo1(int x) pure { return null; } int[] foo2(string s) pure { return null; } void main() { immutable a1 = foo1(10); // OK immutable a2 = foo2("hello")