refactor(joinir): Phase 33-17-A TailCallClassifier and MergeResult extraction

## Changes
- Extract TailCallClassifier Box (107 lines) with 4 unit tests
- Extract MergeResult Box (44 lines) for merge result data structure
- instruction_rewriter.rs reduced: 649 → 580 lines (-10.6%)

## Box Theory Compliance
- TailCallClassifier: Single responsibility for tail call classification
- MergeResult: Clean data structure separation
- Both modules follow naming conventions (Classifier, Result)

## Quality
- 4 unit tests added for TailCallClassifier
- Build verified 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
nyash-codex
2025-12-07 12:23:37 +09:00
parent 287ceca18d
commit 8baca953ca
4 changed files with 166 additions and 69 deletions

View File

@ -18,6 +18,12 @@ mod instruction_rewriter;
mod exit_phi_builder;
pub mod exit_line;
pub mod loop_header_phi_builder;
mod tail_call_classifier;
mod merge_result;
// Phase 33-17: Re-export for use by other modules
pub use merge_result::MergeResult;
pub use tail_call_classifier::{TailCallKind, classify_tail_call};
use crate::mir::{BasicBlockId, MirModule, ValueId};
use crate::mir::join_ir::lowering::inline_boundary::JoinInlineBoundary;