> Le 7 juin 2016 à 13:45, Charles Srstka via swift-evolution 
> <[email protected]> a écrit :
> 
>>> On Jun 7, 2016, at 11:47 AM, Brent Royal-Gordon via swift-evolution 
>>> <[email protected]> wrote:
>>> 
>>> I disagree. We are discussing how to annotate a function in some way so 
>>> that the compiler knows that the code following it will never be executed 
>>> *and* so a human who reads the declaration knows that it does not return. 
>>> “Never" is a poor choice for that. Never what? Never return? Never use this 
>>> function? Never say never again? 
>> 
>> "Never return". That's why it's in the return type slot, right after the 
>> `->`. If you read it out loud, you'll read "returns Never", which is exactly 
>> correct.
>> 
>> NoReturn, on the other hand, does *not* read well in that slot: "returns 
>> NoReturn". Huh? I mean, I suppose you won't misunderstand it, but it makes 
>> no sense whatsoever *as a type name*.
> 
> But it’s *not* a type. You’ll never have an instance of it. Since it’s not a 
> type name, it doesn’t make sense that it needs to look like one. What it is 
> doing is telling you something about the behavior of the function itself, not 
> its return value. Its return value, if there were one, is irrelevant, since 
> the function, by its very nature, will never even get to the point where it 
> would return it. Either it’s going to kill the app via a fatalError or 
> something, or we have something like dispatch_main() which will keep 
> executing until the program stops, and one way or another, it won’t return.
> 
> For that reason, frankly, I don’t understand why we want to change this from 
> being an attribute, which seems to me the more natural and logical choice to 
> describe this behavior. If we *do* have to change it, though, NoReturn 
> conveys the most clearly to the reader what it does.

Not fully sure of the possibility and usefulness, but I think that moving from 
the current attribute to a type could allow the registration of non returning 
escaping closure.

I'll leave further investigation/discussion on the use of this '-> Never' with 
closure to people using Swift on a daily basis, but something tell me it could 
be handy.

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

Reply via email to