18217, "bradcray", "Are we committed to supporting the separate assignment of the real/imaginary components of a complex?", "2021-08-12T23:46:44Z"
In a meeting today, we were discussing how most Chapel types are "singletons" that can't be partially modified, but have to be modified via re-assignment: integers, ranges, dense rectangular domains, strings, bytes. It was asserted that complexes had this property as well, and a few of us confirmed that that was our understanding / recollection, but checking, it seems we were wrong about that. For example, you can write:
var c: complex; c.re = 1.0;
which makes complexes somewhat of an outlier compared to other built-in types (but if viewed as being similar to a record or tuple, doesn't make it an outlier at all.
This issue asks whether we're sure that this is what we want given that some of us had it wrong.