On Sat, Dec 5, 2020, at 3:26 AM, Pierre R. wrote: > Le 05/12/2020 à 00:24, Larry Garfield a écrit : > > Greetings, denizens of Internals! > > > > Ilija Tovilo and I have been working for the last few months on adding > > support for enumerations and algebraic data types to PHP. This is a > > not-small task, so we've broken it up into several stages. The first > > stage, unit enumerations, are just about ready for public review and > > discussion. > > > > The overarching plan (for context, NOT the thing to comment on right now) > > is here: https://wiki.php.net/rfc/adts > > > > The first step, for unit enumerations, is here: > > > > https://wiki.php.net/rfc/enumerations > > > > There's still a few bits we're sorting out and the implementation is mostly > > done, but not 100% complete. Still, it's far enough along to start a > > discussion on and get broader feedback on the outstanding nits. > > > > I should note that while the design has been collaborative, credit for the > > implementation goes entirely to Ilija. Blame for any typos in the RFC > > itself go entirely to me. > > > > *dons flame-retardant suit* > > > Another question, about match() behavior: > > > This usage requires no modification of |match|. It is a natural > implication of the current functionality. > > May be this could be the time to have a "strict match", using enums, we > can "statically" guess if branches are missing (of course, whenever you > use default it valid to miss branches) - one thing I'd love is PHP to > throw a fatal error when compiling a match expression whose missing > branches, and not wait until runtime to fail.
I think that would make a great follow-up, but it's out of scope for now. Having match statically know what the available types are when the variable type isn't yet known (because it's in another file) is... I don't know how to do that. That's a broad problem across PHP, frankly. If we can figure out a way to do so, I'd support adding it in the future. (I can't speak for Ilija, but I suspect he would be on board as well.) --Larry Garfield -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php