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 <https://en.wikipedia.org/wiki/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... > 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. > > +1 for @noreturn > We don't have to change it. > We have to keep it. > > -Michael > > > > > Charles > > > > _______________________________________________ > > swift-evolution mailing list > > swift-evolution@swift.org > > https://lists.swift.org/mailman/listinfo/swift-evolution > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution >
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution