Skip to content
This repository was archived by the owner on Aug 18, 2025. It is now read-only.

Commit d5d7ee1

Browse files
committed
新增CodeNothing泛型系统基础架构,包含泛型AST支持、泛型表达式、解析器实现及运行时支持,修复类型解析问题,保持向后兼容,文档更新了当前限制与技术细节。
1 parent c7590e3 commit d5d7ee1

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

CHANGELOG.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,78 @@
11
# CodeNothing 更新日志
22

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+
376
## [v0.8.2] - 2025-08-10 - 解释器稳定性提升
477

578
### 🎯 主要改进

0 commit comments

Comments
 (0)