On Wed, Feb 17, 2016 at 3:25 PM, Kevin Gessner <kgess...@etsy.com> wrote:

> Hello internals team!  I'd like to propose an RFC to allow traits to
> implement interfaces.
>
> I've noticed s pattern in Etsy's code and elsewhere, where a trait provides
> a common implementation of an interface.  Classes that use the trait are
> required to also explicitly declare the interface to benefit.  I propose
> that traits be permitted to declare and implement interfaces.  Classes that
> use such a trait would then implement the interface, as though it were
> declared on the class, without declaring the interface explicitly.
>
> I believe this small change would be a useful improvement to the OO
> system.  I've written a draft RFC, but I don't have karma to create the
> wiki page for it.  Could someone please grant wiki karma to my account,
> kevingessner?
>
> I don't yet have an implementation, but I'll be starting on one once I've
> posted the RFC.  I look forward to your thoughts and feedback.
>

Without given an opinion on the RFC itself, this might be interesting for
context:

http://hhvm.com/blog/9581/trait-and-interface-requirements-in-hack

HHVM already supports "trait Foo implements Iface" with the semantics that
the interface is also implemented by the using class.

Additionally HHVM supports a notion of "require implements Iface" which
means that the using class must implement this interface.

Nikita

Reply via email to