View mode: basic / threaded / horizontal-split · Log in · Help
November 10, 2012
A refinement for pure implementation
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 is that the type of s is different from the 
return type of foo2, so foo2 is a strongly pure function.

Bye,
bearophile
November 10, 2012
Re: A refinement for pure implementation
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"); // currently error
> }
>
>
> The idea behind this is that the type of s is different from the return
> type of foo2, so foo2 is a strongly pure function.
>
> Bye,
> bearophile

It is strongly pure regardless of potential aliasing in the return 
value. This is a bug.
November 10, 2012
Re: A refinement for pure implementation
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
November 10, 2012
Re: A refinement for pure implementation
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 should work even without your 
proposed enhancement.
November 10, 2012
Re: A refinement for pure implementation
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
Top | Discussion index | About this forum | D home