feat(joinir): Phase 27.13 最小.hakoファイル作成とauto_loweringテスト完全動作
## 実装内容 - 新規ファイル作成: apps/tests/stage1_usingresolver_minimal.hako - using文、@記法、FileBoxを含まない最小構成 - 関数シグネチャ: resolve_for_source/5 (5パラメータ) - シンプルなloop(i < n)構造でJoinIRテスト用 - テストファイル更新: src/tests/mir_joinir_stage1_using_resolver_min.rs - test_file パスを minimal.hako に変更 - パーサーエラー回避(using文問題の対策) - 関数名修正: src/mir/join_ir/lowering/stage1_using_resolver.rs - /1 → /5 に修正(2箇所: build関数とlower_from_mir関数) - 5パラメータ関数シグネチャに対応 ## テスト結果 ✅ auto_lowering テスト完全成功 - NYASH_JOINIR_EXPERIMENT=1 + NYASH_JOINIR_LOWER_FROM_MIR=1 - MIR → JoinIR 自動変換動作 - CFG sanity checks passed - 2関数生成確認(resolve_entries + loop_step) - ValueId range 7000-8999 正常動作 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -83,7 +83,7 @@ fn build_stage1_using_resolver_joinir(module: &crate::mir::MirModule) -> Option<
|
||||
use crate::mir::join_ir::*;
|
||||
|
||||
// Phase 27.13: ターゲット関数が存在するかチェック
|
||||
let _target_func = module.functions.get("Stage1UsingResolverBox.resolve_for_source/1")?;
|
||||
let _target_func = module.functions.get("Stage1UsingResolverBox.resolve_for_source/5")?;
|
||||
|
||||
eprintln!("[joinir/stage1_using_resolver/build] Phase 27.13 implementation");
|
||||
eprintln!("[joinir/stage1_using_resolver/build] Generating JoinIR for entries loop");
|
||||
@ -252,10 +252,10 @@ fn build_stage1_using_resolver_joinir(module: &crate::mir::MirModule) -> Option<
|
||||
fn lower_from_mir(module: &crate::mir::MirModule) -> Option<JoinModule> {
|
||||
eprintln!("[joinir/stage1_using_resolver/mir] Starting MIR-based lowering");
|
||||
|
||||
// Step 1: Stage1UsingResolverBox.resolve_for_source/1 を探す
|
||||
let target_func = module.functions.get("Stage1UsingResolverBox.resolve_for_source/1")?;
|
||||
// Step 1: Stage1UsingResolverBox.resolve_for_source/5 を探す
|
||||
let target_func = module.functions.get("Stage1UsingResolverBox.resolve_for_source/5")?;
|
||||
|
||||
eprintln!("[joinir/stage1_using_resolver/mir] Found Stage1UsingResolverBox.resolve_for_source/1");
|
||||
eprintln!("[joinir/stage1_using_resolver/mir] Found Stage1UsingResolverBox.resolve_for_source/5");
|
||||
eprintln!("[joinir/stage1_using_resolver/mir] MIR blocks: {}", target_func.blocks.len());
|
||||
|
||||
// Step 2: MirQueryBox を作成
|
||||
|
||||
Reference in New Issue
Block a user