<div dir="ltr">Whether or not an explicit parameter name for property setters (and observers) is enforced (instead of implicit newValue and oldValue) should be a distinct proposal with its on discussion.<div>Even with explicit parameter names you can still accidentally refer to the getter where you actually mean the new value if you don&#39;t give the parameter exactly the same name.</div><div><br></div><div>When migrating existing code by adding an explicit newValue parameter name then that code will still have this bug since the implicit access to the getter is still neither fixed nor lamented.</div><div><br></div><div>I&#39;ll update the proposal accordingly.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 16, 2015 at 5:03 AM, Dennis Lysenko <span dir="ltr">&lt;<a href="mailto:dennis.s.lysenko@gmail.com" target="_blank">dennis.s.lysenko@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Caught red handed not having gone through the alternatives! I&#39;m not sure the listed negatives are too bad though. Impact on existing source, in particular, why is that an issue? Code migration has solved every breaking change so far. As for oldValue, yes, I think that should be changed as well. Not sure why that is a con. Agreed it makes it more verbose but also gives more clarity and the verbosity is negligible and I would say better than hidden compiler magic. <div><br></div><div>The need for the proposed solution feels a bit like a monkey-patch on top of a system that shouldn&#39;t need that monkey patch in the first place. That said, the proposal, were it accepted as-is, would be a welcome change and thanks for writing it up. </div><div class="HOEnZb"><div class="h5"><div><br></div><div><br><div class="gmail_quote"><div dir="ltr">On Tue, Dec 15, 2015, 9:41 PM Marc Knaup &lt;marc@knaup.koeln&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">That approach is mentioned in &quot;Alternatives considered&quot;. </p>
<div class="gmail_quote">On Dec 16, 2015 03:39, &quot;Dennis Lysenko&quot; &lt;<a href="mailto:dennis.s.lysenko@gmail.com" target="_blank">dennis.s.lysenko@gmail.com</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Other possible solution: why not just remove the default &quot;newValue&quot; and force the user to manually specify it instead? </p>
<br><div class="gmail_quote"><div dir="ltr">On Tue, Dec 15, 2015, 6:02 PM Marc Knaup via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hello everyone,</div><div><br></div><div>I would like to propose yielding a warning when a property&#39;s getter is used from within its setter implicitly without using &quot;self.&quot;.</div><div><br></div><div>This can lead to programming errors which are very easy to miss and lead to unexpected behavior at runtime.</div><div><br></div><div>Check out the full proposal here:</div><a href="https://github.com/fluidsonic/swift-evolution/blob/master/proposals/NNNN-warn-about-implicit-property-access-in-own-setter.md" target="_blank">https://github.com/fluidsonic/swift-evolution/blob/master/proposals/NNNN-warn-about-implicit-property-access-in-own-setter.md</a><br><div><br></div><div>Thank you,</div><div>  Marc</div></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=8CZIdLciSFC-2BO5jF-2FiP8qN7dBFsgCUZ50wdTsolcRPf8FzAFZH7Vojj-2FW-2Fe7CaA-2BUfJqByzjU-2FgIsB9LwTat5ylA4xlwdmWyy1fZ1GfLpWivP1BZAnm2LJnmmAx-2BY2boAOWEPYoTAMKxB95HEB4ztSN33sH-2FY2-2BcjaE0NqXueQEiAF3or4-2Fh35V0aB7oB59gtXMYLXl8iTxC7QseJu24kB9a8qiBpZm31VMGrtfyTFM-3D" alt="" width="1" height="1" border="0" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important">
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div>
</blockquote></div>
</blockquote></div></div>
</div></div></blockquote></div><br></div>