RFC: Implementation of binary assignment operators (e.g s.x += 2) for @property functions
ketmar via Digitalmars-d
digitalmars-d at puremagic.com
Mon Aug 14 21:25:01 PDT 2017
Michael V. Franklin wrote:
> An implementation of binary assignment operators for @property functions
> has been submitted to the DMD pull request queue at
> https://github.com/dlang/dmd/pull/7079. It addresses the following
> issues:
>
> Issue 8006 - Implement proper in-place-modification for properties
> https://issues.dlang.org/show_bug.cgi?id=8006
> ------------------------------------------------------------------
> This is the primary issue motivating the pull request. The pull request
> is only a partial resolution of this issue; it implements binary
> assignment operators (e.g. `s.x += 2`), but not unary assignment
> operators (e.g. `s.x++`). The plan is to implement unary assignment
> operators in a separate pull request after the fate of the binary
> assignment operators pull request is decided.
>
> Issue 18187 – std.bitmap fields should be lvalues
> https://issues.dlang.org/show_bug.cgi?id=16187
> -------------------------------------------------
> This is a more real-world example where binary assignment operators would
> be beneficial, as bit fields are not individually addressable.
>
> Issue 15231 - opOpAssign allows assignment to rvalue
> https://issues.dlang.org/show_bug.cgi?id=15231
> ----------------------------------------------------
> While the pull request does not actually resolve the error illustrated in
> this issue, it demonstrates how a user desired binary assignment
> operators for @property functions so much that (s)he attempted to
> implement them indirectly by modeling the value type as a struct and
> overloading its operators. Had binary assignment operators been
> implemented the user probably would not have had any need expend such
> effort.
>
> Like the other users that commented in the issues above, I was a bit
> dismayed to discover that binary assignment operators were not
> implemented for @property functions. When I submitted the pull request I
> was under the assumption that the only reason they weren’t implemented
> was because noone had gotten around to it yet.
>
> Walter has requested that I make this forum post to inform the community
> of this change in an effort to discuss its merits and/or shortcomings.
>
> We ask for your comments whether they be in approval or disapproval of
> this pull request so we can determine the best way forward.
>
> Thank you,
> Michael V. Franklin
merge it. but don't do unary inc/dec, as they are meant to be as atomic as possible.
More information about the Digitalmars-d
mailing list