Hi Brent and Krystof,

The proposal brought a lot of interesting discussions, but in the end, I think 
the right choice was made. It fits the Swift philosophy and rational, both in 
terms of the decision concerning the self. and concerning not having a warning. 
It took some time for me to try and adapt to not using self everywhere, but it 
is an interesting change.

David.

> On 20 May 2016, at 00:00, Brent Royal-Gordon via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
>> What I don't understand is why can't this be an option. There are two camps, 
>> each advocating either preferences and each camp is quite vocal about it. 
>> Why not let the user decide? Hence my proposal to make it an optional 
>> warning.
> 
>> When you take a look at all the LLVM warnings options, there are things 
>> people usually don't have enabled, but advanced users or users who prefer 
>> safer code, can enable them. E.g. -Wfour-char-constants for warning about 
>> four-char OSTypes, etc. (just go through them in Xcode build settings).
> 
> Clang has lots of these kinds of warning flags, but so far, Swift does not. 
> This is not an accident—it's a deliberate design. We don't want dragging a 
> file between projects, or otherwise moving it from one context to another, to 
> suddenly make it emit errors or warnings. There should not be dialects of 
> Swift; there should be one Swift that everyone writes in.
> 
> However, that necessarily means that we can't provide a lot of 
> configurability in terms of warnings. If every warning needs to be on for 
> every file, then we need to choose warnings which have a high signal, and we 
> need to have ways to disable them merely by editing code without changing its 
> semantics (like by adding extra parentheses). This limits the kinds of 
> warnings we can provide: we can't really warn about subjective style issues. 
> Even the "unnecessary var" and "why don't you assign to _?" warnings are 
> toeing the line of acceptable noisiness in Swift diagnostics.
> 
> So because of the philosophy behind Swift's error and warning design, we 
> can't really support things like an "implicit self" warning. It quite simply 
> runs counter to the language's goals. That's why we're interested in robust 
> linting and formatting tools. Swift is packaged as a library not merely 
> because it's a cleaner design, but also because it makes it easier to build 
> accurate tools like these, things that can help fill in the gaps in Swift's 
> own tooling.
> 
> -- 
> Brent Royal-Gordon
> Architechies
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to