> 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
