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; } should have the outer += done as int using the result of a += d as stored back into `a' and read back, but instead it incorrectly does two floating-point adds. it evidently isn't that common to feed the result of += etc back into a computation, at least with mixed modes, or this would have been more troublesome.