韩天峰
|
c3f0151e87
|
feat(aot): 支持类继承、接口及抽象类的类型兼容与运行时检查
允许子类对象赋值给父类/接口/抽象类声明的类型变量和容器,引入 declaredClass 区分声明类型与实际类型,对无法静态证明的继承关系添加运行时类型
|
2 months ago |
韩天峰
|
7d20c4e994
|
feat(preprocessor): 添加属性参数中数组和新表达式的校验
|
2 months ago |
韩天峰
|
72db18c22a
|
fix(php): validate composite parameter variance
|
2 months ago |
韩天峰
|
59c9477bf5
|
refactor(php): 重构属性访问解析器以使用只读上下文接口
- 将 PropertyAccessResolver 从依赖 CompilerBase 大类改为依赖 PropertyAccessContext 接口
- 在 CompilerBase 中实现 PropertyAccessContext 接口并提供 getClassDef 和 getParentClass 方法
- 移除 PropertyAccessResolver 构造函数中的闭包参数,改用接口方法调用
- 更新 Preprocessor 中的父类获取逻辑以直接使用命名空间类名解析
- 修改 Translator 中的父类解析方式以保持一致性
- 在重构计划文档中添加只读接口设计原则说明
|
2 months ago |
韩天峰
|
4b1b20c7ca
|
refactor(php): 重构属性访问解析逻辑并引入编译阶段管理
- 引入 PropertyAccessResolver 类统一处理属性访问逻辑
- 添加编译阶段管理 (idle/prepare/convert) 确保模块正确使用时机
- 将 isSameClassName、isSameOrSubclassOf、canAccessProtectedProperty 方法委托给 resolver
- 实现 PropertyAccessResult DTO 承载属性访问解析结果
- 为 Preprocessor 和 Translator 添加编译阶段进入/恢复逻辑
- 创建 CompilerPhaseTest 验证阶段管理功能
- 更新文档说明重构计划和模块拆分方向
- 修改函数返回值测试以适配重构后的测试需求
|
2 months ago |
韩天峰
|
4214e1e278
|
feat(php): 添加对构造函数析构函数返回类型和魔术方法的严格检查
- 实现构造函数和析构函数不能声明返回类型的检查
- 实现克隆方法返回类型必须为void的验证
- 添加魔术方法静态性和可见性检查规则
- 实现魔术方法参数数量和类型的严格校验
- 添加魔术方法参数类型检查如__get方法必须接受字符串参数
- 实现可选参数不能在必需参数之前的检查
- 添加闭包引用参数和变长引用参数的错误检查
- 优化参数计数错误消息中的预期参数数量提示
- 添加AOT编译器语言设计原则文档说明
|
2 months ago |
韩天峰
|
54bca6942e
|
feat(parser): 添加对象属性赋值类型检查和二元运算操作数处理
- 实现对象属性赋值时的类型验证检查机制
- 添加静态属性赋值的类型安全保护
- 引入有序操作数解析以支持复杂表达式计算
- 增加对函数调用参数的类型安全检查
- 优化二元运算符操作数的类型转换处理
- 添加测试用例验证类型检查功能正确性
- 扩展属性定义实体以支持类型检查配置
- 实现操作数材料化以处理副作用表达式
|
2 months ago |
韩天峰
|
0bfa2869c5
|
feat(compiler): 支持命名参数和提升属性功能
- 添加了对函数和构造函数中命名参数的支持
- 实现了提升属性(Property Promotion)功能
- 新增了对 C++ 保留关键字作为参数名的支持
- 完善了闭包类型检查和参数验证逻辑
- 增加了内部函数调用的命名参数验证
- 优化了参数类型检查和错误提示信息
- 添加了相关测试用例验证功能正确性
|
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 |
韩天峰
|
a0c9591e81
|
feat(php): 添加对交集类型的支持
- 在 CompilerBase 中添加 IntersectionType 的引入和处理逻辑
- 更新 upgradeToFullyQualifiedName 方法以处理交集类型
- 修改复杂类型处理逻辑,将交集类型统一按 mixed/var 处理并在运行时进行 typeCheck
- 在 Preprocessor 中添加对交集类型的参数和返回值检查支持
- 扩展 TypeCheckGenerator 以支持交集类型的类型检查代码生成
- 添加交集类型参数和返回值的运行时检查测试用例
- 实现交集类型的字符串表示转换功能
- 添加 allOf 类型条件生成器以处理多个类型约束组合
|
2 months ago |
韩天峰
|
215f5cdcac
|
feat(stub): 添加对推断PHP文档类型的处理支持
- 在ArgInfo构造函数中添加isInferredPhpDocType参数,默认值为false
- 修改beginArgInfoCompatible方法中的有效类型判断逻辑
- 移除未使用的可变参数代码逻辑
- 更新默认参数类型和返回类型推断处理
- 添加mixed类型函数示例文件
- 修复预处理器中参数类型检查的空值判断问题
- 添加void返回类型的基本测试用例
|
2 months ago |
韩天峰
|
99c3dec641
|
feat(php): 添加魔术方法类型推断支持
- 在 ArgInfo 类中添加 undeclared 属性用于标识未声明类型
- 在 FunctionDef 类中添加 returnTypeUndeclared 属性用于标识返回类型未声明
- 实现 getMagicMethodDefaultReturnType 函数为魔术方法提供默认返回类型映射
- 实现 getMagicMethodDefaultParamType 函数为魔术方法提供默认参数类型映射
- 更新魔术方法检测器中的类型检查逻辑,支持未声明类型的自动填充
- 重构 MagicMethodDetector 中的参数验证,为不同魔术方法设置正确的类型约束
- 添加对魔术方法参数和返回类型的自动类型补全功能
|
2 months ago |
韩天峰
|
0dc846a4fc
|
feat(php): 添加数组初始化计划支持并修复构造函数提升属性默认值处理
- 引入 ArrayInitPlan 实体类用于处理数组初始化计划
- 修复构造函数参数提升属性的默认值归属问题
- 为数组类型的参数默认值添加运行时初始化支持
- 实现数组初始化计划的构建和包装逻辑
- 添加默认参数辅助函数生成功能
- 重构静态属性和实例属性的初始化处理逻辑
- 添加 readonly 类测试用例以验证功能正确性
|
2 months ago |
韩天峰
|
91a710844c
|
refactor(php): 重构静态属性默认值初始化逻辑
- 修改 genLocalVarDecl 方法接受局部变量数组参数
- 恢复 genScopeVarDecl 方法并调用 genLocalVarDecl
- 在 Preprocessor 中添加静态属性默认值初始化处理逻辑
- 扩展 PropertyDef 类添加 defaultInit 和 defaultClean 属性
- 更新 Translator 中静态属性设置逻辑支持初始化和清理代码
- 添加静态数组属性测试用例
|
2 months ago |
韩天峰
|
dbcadeb873
|
feat(php): 添加抽象方法支持和调用保护
- 在 ClassDef 中添加 abstractMethods 数组存储抽象方法
- 实现 addAbstractMethod 和 hasAbstractMethod 方法
- 添加 getMethodFlags 方法统一获取方法标志
- 在 Preprocessor 中解析并添加抽象方法到类定义
- 实现 guardAbstractMethod 防止调用抽象方法
- 在父类方法调用中添加抽象方法检查
- 更新单元测试验证抽象方法调用错误处理
|
2 months ago |
韩天峰
|
cd3f0743d7
|
fix(aot): 解决trait方法参数类型声明的完全限定名转换问题
- 重构upgradeToFullyQualifiedName方法,支持NullableType和UnionType的递归处理
- 修正逻辑以正确区分内置类型(self/static/parent)与自定义类名的处理方式
- 更新trait预处理器中的参数类型转换实现,确保类型节点正确替换
- 添加对Qualified名称的识别和转换支持
- 移除重复的上下文解析逻辑,提高代码效率
- 新增回归测试用例验证arginfo/zpp匹配问题的修复效果
|
2 months ago |
韩天峰
|
cd2f4d7ac5
|
feat(compiler): 添加trait方法参数类名解析功能
- 实现resolveParamClassName方法处理参数类型中的非完全限定类名
- 在parseTrait阶段解析trait方法参数的类名避免gen_stub时上下文丢失
- 支持NullableType和UnionType类型的参数类型解析
- 添加对self、static、parent等特殊类型名称的处理
- 为trait方法参数类名解析功能添加完整的单元测试用例
|
2 months ago |
韩天峰
|
26bdf5eb59
|
feat(enum): 支持枚举类型解析和处理
- 添加了枚举类型的语法解析功能
- 实现了对带值枚举(backed enums)的支持
- 添加了枚举案例值的存储和访问机制
- 支持枚举类型的运行时对象处理
- 完善了枚举常量数组的生成逻辑
- 新增了多个枚举相关的测试用例
|
2 months ago |
韩天峰
|
dec9849c69
|
fix(php): 修复PHP预处理器中的方法重写检查逻辑
- 将参数名称比较从弱类型比较改为严格类型比较
- 修正类、枚举和trait的方法标志位处理逻辑
- 更新抽象方法重写错误消息以更准确反映非抽象类的情况
|
3 months ago |
韩天峰
|
204cdfb668
|
refactor(php): 重构PHP预处理器中的属性处理逻辑
- 提取类属性创建逻辑到独立的 addClassProperty 方法
- 简化构造函数参数提升属性的解析流程
- 统一常规属性声明和构造函数属性提升的处理方式
- 移除重复的属性解析代码,提高代码复用性
- 优化空值类型判断逻辑,减少条件分支嵌套
|
3 months ago |
韩天峰
|
83a81e8df8
|
refactor(php): 简化属性类型解析逻辑
- 移除手动类型映射逻辑,统一使用 parseTypeDecl 方法处理
- 添加 propClass 变量存储属性类信息
- 将解析后的类型直接赋值给属性定义对象
- 确保所有属性类型都通过标准方法进行解析和转换
|
3 months ago |
韩天峰
|
96b4fefb58
|
refactor(php): 将平台检测和编译功能从CompilerBase迁移到Translator
- 从CompilerBase.php移除平台检测相关方法(detectPlatform, initializeNewArchitecture, setCppCompiler)
- 从CompilerBase.php移除代码格式化方法(formatCppCode)和save方法
- 从CompilerBase.php移除编译命令选项相关方法(getCompileCommandOptions等)
- 在Translator.php中新增平台检测方法(detectPlatform)
- 在Translator.php中新增代码格式化方法(formatCppCode)和save方法
- 在Translator.php中新增编译命令选项相关方法(getCompileCommandOptions等)
- 移除CompilerBase.php中未使用的SsaBuilder导入
- 在Translator.php中新增必要的平台和编译器工厂类导入
|
3 months ago |
韩天峰
|
f803a0fd41
|
refactor(Php): 优化方法重写检测逻辑以支持子类预处理顺序
- 提取 fullMethodName 的小写转换为独立变量
- 添加对子类是否已覆盖方法的检查机制
- 实现递归检查所有子类及其后代子类的同名方法定义
- 更新父类方法重写标记逻辑以支持动态调用处理
- 添加完整的文档注释说明新的方法重写检测功能
|
3 months ago |
韩天峰
|
a30205b058
|
refactor(php): 重构方法重写检查逻辑
- 将 checkParentMethodCanBeOverridden 方法从 Preprocessor 类移动到 Translator 类
- 移除 Preprocessor 类中的方法重写检查实现
- 在 Translator 类中添加完整的父类方法重写检查功能
- 实现私有方法不能被重写的验证逻辑
- 添加对内置类私有方法的重写检查支持
- 保持原有的方法重写标记逻辑在 Translator 中继续工作
|
3 months ago |
韩天峰
|
b33cdeb086
|
refactor(php): 重构参数类型解析和声明处理方法
- 将 parseParameterType 方法从 CompilerBase 移动到 Preprocessor
- 将 parseDeclare 方法从 CompilerBase 移动到 Translator
- 保持原有功能不变但优化代码结构分布
|
3 months ago |
韩天峰
|
a524211cd3
|
refactor(php): 重构PHP编译器基础功能并完善类继承支持
- 将parseFunction方法从CompilerBase.php迁移到Translator.php中
- 添加SsaBuilder和Skip异常类的引入声明
- 移除Preprocessor.php中的方法重写检测逻辑
- 在Translator.php中恢复类方法重写的检测和处理机制
- 添加新的继承测试示例文件A0.php、C0.php和main.php
- 更新simple.php示例文件内容
- 优化函数解析过程中的SSA分析和变量类型优化逻辑
|
3 months ago |
韩天峰
|
b640fef73b
|
feat(compiler): 实现方法调用去虚化优化和BigFloat sqrt支持
- 添加classSubClasses属性用于存储反向类继承关系
- 扩展abs函数支持到BigFloat类型并添加sqrt函数实现
- 允许Big类型与原生类型之间的隐式转换
- 实现方法调用去虚化逻辑,支持final类、final方法、私有方法等情况
- 添加SSA稳定对象类型推断功能
- 修复SSABuilder中空参数值的处理
- 优化SSA类型分析中的非可缩小类型处理
- 添加多个
|
3 months ago |
韩天峰
|
3b5345d68e
|
feat(php): 添加联合类型和可空类型的运行时检查支持
- 在 ArgInfo 中新增 typeCheck、typeStr 和 typeNode 属性用于类型检查
- 在 FunctionDef 中新增 returnTypeCheck、returnTypeStr 和 returnTypeNode 属性
- 实现 buildTypeCheckFromNode 方法解析联合/可空类型节点
- 实现 genSingleTypeCondition 方法生成单个类型检查条件
- 实现 genUnionParamCheck 方法生成参数类型检查代码块
- 实现 genUnionReturnCheck 方法生成返回值类型检查代码块
- 在编译过程中集成参数和返回值的运行时类型检查
- 添加 union-param-check.phpt 和 union-return-check.phpt 测试用例
- 支持基本类型、类类型和特殊类型的联合类型检查
- 实现详细的错误消息生成机制
|
3 months ago |
韩天峰
|
32ac23630a
|
fix(type): 修复stream和box伪类型的类型转换处理
- 移除CompilerBase中对stream/box类型的硬编码转换逻辑
- 在Preprocessor中添加stream/box到var类型的运行时转换
- 修改Translator中参数类型的C++代码生成逻辑
- 更新UniversalMethodCall中stream/box类型的参数匹配规则
- 添加测试用例验证数组元素链式调用的类型转换功能
|
3 months ago |
韩天峰
|
fda0acc38f
|
refactor(php): 移除编译缓存机制并更新强制编译描述
- 移除了 Preprocessor 和 Translator 中的缓存检查逻辑
- 删除了 hasCppFileCache 和 hasObjectFileCache 方法
- 更新 force 参数描述为 "Force recompile phpx misc files (ignore cache)"
- 简化了编译流程,不再跳过已存在缓存的文件
- 保留了 misc 目录下源文件的缓存检查功能
- 从 Constants.php 和 Translator.php 中移除了相关的缓存控制代码
|
3 months ago |
韩天峰
|
928f9050d6
|
feat(php): 添加对PHP常量和分组use语句的支持
- 新增useConstants数组用于存储常量导入映射
- 实现常量名称解析和命名空间查找逻辑
- 支持通过别名导入常量的功能
- 添加对分组use语句的解析处理
- 完善匿名类继承接口的全限定名称转换
- 优化函数调用时的参数信息获取方式
- 修复方法调用中本地函数定义的引用方式
|
3 months ago |
韩天峰
|
6c74f1c8b5
|
refactor(php): 重构编译器常量和构建模式配置
- 移除多余的类型常量间的空行,统一代码风格
- 添加构建模式相关常量 BUILD_MODE_BIN、BUILD_MODE_EXT、ENTRY_FUNCTION 等
- 将硬编码的字符串替换为对应的常量引用
- 移除不再使用的 phpx_func.h 头文件引用
- 重命名 cxxflags 为 cxxFlags 以符合命名规范
- 将构建模式判断逻辑封装为 isBuildModeBin 和 isBuildModeExt 方法
- 更新配置文件中的默认值为常量引用
- 移除不再需要的 trait 解析方法
|
3 months ago |
韩天峰
|
661ab07cd9
|
refactor(backend): 重构编译器后端实现以支持自定义编译器路径
- 修改 Clang 和 Gcc 类构造函数以接受自定义编译器命令参数
- 引入 CompilerFactory 来统一管理编译器创建和检测逻辑
- 更新 BackendTest 添加对自定义编译器路径的支持测试
- 实现 Windows 平台下 lld-link 检测和回退机制
- 重构 CompilerBase 类中的平台和编译器初始化逻辑
- 移除旧的平台特定检测方法并整合到 PlatformFactory
- 更新编译和链接命令构建以使用新的后端抽象层
- 优化 include paths、library paths 和 libraries 的处理流程
- 改进目标文件扩展名和链接选项的跨平台处理
|
4 months ago |
韩天峰
|
7ad7657e28
|
cs-fix
|
4 months ago |
韩天峰
|
673f3b3dc5
|
refactor(preprocessor): 重构参数声明生成逻辑
- 添加 genArgumentDeclaration 方法统一处理参数声明格式
- 将参数声明逻辑从多个位置提取到独立方法中
- 简化可变参数和普通参数的声明处理流程
- 更新版本号从 1002 到 103
- 删除废弃的示例文件 test1.cc
- 添加混合类型声明的测试用例
|
4 months ago |
韩天峰
|
be77cfaab1
|
feat(compiler): 增强 PHP 编译器对 Windows 平台和 ZTS 版本的支持
- 检测 PHP 是否为线程安全版本(ZTS)并相应配置编译选项
- 添加 PHPX_HOME 环境变量支持用于自定义 phpx 目录
- 优化 Windows 平台下 PHP 路径检测逻辑,支持从 SDK/include 目录读取头文件
- 实现 Windows 平台下 PHP 库文件的多路径查找策略(SDK/lib, lib, 根目录)
- 添加 Windows 编译时必需的宏定义(ZEND_WIN32, PHP_WIN32, ZTS 等)
- 修复跨平台路径分隔符处理问题,统一 Windows 使用反斜杠
- 增强错误处理和用户提示信息
- 新增 Preprocessor 类用于源文件预处理和依赖分析
|
4 months ago |
韩天峰
|
69886abb5d
|
feat(build): 添加 Windows 平台编译支持
- 实现了 Windows 平台检测和 MSVC 编译器配置
- 添加了 Windows 特定的包含路径和链接库处理
- 实现了 Windows 和 Unix 平台的条件编译选项
- 适配了 Windows 文件路径分隔符和文件扩展名
- 添加了 Windows 下 PHP 目录检测逻辑
- 在 Windows 平台下跳过 clang-format 格式化步骤
|
4 months ago |
韩天峰
|
5bf12a10ed
|
feat(php): 添加对 trait 魔术常量 __TRAIT__ 的支持
- 在 CompilerBase 中添加 Scalar_MagicConst_Trait 的解析支持
- 为 __TRAIT__ 常量实现作用域检查逻辑
- 为 __CLASS__ 常量添加 trait 环境下的返回逻辑
- 在 Preprocessor 中添加类属性钩子不支持的错误提示
- 添加 trait 魔术常量的功能测试用例
- 更新 trait 示例代码以展示魔术常量使用
|
4 months ago |
韩天峰
|
69a1c24610
|
refactor(bootstrap): 调整函数文件加载方式并更新依赖
- 将 src/functions.php 从 composer autoloader 移至 bootstrap 文件直接引入
- 更新 composer.json 配置移除 functions.php 的文件自动加载配置
- 升级多个依赖包版本包括 league/climate、symfony 相关组件等
- 新增 ergebnis/agent-detector 依赖用于代理检测功能
- 更新 phpunit 和相关开发依赖到最新稳定版本
|
4 months ago |
韩天峰
|
eaa598a48e
|
fix(php): 解决字符串连接操作符的void类型检查和引用参数处理问题
- 在parseBinaryOpConcat方法中添加了对左右操作数的类型检查,防止void类型的连接操作
- 为concat操作添加了专门的符号函数php::concat
- 修复了引用参数传递时的变量类型验证逻辑
- 更新了常量定义方法的返回类型从string改为void
- 修正了预处理器中函数声明的换行符处理
- 将Iterator方法调用从exec改为call以统一接口调用方式
- 添加了concat_void.php示例文件用于测试void类型连接错误
- 新增了ref相关的测试用例文件
|
4 months ago |
韩天峰
|
ec98d1045d
|
fix(php): 修复异常处理和编译器逻辑问题
- 添加了 try-catch 异常处理的测试用例
- 实现了 isFullNameExpr 方法用于检查完全限定名称表达式
- 修复了编译器中的 break 语句缺失问题
- 重命名了 parseGlobal 方法参数以避免变量冲突
- 优化了 catch 类型检查逻辑,支持类名实例化检查
- 添加了 C++ 关键字到保留字常量列表
- 完善了项目配置文件 project.yml
- 添加了 instanceOf 符号方法
- 修复了多个 switch 语句中的 break 缺失问题
|
4 months ago |
韩天峰
|
d1a06ac8d4
|
refactor(generator): 重构代码生成器的类信息管理和错误处理
- 使用 ClassInfo::getCurrentClassName() 方法替代静态属性访问
- 移除 ClassInfo::$currentClassName 静态属性,统一通过实例方法获取类名
- 在属性处理中引入 Skip 异常机制优化 AllowDynamicProperties 处理逻辑
- 统一字符串引用格式从双引号改为单引号以保持一致性
- 将条件声明的空数组初始化改为引用赋值以优化内存使用
- 移除未使用的 Unsupported 异常导入
- 将 Translator 中的异常抛出改为调用 fatalError 方法进行错误处理
|
4 months ago |
韩天峰
|
e5b7955fa1
|
refactor(translator): 重构PHP到C++编译器的文件处理逻辑
- 将prepare方法重命名为prepareFile,convert方法重命名为convertFile
- 添加ignore路径配置支持,可在项目配置中忽略特定文件或目录
- 重构编译器主流程,将文件扫描、预处理和转换分离为独立步骤
- 移除不必要的异常类引用,优化代码结构
- 添加文件过滤功能,支持在预处理阶段跳过无效文件
- 修复预处理器中的默认情况处理逻辑,统一错误处理方式
|
4 months ago |
韩天峰
|
8865796b43
|
feat(php): 实现 compact 函数支持并增强函数重定义检查
- 添加 compact 函数的功能实现和语法优化
- 移除 UNSUPPORTED_FUNCTIONS 列表中的 compact 条目
- 在 Preprocessor 中添加防止重定义内置函数的检查
- 实现 genCompact 方法来处理 compact 函数调用
- 添加测试用例验证 compact 函数功能正确性
- 增强错误处理机制以捕获非法变量使用情况
|
4 months ago |
韩天峰
|
2ca129b0c1
|
fix(php): 修复trait使用语法中未指定trait名称时的别名处理
- 当trait别名语法中未指定具体trait时,现在正确地为所有相关trait创建别名映射
- 添加对多重trait使用的支持,处理如 use TraitA, TraitB { method as newMethod } 的语法
- 修复预处理阶段无法获取trait方法列表时的映射逻辑
- 增加对trait优先级语法中缺少trait名称的错误检查
- 添加测试用例验证trait方法冲突处理的正确性
|
4 months ago |
韩天峰
|
1e47ac0f53
|
fix(parser): 解决属性默认值处理中的类型转换和重复定义问题
- 添加对布尔类型默认值的正确处理和转换
- 修复常量表达式在字符串类型检查中的逻辑错误
- 增加对重复属性定义的检测和错误报告
- 优化数值类型默认值的处理流程
- 添加测试用例验证各种类型的属性默认值行为
|
4 months ago |
韩天峰
|
e62c953c71
|
feat(compiler): 完善类型声明和对象赋值检查功能
- 将 getNamespacedClassName 方法设为公共方法以便外部调用
- 添加对 self、parent、static 关键字的类型解析支持
- 优化 Name_FullyQualified 节点的解析逻辑
- 实现 detectClassOfExpr 方法用于检测表达式的类类型
- 增强对象赋值时的类型检查和错误提示
- 完善返回值类型的验证机制
- 重构类型检测相关方法的命名和实现
- 添加对 trait 语句的解析支持
- 优化构建模式设置功能
- 增加类型声明相关的测试用例
|
4 months ago |
韩天峰
|
af0e5df4ae
|
fix(php): 修复trait适配器中的修饰符处理逻辑
- 修正了当newModifier为null时的默认值设置
- 避免了对null值调用toString方法导致的错误
- 确保了trait方法适配的正确性
|
4 months ago |