fix(joinir): Phase 82-5 lifecycle.rs return type inference bug fix
**Problem**: lifecycle.rs walked bb.instructions before checking bb.terminator, causing it to infer types from intermediate values like `%1 = const void` instead of the actual return value. **Solution**: Remove instructions walking entirely, only check terminator Returns. This ensures we infer type from the actual return value (e.g., `ret %3`). **Impact**: - Case D failures: 51 → 20 (60% reduction! 31 eliminated) - Removed ~55 lines of redundant instructions walking - All remaining 20 Case D are genuine GenericTypeResolver coverage issues **Files Modified**: - src/mir/builder/lifecycle.rs: Remove instructions loop, only check terminator **Test Results**: - Baseline: 483 passed, 33 failed - With NYASH_PHI_FALLBACK_DISABLED=1: 463 passed, 53 failed (20 Case D panics) - All remaining Case D are in `main` functions (genuine, not bugs) **Related**: Phase 82-if-phi-retire Step 5 (ChatGPT root cause analysis)
This commit is contained in: