[swift-evolution] Proposal: Allow #if to guard switch case clauses

John McCall rjmccall at apple.com
Thu May 11 02:18:03 CDT 2017


> On May 11, 2017, at 1:45 AM, Nicholas Maccharoli via swift-evolution <swift-evolution at swift.org> wrote:
> I also strongly agree. 
> 
> I can think of no strong argument against this, was this intentional at one point or a compiler bug?

The language design of #if is more complex than it is in C: it is part of the language grammar, not a separate phase of pre-processing, and must be specifically supported in every position it appears.

That said, I agree with Chris and Jordan that supporting #if in any simple, sequential position in the grammar is an obvious extension of the existing design and can reasonably be fast-tracked.

Grammatically similar positions where it's hard to dispute the consistency argument for #if: get-set clauses, precedencegroup declarations.

A position which would definitely be more useful to prioritize but where both the language design and the implementation are trickier: attribute lists.

John.

> 
> - Nick 
> 
> 
> On Thu, May 11, 2017 at 2:37 PM, Chris Lattner via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
> I agree with Jordan.
> 
> -Chris
> 
>> On May 10, 2017, at 11:47 AM, Jordan Rose via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> 
>> I'm in favor, certainly. I'd personally say this wouldn't even need to go through the full evolution process, but I'm not a core team member.
>> 
>> Jordan
>> 
>> 
>>> On May 10, 2017, at 01:32, rintaro ishizaki via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>> 
>>> Hi evolution community,
>>> 
>>> This proposal allows you to enclose switch cases with #if directive.
>>> Implementation: https://github.com/apple/swift/pull/9457 <https://github.com/apple/swift/pull/9457>
>>> This is one of the oldest SR issue:
>>> https://bugs.swift.org/browse/SR-2 <https://bugs.swift.org/browse/SR-2>
>>> https://bugs.swift.org/browse/SR-4196 <https://bugs.swift.org/browse/SR-4196>
>>> 
>>> Thanks!
>>> Rintaro
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170511/d764582d/attachment.html>


More information about the swift-evolution mailing list