- 添加函数作用域层级管理功能,支持嵌套作用域跟踪 - 实现抽象类和接口类型的实例化检查,防止非法创建实例 - 优化参数类型声明处理,增加对象参数的作用域管理 - 添加标准数组创建的位置限制检查,确保在顶层作用域创建 - 扩展继承关系检查逻辑,支持内部接口的类型验证 - 增加完整的单元测试覆盖类型命中和声明功能pull/1/head
parent
1e22f19e63
commit
30ad4dbb0e
5 changed files with 85 additions and 1 deletions
@ -0,0 +1,8 @@ |
||||
<?php |
||||
|
||||
namespace PhpAot\Php\Context; |
||||
|
||||
class ScopeContext |
||||
{ |
||||
|
||||
} |
||||
@ -0,0 +1,21 @@ |
||||
--TEST-- |
||||
Type Declarations |
||||
--FILE-- |
||||
<?php |
||||
class Foo1123 { |
||||
public function bar() { |
||||
var_dump(__METHOD__); |
||||
} |
||||
} |
||||
|
||||
function foo(Foo1123 $v1) { |
||||
$v1->bar(); |
||||
} |
||||
|
||||
function main() { |
||||
$o = new Foo1123; |
||||
foo($o); |
||||
} |
||||
?> |
||||
--EXPECTF-- |
||||
string(12) "Foo1123::bar" |
||||
@ -0,0 +1,22 @@ |
||||
--TEST-- |
||||
type hits |
||||
--FILE-- |
||||
<?php |
||||
function foo(Stringable $data) { |
||||
var_dump(strval($data)); |
||||
} |
||||
|
||||
class A implements Stringable { |
||||
public function __toString() : string { |
||||
return "Hello World"; |
||||
} |
||||
} |
||||
|
||||
function main() |
||||
{ |
||||
$obj = new A(); |
||||
foo($obj); |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
string(11) "Hello World" |
||||
Loading…
Reference in new issue