Currently we permit the same trait to be `use`d multiple times in a class:

```php
trait T { }

class C {
   use T;
   use T;
}
```

In this example it works because T doesn't have any methods.
If you add methods it won't because they will conflict:

```php
trait T { function get() {} }
```

> Trait method get has not been applied, because there are collisions with 
> other trait methods

The main question for this email: are there any valid use-cases which
do not conflict? Is there some way the methods *on the same class*
don't conflict? Using `T::get as get2` still conflicts because that
*aliases* even though most literature says it renames.

If not I would like to forbid it as part of an implementation of
generics I am working on.

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to