Files
hakorune/src/mir/builder/control_flow/joinir/api/mod.rs
tomoaki dac57ec350 refactor(cleanup): Large-scale dead code elimination (Task 5)
Removed 966 lines of dead code identified by Rust compiler warnings.
4 files completely deleted, multiple pattern implementations cleaned up.

**Files Completely Deleted (4)**:
- src/mir/builder/control_flow/joinir/api/entry.rs (15 lines)
- src/mir/builder/control_flow/joinir/api/pipeline_contracts.rs (17 lines)
- src/mir/builder/control_flow/joinir/api/receiver.rs (21 lines)
- src/mir/builder/control_flow/joinir/patterns/pattern2_steps/promote_step_box.rs (33 lines)

**Pattern 7 (SplitScan) - 423 lines deleted**:
- Removed: can_lower(), lower(), cf_loop_pattern7_split_scan_impl()
- Removed helper functions: contains_methodcall(), contains_variable_step(), contains_push()
- Removed test code
- Kept: extract_split_scan_plan() (used by router.rs)

**Pattern 8 (BoolPredicate) - 222 lines deleted**:
- Removed: cf_loop_pattern8_bool_predicate_impl() (impl MirBuilder block)
- Kept: can_lower(), lower() (used by router.rs)

**Pattern 5 (InfiniteEarlyExit) - 95 lines deleted**:
- Removed: count_breaks_and_continues(), validate_continue_position(), validate_break_pattern()

**Pattern 6 (ScanWithInit) - 110 lines deleted**:
- Removed: contains_methodcall(), is_const_step_pattern()
- Removed 4 test functions

**JoinIR API - 53 lines deleted**:
- Removed module: api/entry.rs
- Removed module: api/pipeline_contracts.rs
- Removed module: api/receiver.rs

**EdgeCFG API - 30 lines deleted**:
- EdgeStub: Removed new(), with_target() methods

**Statistics**:
- Total lines deleted: 966
- Files deleted: 4
- Dead code warnings eliminated: Multiple pattern implementations

Build Status:  Release build successful (0 errors)

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 04:49:52 +09:00

11 lines
508 B
Rust

//! JoinIR integration API (SSOT entry points)
//!
//! Purpose: provide a small, stable surface for pattern lowerers and merge code.
//! This reduces "where should I call this from?" drift and avoids re-implementing
//! contract logic (SSOT, fail-fast checks) in each pattern.
//!
//! Policy:
//! - Prefer SSOT helpers over ad-hoc logic in patterns.
//! - Avoid guessing (order/layout/name) in callers; callers pass explicit intent.
//! - Keep this module thin: mostly wrappers/re-exports with clear naming.