vtable 生成在 Phase 1b(declare_only=0),继承方法需依赖模块的函数 TypeStr 已注册(1b 翻译时动态写入全局表)。1b 循环原先按扫描顺序 翻译(astaux.vp 在 base.vp 前),父类未先翻译导致 vtable 找不到 实现。topo_order 原在 1a 末尾释放,1b 无法复用——改为 1b 循环按 topo_order 遍历(父类文件先翻译),topo_order 释放延后到 1b 后。
vtable 生成在 Phase 1b(declare_only=0),继承方法需依赖模块的函数 TypeStr 已注册(1b 翻译时动态写入全局表)。1b 循环原先按扫描顺序 翻译(astaux.vp 在 base.vp 前),父类未先翻译导致 vtable 找不到 实现。topo_order 原在 1a 末尾释放,1b 无法复用——改为 1b 循环按 topo_order 遍历(父类文件先翻译),topo_order 释放延后到 1b 后。