On Wed, Apr 20, 2016 at 8:22 AM, Sara Golemon <poll...@php.net> wrote:
> On Tue, Apr 19, 2016 at 1:16 PM, Mathieu Rochette <math...@texthtml.net> > wrote: > > about the upper bounds, have you consider another way of describing the > > constraints, eg: > > > > class Box<T> where T is Boxable > > > > this would allow multiple constraints, eg: > > > > class Collection<T> where T is Traversable, T is Countable > > > IMO, this sort of problem should be solved by combining this feature > with union types, so you could have something like: > > class Collection<T as (Traversable | Countable)> {... > > And merely inherit the logic rules from that feature rather than > inventing yet another one. > > I think the "where T is Traversable, T is Countable" syntax was intended to represent the intersection (i.e. a "Countable Traversable"), not the union. So you would need an intersection syntax class Collection<T as Traversable & Countable> {... > > can generic types be nested ? > > > > class Stuff<A, B is Something<A, string>> > > > I can't imagine why not... > > For my part, I love the concept overall. Generics are an important > part of moving PHP towards comprehensive type-safety. But then, you > know how I feel about Hack. :) > > -Sara > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >