- 实现了子类方法重写时参数数量、返回类型、参数类型的兼容性检查 - 添加了按引用传递参数和可变参数的签名匹配验证 - 新增了继承错误测试用例文件 - 重构了方法重写检查逻辑,提取为独立的验证函数 - 更新了错误提示信息以显示具体的不兼容原因pull/3/head
parent
4faff75f62
commit
23a100caf4
5 changed files with 98 additions and 4 deletions
@ -0,0 +1,12 @@ |
||||
<?php |
||||
class A |
||||
{ |
||||
function f($x) {} |
||||
} |
||||
|
||||
class B extends A |
||||
{ |
||||
function f(&$x) {} |
||||
} |
||||
|
||||
function main() {} |
||||
@ -0,0 +1,12 @@ |
||||
<?php |
||||
class A |
||||
{ |
||||
function f(): int { return 1; } |
||||
} |
||||
|
||||
class B extends A |
||||
{ |
||||
function f(): string { return ""; } |
||||
} |
||||
|
||||
function main() {} |
||||
@ -0,0 +1,12 @@ |
||||
<?php |
||||
class A |
||||
{ |
||||
function f(int $x) {} |
||||
} |
||||
|
||||
class B extends A |
||||
{ |
||||
function f(string $x) {} |
||||
} |
||||
|
||||
function main() {} |
||||
@ -0,0 +1,12 @@ |
||||
<?php |
||||
class A |
||||
{ |
||||
function f($x) {} |
||||
} |
||||
|
||||
class B extends A |
||||
{ |
||||
function f(...$x) {} |
||||
} |
||||
|
||||
function main() {} |
||||
Loading…
Reference in new issue