> On 17 Dec 2015, at 17:55, James Dempsey <[email protected]> wrote:
> 
> 
> 
> I don’t think I characterized the bugs as ‘sneaky and hard to find’.

Somebody in the thread characterised the bugs as “sneaky and hard to find” 
which is why I put quotes around it. Apologies for making it appear that you 
wrote it.


>> 
>> There are other ways to achieve the goal, for example Java has a warning 
>> that explicitly tells you when your local variable is shadowing an instance 
>> variable. Why wouldn’t that work? 
> 
> If there is a warning, then you would need to change the shadowing name to 
> get rid of the warning, because you don’t want to ship with warnings, which 
> seems too limiting.  Or you need to turn off the warning globally or for a 
> particular file, but that means you can run into the problem accidentally in 
> that context.

I don’t have a problem with renaming my local variables when they shadow 
instance variables in Java which happens rarely. If there isn’t a natural 
different name, I take that as a sign that maybe I don’t need both the local 
variable and the instance variable. 

Java also has the option to suppress a warning for an individual function or 
even variable declaration through annotations.

If the objection to a bit of renaming is that it is quite onerous, generally 
speaking I’d rather have to rename a couple of local variables occasionally to 
having to put “self.” on the front of every single use of a property.

> 
> But overall, looking at the Swift API guidelines, the primary concern is 
> clarity at the call site, with clarity taking precedence over brevity. Making 
> self mandatory is definitely clearer at the call site, but it is less brief.
> 

I dispute the last sentence. I think it adds unnecessary boilerplate that can 
obscure the intent of the code. I don’t think it adds clarity except in a few 
situations.

> So, I think that my personal preference happens to line up with those 
> guidelines in this case.
> 
> I don’t think we are going to change each other’s mind about this proposal, 
> but I understand your point of view.

You’re right about that :) I have absolutely no objection whatsoever to adding 
compiler support for your coding style. i.e. an optional warning tat you missed 
“self.” off a property reference. If you want to put “self.” in front of 
everything, I’m fine with that, just don’t make me do it too.


> 
> James
> 
> 

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to