On Thu, 1 Apr 2021 at 15:05, Matthew Brown <matthewmatt...@gmail.com> wrote: > > On Tue, 30 Mar 2021 at 13:51, Ilija Tovilo <tovilo.il...@gmail.com> wrote: > > > Hi Matthew > > > > > I like the proposal. I also support the covariance. > > > > > > One question though. > > > The RFC mentions possible future use of "nothing" as a bottom type for > > > parameters in generics. This makes a lot of sense to me. Even without > > > generics, it could be used for parameters in abstract methods. > > > > > > So why not already introduce "nothing" as the universal bottom type, and > > > use it instead of "noreturn"? > > > Can "noreturn" do anything that "nothing" can't? > > > > I'm also a little confused by this statement. The exact wording from the > > RFC is: > > > > > Arguments for never: ... It's a full-fledged type, rather than a keyword > > used in a specific situation. A far-in-the-future generics proposal could > > use never as a placeholder inside contravariant generic types. > > > > From what I understand, in Hack noreturn and never are both > > full-fledged types. Nothing is a bottom type while noreturn is not. > > Since in your proposal noreturn would also be a bottom type there's no > > reason why it couldn't be used in covariant or contravariant generic > > parameters. > > > > Please correct me if I'm missing something. > > > > Ilija > > > > -- > > PHP Internals - PHP Runtime Development Mailing List > > To unsubscribe, visit: https://www.php.net/unsub.php > > > > > In Hack it's a bit confusing. I think the Hack team ultimately decided that > "nothing" was a better name for the bottom type than "noreturn", and > confusingly introduced one while the other was still active. > > They have a long-term plan to deprecate "noreturn" in favour of "nothing" > and stop supporting the former name, though it's unclear when that might > happen.
More reason for us to avoid this mistake, and introduce a name and concept that takes into account "bottom types", or not? We should decide now if we want to use the same keyword for everything, or if a bottom type should be distinct from a no-return behavior. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php