本文件按模块分类列出 5.2.0 版本中修复的所有问题。
| 问题 | 修复内容 | 相关 Commit |
| cayError 类型名称不一致 | 统一重命名为 CayError(PascalCase),与 Rust 命名规范一致 | c567ff9 |
| 错误识别依赖字符串匹配 | 新增 error_code 显式字段,消灭 message.contains() 模式 | c567ff9 |
| 错误传播链过长 | 删除四层转换链(CompilerError / DisplayDiagnostic / 旧 Diagnostic / DiagnosticCollector) | c567ff9 |
| 诊断模块路径分散 | 统一迁移到 miette_diagnostic 模块,移除废弃旧模块引用 | 7157da3 |
line_col_to_offset 对中文/emoji 的处理 | 新增多字节字符正确性验证测试 | c567ff9 |
| 问题 | 修复内容 | 相关 Commit |
| 缺少全局泛型类型替换 | 新增 substitute_type_params 工具函数 | 0dd32b2 |
| 嵌套泛型未递归替换 | 重构泛型返回类型解析,支持递归替换 | 0dd32b2 |
| 接口 vtable 未处理泛型后缀 | 修复 vtable 查找时泛型后缀匹配逻辑 | 0dd32b2 |
| 调用方返回值类型未替换 | 自动替换调用方法返回值中的泛型参数 | 0dd32b2 |
| 问题 | 修复内容 | 相关 Commit |
| 嵌入式链接缺系统库路径 | 为 ld.lld 添加默认系统库搜索路径 | b292408 |
| 缺少 C 运行时启动文件 | 自动检测并添加 crt 启动文件以提供正确入口点 | b292408 |
| 缺少 dl 库链接 | 补充链接 dl 库并自动设置动态链接器路径 | b292408 |
| 链接参数顺序错误 | 调整链接参数顺序确保符号解析正确 | b292408 |
| Linux 缺失运行时库 | 自动执行构建脚本编译 libcayrt-linux.a | defebed |
| 问题 | 修复内容 | 相关 Commit |
| Windows 下 LLVMDisposeMessage 崩溃 | 注释掉不安全的 error_msg 内存释放逻辑,添加注释说明原因 | b30f9b2 |
| IR 验证时产生空字符串警告 | 优化处理逻辑,仅在消息非空且有效时打印警告 | b30f9b2 |
| 问题 | 修复内容 | 相关 Commit |
| debug_common 模块被 git 忽略 | 修正 .gitignore,取消忽略并跟踪 debug_common 模块 | 2e284e0 |
| cay-rcpl 缺少 –use-embedded-llc | 新增嵌入式 llc 选项支持 | e665ab9 |
| cay-run 缺少 –use-embedded-llc | 新增嵌入式 llc 选项支持 | e665ab9 |
| REPL 输入解析器不识别访问修饰符 | 扩展解析器支持 pub/priv 修饰符 | e665ab9 |
| REPL 输入解析器不识别 fn 风格方法 | 扩展解析器支持 fn 关键字风格定义 | e665ab9 |
| 帮助信息排版不对齐 | 优化帮助信息的排版对齐 | e665ab9 |
| 问题 | 修复内容 | 相关 Commit |
| Windows 多线程编译竞态错误 | 全局关闭增量编译 | 0dd32b2 |