增加 JIT REPL

This commit is contained in:
TermiNexus committed 2026-09-21 16:17:19 +08:00
1 parent 9910e05760
commit a5ceb3d4eb
56 files changed
+7621 -584

No files matched your search

+12 -1
View File
@@ -37,9 +37,20 @@ def set_current_file_imports(file_path: str) -> None:
# ---------------- set_current_file_type(委托 TypeGenResolve.set_current_file) ----------------
def set_current_file_type(file_path: str) -> None:
"""委托到 gen.set_current_file(原 Handles 壳)"""
"""委托到 gen.set_current_file —— 报错归因的"当前文件"写入通道(原 Handles 壳)
与 fatal_error 同因同解:Converter 的 vpi 生成(Phase 1)、Phase A-pre-vpi
跑在 BuildPipeline 注入 GenApi._g_gen 之前(BuildPipeline.vp 的
_GeneratePyiFromAst 调用点早于 GenApi._g_gen 赋值),此时 _g_gen 为空;
写侧若缺兜底会静默 no-op → fatal_error 的 get_current_file 读到的仍是
上一个文件(归因错位)。故回退读 Generator 模块单例(main.vp 启动即注入)。
"""
if _g_gen is not None:
_g_gen.TypeGenResolve.set_current_file(file_path)
return
gg: rawptr[Generator.Generator] = Generator._g_gen
if gg is not None:
gg.TypeGenResolve.set_current_file(file_path)
# ---------------- set_current_module_sha1(委托 TypeGenBase.set_current_module_sha1) ----------------