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?
