韩天峰
|
54bca6942e
|
feat(parser): 添加对象属性赋值类型检查和二元运算操作数处理
- 实现对象属性赋值时的类型验证检查机制
- 添加静态属性赋值的类型安全保护
- 引入有序操作数解析以支持复杂表达式计算
- 增加对函数调用参数的类型安全检查
- 优化二元运算符操作数的类型转换处理
- 添加测试用例验证类型检查功能正确性
- 扩展属性定义实体以支持类型检查配置
- 实现操作数材料化以处理副作用表达式
|
2 months ago |
韩天峰
|
0bfa2869c5
|
feat(compiler): 支持命名参数和提升属性功能
- 添加了对函数和构造函数中命名参数的支持
- 实现了提升属性(Property Promotion)功能
- 新增了对 C++ 保留关键字作为参数名的支持
- 完善了闭包类型检查和参数验证逻辑
- 增加了内部函数调用的命名参数验证
- 优化了参数类型检查和错误提示信息
- 添加了相关测试用例验证功能正确性
|
2 months ago |
韩天峰
|
2800b974e3
|
refactor(php): 重构SSA分析和对象属性优化实现
- 移除FunctionContext中的ssaBuilder属性,改为函数内部临时创建
- 修改optimizeLoopVars、optimizeObjectProps、optimizeVarTypes方法接受SsaBuilder参数
- 实现对象别名传播检测以改进属性提升优化
- 添加resetAnalysisTemporaries方法重置分析临时数据
- 更新变量类型检测逻辑以支持SSA定义的局部变量
- 修复构造函数可以被重写的检查逻辑
- 扩展isTypedObject方法以包含稳定对象检测
- 为字符串连接扁平化和对象属性逃逸分析添加测试用例
|
2 months ago |
韩天峰
|
602e8b34ee
|
feat(compiler): 为嵌入类方法添加混合返回类型推断支持
- 实现了对匿名类和嵌入类方法的混合返回类型自动推断
- 添加了魔术方法返回类型敏感性检测逻辑
- 集成了祖先类方法返回类型的递归检查机制
- 扩展了类继承链中的返回类型声明分析功能
- 优化了内部类和接口方法返回类型的反射检测
- 新增了类方法返回类型未声明时的混合类型注入逻辑
fix(optimizer): 修复对象属性提升优化中的引用槽位安全检测
- 修正了对象暴露给动态代码时的属性引用安全检查机制
- 更新了方法调用和函数调用的安全性判断逻辑
- 重构了对象参数传递时的危险操作检测算法
- 添加了
|
2 months ago |
韩天峰
|
ba8c96712a
|
fix(optimizer): 解决对象属性优化中的动态调用安全检查问题
- 添加了对 eval 和 include 语句的对象属性访问保护
- 实现了内部函数和静态方法调用的安全性检查机制
- 新增了 isSafeObjectExposureCall 方法来判断安全的对象暴露调用
- 修复了对象别名和动态属性操作中的潜在风险
- 添加了相关的单元测试验证安全性检查逻辑
|
3 months ago |
韩天峰
|
feb5041d2e
|
feat(php): 添加静态属性赋值检查和本地槽位优化支持
- 在 AssignOpTrait 中添加对静态属性赋值的支持
- 扩展 CompilerBase 以实现静态属性类型检测和赋值验证
- 添加 assertCanAssignStaticProp 方法进行静态属性赋值检查
- 重构静态属性本地槽位生成逻辑,支持不同数据类型
- 为对象属性提升优化添加安全检查机制
- 新增测试用例验证静态属性原生类型默认值功能
- 更新函数上下文文档注释以反映静态属性槽位映射变化
|
3 months ago |
韩天峰
|
279fe22d82
|
fix(compiler): 解决对象属性类型检查和赋值操作问题
- 添加对象属性赋值时的类型验证逻辑
- 实现固定类型对象属性的 unset 操作默认值恢复
- 修复 std 命名空间内置类型方法的类型检测
- 更新对象属性类型推断和方法返回类型解析
- 添加对象属性子类赋值到基类类型的错误检查
- 修改测试用例以反映 AOT 编译器的严格类型行为
|
3 months ago |
韩天峰
|
21338f022f
|
refactor(compiler): 优化对象属性提升逻辑并增强危险操作检测
- 移除对this_对象属性unset操作的特殊警告处理
- 重构对象属性提升逻辑,支持更多类型的安全提升判断
- 添加unsafeObjectProps上下文跟踪以标记不可安全提升的属性
- 扩展危险属性操作检测功能,支持动态属性名和引用操作检测
- 优化循环变量分析器,增加对字符串函数的支持
- 添加多项单元测试验证属性提升和危险操作检测的准确性
- 改进代码生成,支持不同类型的属性值宏展开
|
3 months ago |
韩天峰
|
dbaa5a10e0
|
feat(compiler): 添加循环变量优化器以提升整数类型推断
- 在CompilerBase中集成LoopVarOptimizer trait
- 实现range-proven循环变量优化算法,支持while和for循环
- 添加多项式时间复杂度的循环计数器类型窄化功能
- 集成安全检查机制防止不安全的整数运算推导
- 添加针对strlen、count等函数的非负整数类型识别
- 实现循环边界安全检测避免溢出风险
- 新增多种循环模式的测试用例验证优化效果
- 更新现有测试注释以反映新的类型推断行为
|
3 months ago |
韩天峰
|
403991357e
|
feat(generator): 优化属性默认值代码生成逻辑
- 替换原有的 ZVAL_UNDEF 初始化方式为类型特定的默认值设置
- 添加 getTypeDefaultValueCode 方法处理各种数据类型的默认值
- 支持整型、浮点型、布尔型、字符串、数组等类型的默认值初始化
- 为测试用例添加对象整型属性优化功能
- 确保可空类型正确初始化为 NULL 值
|
3 months ago |
韩天峰
|
a4a869b7cd
|
feat(php): 添加SSA对象属性引用提升优化器
- 引入SsaPropOptimizer trait实现对象属性引用提升功能
- 扩展CompilerBase类集成新的SSA属性优化器
- 实现对象稳定性分析和安全属性访问检测
- 支持对SSA证明稳定的对象进行int/float属性提升
- 添加对魔术方法、引用捕获等危险操作的安全检查
- 为稳定对象属性生成C++引用别名提升性能
- 添加相关单元测试验证优化效果
|
3 months ago |
韩天峰
|
bf31da8e7b
|
feat(compiler): 实现SSA分析和类型优化功能
- 添加SsaBuilder类用于构建SSA形式和e-SSA分析
- 引入SsaTypeOptimizer trait实现基于SSA的类型窄化优化
- 将FuncCallOptimizer移至Optimizer命名空间
- 在FunctionContext中添加SSA分析器实例
- 实现变量类型的自动窄化为C++原生类型(int/float)
- 添加防止危险操作的类型安全检查
- 支持常量折叠和溢出检测逻辑
- 重构函数参数名称以提高代码可读性
- 添加完整的SSA构建器单元测试覆盖各种场景
|
3 months ago |
韩天峰
|
d377777571
|
feat(php): 优化 strlen 函数的编译时折叠
- 修改 CompilerBase.php 中的条件判断逻辑,确保代码生成正确返回
- 在 FuncCallOptimizer.php 中为 strlen 函数添加常量字符串优化
- 当传入参数为字符串字面量时直接计算长度并生成常量值
- 添加编译时 strlen 常量折叠的测试用例验证功能
|
3 months ago |