On Fri, 25 Apr 2014 23:26:29 -0400, Xinok <[email protected]> wrote:

On Saturday, 26 April 2014 at 01:57:06 UTC, bearophile wrote:
This is one of the largest problems left in the implementation of D purity:

https://issues.dlang.org/show_bug.cgi?id=9148

One example of the refused code:


void foo(const int[] a) {
    int bar() pure {
        return a[0];
    }
}
void main() {}


Bye,
bearophile

I think this would break the D conventions of purity. 'a' is not immutable, only const, meaning one or more elements could change, making 'bar' impure.

It should compile. Purity in D is not the same as the more traditional definition of purity.

For example, this compiles:

int foo(int[] a) pure {return a[0];}

I see no difference from the above.

-Steve

Reply via email to