On Tue, Jun 7, 2016 at 3:57 PM, <michael.petern...@gmx.at> wrote: > > > Am 07.06.2016 um 22:36 schrieb Charles Srstka via swift-evolution < > swift-evolution@swift.org>: > > > >> On Jun 7, 2016, at 3:12 PM, Xiaodi Wu <xiaodi...@gmail.com> wrote: > >> > >> On Tue, Jun 7, 2016 at 2:49 PM, Michael Peternell via swift-evolution < > swift-evolution@swift.org> wrote: > >> > >> > Am 07.06.2016 um 19:45 schrieb Charles Srstka via swift-evolution < > swift-evolution@swift.org>: > >> > > >> >> On Jun 7, 2016, at 11:47 AM, Brent Royal-Gordon via swift-evolution < > swift-evolution@swift.org> 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.
Scala has `Nothing`.
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution