[swift-evolution] Change `repeat` to loop indefinitely if no while clause is present

Xiaodi Wu xiaodi.wu at gmail.com
Tue May 10 14:10:35 CDT 2016


Nicholas wrote that he would like `while true` to be a compile-time error.
I'm curious as to why.

On Tue, May 10, 2016 at 13:47 Tyler Cloutier <cloutiertyler at aol.com> wrote:

> On May 10, 2016, at 12:39 AM, Xiaodi Wu via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> On Tue, May 10, 2016 at 2:27 AM, Nicholas Maccharoli via swift-evolution <
> swift-evolution at swift.org> wrote:
>
>> ​Swift Evolution ​Community,
>>
>> Currently writing an infinite loop in swift looks either something like
>> this:
>>
>>     while true {
>>         if ... { break }
>>         //...
>>     }
>>
>> Or this:
>>
>>     repeat {
>>         if ... { break }
>>         //...
>>     } while true
>>
>> But I think it might be best to change the syntax / behaviour of `repeat`
>> to loop
>> indefinitely if no trailing while clause is present:
>>
>>     repeat {
>>         if ... { break }
>>         //...
>>     }
>>
>> while still allowing a trailing `while` clause as in:
>>
>>     repeat {
>>         foo += bar
>>     } while foo.count < limit
>>
>
> What is your motivation for this change?
>
>
>> I also want to propose that it should be a compile time error to use
>> single `Bool` constants as while loop conditions, so no more `while true {
>> ... }` it would become `repeat { ... }`
>>
>
> What problems are solved by forbidding `while true`?
>
>
> I don’t think the proposal is forbidding it, but rather making it
> optional. So that
>
> repeat {
>
> }
>
> is equivalent to
>
> repeat {
>
> } while true
>
>
>
>> I was thinking of drafting a short proposal if there was enough positive
>> feedback.
>>
>> How does it sound?
>>
>> - Nick
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> 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/20160510/4b444b5b/attachment.html>


More information about the swift-evolution mailing list