|
|
8900a3cc44
|
feat(joinir): Phase 247-EX - DigitPos dual-value architecture
Extends DigitPos promotion to generate TWO carriers for Pattern A/B support:
- Boolean carrier (is_digit_pos) for break conditions
- Integer carrier (digit_value) for NumberAccumulation
## Implementation
1. **DigitPosPromoter** (loop_body_digitpos_promoter.rs)
- Generates dual carriers: is_<var> (bool) + <base>_value (int)
- Smart naming: "digit_pos" → "digit" (removes "_pos" suffix)
2. **UpdateEnv** (update_env.rs)
- Context-aware promoted variable resolution
- Priority: <base>_value (int) → is_<var> (bool) → standard
- Pass promoted_loopbodylocals from CarrierInfo
3. **Integration** (loop_with_break_minimal.rs)
- UpdateEnv constructor updated to pass promoted list
## Test Results
- **Before**: 925 tests PASS
- **After**: 931 tests PASS (+6 new tests, 0 failures)
## New Tests
- test_promoted_variable_resolution_digit_pos - Full dual-value
- test_promoted_variable_resolution_fallback_to_bool - Fallback
- test_promoted_variable_not_a_carrier - Error handling
## Impact
| Pattern | Before | After |
|---------|--------|-------|
| _parse_number | ✅ Works (bool only) | ✅ Works (bool used, int unused) |
| _atoi | ❌ Failed (missing int) | ✅ READY (int carrier available!) |
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-11 15:08:14 +09:00 |
|