- 当trait别名语法中未指定具体trait时,现在正确地为所有相关trait创建别名映射
- 添加对多重trait使用的支持,处理如 use TraitA, TraitB { method as newMethod } 的语法
- 修复预处理阶段无法获取trait方法列表时的映射逻辑
- 增加对trait优先级语法中缺少trait名称的错误检查
- 添加测试用例验证trait方法冲突处理的正确性
pull/1/head
parent
583536a24e
commit
2ca129b0c1
2 changed files with 61 additions and 14 deletions
@ -0,0 +1,35 @@ |
|||||||
|
--TEST-- |
||||||
|
Method conflict in traits |
||||||
|
--FILE-- |
||||||
|
<?php |
||||||
|
trait THello1 |
||||||
|
{ |
||||||
|
public function hello() |
||||||
|
{ |
||||||
|
echo 'Hello 1', PHP_EOL; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
trait THello2 |
||||||
|
{ |
||||||
|
public function hello2() |
||||||
|
{ |
||||||
|
echo 'Hello 2', PHP_EOL; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class TraitsTest |
||||||
|
{ |
||||||
|
use THello1, THello2 { |
||||||
|
hello as hello3; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function main() |
||||||
|
{ |
||||||
|
$o = new TraitsTest; |
||||||
|
$o->hello3(); |
||||||
|
} |
||||||
|
?> |
||||||
|
--EXPECT-- |
||||||
|
Hello 1 |
||||||
Loading…
Reference in new issue