refactor(builder): Boxification Phase 2 - CalleeResolverBox実装完了
箱理論の実践:Callee解決ロジックを独立した箱に集約 - 単一責務:CallTarget → Callee の型安全な解決のみ - 状態最小:型情報参照のみ保持(変更なし) - ピュア関数的:入力→解決・検証→出力 実装内容: 1. 新規ファイル作成 - src/mir/builder/calls/resolver.rs - CalleeResolverBox構造体(~300行、テスト含む) - 3つの主要メソッド:resolve/classify_box_kind/validate_args 2. 既存関数の移動・統合 - call_unified::convert_target_to_callee → CalleeResolverBox::resolve - call_unified::classify_box_kind → CalleeResolverBox::classify_box_kind - call_unified::validate_call_args → CalleeResolverBox::validate_args 3. emit.rs更新 - CalleeResolverBoxを使用するように変更 - 2箇所でインスタンス化(resolve用、validate用) 4. call_unified.rs整理 - 旧関数をDEPRECATEDコメントに置き換え(参照用に残す) - ~150行削減 5. テスト完備 - 5つのユニットテスト(all passed ✅) - 既存テスト互換性維持(guard tests, mir_stageb tests passed) 箱化効果: - 責務分離:Callee解決ロジックが独立したモジュールに - 再利用性:CalleeResolverBoxは他のコンテキストでも使用可能 - テスト容易性:モックや型情報を簡単に注入できる設計 - 保守性向上:変更箇所が明確(resolver.rs のみ) Phase 25.1d 進捗: - Phase 1: CalleeGuardBox ✅ 完了 - Phase 2: CalleeResolverBox ✅ 完了(本コミット) - 次候補: 統合的boxification(オプショナル) ビルド・テスト: - cargo build --release: ✅ 成功 - guard tests (3): ✅ all passed - resolver tests (5): ✅ all passed - mir_stageb tests (5/6): ✅ passed(1つは既存のusing問題)
This commit is contained in:
@ -19,9 +19,10 @@ pub mod special_handlers;
|
||||
// New refactored modules (Box Theory Phase 1 & 2 & 25.1d)
|
||||
pub mod lowering;
|
||||
pub mod utils;
|
||||
pub mod emit; // Phase 2: Call emission
|
||||
pub mod build; // Phase 2: Call building
|
||||
pub mod guard; // Phase 25.1d: Structural guard (static/runtime box separation)
|
||||
pub mod emit; // Phase 2: Call emission
|
||||
pub mod build; // Phase 2: Call building
|
||||
pub mod guard; // Phase 25.1d: Structural guard (static/runtime box separation)
|
||||
pub mod resolver; // Phase 25.1d: Callee resolution (CallTarget → Callee)
|
||||
|
||||
// Re-export public interfaces
|
||||
pub use call_target::CallTarget;
|
||||
|
||||
Reference in New Issue
Block a user