- 当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