韩天峰
|
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 |
韩天峰
|
cdd0b05bf7
|
test(analysis): 添加SSA分析相关组件的单元测试
- 添加SsaFlags常量值的测试验证
- 添加SsaVar对象创建和默认值的测试
- 添加PiConstraint约束条件的测试用例
- 添加SsaBlock基本块结构的测试验证
- 添加VarState变量状态管理的测试
- 添加SsaBuilder构造器基础功能测试
- 添加控制流图CFG构建的测试用例
- 添加goto语句和标签处理的测试
- 添加类型约束构建buildPiConstraints的测试
- 添加
|
3 months ago |
韩天峰
|
de50cad4a8
|
refactor(optimizer): 将函数访问修饰符从私有更改为受保护
- 将 FuncCallOptimizer 中的 genFuncGetArgs 和 genFuncGetArg 方法从 public 改为 protected
- 将 SsaPropOptimizer 中的辅助方法从 private 改为 protected,包括 collectObjectAssignments、scanStmtForObjectAssign、resolveNewExprClass 等
- 将 SsaTypeOptimizer 中的常量和辅助方法从 private 改为 protected,包括 SAFE_INT_BINARY_OPS、SAFE_INT_ASSIGN_OPS 和各种检测方法
- 此更改允许子类继承和重用这些优化器中的实用方法
|
3 months ago |
韩天峰
|
a4a869b7cd
|
feat(php): 添加SSA对象属性引用提升优化器
- 引入SsaPropOptimizer trait实现对象属性引用提升功能
- 扩展CompilerBase类集成新的SSA属性优化器
- 实现对象稳定性分析和安全属性访问检测
- 支持对SSA证明稳定的对象进行int/float属性提升
- 添加对魔术方法、引用捕获等危险操作的安全检查
- 为稳定对象属性生成C++引用别名提升性能
- 添加相关单元测试验证优化效果
|
3 months ago |