韩天峰
|
72db18c22a
|
fix(php): validate composite parameter variance
|
2 months ago |
韩天峰
|
e95f996c06
|
fix(aot): skip comment-only else branch
|
2 months ago |
Yurun
|
61099c4c9e
|
fix(php): 修复参数类型重写兼容性检查以遵循逆变规则
|
2 months ago |
NathanFreeman
|
c73dedc306
|
如果else分支只有注释,那就不渲染这个分支
|
2 months ago |
Yurun
|
bbc9ab61a4
|
fix(tests): 更新测试预期与改进跨平台兼容性
|
2 months ago |
韩天峰
|
286330f45d
|
test(php): 添加继承错误测试用例并实现继承兼容性检查
- 添加了类常量可见性错误的测试用例
- 添加了方法继承不兼容的测试用例
- 实现了属性重写的类型、可见性和只读性检查
- 实现了常量重写的类型和可见性检查
- 实现了方法重写的可见性检查
- 添加了继承错误相关的测试文件和断言逻辑
- 在翻译器中集成了继承兼容性验证功能
|
2 months ago |
韩天峰
|
5a7805b544
|
feat(php): 添加对动态属性赋值操作符和递增递减操作的支持
- 实现了动态属性的赋值操作符(如 +=、-=、.= 等)的解析和代码生成
- 添加了动态属性递增递减操作(++、--)的特殊处理逻辑
- 新增 genDynamicPropIncDec 方法用于生成动态属性 ++/-- 操作的 C++ 代码
- 为 clone 测试用例中的属性访问错误提供了更准确的错误消息
- 在属性获取逻辑中添加了静态与非静态属性访问的错误检查机制
|
2 months ago |
韩天峰
|
527c7d62da
|
refactor(tests): 修复测试文件中的变量命名问题
- 删除了 abstract_class.phpt 测试文件
- 将 iterators_004.phpt 中的变量名从 $obj 改为 $obj2 以避免重复使用
- 将 iterators_006.phpt 中的变量名从 $array 改为 $array2 以避免重复使用
- 更新了相关循环中的变量引用保持一致性
|
2 months ago |
韩天峰
|
57b95e88fd
|
removal(tests): 删除多个类测试文件并更新常量测试期望值
- 删除抽象类方法调用测试文件 tests/core/classes/abstract.phpt
- 删除抽象类实例化测试文件 tests/core/classes/class_abstract.phpt
- 删除对象克隆测试文件 tests/core/classes/clone_004.phpt
- 更新常量基本测试期望输出,移除未定义属性警告信息
- 重命名构造函数析构函数测试中的变量名 $t 为 $t2
|
2 months ago |
韩天峰
|
35f0775435
|
fix(tests): 修复 __call 方法测试中的预期输出
- 将测试期望值从 "changed" 改回为 "original"
- 修正了方法调用返回值的断言结果
|
2 months ago |
韩天峰
|
60298d9461
|
test(lang): 添加多个语言特性相关的回归测试
- 添加 bug27443 测试:验证 defined() 函数返回正确的布尔类型
- 添加 bug27535 测试:验证循环引用对象不会导致崩溃问题
- 添加 bug29944 测试:验证 switch 语句中定义函数的功能正常
- 添加 bug30578 测试:验证析构函数调用时机与输出缓冲区处理
|
5 months ago |
韩天峰
|
a284a9bfaf
|
docs(syntax): 更新不支持语法文档并添加新测试用例
- 新增重复函数名和类名不支持特性的详细说明
- 新增break/continue多层循环不支持特性的详细说明
- 新增字符串越界访问行为差异特性的详细说明
- 添加相关替代方案和最佳实践建议
- 更新统计数据和FAQ问答内容
- 修复代码块标记格式问题
- 添加字符串相关的bug测试用例
|
5 months ago |
韩天峰
|
f226382d52
|
fix(static): 修复静态变量初始化中的类常量引用问题
- 添加了新的测试用例验证 Bug #23384 的修复
- 实现了 genLambdaCall 方法用于处理静态变量赋值
- 修改 parseBeforeStmtLines 和 parseAfterStmtLines 方法以支持后置语句处理
- 在静态变量初始化时使用 lambda 表达式确保常量正确解析
- 修复了静态变量默认值解析中对类常量的引用问题
|
5 months ago |
韩天峰
|
e1fd716e03
|
test(compiler): 添加多个 bug 修复测试用例并修复全局变量解析问题
- 添加 bug #24499 测试用例,验证公共属性被误处理为私有属性的问题
- 添加 bug #24652 测试用例,修复 array_flip 函数的 broken 问题
- 添加 bug #24908 测试用例,解决超全局变量在 __destruct 中无法使用的问题
- 添加 bug #55754 测试用例,修复 ZEND_SEND_PREFER_REF 参数的引用传递问题
- 修复 CompilerBase.php 中全局变量解析逻辑,确保变量名正确转义
|
5 months ago |
韩天峰
|
c53e7afdb5
|
test(lang): 添加多个 bug 修复测试用例
- 添加 Bug #21094 关于 set_error_handler 不接受方法的测试
- 添加 Bug #21961 关于 get_parent_class() 段错误的测试
- 添加 Bug #23624 关于 foreach 留下当前数组键为 null 的测试
- 添加 Bug #26869 关于常量作为静态数组键的测试
- 添加 Bug #30726 关于 -.1 类似数字处理不当的测试
- 添加 Cannot re-assign $this 的测试用例和相关代码文件
- 更新编译器默认原生类型设置为 true
- 添加 strlen 函数调用优化处理
|
5 months ago |
韩天峰
|
a8483af474
|
test(lang): 添加 foreach 循环和 func_get_arg 函数测试用例
- 添加 foreachLoop-04.phpt 测试数组元素作为值的循环功能
- 添加 func_get_arg-001.phpt 测试 PHP7 中 func_get_arg 函数行为
- 添加 func_get_arg_variation.phpt 测试 func_get_arg 参数变化情况
- 验证 foreach 循环中数组元素赋值的预期输出结果
- 验证 func_get_arg 函数在不同参数位置下的异常处理
|
5 months ago |
韩天峰
|
76c1104234
|
feat(compiler): 添加测试模式和静态变量重复检测功能
- 引入 CompilerTest 类用于测试模式运行
- 在 CompilerBase 中添加 forTest 标志和 TestError 异常
- 实现静态变量重复定义的检测和报错功能
- 添加 phpunit 配置文件和引导文件
- 创建重复静态变量的测试用例
- 添加基本静态变量功能的测试文件
- 修改 Translator 的 addFiles 方法支持文件列表添加
- convert 方法中添加文件路径解析功能
|
5 months ago |
韩天峰
|
3a3c8eb6b6
|
test(core): 添加对象比较基本功能测试
- 添加标准对象比较处理器测试用例
- 创建多个类实例验证相等性判断逻辑
- 测试相同类不同实例间的比较行为
- 验证不同类对象间的比较结果
- 添加继承关系对象的比较测试
- 验证对象处理器不同的比较场景
|
5 months ago |
韩天峰
|
d919ee280c
|
fix(php): 修复抽象类方法调用和实例化错误检查
- 添加了抽象类不能被实例化的检查,在编译时抛出错误
- 修复了方法准备逻辑,确保抽象方法在非抽象类中的正确验证
- 更新了测试期望输出以匹配新的错误格式
- 优化了错误堆栈跟踪的显示格式
|
5 months ago |
韩天峰
|
3dc79d2074
|
fix(parser): 修复抽象类实例化和空语句处理问题
- 添加抽象类无法实例化的测试用例
- 修复doc注释解析器返回空数组的问题
- 添加对Stmt_Nop语句类型的处理支持
- 确保预处理器正确处理空语句类型
|
7 months ago |
韩天峰
|
43b9797df8
|
test(classes): 添加魔术方法相关测试用例
- 添加 __call 方法异常处理测试
- 添加 __set 和 __get 魔术方法功能测试
- 添加魔术方法签名检查测试
- 添加抽象类和抽象方法调用测试
- 添加对象转数组键名转换测试
- 添加赋值操作符属性测试
- 添加数据损坏相关测试
fix(compiler): 禁止在 echo 中使用赋值表达式
- 在 parseEcho 方法中检测赋值表达式并报错
- 修复属性赋值操作符解析逻辑
refactor(stub): 优化全局变量默认值处理
- 统一数组类型默认值处理方式
- 移除特殊空数组处理逻辑
feat(magic): 添加魔术方法参数数量检测机制
- 实现 MagicMethodDetector trait
- 集成到 Translator 类中使用
|
7 months ago |
韩天峰
|
66249916f5
|
fix(php): 修复$this变量重新赋值检查并添加类功能测试
- 添加对$this变量重新赋值的错误检查,防止Cannot re-assign $this错误
- 新增destructor异常处理测试用例验证析构函数中的异常捕获
- 添加工厂模式测试用例验证对象创建功能
- 新增final方法测试用例验证最终方法重写规则
- 添加abstract与final冲突测试用例验证编译时错误处理
- 新增__toString与__destruct交互测试用例验证字符串转换功能
|
7 months ago |
韩天峰
|
a6826d5fd0
|
feat(compiler): 添加PHP语法错误处理和类常量重复定义检查
- 在编译器中引入SyntaxError异常类用于处理PHP语法错误
- 修改预处理器捕获PHP解析错误并转换为SyntaxError异常
- 实现类常量重复定义的检测逻辑并抛出致命错误
- 添加多个测试用例验证类常量相关错误场景
- 更新编译器跳过包含语法错误的文件处理流程
|
7 months ago |
韩天峰
|
d90bf8a5fd
|
feat(compiler): 添加类常量支持和优化代码生成
- 引入 NodeAbstract 类型用于对象转换
- 移除 Stmt_Nop 语句的空注释生成
- 为 Foreach 循环体添加前置语句解析
- 简化对象类型检查逻辑
- 添加多个类常量测试用例
- 在预处理器和翻译器中处理 Stmt_Nop 语句类型
- 完善类常量声明、继承和访问功能
|
7 months ago |
韩天峰
|
25e567b3db
|
feat(php): 添加类定义功能支持
- 实现了 StaticPropertyFetch 类型检查方法
- 扩展了 ClassDef 构造函数以支持 flags 参数
- 添加了类继承时对 final 类的检查逻辑
- 更新了示例文件 call3.php 中的类结构
- 增加了多个类相关的测试用例文件
- 修改了后置操作解析逻辑以支持静态属性访问
- 在编译器基类中添加了类声明的错误处理
- 实现了对象包装器数组初始化
- 添加了对类可见性构造函数的支持测试
- 更新了接口定义的构造函数实现
|
7 months ago |
韩天峰
|
4ed56de30e
|
feat(php): 实现PHP编译器对引用参数的支持
- 修改CompilerBase.php以支持函数引用参数的正确处理
- 添加Reflection::isReferenceArg方法用于检查函数参数是否为引用类型
- 在处理函数调用时针对引用参数创建临时变量并正确传递引用
- 扩展支持对象属性获取作为引用参数的功能
- 添加iterators_006.phpt和iterators_007.phpt测试用例验证迭代器功能
- 添加ref_prop.php示例文件展示引用属性功能
- 重构多个算法示例文件以改进代码结构和可读性
|
7 months ago |
韩天峰
|
715abf458d
|
refactor(php): 重构 foreach 循环解析逻辑以支持对象迭代器
- 将原 parseForeach 方法拆分为 parseForeach 和 parseForeachArray 两个方法
- 添加对 Iterator 和 IteratorAggregate 接口的支持
- 实现对象属性遍历的备用方案,使用 get_object_vars 函数
- 添加新的测试用例 iterators_004.phpt 验证迭代器功能
- 添加新的测试用例 iterators_005.phpt 验证 Traversable 接口实现检查
- 为对象迭代创建临时变量并设置正确的类型标识
|
7 months ago |
韩天峰
|
749b4ec00d
|
修复迭代器实现,continue 时执行 next()
|
7 months ago |
韩天峰
|
c9d6e93f40
|
支持 Iterator/IteratorAggregate 对象 foreach 操作
|
7 months ago |
韩天峰
|
689b59bbda
|
处理继承或实现内置类和接口
|
7 months ago |
韩天峰
|
f8100988c4
|
update mixed
|
7 months ago |
韩天峰
|
bdea6f77cc
|
添加类的单元测试
|
7 months ago |
韩天峰
|
04f265ae24
|
全局变量
|
8 months ago |
韩天峰
|
730e0e45f1
|
支持 empty 语法
|
8 months ago |
韩天峰
|
204908f6e9
|
数组 单元测试
|
8 months ago |
韩天峰
|
257cc2d796
|
单元测试
|
8 months ago |
韩天峰
|
765eb75869
|
运算操作符 单元测试
|
8 months ago |
韩天峰
|
2b9417d78f
|
update
|
8 months ago |
韩天峰
|
f3565a6439
|
回归赋值的语法
|
8 months ago |
韩天峰
|
f1bbcfe64c
|
优化 Switch 脚本
|
8 months ago |
韩天峰
|
1dd9f62914
|
单元测试脚本
|
8 months ago |