Commit Graph
2 Commits
Author SHA1 Message Date
TermiNexus bd5d2467ab fix(exprcall): NoVTable 跨 Mixin self. 调用按定义类解析 + this 前移
缺陷(TPV bootstrap 的 undefined symbol: <sha1>.StmtGenDeclMixin.translate_return
同根因):NoVTable 多继承下,BaseB.caller 内 self.helper()(helper 定义在兄弟
Mixin BaseA,经 Combined(BaseA, BaseB) 组合)被 mangle 成 BaseB.helper —— 用
调用者类做前缀,而定义符号是 BaseA.helper -> ld.lld undefined symbol。

修复(HandlesExprCall.py):
1. 调用端 MRO 回退失败后,全局扫描已注册类找方法定义类(兄弟 Mixin 兜底);
2. _adjust_this_for_inherited_method 支持"调用类不含定义类字段"场景:
   this 按组合布局前移 sizeof(定义类 struct)(BaseB* -> BaseA*)。

新增 Test/NoVTableCrossMixinTest 回归(caller()==42 通过),TestsOverview 记录。
2026-08-20 10:23:47 +08:00
TermiNexus f047f90a72 docs(test): 新增 TestsOverview.md 测试总览(按实现难度排序)
68 个测试项目一览 + 8 层实现顺序 + 主题分组索引
2026-08-11 21:21:52 +08:00