feat(naming): Phase 25.4-A NamingBox SSOT統一化完了
Task A: NamingBox SSOT化(static/global名前決定の一元化) ## 変更内容 ### 1. Builder側をNamingBoxに統一 - `src/mir/builder/decls.rs:46` - 手動string組み立て → `encode_static_method()`使用に変更 - "Main.main" → "Main.main/N" (arity付き正規形) ### 2. VM側の構造確認・ドキュメント強化 - `src/backend/mir_interpreter/handlers/calls/global.rs:145-149` - NamingBox SSOT原則をコメントで明示 - レガシーフォールバック廃止を明記 ## テスト結果 ✅ cargo test mir_static_box_naming: 2 passed ✅ cargo test stage1_cli_entry_ssa_smoke: 2 passed ## 技術的成果 - static box / global 呼び出しの名前決定を `src/mir/naming.rs` に一本化 - 手動文字列組み立て(`format!("{}.{}", box, method)`)を排除 - 正規化ルール(main→Main等)をNamingBox経由で統一 ## 参考 - Phase 25.4計画: docs/development/roadmap/phases/phase-25.4-naming-cli-cleanup/ - NamingBox SSOT: src/mir/naming.rs 🎉 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -142,9 +142,11 @@ impl MirInterpreter {
|
|||||||
}
|
}
|
||||||
Ok(VMValue::Void)
|
Ok(VMValue::Void)
|
||||||
}
|
}
|
||||||
_ => Err(
|
_ => {
|
||||||
self.err_with_context("global function", &format!("Unknown: {}", func_name)),
|
// NamingBox SSOT: ここで canonical に失敗したら素直に Unknown とする。
|
||||||
),
|
// レガシーフォールバック(functions.get(func_name) 再探索)は Phase 25.x で廃止済み。
|
||||||
|
Err(self.err_with_context("global function", &format!("Unknown: {}", func_name)))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,7 +42,8 @@ impl super::MirBuilder {
|
|||||||
.as_deref()
|
.as_deref()
|
||||||
== Some("1")
|
== Some("1")
|
||||||
{
|
{
|
||||||
let func_name = format!("{}.{}", box_name, "main");
|
// NamingBox SSOT: Use encode_static_method for main/arity entry
|
||||||
|
let func_name = crate::mir::naming::encode_static_method(&box_name, "main", params.len());
|
||||||
eprintln!(
|
eprintln!(
|
||||||
"[DEBUG] build_static_main_box: Before lower_static_method_as_function"
|
"[DEBUG] build_static_main_box: Before lower_static_method_as_function"
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user