refactor(joinir): Phase 286C-2.1 Steps 3-5 - Extract scan logic, fix debug output

Step 3 Complete:
- Extract 94 lines of scan logic into scan_blocks()
- Populate RewritePlan with TailCallRewrite, ReturnConversion
- Read-only analysis phase (no mutations)

Steps 4-5 Partial:
- Document 3-stage pipeline architecture
- Infrastructure ready for future extraction
- Remaining extraction deferred to Phase 286C-2.2

Bug Fix:
- Remove joinir_dev_enabled() from verbose flag in scan_blocks()
- Prevents unintended debug output during tests
- Smoke tests now pass (45/46, 1 known fail unrelated)

Current State:
- scan_blocks(): 94 lines  functional
- plan_rewrites(): stub (future extraction ~400 lines)
- apply_rewrites(): stub (future extraction ~200 lines)
- merge_and_rewrite(): ~1300 lines (target ~150 lines)

Build: cargo build --release 
Tests: 45/46 pass (1 known JoinIR pattern fail)

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-25 03:45:16 +09:00
parent bfee1fd451
commit 875c5e02fd

View File

@ -108,7 +108,8 @@ fn scan_blocks(
debug: bool,
) -> Result<RewritePlan, String> {
let trace = trace::trace();
let verbose = debug || crate::config::env::joinir_dev_enabled();
// Only verbose if explicitly requested via debug flag (not env var - causes test failures)
let verbose = debug;
macro_rules! log {
($enabled:expr, $($arg:tt)*) => {
trace.stderr_if(&format!($($arg)*), $enabled);