On 13 September 2015 at 19:55, Charles Forsyth wrote: > On 13 September 2015 at 19:46, wrote: > >> so we really want to have n->type == double/float > > > no, it happens to be wrong for ordinary integers too: > > > int > x(int a, double d) > { > a += (a += d); > return a; > } > i've fixed the original problem, but the assumption that the result type is the type of the right, not the type of the left (after a store) turns out to be fairly pervasive, and i'd better fix that too. 6c and 7c get it right. the others are variously wrong.