<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>Relying on syntax highlighting to convey rather important diagnostic issues is a bad idea for a variety of reason, not least of which is the fact that the highlighting can be customized in such a way as to render the distinction between scopes invisible. Not to mention the fact that Xcode’s syntax highlighting is especially poor by modern IDE standards, often failing to properly highlight code and susceptible to SourceKit crashes at swiftc’s whim. But even if Xcode’s highlighting had been updated in the last 5 years, it still wouldn’t be a good idea.<div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>I love the removal of the self requirement, but the aliasing mentioned by Colin Cornaby is a real issue. Rather than requiring self in all instances, perhaps some additional diagnostics would be in line where the compiler detects aliasing against self properties. Of course, there are still contexts in which aliasing is perfectly fine, like an if let, but most of the time it seems like swiftc is rather lax about pointing out shadowing in the name of safety.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Jon Shier</div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Dec 4, 2015, at 6:37 PM, Kevin Ballard &lt;<a href="mailto:kevin@sb.org" class="">kevin@sb.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">


<title class=""></title>

<div class=""><div class="">Do you use Xcode to edit Swift? Xcode gives a color to properties/methods and doesn't color local variables/arguments. Is that not sufficient to distinguish this? In my experience the color is actually better than seeing the explicit `self.` because the color can be recognized faster than reading a word, and is visible in a high-level "squint" view of the function.<br class=""></div>
<div class="">&nbsp;</div>
<div class="">If you're using another editor, well, my best suggestion there is to look into what it would take to integrate SourceKit functionality into that editor for more intelligent coloring :)<br class=""></div>
<div class="">&nbsp;</div>
<div class="">-Kevin</div>
<div class="">&nbsp;</div>
<div class="">On Fri, Dec 4, 2015, at 03:29 PM, Colin Cornaby wrote:<br class=""></div>
<blockquote type="cite" class=""><div class="">+1<br class=""></div>
<div class="">&nbsp;</div>
<div class="">I've had a lot of weird things happen that I've traced to mistakes in&nbsp;properties having the same name as function arguments. I've hardly ever had this issue in modern Obj-C.<br class=""></div>
<div class="">&nbsp;</div>
<div class="">I'm a little more ok with functions not needing self as it's less likely&nbsp;for those to shadow something like an argument, but I guess the consistency would be nice too.<br class=""></div>
<div class=""><div class="">&nbsp;</div>
<div class="">On Dec 04, 2015, at 01:20 PM, David Hart &lt;<a href="mailto:david@hartbit.com" class="">david@hartbit.com</a>&gt; wrote:<br class=""></div>
</div>
<div class=""><blockquote type="cite" class=""><div class=""><div class=""><span class="">I don't understand the reasoning behind removing the need to access instance properties and functions using self. Swift has always seemed to prefer readability to brevity and the feature makes the distinction between local and instance variables/functions crystal clear. Any good reason I shouldn't go on with the proposition?<br class=""><br class="">Just as example, my proposition makes the following piece of code illegal:<br class=""><br class="">```<br class="">struct FooBar {<br class=""> var foo: String = "foobar"<br class=""><br class=""> func bar() {<br class=""> print(foo) // compiler error<br class=""> print(self.foo) // compiler happy<br class=""> }<br class=""><br class=""> func bar2() {<br class=""> bar() // compiler error<br class=""> self.bar() // compiler happy<br class=""> }<br class="">}<br class="">```<br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span></div>
</div>
</blockquote></div>
<div class=""><img style="height:1px !important;width:1px !important;border-top-width:0px !important;border-right-width:0px !important;border-bottom-width:0px !important;border-left-width:0px !important;margin-top:0px !important;margin-bottom:0px !important;margin-right:0px !important;margin-left:0px !important;padding-top:0px !important;padding-bottom:0px !important;padding-right:0px !important;padding-left:0px !important;" border="0" height="1" width="1" alt="" src="https://www.fastmailusercontent.com/proxy/0a622f8228c82468856954859f7b17f72f52131d15aba0dfe2aad604cdc7f5e2/8647470737a3f2f25723030323431303e23647e23756e64676279646e2e65647f27766f2f60756e6f35707e6d3148765176786c673171614a7d2236454230345272776e49564e455e4759687670396f624e6835416971525551795265655666357a75567f4549313141795257566c4869564e454f4879694a657774705573414d22364e464439346e623245307d223247435f6f46574d2232453767457731363154795d22324d2236445c4936694d2236457462364d465e6448396d6a7342614a5f4565766a533559394731735d474848424646687250576636333d673d42597735747851765b434d22324b405560747d654154455c4a576561627d22324263534c443833413d414b624a79376671636d4a7666314d23344d23344/open" class=""><br class=""></div>
<div class=""><u class="">_______________________________________________</u><br class=""></div>
<div class="">swift-evolution mailing list<br class=""></div>
<div class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""></div>
<div class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div>
</blockquote><div class="">&nbsp;</div>

<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=Ro-2BBk80NUrPWFtcFY6sgkxchOdXD71JI2cxZNLYx0O8mygNzWXKqSUQabOBFuHN1sydUeKhZM4-2FKHruiYs833ovSZKqYsjL6B3mQlZmzvToV-2F8WOjfQduQrBGs-2BvrRoXIzD7GkZT8UE3wPUdHALY1H2OaQWjlZ5AFQUCNz4QGjw-2BEC9KCVf3BIOYcB4EjrEk1c5i15cpfw-2BEYz3MApmp2g-3D-3D" alt="" width="1" height="1" border="0" style="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;" class="">
</div>


_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></div></body></html>