> Am 07.06.2016 um 22:36 schrieb Charles Srstka via swift-evolution > <[email protected]>: > >> On Jun 7, 2016, at 3:12 PM, Xiaodi Wu <[email protected]> wrote: >> >> On Tue, Jun 7, 2016 at 2:49 PM, Michael Peternell via swift-evolution >> <[email protected]> wrote: >> >> > Am 07.06.2016 um 19:45 schrieb Charles Srstka via swift-evolution >> > <[email protected]>: >> > >> >> 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. >> >> That's the dictionary definition of a bottom type, though: a type which has >> no values. >> >> 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. >> >> And that's the dictionary definition of a function where the return type is >> bottom. This isn't something being made up just for Swift... > > What’s the dictionary definition of a do loop? Or a for loop? Or try/catch? > > Swift doesn’t do things the same as other languages in lots of places. I > don’t see why it has to be different here. @noreturn is a clearer description > of what this construct does.
Hi, I know of no other language that has a named bottom type that can syntactically compete with non-bottom-types. Swift would be the first (I think). The definition of bottom types hasn't been made up for Swift, right. "bottom type" is to "type" as is "javascript" to "java". Almost every language has a bottom type, including Swift 1. That doesn't mean that we should give it a name. -Michael > > Charles > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
