See #18015 <https://github.com/JuliaLang/julia/issues/18015>

On Friday, 12 August 2016 20:59:20 UTC+1, Scott T wrote:
>
> I've got a really REALLY elusive bug which as far as I can tell boils down 
> to this line of code:
>
> shuffleFields!(A, getb(A), getc(A), geta(A))
>
> where the intent is to reassign A.a, A.b, A.c:
>
> shuffleFields!(A, a, b, c) = (A.a = b; A.b = c; A.c = a)
>
> and where
>
> geta(A)= A.a # etc
>
> The thing is that this line behaves differently in julia 0.4 and julia 
> 0.5, and it also behaves differently in julia 0.5 and julia 0.5 stepped 
> through with Gallium. Is this some kind of undefined behaviour? I would 
> have expected geta, getb and getc to be evaluated first and for their 
> values to be passed to the function, but the behaviour I'm seeing on julia 
> 0.5 is like it's evaluating them lazily. Have I missed something?
>

Reply via email to