韩天峰
|
c3f0151e87
|
feat(aot): 支持类继承、接口及抽象类的类型兼容与运行时检查
允许子类对象赋值给父类/接口/抽象类声明的类型变量和容器,引入 declaredClass 区分声明类型与实际类型,对无法静态证明的继承关系添加运行时类型
|
2 months ago |
韩天峰
|
7d20c4e994
|
feat(preprocessor): 添加属性参数中数组和新表达式的校验
|
2 months ago |
韩天峰
|
09be0226cb
|
feat(trait): 支持trait方法多别名和insteadof语法
- 实现trait方法可以有多个别名的功能
- 支持insteadof语法在trait列表中的顺序无关性
- 保持trait别名的原始方法功能
- 添加对继承中静态方法不匹配的检查
- 更新trait别名数据结构以支持别名列表
- 重构trait方法包装器为独立函数
- 修复trait方法别名处理逻辑错误
|
2 months ago |
韩天峰
|
c4a8146661
|
refactor(php): 重构PHP类定义和接口实现检查逻辑
- 添加抽象方法签名兼容性检查功能
- 实现接口常量初始化表达式解析支持
- 优化类和接口常量处理流程
- 增强继承关系中抽象方法实现验证
- 改进接口实现方法查找逻辑
- 添加抽象类可延迟实现接口方法的支持
- 修复方法重写签名验证问题
- 重构常量解析为统一方法处理
- 更新类型检查生成器去除排序逻辑
- 扩展测试用例覆盖各种继承场景
|
2 months ago |
韩天峰
|
3ca0d64a6a
|
feat(preprocessor): 增强PHP预处理器功能支持接口成员和常量解析
- 实现接口方法、常量和继承列表的解析与存储
- 添加对抽象方法签名的完整解析支持
- 增加命名空间常量的解析和类型推断功能
- 实现接口实现验证和方法签名匹配检查
- 支持多重接口继承关系的解析处理
- 添加重复定义(类、接口、常量、方法)的检测机制
- 实现trait别名和修饰符的正确解析
- 增强依赖排序算法支持接口和trait依赖关系
- 完善方法重写签名验证逻辑
- 添加接口方法由trait提供的情况处理
|
2 months ago |
韩天峰
|
5bbb50b031
|
refactor(php): 优化路径前缀移除逻辑以支持路径段匹配
- 修改 PlatformBase.php 中的 removeCommonPrefix 方法
- 使用 rtrim 移除路径分隔符后缀
- 将路径拆分为段进行比较而非逐字符比较
- 使用 implode 重新组合剩余路径段
- 添加新测试用例验证路径段匹配功能
- 修复相邻目录按字符前缀截断的问题
|
2 months ago |
韩天峰
|
a0c9591e81
|
feat(php): 添加对交集类型的支持
- 在 CompilerBase 中添加 IntersectionType 的引入和处理逻辑
- 更新 upgradeToFullyQualifiedName 方法以处理交集类型
- 修改复杂类型处理逻辑,将交集类型统一按 mixed/var 处理并在运行时进行 typeCheck
- 在 Preprocessor 中添加对交集类型的参数和返回值检查支持
- 扩展 TypeCheckGenerator 以支持交集类型的类型检查代码生成
- 添加交集类型参数和返回值的运行时检查测试用例
- 实现交集类型的字符串表示转换功能
- 添加 allOf 类型条件生成器以处理多个类型约束组合
|
2 months ago |
韩天峰
|
8faac7d972
|
fix(compiler): 修复方法调用解析中的参数传递错误
- 修正了 BackendOptionsTest 中的优化级别断言,从 /O2 改为 /O1
- 修复了 CompilerBase 中的方法名参数传递错误,将 $method 改为 $methodName
- 在无法调用方法时添加了致命错误提示
- 删除了 PreprocessorTest 中已弃用的缓存测试方法
|
3 months ago |
韩天峰
|
11acfdf10f
|
refactor(aot): 移除UnsafePtr类型支持并优化std容器实现
- 移除UnsafePtr类型声明及相关参数标记功能
- 修改std容器变量访问方式,统一使用_ref后缀引用
- 更新unsafe_cast函数参数验证逻辑,移除UnsafePtr参数检查
- 重构std容器在C++代码中的声明和初始化方式
- 删除相关测试用例及单元测试中的UnsafePtr验证逻辑
- 统一std容器赋值、遍历、删除操作的引用访问模式
|
3 months ago |
韩天峰
|
efd6beac87
|
test(phpunit): 添加PHP编译器相关单元测试
- 创建AST节点类型测试类AstNodeTypeTest,测试各种节点类型的识别方法
- 添加ClassDef扩展功能测试类ClassDefExtendedTest,验证类定义的各种属性和方法
- 实现CompilerBase API测试类CompilerBaseApiTest,测试类型转换、变量名生成等功能
- 创建FunctionContext扩展测试类Context/FunctionContextExtendedTest,测试作用域管理和变量操作
- 添加FunctionDef扩展测试类Entity/FunctionDefExtendedTest,测试函数定义相关功能
|
3 months ago |