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? >