韩天峰
|
c3f0151e87
|
feat(aot): 支持类继承、接口及抽象类的类型兼容与运行时检查
允许子类对象赋值给父类/接口/抽象类声明的类型变量和容器,引入 declaredClass 区分声明类型与实际类型,对无法静态证明的继承关系添加运行时类型
|
2 months ago |
韩天峰
|
279fe22d82
|
fix(compiler): 解决对象属性类型检查和赋值操作问题
- 添加对象属性赋值时的类型验证逻辑
- 实现固定类型对象属性的 unset 操作默认值恢复
- 修复 std 命名空间内置类型方法的类型检测
- 更新对象属性类型推断和方法返回类型解析
- 添加对象属性子类赋值到基类类型的错误检查
- 修改测试用例以反映 AOT 编译器的严格类型行为
|
3 months ago |
韩天峰
|
64e9d76770
|
test(assign): 添加严格类型声明为0的测试用例
- 新增 testStrictTypesZeroNotAllowed 测试方法
- 验证 declare(strict_types=0) 不被允许的情况
- 添加对应的测试代码文件 declare-strict-types-zero.php
- 确保只有 strict_types=1 被支持的功能测试
|
3 months ago |
韩天峰
|
11acfdf10f
|
refactor(aot): 移除UnsafePtr类型支持并优化std容器实现
- 移除UnsafePtr类型声明及相关参数标记功能
- 修改std容器变量访问方式,统一使用_ref后缀引用
- 更新unsafe_cast函数参数验证逻辑,移除UnsafePtr参数检查
- 重构std容器在C++代码中的声明和初始化方式
- 删除相关测试用例及单元测试中的UnsafePtr验证逻辑
- 统一std容器赋值、遍历、删除操作的引用访问模式
|
3 months ago |
韩天峰
|
f331591b65
|
test(assign): 添加变量重新赋值类型检查的测试用例
- 更新了现有测试用例的消息格式以包含具体的变量和类型信息
- 添加了对象类型到各种基本类型的重新赋值测试用例(int、float、bool、str、array)
- 添加了基本类型到对象类型的重新赋值测试用例(int、float、bool、array)
- 添加了字符串数组到各种基本类型的重新赋值测试用例(int、float、bool)
- 添加了标量类型到数组类型的重新赋值测试用例(int、float、bool、str)
- 新增了多个PHP代码文件用于测试不同类型的重新赋值场景
- 重命名了原有的字符串到对象重新赋值测试文件
|
3 months ago |
韩天峰
|
4411216354
|
refactor(aot): 简化 unsafe_ptr 使用并改进错误处理
- 移除手动创建 unsafe_ptr 的调用,直接传递容器变量
- 添加对 UnsafePtr 参数重新赋值的错误检查
- 验证 UnsafePtr 参数必须是标准容器变量
- 更新 unsafe_cast 错误消息以反映参数要求
- 移除不再需要的 unsafe_ptr 解析方法
- 添加新的测试用例验证各种错误场景
|
4 months ago |
韩天峰
|
79bc9d4e69
|
feat(aot): 添加对UnsafePtr类型和相关函数的支持
- 在ArgInfo类中添加unsafePtr属性
- 添加UnsafePtr类型到编译器类型映射
- 实现std::unsafe_ptr()和std::unsafe_cast()函数的解析和处理逻辑
- 添加对UnsafePtr类型的变量跟踪和验证机制
- 支持通过unsafe_cast进行标准容器的不安全转换
- 添加相应的单元测试验证功能正确性
|
4 months ago |
韩天峰
|
ee240aed25
|
test(php): 添加标准容器静态类匹配测试用例
- 添加 testStdContainerStaticClassMismatch 测试方法验证对象分配错误
- 更新 StdContainerParser 中的 fatal error 消息格式保持一致性
|
4 months ago |
韩天峰
|
9f52d48770
|
feat(php): 添加类型对象重新赋值检查功能
- 在对象赋值时检测类型冲突并抛出错误
- 实现 typed object 的类型安全检查机制
- 添加 Cannot re-assign typed object 错误提示
- 扩展 AssignTest 测试用例验证类型重分配行为
- 优化变量类型检查逻辑确保类型一致性
|
5 months ago |
韩天峰
|
a1c922dac2
|
feat(compiler): 添加变量重新赋值类型检查功能
- 实现了对变量重新赋值时的类型验证逻辑
- 当变量从一种类型重新赋值为另一种类型时抛出致命错误
- 添加了测试基类用于编译器测试
- 新增变量重新赋值的单元测试用例
- 在代码差异中检测到变量类型变化时触发错误处理
|
5 months ago |