- 修改traitAliases数据结构以存储方法别名和新修饰符信息 - 实现trait方法别名时保留原始访问修饰符功能 - 添加对trait方法别名中newModifier属性的支持 - 更新翻译器中trait方法别名处理逻辑 - 扩展测试用例验证trait方法冲突解决机制pull/1/head
parent
57220d63b9
commit
aea979fae1
4 changed files with 50 additions and 9 deletions
@ -0,0 +1,35 @@ |
|||||||
|
--TEST-- |
||||||
|
Method conflict in traits |
||||||
|
--FILE-- |
||||||
|
<?php |
||||||
|
trait THello1 |
||||||
|
{ |
||||||
|
private function hello() |
||||||
|
{ |
||||||
|
echo 'Hello 2', PHP_EOL; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class TraitsTest |
||||||
|
{ |
||||||
|
use THello1 { |
||||||
|
THello1::hello as public hello2; |
||||||
|
} |
||||||
|
|
||||||
|
public function hello() |
||||||
|
{ |
||||||
|
echo 'Hello 1' , PHP_EOL; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function main() |
||||||
|
{ |
||||||
|
$o = new TraitsTest; |
||||||
|
$o->hello2(); |
||||||
|
$o->hello(); |
||||||
|
} |
||||||
|
|
||||||
|
?> |
||||||
|
--EXPECT-- |
||||||
|
Hello 2 |
||||||
|
Hello 1 |
||||||
Loading…
Reference in new issue