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

Reply via email to