[swift-evolution] [Review] SE-0102: Remove @noreturn attribute and introduce an empty NoReturn type

Charlie Monroe charlie at charliemonroe.net
Wed Jun 22 06:47:38 CDT 2016


> On Jun 22, 2016, at 1:42 PM, Vladimir.S <svabox at gmail.com> wrote:
> 
> On 22.06.2016 14:15, Charlie Monroe wrote:
>> 
>>> On Jun 22, 2016, at 12:41 PM, Vladimir.S via swift-evolution
>>> <swift-evolution at swift.org> wrote:
>>> 
>>> +1, I feel it will be very 'Swifty' to replace magical @noreturn
>>> attribute to clear special type(which then, later, probably could be
>>> used as bottom type).
>> 
>> That's the problem of this proposal IMHO. It feels like a quick-fix for
>> the attribute, but is something that is likely to be changed once a real
>> bottom type is introduced. I'd suggest waiting until the language is
>> ready to introduce a real bottom type that can be used more universally
>> (generics, ...).
> 
> As I understand the situation: proposal is for changing @noreturn to Never(actually NoReturn, which I don't like) for Swift 3.0 to make code breaking changes *now*. Then, after 3.0, we can *extend* meaning of Never(if we decided) without breaking changes for @noreturn.
> 
> Do you want to say that 'Never' can't be then used as bottom type if we'll introduce it now just as special return type instead of @noreturn?

I can live with Never. But the proposed NoReturn is a single-case solution and would eventually require a code-breaking change anyway were the bottom type implemented under a different name.

> 
>> 
>>> But I prefer "Never" as such type's name. IMO it's very easy to teach
>>> anyone that "Never" can't have instance of its type so `-> Never`
>>> means the func will not return and it reads clearly "returns never",
>>> so I believe it will not confuse one after first teching of meaning of
>>> Never type.
>>> 
>>> On 21.06.2016 20:03, Chris Lattner via swift-evolution wrote:
>>>> Hello Swift community,
>>>> 
>>>> The review of "SE-0102: Remove @noreturn attribute and introduce an
>>>> empty NoReturn type" begins now and runs through June 27. The
>>>> proposal is available here:
>>>> 
>>>> https://github.com/apple/swift-evolution/blob/master/proposals/0102-noreturn-bottom-type.md
>>>> 
>>>> 
>>>> 
> Reviews are an important part of the Swift evolution process. All reviews should be sent to the swift-evolution mailing list at
>>>> 
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>>> 
>>>> or, if you would like to keep your feedback private, directly to the
>>>> review manager.
>>>> 
>>>> What goes into a review?
>>>> 
>>>> The goal of the review process is to improve the proposal under
>>>> review through constructive criticism and contribute to the
>>>> direction of Swift. When writing your review, here are some
>>>> questions you might want to answer in your review:
>>>> 
>>>> * What is your evaluation of the proposal? * Is the problem being
>>>> addressed significant enough to warrant a change to Swift? * Does
>>>> this proposal fit well with the feel and direction of Swift? * If
>>>> you have used other languages or libraries with a similar feature,
>>>> how do you feel that this proposal compares to those? * How much
>>>> effort did you put into your review? A glance, a quick reading, or
>>>> an in-depth study?
>>>> 
>>>> More information about the Swift evolution process is available at
>>>> 
>>>> https://github.com/apple/swift-evolution/blob/master/process.md
>>>> 
>>>> Thank you,
>>>> 
>>>> -Chris Lattner Review Manager
>>>> 
>>>> _______________________________________________ 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
>> 
>> 



More information about the swift-evolution mailing list