On the left side of = there are different rules: ax = b translated into a.x_=(b) (provided that there is also a method x ()) a(i1,... in) = b converted to a.update(i1...,in, b)
So array(5) = 3 is array.update(5,3)
Of course, for arrays, it compiles directly to the write array without calling a method between them.
source share