fix(extern): 原地更新 export_extern_funcs

translator 与 LlvmGen 共享同一 dict 引用;替换属性导致 Gen 仍指向旧空 dict。改为 clear+update,确保跨模块 extern 裸名生效。
This commit is contained in:
TermiNexus committed 2026-10-19 15:07:54 +08:00
1 parent ed76f77218
commit f91fb7dcca
1 file changed
+3 -2
+3 -2
View File
@@ -2405,7 +2405,8 @@ class Phase2Translator:
_combined_extern[_node.name] = _sha1_key
except Exception:
continue
trans.translator._export_extern_funcs = _combined_extern
trans.translator._export_extern_funcs.clear()
trans.translator._export_extern_funcs.update(_combined_extern)
if self._shared_generic_class_templates:
if not hasattr(trans.translator.ClassHandler, '_generic_class_templates'):
trans.translator.ClassHandler._generic_class_templates = {}
@@ -2427,7 +2428,7 @@ class Phase2Translator:
raise
_vlog().warning(f"收集导出外部函数声明失败: {_e}", "Exception")
if export_extern_funcs:
trans.translator._export_extern_funcs = export_extern_funcs
trans.translator._export_extern_funcs.update(export_extern_funcs)
for includes_dir in self.include_dirs:
if os.path.isdir(includes_dir):