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

Sean Heber sean at fifthace.com
Wed Jun 22 10:55:56 CDT 2016


> 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
> 
> 	* What is your evaluation of the proposal?

My feeling on this as a non-expert is that the attribute probably does the job well enough and that it is rare enough to not matter for virtually all Swift programmers. I’m less qualified to talk about the idea of a bottom type, but in reading the proposal a few times, I still can’t see what the point of that angle is from a uses-the-language-to-make-apps-rather-than-experiment-with-type-theory point of view.

In terms of complier implementation, I’m *entirely* unqualified, but I certainly understand the appeal to make things better/simpler/easier-to-maintain. If it helps to get rid of the attribute for this purpose, then okay, but personally I think I draw the line at declaring a single “official” NoReturn type (or Never or any other name). I don’t think that argument is compelling enough. The idea of declaring separate empty types based on circumstance is *way* more appealing to me and this was mentioned in the alternatives section. This seems like such a rare case that it would be worth it to have the extra clarity of intent from naming the return type accordingly - such as Exit or InfiniteLoop or whatever.


> 	* Is the problem being addressed significant enough to warrant a change to Swift?

I’m not convinced, but I don’t work on the compiler. :)


> 	* Does this proposal fit well with the feel and direction of Swift?

I think having separate empty types that clearly illustrate the intent above and beyond a single NoReturn type is a more “Swifty" way to go.


> 	* If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?

n/a


> 	* How much effort did you put into your review? A glance, a quick reading, or an in-depth study?

Tracked the discussion some, when possible, read the proposal a few times.

l8r
Sean



More information about the swift-evolution mailing list