Re: [PHP-DEV] Traits behavior still up in the air in 5.4

2012-08-01 Thread Stefan Marr
Dear Stan: On 01 Aug 2012, at 01:23, Stan Vass wrote: 1. Name collisions between a trait method and a class method using the trait go unreported, the class silently shadowing the trait method:

Re: [PHP-DEV] Traits behavior still up in the air in 5.4

2012-08-01 Thread Stan Vass
The methods in the class have *always* higher precedence. This is the same 'overriding' behavior used for inheritance. From my personal perspective, changing this would lead to a major inconsistency with how subclassing works. Hi, I've subsequently read your RFC carefully and saw some of those

Re: [PHP-DEV] Traits behavior still up in the air in 5.4

2012-08-01 Thread Stan Vass
Could you please point me *exactly* to the paragraph where we have something written about static properties? I do not see that I wrote anything special about static properties in the RFC. And I do not find it in the docs either. static properties should work like normal properties. I'd like

Re: [PHP-DEV] Traits behavior still up in the air in 5.4

2012-08-01 Thread Stefan Marr
Hi Stan: On 01 Aug 2012, at 13:54, Stan Vass wrote: The methods in the class have *always* higher precedence. This is the same 'overriding' behavior used for inheritance. From my personal perspective, changing this would lead to a major inconsistency with how subclassing works. Hi, I've

Re: [PHP-DEV] Traits behavior still up in the air in 5.4

2012-08-01 Thread Stan Vass
From that follows that traits override the super class's methods. And, conflict resolution is only done between traits, not between a class and its traits. The class body is a definite thing. Why would you purposefully add something to a class body that conflicts with a trait? The class needs

Re: [PHP-DEV] Traits behavior still up in the air in 5.4

2012-08-01 Thread Stefan Marr
Hi Stan: On 01 Aug 2012, at 14:56, Stan Vass wrote: From that follows that traits override the super class's methods. And, conflict resolution is only done between traits, not between a class and its traits. The class body is a definite thing. Why would you purposefully add something to a

Re: [PHP-DEV] Traits behavior still up in the air in 5.4

2012-08-01 Thread Stan Vass
Because it is not a matter of horizontal reuse. Why don't you get a warning when you override an inherited method? Because that is precisely the way things are supposed to work. The body of a class is not a trait. These methods are not 'equals'. I still think that design decision is a sensible

Re: [PHP-DEV] Traits behavior still up in the air in 5.4

2012-08-01 Thread Stan Vass
I'd like to apologize for my language. My goal isn't to insult anybody, especially PHP contributors of major features like traits. I hope we can talk strictly implementation issues, I think I have a good idea how we can move this forward, I'll email you a list of behavior changes that I think

Re: [PHP-DEV] Traits behavior still up in the air in 5.4

2012-08-01 Thread Stefan Marr
On 01 Aug 2012, at 16:31, Stan Vass wrote: Because it is not a matter of horizontal reuse. Why don't you get a warning when you override an inherited method? Because that is precisely the way things are supposed to work. The body of a class is not a trait. These methods are not 'equals'.

Re: [PHP-DEV] Traits behavior still up in the air in 5.4

2012-08-01 Thread Christopher Jones
On 07/31/2012 04:23 PM, Stan Vass wrote: I'd like to point out some puzzling behaviors in Traits as they exist in the production releases of PHP 5.4. Regardless of the outcome of the mail thread, can you review the traits tests and create new tests for any behaviour not already covered?

[PHP-DEV] Traits behavior still up in the air in 5.4

2012-07-31 Thread Stan Vass
I'd like to point out some puzzling behaviors in Traits as they exist in the production releases of PHP 5.4. 1. Name collisions between a trait method and a class method using the trait go unreported, the class