[Issue 21175] opAssign should be allowed to return void and let the compiler take care of chained assignments
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Aug 19 00:45:15 UTC 2020
https://issues.dlang.org/show_bug.cgi?id=21175
Paul Backus <snarwin+bugzilla at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |snarwin+bugzilla at gmail.com
--- Comment #1 from Paul Backus <snarwin+bugzilla at gmail.com> ---
I think a lowering that works for all cases is
e1 = e2
to
auto ref typeof(e1) (auto ref typeof(e1) v1) {
v1.opAssign(e2);
return v1;
}(e1)
This can be expanded recursively to handle any number of chained assignments
(e.g., replace e2 with `e2a = e2b`).
The only catch is that D doesn't currently allow function literals that return
`auto ref`.
--
More information about the Digitalmars-d-bugs
mailing list