Proposal link: 
https://github.com/apple/swift-evolution/blob/master/proposals/0097-negative-attributes.md

Hello Swift Community,

The review of SE-0097: "Normalizing naming for "negative" attributes" ran from 
May 24…30, 2016. The proposal is *rejected* for Swift 3.  

The core team agrees with the principle guiding the proposal (that negative 
attributes should start with “non” instead of “no”) and highly values 
standardized naming for attributes.  The community was lukewarm about 
“nonescaping” but pretty significantly opposed to “nonreturning”.

The core team discussed this at length and agreed that the problem identified 
by the proposal needs to be solved, but prefers to explore directions that 
would define away these attributes completely:


1) For noreturn, the core team prefers to explore a solution where a function 
can be declared as returning an non-constructable “bottom” type (e.g. an enum 
with zero cases).  This would lead to something like:

        func abort() -> NoReturn { … }

This will require some new support in the compiler, but should flow better 
through the type system than @noreturn in function composition and other 
applications.  Joe Groff offered to write a proposal for this.


2) For noescape, the core team feels that the right solution is for closure 
arguments to *default* to noescape, which means that the attribute we should 
really need is @escaping.


Many thanks to Erica Sadun for driving this discussion and writing the 
proposal.  This was an important topic for the community and core team to 
re-evalute, and it was very effective at forcing progress.

-Chris Lattner
Review Manager

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to