[swift-evolution] [Pitch] Removing Setter/Observer Name Overrides

Brent Royal-Gordon brent at architechies.com
Sun Dec 4 04:31:19 CST 2016

> On Dec 3, 2016, at 7:06 PM, Erica Sadun <erica at ericasadun.com> wrote:
> A majority of respondents prefer that argument names always be mentioned, 
> whether or not they *can* be omitted. Consensus is that it's unSwifty
> to use pre-built `newValue` and `oldValue` arguments without mentioning
> them first.

For what it's worth, I don't agree that the default names are a problem. I think they're a helpful convenience which, nevertheless, must occasionally be overridden because they conflict with the name of something else. The names are well-chosen and virtually always read correctly.

(Also FWIW, I'm not sure I've ever explicitly named the `oldValue`/`newValue` variable rather than using the implicit names.)

I think a warning on using `oldValue` instead of `newValue` or vice versa would be very helpful and address the parts of this proposal which aren't motivated by mere style complaints. The rest I think is a style issue, and I don't think that style issue is nearly universally-agreed-upon or serious enough to motivate a breaking change affecting tons of property setters, property observers, and subscript setters.

Brent Royal-Gordon

More information about the swift-evolution mailing list