tomoaki
fa00ed3018
refactor(joinir): Split contract_checks.rs into 2 files (Phase 286C-4.3)
Split 1,239-line contract_checks.rs into responsibility-based modules
for better maintainability and clarity.
## Changes
1. **New file: debug_assertions.rs** (440 lines)
- 6 debug-only verification functions (panic! on violation)
- All functions guarded with #[cfg(debug_assertions)]
- Excluded from release builds
- Functions:
* verify_loop_header_phis()
* verify_exit_line()
* verify_exit_phi_no_collision()
* verify_valueid_regions()
* verify_condition_bindings_consistent()
* verify_header_phi_dsts_not_redefined()
2. **Updated: contract_checks.rs** (1,239 → 848 lines, -391 lines)
- Kept 6 Fail-Fast functions (Result<(), String>)
- Kept all 13 unit tests
- Removed debug-only functions and imports
3. **Updated: mod.rs**
- Added `mod debug_assertions;` declaration
## Responsibility Split
- **contract_checks.rs**: Fail-Fast contracts (production)
- Return errors with diagnostic messages
- Run in both debug and release builds
- **debug_assertions.rs**: Debug-only assertions (development)
- Panic on contract violations
- Excluded from release builds (#[cfg(debug_assertions)])
## Benefits
- Single Responsibility Principle (each file <850 lines)
- Clear separation: Fail-Fast vs Debug-only
- Improved maintainability (localized changes)
- Better build performance (debug code stripped in release)
## Test Results
- ✅ Build: 0 errors
- ✅ Smoke tests: 45/46 PASS (no regression)
- ❌ core_direct_array_oob_set_rc_vm: FAIL (existing known issue)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-25 06:08:46 +09:00
..
2025-12-25 06:08:46 +09:00
2025-12-24 17:21:21 +09:00
2025-11-21 06:25:17 +09:00
2025-12-08 23:43:26 +09:00
2025-12-21 04:34:22 +09:00
2025-11-30 04:35:40 +09:00
2025-12-25 05:18:06 +09:00
2025-12-24 03:44:56 +09:00
2025-12-11 20:54:33 +09:00
2025-12-20 11:01:48 +09:00
2025-12-21 11:49:03 +09:00
2025-11-30 14:30:28 +09:00
2025-12-21 05:47:37 +09:00
2025-12-21 04:34:22 +09:00
2025-12-22 14:48:37 +09:00
2025-12-24 03:17:30 +09:00
2025-12-21 04:34:22 +09:00
2025-12-22 15:34:03 +09:00
2025-12-21 04:34:22 +09:00
2025-12-23 00:11:20 +09:00
2025-11-21 06:25:17 +09:00
2025-12-21 09:39:20 +09:00
2025-12-13 05:34:56 +09:00
2025-12-25 00:11:34 +09:00
2025-12-07 23:45:55 +09:00
2025-12-21 12:49:53 +09:00
2025-12-03 13:59:06 +09:00
2025-12-21 04:34:22 +09:00
2025-12-25 00:11:34 +09:00
2025-12-15 22:03:34 +09:00
2025-09-17 07:43:07 +09:00
2025-12-21 04:34:22 +09:00
2025-12-24 07:44:50 +09:00
2025-12-16 07:02:14 +09:00
2025-12-21 04:34:22 +09:00
2025-11-24 14:17:02 +09:00
2025-12-22 15:34:03 +09:00
2025-11-24 14:17:02 +09:00
2025-09-17 07:43:07 +09:00
2025-12-21 04:34:22 +09:00
2025-12-24 03:17:30 +09:00
2025-12-05 19:39:54 +09:00
2025-12-20 03:20:55 +09:00
2025-09-24 09:30:42 +09:00
2025-11-24 15:02:51 +09:00
2025-12-24 03:17:30 +09:00
2025-11-17 09:45:03 +09:00
2025-11-24 15:02:51 +09:00
2025-11-21 06:25:17 +09:00
2025-12-20 23:30:27 +09:00