[Accepted] SE-0102: Remove @noreturn attribute and introduce an empty Never type


(Chris Lattner) #1

Proposal link: https://github.com/apple/swift-evolution/blob/master/proposals/0102-noreturn-bottom-type.md

Hello Swift Community,

The review of "SE-0102: Remove @noreturn attribute and introduce an empty NoReturn type" ran from June 21...27. The core team *accepted* the proposal for Swift 3 with a revision to change the name of the type from “NoReturn” to “Never”.

The feedback on the proposal was generally very positive from the community. The only significant concern was from people who felt that merging the concept of “does not return” into the result type of the function conflates two concepts. The core team feels that unifying these concepts overall reduces the surface area of the language by eliminating an obscure (but important) type system concept outright.

The other significant discussion was about the actual name for the “NoReturn” type. The core team enjoyed the community idea of naming it “💥" or ”🔃” but decided that the name lacked clarity. Ultimately the core team agreed with the loud voice of the community that “Never” is the right name for this type.

Thank you to Joe Groff for driving this proposal forward! I filed SR-1953 to track implementation of this feature.

-Chris