Files
ViperC/_commit_msg.tmp
T

16 lines
1.0 KiB
Plaintext

fix(tpv-call): 裸名调用同模块优先,修复跨模块同名 stub 抢占致 _advance 误绑
根因:LoadDepVpiIntoModule 在 forward_declare_functions 之前把依赖模块
(lexer)函数以裸名注册进本文件 _funcs(槽位在前),find_func_in_table
与 find_func_in_module 后缀扫描均先命中跨模块 stub declare → parser.vp
内部 163 处 _advance(ps) 全部绑成 lexer._advance,并以 Parser→Lexer**
bitcast 传参(运行期游标永不推进,AstTest 无限 SyntaxError 至 pool 耗尽)。
修复:find_func_in_table / find_func_in_module 增加 owner_sha1(当前模块)
前缀优先遍,仅接受恰为 "{sha1}.{name}" 的本模块函数(declare/define 均可,
前向 declare 未激活时同样命中);translate_call 裸名分支传 trans.ModuleSha1。
本模块无同名定义(纯 from-import/外部 stub)时回落原语义,不改变 CExport/
方法拒绝/装饰器分支行为。
附带同批入库:list 内置方法内联分派与裸名模块表匹配等本会话修复。