> On Jun 1, 2016, at 10:54 AM, Jordan Rose via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
>> 
>> On May 29, 2016, at 13:20, Chris Lattner via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> 
>>> On May 29, 2016, at 12:58 PM, Erica Sadun <er...@ericasadun.com 
>>> <mailto:er...@ericasadun.com>> wrote:
>>> One could make a weak argument that #warning/#error/#message make a nice 
>>> family of flexible alerts
>>> just because they're kind of what we're used to already. 
>> 
>> Right: it isn’t a bad thing at all, but it is certainly the case that people 
>> often request adding features to Swift that they see in other languages.  
>> Our task is to look at whether the problem is real and significant enough to 
>> solve, and if the proposal solves it in the best possible way consistent 
>> with the rest of Swift.
>> 
>> An similar example is "#pragma mark”.  Instead of introducing language 
>> support for it, we codified a comment marker (since it is semantically 
>> identical to a comment).  Xcode picks it up and does the right thing, and I 
>> think it has worked out well.
>> 
>> As to #warning, Swift’s use of warnings are significant different than the 
>> use in C.  In C compilers, many of the warnings produced *should* be errors, 
>> but can’t be because that effects language conformance and could break a 
>> large body of code.  Swift doesn’t have this problem, so it treats warnings 
>> as “things that should be addressed before you commit your patch, but 
>> shouldn’t block a build if (e.g.) you’re in the middle of a big 
>> refactoring”.  For example, an unused variables is a warning in Swift.
> 
> This sounds exactly like what I’d use #warning for. “I’m in the middle of a 
> big refactoring, and I haven’t gotten to this part yet; let me put a warning 
> in so I can test the other part but won’t forget to come back to it.” It 
> might also make sense for doing a series of commits on a branch when you need 
> to fix something before merging back to trunk.

+1 to the proposal, and Jordan has captured my feelings very well here so I 
won’t repeat him.

> 
> I think it is important for such diagnostics to show up in compilation, not 
> just in IDEs, especially with people using the Swift Package Manager. We 
> could have the compiler parse every comment looking for TODOs and FIXMEs by 
> default, and emit those as warnings, but I’d want to find out if that creates 
> a noticeable difference in parsing time. (It also seems odd that comments 
> would be controlled by #if, but maybe that’s silly.)
> 
> +1 to the proposal from me, though I agree with Brent that the parentheses 
> don’t feel right. This is closer to #if and #setline than #available and 
> #selector.
> 
> Jordan
> 
> P.S. #error is also interesting, but more for “things that should never 
> happen” (like the else branch of a platform check), which makes it a bit less 
> important. #info/#message can be useful but I’d like to see a concrete case 
> before designing it.
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <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