韩天峰
|
c3f0151e87
|
feat(aot): 支持类继承、接口及抽象类的类型兼容与运行时检查
允许子类对象赋值给父类/接口/抽象类声明的类型变量和容器,引入 declaredClass 区分声明类型与实际类型,对无法静态证明的继承关系添加运行时类型
|
2 months ago |
韩天峰
|
6baaa9a221
|
test: 添加 Symfony 模式及引用相关测试
|
2 months ago |
韩天峰
|
5ee74b2d9d
|
fix(parser): 修复引用赋值时的类型推断错误
|
2 months ago |
Yurun
|
580f1fb64f
|
fix(compiler): 修复引用参数是对象时调用方法错误
|
2 months ago |
韩天峰
|
399f77d5c5
|
feat(php): 实现对函数参数引用传递的支持
- 添加了 AOT 调用参数信息获取功能
- 实现了按索引和名称获取参数信息的方法
- 增加了对命名参数引用传递的判断支持
- 添加了引用参数值解析功能
- 优化了新对象构造函数参数传递逻辑
- 完善了对动态调用和继承链的参数分析
- 新增静态函数、方法和构造函数引用参数测试用例
|
2 months ago |
韩天峰
|
15bcacacc0
|
fix(php): 修复引用参数传递中的静态属性处理问题
- 在引用参数解析中添加临时变量处理以支持引用类型参数
- 为静态属性获取器添加 toReference() 方法调用支持
- 添加新的测试用例验证静态属性引用操作的正确性
- 优化编译器对 nativeProperty 属性的引用值处理逻辑
|
2 months ago |
韩天峰
|
1e3cf4d25e
|
refactor(php): 优化条件表达式解析逻辑
- 提前解析条件表达式并存储到变量中避免重复计算
- 更新三元运算符表达式的构建方式提高代码可读性
- 添加 preg_match 函数相关的 AOT 编译测试用例
- 添加对象链接操作符相关的引用测试用例
- 完善正则匹配功能的自动化测试覆盖
|
3 months ago |
韩天峰
|
e7680c5e81
|
feat(php): 扩展 refval 函数支持数组元素和对象属性引用
- 添加对 refval($arr[key]) 数组元素引用的支持
- 添加对 refval($obj->prop) 对象属性引用的支持
- 实现 expandRefvalExpr 方法处理复杂引用表达式
- 增强错误检查验证 refval 参数类型
- 添加相应的单元测试用例
|
3 months ago |
韩天峰
|
000b6a221d
|
fix(tests): 修正测试文件中的路径引用
- 修正 empty-test.phpt 中的静态属性测试文件路径
- 修正 isset-test.phpt 中的静态属性测试文件路径
- 修正 magic-constants.phpt 中 __DIR__ 魔术常量的期望输出
- 修正 ref-call-arg.phpt 中 zip 文件的路径引用
- 修正 static_class_property_read_write.phpt 中的测试文件路径
- 修正 universal_method_expr.phpt 中 Assert.php 的引入路径
|
3 months ago |
韩天峰
|
b1284be533
|
对 phpt 测试文件进行分类
|
3 months ago |
韩天峰
|
799aa629c0
|
feat(php): 添加 refval 函数支持引用传递功能
- 新增 isRefvalCall 方法检测 refval 函数调用
- 在编译器中添加对 refval 函数的特殊处理逻辑
- 实现 refval 函数调用的参数解析和优化
- 添加 refval 函数的 polyfill 实现
- 在 stub 生成中使用 refval 包装声明字符串
- 添加 refval 函数的测试用例
|
4 months ago |
韩天峰
|
05854e55be
|
refactor(php): 重构PHP编译器中的引用参数处理逻辑
- 将引用参数处理逻辑提取到独立的parseArgRefVar方法中
- 简化了Scalar_String类型处理时的genCharPtr调用
- 添加了对refval函数的支持,允许通过函数调用传递引用参数
- 移除了重复的引用参数处理代码,提高代码复用性
- 修复了eval函数中使用的identifierToStr方法调用
- 添加了refval函数的测试用例
|
4 months ago |
韩天峰
|
9d9556929f
|
test(aot): 添加类常量测试用例并修复返回值解引用问题
- 新增 class const 001 测试用例验证 AOT 编译功能
- 在返回值处理后添加 php::deref(return_value) 确保正确解引用
- 修复了函数返回值可能存在的内存引用问题
- 测试用例覆盖了数组排序和引用传递场景
|
4 months ago |
韩天峰
|
ee3dbc9717
|
feat(compiler): 添加项目配置和扩展忽略功能
- 在 Translator 类中新增 ignoreExtensions 属性用于存储忽略的扩展
- 修改构造函数逻辑,将 main 函数从内部函数列表中移除
- 更新属性初始化代码,修复命名空间获取方式
- 在项目配置解析中添加对 ext-* 格式扩展的识别和忽略处理
- 添加测试用例验证对象构造器数组属性默认值功能
- 添加引用操作相关测试用例
- 新增项目配置文件示例
|
4 months ago |
韩天峰
|
84b9340998
|
fix(aot): 修复AOT编译中类继承和常量定义相关问题
- 在WorkerA类中添加baz方法用于测试保护方法访问
- 修正isInheritedFrom方法中类名比较逻辑,确保正确的继承检查
- 更新对象实例类名获取方式,使用getFullClassName替代直接访问
- 修复常量定义解析中的多余换行符问题
- 扩展测试用例验证保护方法在不同实例间的调用行为
|
5 months ago |
韩天峰
|
492a1dbd39
|
fix(php): 修复类方法访问权限检查逻辑
- 重构 checkAccessible 方法,正确处理 private 和 protected 方法的访问控制
- 添加对受保护方法的继承关系检查
- 修复当前类内部访问权限判断逻辑
- 优化 findNativeMethod 中的对象方法查找流程
- 添加缺失的返回值处理逻辑
|
5 months ago |
韩天峰
|
eaa598a48e
|
fix(php): 解决字符串连接操作符的void类型检查和引用参数处理问题
- 在parseBinaryOpConcat方法中添加了对左右操作数的类型检查,防止void类型的连接操作
- 为concat操作添加了专门的符号函数php::concat
- 修复了引用参数传递时的变量类型验证逻辑
- 更新了常量定义方法的返回类型从string改为void
- 修正了预处理器中函数声明的换行符处理
- 将Iterator方法调用从exec改为call以统一接口调用方式
- 添加了concat_void.php示例文件用于测试void类型连接错误
- 新增了ref相关的测试用例文件
|
5 months ago |
韩天峰
|
36cf7dbf16
|
feat(aot): 添加对引用赋值和列表赋值的支持
- 实现了引用赋值功能,支持变量间的引用传递
- 添加了列表赋值解析逻辑,支持数组解构赋值操作
- 新增 isAssignExpr 方法用于判断赋值表达式类型
- 重构了赋值相关的编译逻辑,提高代码可读性
- 添加了多个测试用例验证引用和列表赋值功能
- 修复了动态调用中的参数展开问题
|
5 months ago |
韩天峰
|
b7236ce38b
|
refactor(php): 重构链式表达式解析逻辑
- 将操作符匹配逻辑提取到独立的 getChainedFunc 方法中
- 简化 parseChainedExpr 方法中的条件判断结构
- 统一链式函数调用的处理方式
- 移除重复的操作符匹配代码
- 提高代码可读性和维护性
|
5 months ago |
韩天峰
|
53958c67c3
|
test(tree): 添加树形结构转换功能的AOT测试用例
- 创建TreeHelper类实现数组到树形结构的转换功能
- 实现基于ID和父ID的层级关系构建算法
- 添加测试数据验证多层级嵌套结构的正确性
- 包含根节点、子节点及深层级节点的断言测试
- 验证树形结构转换的完整性和准确性
- 为AOT编译环境跳过不支持的功能测试
|
5 months ago |
韩天峰
|
2ad8df01da
|
refactor(php): 优化代码结构并添加测试用例
- 修复了AstNodeType.php中的命名空间引用问题
- 将parseTrait方法从Translator.php末尾移至中间位置
- 添加了ref 002测试用例验证数组引用行为
- 统一了代码风格和导入语句格式
|
5 months ago |
韩天峰
|
e230e66164
|
feat(php): 支持引用参数的默认值为数组
- 添加 isEmptyArray 方法检查空数组
- 修改编译器对引用参数默认值的处理逻辑
- 实现引用参数默认值为空数组的支持
- 更新参数解析逻辑以正确处理引用参数
- 添加测试用例验证引用参数数组默认值功能
- 修复命名参数缺失默认值时的错误处理
|
5 months ago |