feat(joinir): Phase 224-E - DigitPos condition normalization
Add DigitPosConditionNormalizer to transform integer comparison to boolean: - `digit_pos < 0` → `!is_digit_pos` This eliminates the type error caused by comparing Bool carrier with Integer: - Before: Bool(is_digit_pos) < Integer(0) → Type error - After: !is_digit_pos → Boolean expression, no type mismatch Implementation: - New Box: digitpos_condition_normalizer.rs (173 lines) - Pattern2 integration: normalize after promotion success - 5 unit tests (all pass) - E2E test passes (type error eliminated) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -24,6 +24,7 @@ pub mod carrier_info; // Phase 196: Carrier metadata for loop lowering
|
||||
pub(crate) mod carrier_update_emitter; // Phase 179: Carrier update instruction emission
|
||||
pub(crate) mod common; // Internal lowering utilities
|
||||
pub mod complex_addend_normalizer; // Phase 192: Complex addend normalization (AST preprocessing)
|
||||
pub mod digitpos_condition_normalizer; // Phase 224-E: DigitPos condition normalizer (digit_pos < 0 → !is_digit_pos)
|
||||
pub mod condition_env; // Phase 171-fix: Condition expression environment
|
||||
pub mod condition_pattern; // Phase 219-fix: If condition pattern detection (simple vs complex)
|
||||
pub mod loop_body_local_env; // Phase 184: Body-local variable environment
|
||||
|
||||
Reference in New Issue
Block a user