TermiNexus
ee50ce61fe
feat(cast): 指针隐式转换按“同级+被指类型无损”判定(通用指针 t.CPtr/i8* 通配),并修诊断错位
_ptr_cast_reason 统一判据:层数不同→禁;完全相同类型→放行;任一侧通用指针(i8*/t.CPtr)→放行;否则按被指类型:非基本类型→禁,基本标量按既有无损规则(int↔int、float↔float、int→float 需目标浮点位宽≥源整数位宽、float→int 有损)
4 处禁令与新增的“指针→指针”处统一走 _value_node_of/_cast_fail_where:外层 Assign(kind=3) 下沉到真正被转换的值节点;列号按有符号打印(-1/未知打 -,不再出现 4294967295);附源码片段
未动“聚合值↔指针”那条路径(构造返回指针 load 回结构体,如 p: Point = Point()):LLVM 层无法与真实 Foo*→Foo 区分,禁止会直接编不过;规则③在该轴上的收紧待 AST 层区分构造调用后另做
2026-09-28 15:10:30 +08:00
..
2026-09-27 13:12:22 +08:00
2026-09-28 12:41:04 +08:00
2026-09-28 15:10:30 +08:00
2026-09-28 13:57:05 +08:00
2026-09-27 14:45:28 +08:00
2026-09-27 12:30:47 +08:00
2026-08-28 04:50:09 +08:00
2026-09-27 14:45:28 +08:00
2026-09-23 17:41:49 +08:00
2026-09-23 16:09:32 +08:00
2026-09-27 19:18:16 +08:00
2026-09-27 14:45:28 +08:00
2026-09-23 16:09:32 +08:00
2026-09-23 16:09:32 +08:00
2026-09-27 13:12:22 +08:00
2026-09-28 12:41:04 +08:00
2026-09-27 23:58:15 +08:00
2026-09-26 19:27:23 +08:00
2026-09-27 17:56:51 +08:00
2026-09-23 17:41:49 +08:00