|
1 | 1 | # CodeNothing 更新日志 |
2 | 2 |
|
| 3 | +## [v0.8.3] - 2025-08-10 - 泛型系统基础架构 |
| 4 | + |
| 5 | +### 新增功能 |
| 6 | + |
| 7 | +#### 泛型 AST 支持 |
| 8 | +- 新增 `GenericParameter` 结构体:类型参数名、约束、默认类型 |
| 9 | +- 新增 `TypeConstraint` 枚举:Trait、Sized、Copy、Send、Sync 约束 |
| 10 | +- 扩展 `Type` 枚举: |
| 11 | + - `Type::Generic(String)` - 泛型类型参数 |
| 12 | + - `Type::GenericClass(String, Vec<Type>)` - 泛型类 |
| 13 | + - `Type::GenericEnum(String, Vec<Type>)` - 泛型枚举 |
| 14 | + |
| 15 | +#### 泛型表达式 |
| 16 | +- 新增 `GenericFunctionCall` - 泛型函数调用 |
| 17 | +- 新增 `GenericMethodCall` - 泛型方法调用 |
| 18 | +- 新增 `GenericObjectCreation` - 泛型对象创建 |
| 19 | +- 新增 `TypeCast` - 类型转换表达式 |
| 20 | +- 新增 `TypeOf` - 类型查询表达式 |
| 21 | + |
| 22 | +#### 泛型解析器 |
| 23 | +- 新增 `generic_parser.rs` 模块 |
| 24 | +- 实现解析方法: |
| 25 | + - `parse_generic_parameters()` - 解析 `<T, U, K>` 参数列表 |
| 26 | + - `parse_generic_parameter()` - 解析单个泛型参数 |
| 27 | + - `parse_type_constraints()` - 解析类型约束 |
| 28 | + - `parse_where_clause()` - 解析 where 子句 |
| 29 | + - `parse_generic_type_arguments()` - 解析泛型类型实例化 |
| 30 | + - `parse_generic_function_call()` - 解析泛型函数调用 |
| 31 | + - `parse_generic_object_creation()` - 解析泛型对象创建 |
| 32 | + |
| 33 | +#### 运行时支持 |
| 34 | +- 扩展表达式求值器,支持泛型表达式求值 |
| 35 | +- 实现类型转换和类型查询的运行时处理 |
| 36 | + |
| 37 | +#### 语法示例 |
| 38 | +```codenothing |
| 39 | +// 泛型函数 |
| 40 | +fn max<T>(a: T, b: T) : T { |
| 41 | + if (a > b) { return a; } else { return b; }; |
| 42 | +}; |
| 43 | +
|
| 44 | +// 泛型类 |
| 45 | +class Container<T> { |
| 46 | + private T value; |
| 47 | + constructor<T>(T initial_value) { |
| 48 | + this.value = initial_value; |
| 49 | + }; |
| 50 | +}; |
| 51 | +
|
| 52 | +// 带约束的泛型 |
| 53 | +fn sort<T: Comparable<T>>(items: array<T>) : array<T> where T: Copy { |
| 54 | + return items; |
| 55 | +}; |
| 56 | +``` |
| 57 | + |
| 58 | +### 技术细节 |
| 59 | + |
| 60 | +#### 修复和改进 |
| 61 | +- 修复 `auto` 类型解析:将 `"Auto"` 改为 `"auto"`(小写) |
| 62 | +- 保持现有变量声明语法:`name: type = value` 和 `name: auto = value` |
| 63 | + |
| 64 | +#### 编译状态 |
| 65 | +- 项目成功编译(316个警告,0个错误) |
| 66 | +- 基本类型推断功能验证通过 |
| 67 | +- 向后兼容现有代码 |
| 68 | + |
| 69 | +### 当前限制 |
| 70 | +- 泛型解析器集成尚未完成 |
| 71 | +- 类型检查和约束验证待实现 |
| 72 | +- 运行时类型擦除,主要用于编译时检查 |
| 73 | + |
| 74 | +--- |
| 75 | + |
3 | 76 | ## [v0.8.2] - 2025-08-10 - 解释器稳定性提升 |
4 | 77 |
|
5 | 78 | ### 🎯 主要改进 |
|
0 commit comments