Files
hakorune/src/mir/builder
nyash-codex 7b83d214ae feat(joinir): Phase 170-B else-break pattern detection and negation
Expand Pattern 2 (loop with break) to handle else-break patterns:
- If condition is in else clause: `if (cond) { ... } else { break }`
- Extract and negate condition for proper break detection
- Added has_break_in_else_clause() helper in ast_feature_extractor
- Pattern2 now handles both then-break and else-break structures

Implementation:
- ast_feature_extractor: Added else-break pattern detection
- pattern2_with_break: Detect else-break case and wrap condition in UnaryOp Not
- Enables support for patterns like trim() with inverted break logic

Known limitation:
- Pattern 2 requires break conditions to only depend on:
  * Loop parameter (e.g., 'start' in loop(start < end))
  * Condition-only variables from outer scope (e.g., 'end')
- Does NOT support break conditions using loop-body variables (e.g., 'ch')
- Future Pattern 5+ will handle more complex break conditions

🤖 Generated with Claude Code
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-07 21:09:01 +09:00
..